From 3346486b6b994b223b7913777285c035536427f8 Mon Sep 17 00:00:00 2001 From: Benjamin Toby Date: Wed, 3 Dec 2025 10:07:34 +0100 Subject: [PATCH] Updates --- .../functions/dsql/sql/sql-generator.js | 28 ++++++++----- .../functions/dsql/sql/sql-generator.ts | 40 ++++++++++++------- package.json | 2 +- 3 files changed, 43 insertions(+), 27 deletions(-) diff --git a/dist/package-shared/functions/dsql/sql/sql-generator.js b/dist/package-shared/functions/dsql/sql/sql-generator.js index 655bc51..60fbb05 100644 --- a/dist/package-shared/functions/dsql/sql/sql-generator.js +++ b/dist/package-shared/functions/dsql/sql/sql-generator.js @@ -260,14 +260,13 @@ function sqlGenerator({ tableName, genObject, dbFullName, count }) { } return genSqlSrchStr({ queryObj, field, join: genObject === null || genObject === void 0 ? void 0 : genObject.join }); }); - if ((sqlSearhString === null || sqlSearhString === void 0 ? void 0 : sqlSearhString[0]) && sqlSearhString.find((str) => str)) { + const isSearchStr = (sqlSearhString === null || sqlSearhString === void 0 ? void 0 : sqlSearhString[0]) && sqlSearhString.find((str) => str); + if (isSearchStr) { const stringOperator = (genObject === null || genObject === void 0 ? void 0 : genObject.searchOperator) || "AND"; queryString += ` WHERE ${sqlSearhString.join(` ${stringOperator} `)}`; } - else if ((genObject === null || genObject === void 0 ? void 0 : genObject.fullTextSearch) && - fullTextSearchStr && - fullTextMatchStr) { - queryString += ` WHERE ${fullTextMatchStr}`; + if ((genObject === null || genObject === void 0 ? void 0 : genObject.fullTextSearch) && fullTextSearchStr && fullTextMatchStr) { + queryString += `${isSearchStr ? " AND" : " WHERE"} ${fullTextMatchStr}`; sqlSearhValues.push(fullTextSearchStr); } if ((_a = genObject === null || genObject === void 0 ? void 0 : genObject.group) === null || _a === void 0 ? void 0 : _a[0]) { @@ -276,12 +275,19 @@ function sqlGenerator({ tableName, genObject, dbFullName, count }) { .join(",")}`; } if ((genObject === null || genObject === void 0 ? void 0 : genObject.order) && !count) { - queryString += ` ORDER BY ${(genObject === null || genObject === void 0 ? void 0 : genObject.fullTextSearch) && - genObject.fullTextSearch.scoreAlias == genObject.order.field - ? `${genObject.fullTextSearch.scoreAlias}` - : genObject.join - ? `${finalDbName}${tableName}.${String(genObject.order.field)}` - : String(genObject.order.field)} ${genObject.order.strategy}`; + let orderFields = []; + let orderSrt = ` ORDER BY`; + if ((genObject === null || genObject === void 0 ? void 0 : genObject.fullTextSearch) && genObject.fullTextSearch.scoreAlias) { + orderFields.push(genObject.fullTextSearch.scoreAlias); + } + else if (genObject.join) { + orderFields.push(`${finalDbName}${tableName}.${String(genObject.order.field)})}`); + } + else { + orderFields.push(genObject.order.field); + } + orderSrt += ` ${orderFields.join(", ")} ${genObject.order.strategy}`; + queryString += ` ${orderSrt}`; } if ((genObject === null || genObject === void 0 ? void 0 : genObject.limit) && !count) queryString += ` LIMIT ${genObject.limit}`; diff --git a/package-shared/functions/dsql/sql/sql-generator.ts b/package-shared/functions/dsql/sql/sql-generator.ts index ae749eb..d6dbc14 100644 --- a/package-shared/functions/dsql/sql/sql-generator.ts +++ b/package-shared/functions/dsql/sql/sql-generator.ts @@ -348,15 +348,16 @@ export default function sqlGenerator< return genSqlSrchStr({ queryObj, field, join: genObject?.join }); }); - if (sqlSearhString?.[0] && sqlSearhString.find((str) => str)) { + const isSearchStr = + sqlSearhString?.[0] && sqlSearhString.find((str) => str); + + if (isSearchStr) { const stringOperator = genObject?.searchOperator || "AND"; queryString += ` WHERE ${sqlSearhString.join(` ${stringOperator} `)}`; - } else if ( - genObject?.fullTextSearch && - fullTextSearchStr && - fullTextMatchStr - ) { - queryString += ` WHERE ${fullTextMatchStr}`; + } + + if (genObject?.fullTextSearch && fullTextSearchStr && fullTextMatchStr) { + queryString += `${isSearchStr ? " AND" : " WHERE"} ${fullTextMatchStr}`; sqlSearhValues.push(fullTextSearchStr); } @@ -367,14 +368,23 @@ export default function sqlGenerator< } if (genObject?.order && !count) { - queryString += ` ORDER BY ${ - genObject?.fullTextSearch && - genObject.fullTextSearch.scoreAlias == genObject.order.field - ? `${genObject.fullTextSearch.scoreAlias}` - : genObject.join - ? `${finalDbName}${tableName}.${String(genObject.order.field)}` - : String(genObject.order.field) - } ${genObject.order.strategy}`; + let orderFields = []; + + let orderSrt = ` ORDER BY`; + + if (genObject?.fullTextSearch && genObject.fullTextSearch.scoreAlias) { + orderFields.push(genObject.fullTextSearch.scoreAlias); + } else if (genObject.join) { + orderFields.push( + `${finalDbName}${tableName}.${String(genObject.order.field)})}` + ); + } else { + orderFields.push(genObject.order.field); + } + + orderSrt += ` ${orderFields.join(", ")} ${genObject.order.strategy}`; + + queryString += ` ${orderSrt}`; } if (genObject?.limit && !count) queryString += ` LIMIT ${genObject.limit}`; diff --git a/package.json b/package.json index d62549c..f5955ca 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@moduletrace/datasquirel", - "version": "5.4.5", + "version": "5.4.6", "description": "Cloud-based SQL data management tool", "main": "dist/index.js", "bin": {