This commit is contained in:
Benjamin Toby 2025-09-03 13:38:54 +01:00
parent c34d256891
commit 5c3324105e
6 changed files with 56 additions and 4 deletions

View File

@ -30,7 +30,19 @@ function sqlGenOperatorGen({ fieldName, value, equality, }) {
}
else if (equality == "LIKE_RAW") {
return {
str: `LOWER(${fieldName}) LIKE LOWER(?)`,
str: `LOWER(${fieldName}) LIKE LOWER('${value}')`,
param: value,
};
}
else if (equality == "LIKE_NOCASE") {
return {
str: `${fieldName} LIKE '%${value}%'`,
param: value,
};
}
else if (equality == "LIKE_NOCASE_RAW") {
return {
str: `${fieldName} LIKE '${value}'`,
param: value,
};
}
@ -45,6 +57,18 @@ function sqlGenOperatorGen({ fieldName, value, equality, }) {
param: value,
};
}
else if (equality == "NOT_LIKE_NOCASE") {
return {
str: `${fieldName} NOT LIKE '%${value}%'`,
param: value,
};
}
else if (equality == "NOT_LIKE_NOCASE_RAW") {
return {
str: `${fieldName} NOT LIKE '${value}'`,
param: value,
};
}
else if (equality == "REGEXP") {
return {
str: `LOWER(${fieldName}) REGEXP LOWER(?)`,

View File

@ -804,7 +804,7 @@ export type FetchApiReturn = {
[key: string]: any;
};
export declare const ServerQueryOperators: readonly ["AND", "OR"];
export declare const ServerQueryEqualities: readonly ["EQUAL", "LIKE", "LIKE_RAW", "NOT LIKE", "NOT LIKE_RAW", "NOT EQUAL", "REGEXP", "FULLTEXT", "IN", "NOT IN", "BETWEEN", "NOT BETWEEN", "IS NULL", "IS NOT NULL", "EXISTS", "NOT EXISTS", "GREATER THAN", "GREATER THAN OR EQUAL", "LESS THAN", "LESS THAN OR EQUAL", "MATCH", "MATCH_BOOLEAN"];
export declare const ServerQueryEqualities: readonly ["EQUAL", "LIKE", "LIKE_RAW", "LIKE_NOCASE", "LIKE_NOCASE_RAW", "NOT LIKE", "NOT LIKE_RAW", "NOT_LIKE_NOCASE", "NOT_LIKE_NOCASE_RAW", "NOT EQUAL", "REGEXP", "FULLTEXT", "IN", "NOT IN", "BETWEEN", "NOT BETWEEN", "IS NULL", "IS NOT NULL", "EXISTS", "NOT EXISTS", "GREATER THAN", "GREATER THAN OR EQUAL", "LESS THAN", "LESS THAN OR EQUAL", "MATCH", "MATCH_BOOLEAN"];
export type ServerQueryParam<T extends {
[k: string]: any;
} = {

View File

@ -29,8 +29,12 @@ exports.ServerQueryEqualities = [
"EQUAL",
"LIKE",
"LIKE_RAW",
"LIKE_NOCASE",
"LIKE_NOCASE_RAW",
"NOT LIKE",
"NOT LIKE_RAW",
"NOT_LIKE_NOCASE",
"NOT_LIKE_NOCASE_RAW",
"NOT EQUAL",
"REGEXP",
"FULLTEXT",

View File

@ -38,7 +38,17 @@ export default function sqlGenOperatorGen({
};
} else if (equality == "LIKE_RAW") {
return {
str: `LOWER(${fieldName}) LIKE LOWER(?)`,
str: `LOWER(${fieldName}) LIKE LOWER('${value}')`,
param: value,
};
} else if (equality == "LIKE_NOCASE") {
return {
str: `${fieldName} LIKE '%${value}%'`,
param: value,
};
} else if (equality == "LIKE_NOCASE_RAW") {
return {
str: `${fieldName} LIKE '${value}'`,
param: value,
};
} else if (equality == "NOT LIKE") {
@ -50,6 +60,16 @@ export default function sqlGenOperatorGen({
str: `LOWER(${fieldName}) NOT LIKE LOWER(?)`,
param: value,
};
} else if (equality == "NOT_LIKE_NOCASE") {
return {
str: `${fieldName} NOT LIKE '%${value}%'`,
param: value,
};
} else if (equality == "NOT_LIKE_NOCASE_RAW") {
return {
str: `${fieldName} NOT LIKE '${value}'`,
param: value,
};
} else if (equality == "REGEXP") {
return {
str: `LOWER(${fieldName}) REGEXP LOWER(?)`,

View File

@ -966,8 +966,12 @@ export const ServerQueryEqualities = [
"EQUAL",
"LIKE",
"LIKE_RAW",
"LIKE_NOCASE",
"LIKE_NOCASE_RAW",
"NOT LIKE",
"NOT LIKE_RAW",
"NOT_LIKE_NOCASE",
"NOT_LIKE_NOCASE_RAW",
"NOT EQUAL",
"REGEXP",
"FULLTEXT",

View File

@ -1,6 +1,6 @@
{
"name": "@moduletrace/datasquirel",
"version": "5.2.6",
"version": "5.2.7",
"description": "Cloud-based SQL data management tool",
"main": "dist/index.js",
"bin": {