Browse Source

Changes requested by review team.

pull/6017/head
VictorMinemu 1 year ago
parent
commit
cc99ccb4fd
  1. 16
      packages/nocodb/src/db/BaseModelSqlv2.ts
  2. 2
      packages/nocodb/src/db/conditionV2.ts

16
packages/nocodb/src/db/BaseModelSqlv2.ts

@ -3966,16 +3966,20 @@ function _wherePk(primaryKeys: Column[], id) {
const ids = (id + '').split('___');
const where = {};
for (let i = 0; i < primaryKeys.length; ++i) {
//Check if the id is a UUID and the column is binary(16)
const idAsUUID =
//Cast the id to string.
const idAsString = ids[i] + '';
// Check if the id is a UUID and the column is binary(16)
const isUUIDBinary16 =
primaryKeys[i].ct === 'binary(16)' &&
((ids[i] + '').length === 36 || (ids[i] + '').length === 32)
? (ids[i] + '').length === 32
? (ids[i] + '').replace(
(idAsString.length === 36 || idAsString.length === 32);
// If the id is a UUID and the column is binary(16), convert the id to a Buffer. Otherwise, return null to indicate that the id is not a UUID.
const idAsUUID = isUUIDBinary16
? idAsString.length === 32
? idAsString.replace(
/(.{8})(.{4})(.{4})(.{4})(.{12})/,
'$1-$2-$3-$4-$5',
)
: ids[i] + ''
: idAsString
: null;
where[primaryKeys[i].column_name] = idAsUUID

2
packages/nocodb/src/db/conditionV2.ts

@ -419,7 +419,7 @@ const parseConditionV2 = async (
].includes(column.uidt)
) {
qb = qb.where(field, val);
} else if (column.ct == 'timestamp') {
} else if (column.ct === 'timestamp') {
qb = qb.whereRaw('DATE(??) = DATE(?)', [field, val]);
} else {
// mysql is case-insensitive for strings, turn to case-sensitive

Loading…
Cancel
Save