@proteinjs/db-query 1.3.0 → 1.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/generated/index.d.ts +6 -0
- package/dist/generated/index.js +33 -0
- package/dist/generated/index.js.map +1 -0
- package/dist/src/QueryBuilder.d.ts +1 -1
- package/dist/src/QueryBuilder.js +2 -31
- package/dist/src/QueryBuilder.js.map +1 -1
- package/dist/src/StatementFactory.js +4 -2
- package/dist/src/StatementFactory.js.map +1 -1
- package/dist/src/serializers/QueryBuilderSerializer.d.ts +18 -0
- package/dist/src/serializers/QueryBuilderSerializer.js +32 -0
- package/dist/src/serializers/QueryBuilderSerializer.js.map +1 -0
- package/dist/test/Serialization.test.d.ts +1 -0
- package/dist/test/Serialization.test.js +52 -0
- package/dist/test/Serialization.test.js.map +1 -0
- package/dist/test/SubQueries.test.js +41 -0
- package/dist/test/SubQueries.test.js.map +1 -1
- package/generated/index.ts +29 -0
- package/package.json +8 -7
- package/src/QueryBuilder.ts +4 -29
- package/src/StatementFactory.ts +4 -1
- package/src/serializers/QueryBuilderSerializer.ts +39 -0
- package/test/Serialization.test.ts +68 -0
- package/test/SubQueries.test.ts +51 -0
- package/LICENSE +0 -21
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/** Load Dependency Source Graphs */
|
|
3
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
4
|
+
if (k2 === undefined) k2 = k;
|
|
5
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
6
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
7
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
8
|
+
}
|
|
9
|
+
Object.defineProperty(o, k2, desc);
|
|
10
|
+
}) : (function(o, m, k, k2) {
|
|
11
|
+
if (k2 === undefined) k2 = k;
|
|
12
|
+
o[k2] = m[k];
|
|
13
|
+
}));
|
|
14
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
15
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
16
|
+
};
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
require("@proteinjs/logger");
|
|
19
|
+
require("@proteinjs/reflection");
|
|
20
|
+
require("@proteinjs/serializer");
|
|
21
|
+
require("@proteinjs/util");
|
|
22
|
+
/** Generate Source Graph */
|
|
23
|
+
var sourceGraph = "{\"options\":{\"directed\":true,\"multigraph\":false,\"compound\":false},\"nodes\":[{\"v\":\"/'AND' | 'OR'\"},{\"v\":\"/| '='\\n | '\"},{\"v\":\"/'COUNT' | 'SUM' | 'AVG' | 'MIN' | 'MAX'\"},{\"v\":\"@proteinjs/db-query/QueryBuilderSerializer\",\"value\":{\"packageName\":\"@proteinjs/db-query\",\"name\":\"QueryBuilderSerializer\",\"filePath\":\"/Users/brentbahry/repos/n3xa/packages/proteinjs/packages/db/packages/query/src/serializers/QueryBuilderSerializer.ts\",\"qualifiedName\":\"@proteinjs/db-query/QueryBuilderSerializer\",\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\",\"properties\":[{\"name\":\"id\",\"type\":null,\"isOptional\":false,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\"}],\"methods\":[{\"name\":\"serialize\",\"returnType\":{\"packageName\":\"@proteinjs/db-query\",\"name\":\"SerializedQueryBuilder\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/db-query/SerializedQueryBuilder\",\"typeParameters\":null,\"directParents\":null},\"isAsync\":false,\"isOptional\":false,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\",\"parameters\":[{\"name\":\"qb\",\"type\":{\"packageName\":\"\",\"name\":\"QueryBuilder<any>\",\"filePath\":null,\"qualifiedName\":\"/QueryBuilder<any>\",\"typeParameters\":null,\"directParents\":null}}]},{\"name\":\"deserialize\",\"returnType\":{\"packageName\":\"\",\"name\":\"QueryBuilder<any>\",\"filePath\":null,\"qualifiedName\":\"/QueryBuilder<any>\",\"typeParameters\":null,\"directParents\":null},\"isAsync\":false,\"isOptional\":false,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\",\"parameters\":[{\"name\":\"serializedQb\",\"type\":{\"packageName\":\"@proteinjs/db-query\",\"name\":\"SerializedQueryBuilder\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/db-query/SerializedQueryBuilder\",\"typeParameters\":null,\"directParents\":null}}]}],\"typeParameters\":[],\"directParentInterfaces\":[{\"packageName\":\"@proteinjs/serializer\",\"name\":\"CustomSerializer\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/serializer/CustomSerializer\",\"properties\":[],\"methods\":[],\"typeParameters\":[],\"directParents\":[]}],\"directParentClasses\":[],\"sourceType\":2}},{\"v\":\"@proteinjs/serializer/CustomSerializer\"}],\"edges\":[{\"v\":\"@proteinjs/db-query/QueryBuilderSerializer\",\"w\":\"@proteinjs/serializer/CustomSerializer\",\"value\":\"implements interface\"}]}";
|
|
24
|
+
/** Generate Source Links */
|
|
25
|
+
var QueryBuilderSerializer_1 = require("../src/serializers/QueryBuilderSerializer");
|
|
26
|
+
var sourceLinks = {
|
|
27
|
+
'@proteinjs/db-query/QueryBuilderSerializer': QueryBuilderSerializer_1.QueryBuilderSerializer,
|
|
28
|
+
};
|
|
29
|
+
/** Load Source Graph and Links */
|
|
30
|
+
var reflection_1 = require("@proteinjs/reflection");
|
|
31
|
+
reflection_1.SourceRepository.merge(sourceGraph, sourceLinks);
|
|
32
|
+
__exportStar(require("../index"), exports);
|
|
33
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../generated/index.ts"],"names":[],"mappings":";AAAA,oCAAoC;;;;;;;;;;;;;;;;AAEpC,6BAA2B;AAC3B,iCAA+B;AAC/B,iCAA+B;AAC/B,2BAAyB;AAGzB,4BAA4B;AAE5B,IAAM,WAAW,GAAG,m2EAAm2E,CAAC;AAGx3E,4BAA4B;AAE5B,oFAAmF;AAEnF,IAAM,WAAW,GAAG;IACnB,4CAA4C,EAAE,+CAAsB;CACpE,CAAC;AAGF,kCAAkC;AAElC,oDAAyD;AACzD,6BAAgB,CAAC,KAAK,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;AAGjD,2CAAyB"}
|
|
@@ -13,7 +13,7 @@ export interface LogicalGroup<T> {
|
|
|
13
13
|
export interface Condition<T> {
|
|
14
14
|
field: keyof T;
|
|
15
15
|
operator: Operator;
|
|
16
|
-
value?: T[keyof T] | T[keyof T][] | QueryBuilder
|
|
16
|
+
value?: T[keyof T] | T[keyof T][] | QueryBuilder | null;
|
|
17
17
|
}
|
|
18
18
|
export interface Aggregate<T> {
|
|
19
19
|
function: AggregateFunction;
|
package/dist/src/QueryBuilder.js
CHANGED
|
@@ -10,19 +10,11 @@ var __assign = (this && this.__assign) || function () {
|
|
|
10
10
|
};
|
|
11
11
|
return __assign.apply(this, arguments);
|
|
12
12
|
};
|
|
13
|
-
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
14
|
-
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
15
|
-
if (ar || !(i in from)) {
|
|
16
|
-
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
17
|
-
ar[i] = from[i];
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
return to.concat(ar || Array.prototype.slice.call(from));
|
|
21
|
-
};
|
|
22
13
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
23
14
|
exports.QueryBuilder = void 0;
|
|
24
15
|
var logger_1 = require("@proteinjs/logger");
|
|
25
16
|
var util_1 = require("@proteinjs/util");
|
|
17
|
+
var serializer_1 = require("@proteinjs/serializer");
|
|
26
18
|
var StatementFactory_1 = require("./StatementFactory");
|
|
27
19
|
var QueryBuilder = /** @class */ (function () {
|
|
28
20
|
function QueryBuilder(tableName) {
|
|
@@ -84,28 +76,7 @@ var QueryBuilder = /** @class */ (function () {
|
|
|
84
76
|
* @returns a new QueryBuilder instance
|
|
85
77
|
*/
|
|
86
78
|
QueryBuilder.fromQueryBuilder = function (qb, tableName) {
|
|
87
|
-
|
|
88
|
-
var clonedGraph = util_1.graphSerializer.deserialize(util_1.graphSerializer.serialize(qb.graph));
|
|
89
|
-
var subQueries = [];
|
|
90
|
-
qb.graph.nodes().forEach(function (nodeId) {
|
|
91
|
-
var nodeValue = qb.graph.node(nodeId).value;
|
|
92
|
-
if (nodeValue instanceof QueryBuilder) {
|
|
93
|
-
subQueries.push([nodeId, QueryBuilder.fromQueryBuilder(qb.graph.node(nodeId).value, nodeValue.tableName)]);
|
|
94
|
-
}
|
|
95
|
-
});
|
|
96
|
-
subQueries.forEach(function (_a) {
|
|
97
|
-
var nodeId = _a[0], subQuery = _a[1];
|
|
98
|
-
var node = clonedGraph.node(nodeId);
|
|
99
|
-
clonedGraph.setNode(nodeId, __assign(__assign({}, node), { value: subQuery }));
|
|
100
|
-
});
|
|
101
|
-
newQb.graph = clonedGraph;
|
|
102
|
-
newQb.__serializerId = qb.__serializerId;
|
|
103
|
-
newQb.idCounter = qb.idCounter;
|
|
104
|
-
newQb.rootId = qb.rootId;
|
|
105
|
-
newQb.currentContextIds = __spreadArray([], qb.currentContextIds, true);
|
|
106
|
-
newQb.paginationNodeId = qb.paginationNodeId;
|
|
107
|
-
newQb.debugLogicalGrouping = qb.debugLogicalGrouping;
|
|
108
|
-
return newQb;
|
|
79
|
+
return serializer_1.Serializer.deserialize(serializer_1.Serializer.serialize(qb));
|
|
109
80
|
};
|
|
110
81
|
QueryBuilder.prototype.generateId = function () {
|
|
111
82
|
return "node_".concat(this.idCounter++);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QueryBuilder.js","sourceRoot":"","sources":["../../src/QueryBuilder.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"QueryBuilder.js","sourceRoot":"","sources":["../../src/QueryBuilder.ts"],"names":[],"mappings":"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"}
|
|
@@ -138,8 +138,10 @@ var StatementParamManager = /** @class */ (function () {
|
|
|
138
138
|
// Namespace subquery param names to avoid collisions and update SQL accordingly
|
|
139
139
|
var prefix = "sq".concat(this.subQueryCounter++, "_");
|
|
140
140
|
var subSql = subQuery.sql.slice(0, -1); // Remove trailing semicolon
|
|
141
|
-
|
|
142
|
-
|
|
141
|
+
// Replace longer keys first to avoid double-replacement
|
|
142
|
+
var keys = Object.keys(subQuery.namedParams.params).sort(function (a, b) { return b.length - a.length; });
|
|
143
|
+
for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {
|
|
144
|
+
var key = keys_1[_i];
|
|
143
145
|
var newName = "".concat(prefix).concat(key);
|
|
144
146
|
this.paramNames[newName] = subQuery.namedParams.params[key];
|
|
145
147
|
this.paramTypes[newName] = subQuery.namedParams.types[key];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StatementFactory.js","sourceRoot":"","sources":["../../src/StatementFactory.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"StatementFactory.js","sourceRoot":"","sources":["../../src/StatementFactory.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { CustomSerializer } from '@proteinjs/serializer';
|
|
2
|
+
import { Graph } from '@proteinjs/util';
|
|
3
|
+
import { QueryBuilder } from '../QueryBuilder';
|
|
4
|
+
type SerializedQueryBuilder = {
|
|
5
|
+
tableName: string;
|
|
6
|
+
graph: Graph;
|
|
7
|
+
idCounter: number;
|
|
8
|
+
rootId: string;
|
|
9
|
+
currentContextIds: string[];
|
|
10
|
+
paginationNodeId?: string;
|
|
11
|
+
};
|
|
12
|
+
export declare const QueryBuilderSerializerId = "@proteinjs/db/QueryBuilderSerializer";
|
|
13
|
+
export declare class QueryBuilderSerializer implements CustomSerializer {
|
|
14
|
+
id: string;
|
|
15
|
+
serialize(qb: QueryBuilder<any>): SerializedQueryBuilder;
|
|
16
|
+
deserialize(serializedQb: SerializedQueryBuilder): QueryBuilder<any>;
|
|
17
|
+
}
|
|
18
|
+
export {};
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.QueryBuilderSerializer = exports.QueryBuilderSerializerId = void 0;
|
|
4
|
+
var QueryBuilder_1 = require("../QueryBuilder");
|
|
5
|
+
exports.QueryBuilderSerializerId = '@proteinjs/db/QueryBuilderSerializer';
|
|
6
|
+
var QueryBuilderSerializer = /** @class */ (function () {
|
|
7
|
+
function QueryBuilderSerializer() {
|
|
8
|
+
this.id = exports.QueryBuilderSerializerId;
|
|
9
|
+
}
|
|
10
|
+
QueryBuilderSerializer.prototype.serialize = function (qb) {
|
|
11
|
+
return {
|
|
12
|
+
tableName: qb.tableName,
|
|
13
|
+
graph: qb.graph,
|
|
14
|
+
idCounter: qb.idCounter,
|
|
15
|
+
rootId: qb.rootId,
|
|
16
|
+
currentContextIds: qb.currentContextIds,
|
|
17
|
+
paginationNodeId: qb.paginationNodeId,
|
|
18
|
+
};
|
|
19
|
+
};
|
|
20
|
+
QueryBuilderSerializer.prototype.deserialize = function (serializedQb) {
|
|
21
|
+
var qb = new QueryBuilder_1.QueryBuilder(serializedQb.tableName);
|
|
22
|
+
qb.graph = serializedQb.graph;
|
|
23
|
+
qb.idCounter = serializedQb.idCounter;
|
|
24
|
+
qb.rootId = serializedQb.rootId;
|
|
25
|
+
qb.currentContextIds = serializedQb.currentContextIds;
|
|
26
|
+
qb.paginationNodeId = serializedQb.paginationNodeId;
|
|
27
|
+
return qb;
|
|
28
|
+
};
|
|
29
|
+
return QueryBuilderSerializer;
|
|
30
|
+
}());
|
|
31
|
+
exports.QueryBuilderSerializer = QueryBuilderSerializer;
|
|
32
|
+
//# sourceMappingURL=QueryBuilderSerializer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"QueryBuilderSerializer.js","sourceRoot":"","sources":["../../../src/serializers/QueryBuilderSerializer.ts"],"names":[],"mappings":";;;AAEA,gDAA+C;AAWlC,QAAA,wBAAwB,GAAG,sCAAsC,CAAC;AAE/E;IAAA;QACE,OAAE,GAAG,gCAAwB,CAAC;IAsBhC,CAAC;IApBC,0CAAS,GAAT,UAAU,EAAqB;QAC7B,OAAO;YACL,SAAS,EAAE,EAAE,CAAC,SAAS;YACvB,KAAK,EAAE,EAAE,CAAC,KAAK;YACf,SAAS,EAAE,EAAE,CAAC,SAAS;YACvB,MAAM,EAAE,EAAE,CAAC,MAAM;YACjB,iBAAiB,EAAE,EAAE,CAAC,iBAAiB;YACvC,gBAAgB,EAAE,EAAE,CAAC,gBAAgB;SACtC,CAAC;IACJ,CAAC;IAED,4CAAW,GAAX,UAAY,YAAoC;QAC9C,IAAM,EAAE,GAAG,IAAI,2BAAY,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QACpD,EAAE,CAAC,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC;QAC9B,EAAE,CAAC,SAAS,GAAG,YAAY,CAAC,SAAS,CAAC;QACtC,EAAE,CAAC,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC;QAChC,EAAE,CAAC,iBAAiB,GAAG,YAAY,CAAC,iBAAiB,CAAC;QACtD,EAAE,CAAC,gBAAgB,GAAG,YAAY,CAAC,gBAAgB,CAAC;QACpD,OAAO,EAAE,CAAC;IACZ,CAAC;IACH,6BAAC;AAAD,CAAC,AAvBD,IAuBC;AAvBY,wDAAsB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import '../generated/index';
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
require("../generated/index");
|
|
4
|
+
var serializer_1 = require("@proteinjs/serializer");
|
|
5
|
+
var QueryBuilder_1 = require("../src/QueryBuilder");
|
|
6
|
+
describe('QueryBuilder - Serialization', function () {
|
|
7
|
+
var dbName = 'test';
|
|
8
|
+
var tableName = 'Employee';
|
|
9
|
+
test('should serialize/deserialize a triple-nested subquery: query -> subquery -> sub-subquery', function () {
|
|
10
|
+
var _a, _b;
|
|
11
|
+
// Innermost sub-subquery: high-paid Support employees
|
|
12
|
+
var subSubQb = new QueryBuilder_1.QueryBuilder(tableName).and([
|
|
13
|
+
{ field: 'department', operator: '=', value: 'Support' },
|
|
14
|
+
{ field: 'salary', operator: '>', value: 70000 },
|
|
15
|
+
]);
|
|
16
|
+
// Middle subquery: employees with ≥2 years AND whose id is in subSubQb
|
|
17
|
+
var subQb = new QueryBuilder_1.QueryBuilder(tableName).and([
|
|
18
|
+
{ field: 'yearsOfExperience', operator: '>=', value: 2 },
|
|
19
|
+
{ field: 'id', operator: 'IN', value: subSubQb },
|
|
20
|
+
]);
|
|
21
|
+
// Outer (main) query: Engineering employees whose id is in subQb
|
|
22
|
+
var qb = new QueryBuilder_1.QueryBuilder(tableName).and([
|
|
23
|
+
{ field: 'department', operator: '=', value: 'Engineering' },
|
|
24
|
+
{ field: 'id', operator: 'IN', value: subQb },
|
|
25
|
+
]);
|
|
26
|
+
var qbClone = serializer_1.Serializer.deserialize(serializer_1.Serializer.serialize(qb));
|
|
27
|
+
// Standard SQL
|
|
28
|
+
var result = qbClone.toSql({ dbName: dbName });
|
|
29
|
+
var expectedSql = "SELECT * FROM `test`.`Employee` WHERE (`department` = 'Engineering' AND `id` IN (SELECT * FROM `test`.`Employee` WHERE (`yearsOfExperience` >= 2 AND `id` IN (SELECT * FROM `test`.`Employee` WHERE (`department` = 'Support' AND `salary` > 70000)))));";
|
|
30
|
+
expect(result.sql).toBe(expectedSql);
|
|
31
|
+
// Positional params
|
|
32
|
+
result = qbClone.toSql({ dbName: dbName, useParams: true });
|
|
33
|
+
expect(result.sql).toContain('SELECT * FROM `test`.`Employee` WHERE (`department` = ? AND `id` IN (SELECT * FROM `test`.`Employee` WHERE (`yearsOfExperience` >= ? AND `id` IN (SELECT * FROM `test`.`Employee` WHERE (`department` = ? AND `salary` > ?)))));');
|
|
34
|
+
expect(result.params).toEqual(['Engineering', 2, 'Support', 70000]);
|
|
35
|
+
// Named params with types — align to your nested prefixing scheme (sq0 for middle, sq0_sq0 for inner)
|
|
36
|
+
result = qbClone.toSql({ dbName: dbName, useParams: true, useNamedParams: true });
|
|
37
|
+
expect(result.sql).toContain('SELECT * FROM `test`.`Employee` WHERE (`department` = @param0 AND `id` IN (SELECT * FROM `test`.`Employee` WHERE (`yearsOfExperience` >= @sq0_param0 AND `id` IN (SELECT * FROM `test`.`Employee` WHERE (`department` = @sq0_sq0_param0 AND `salary` > @sq0_sq0_param1)))));');
|
|
38
|
+
expect((_a = result.namedParams) === null || _a === void 0 ? void 0 : _a.params).toEqual({
|
|
39
|
+
param0: 'Engineering',
|
|
40
|
+
sq0_param0: 2,
|
|
41
|
+
sq0_sq0_param0: 'Support',
|
|
42
|
+
sq0_sq0_param1: 70000, // inner (salary)
|
|
43
|
+
});
|
|
44
|
+
expect((_b = result.namedParams) === null || _b === void 0 ? void 0 : _b.types).toEqual({
|
|
45
|
+
param0: 'string',
|
|
46
|
+
sq0_param0: 'number',
|
|
47
|
+
sq0_sq0_param0: 'string',
|
|
48
|
+
sq0_sq0_param1: 'number',
|
|
49
|
+
});
|
|
50
|
+
});
|
|
51
|
+
});
|
|
52
|
+
//# sourceMappingURL=Serialization.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Serialization.test.js","sourceRoot":"","sources":["../../test/Serialization.test.ts"],"names":[],"mappings":";;AAAA,8BAA4B;AAC5B,oDAAmD;AACnD,oDAAmD;AAEnD,QAAQ,CAAC,8BAA8B,EAAE;IAQvC,IAAM,MAAM,GAAG,MAAM,CAAC;IACtB,IAAM,SAAS,GAAG,UAAU,CAAC;IAE7B,IAAI,CAAC,0FAA0F,EAAE;;QAC/F,sDAAsD;QACtD,IAAM,QAAQ,GAAG,IAAI,2BAAY,CAAW,SAAS,CAAC,CAAC,GAAG,CAAC;YACzD,EAAE,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE;YACxD,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE;SACjD,CAAC,CAAC;QAEH,uEAAuE;QACvE,IAAM,KAAK,GAAG,IAAI,2BAAY,CAAW,SAAS,CAAC,CAAC,GAAG,CAAC;YACtD,EAAE,KAAK,EAAE,mBAAmB,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE;YACxD,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE;SACjD,CAAC,CAAC;QAEH,iEAAiE;QACjE,IAAM,EAAE,GAAG,IAAI,2BAAY,CAAW,SAAS,CAAC,CAAC,GAAG,CAAC;YACnD,EAAE,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,aAAa,EAAE;YAC5D,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE;SAC9C,CAAC,CAAC;QAEH,IAAM,OAAO,GAAG,uBAAU,CAAC,WAAW,CAAC,uBAAU,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;QAEjE,eAAe;QACf,IAAI,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,EAAE,MAAM,QAAA,EAAE,CAAC,CAAC;QACvC,IAAM,WAAW,GACf,0PAA0P,CAAC;QAC7P,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAErC,oBAAoB;QACpB,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,EAAE,MAAM,QAAA,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACpD,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAC1B,kOAAkO,CACnO,CAAC;QACF,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,aAAa,EAAE,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;QAEpE,sGAAsG;QACtG,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,EAAE,MAAM,QAAA,EAAE,SAAS,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1E,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAC1B,8QAA8Q,CAC/Q,CAAC;QACF,MAAM,CAAC,MAAA,MAAM,CAAC,WAAW,0CAAE,MAAM,CAAC,CAAC,OAAO,CAAC;YACzC,MAAM,EAAE,aAAa;YACrB,UAAU,EAAE,CAAC;YACb,cAAc,EAAE,SAAS;YACzB,cAAc,EAAE,KAAK,EAAE,iBAAiB;SACzC,CAAC,CAAC;QACH,MAAM,CAAC,MAAA,MAAM,CAAC,WAAW,0CAAE,KAAK,CAAC,CAAC,OAAO,CAAC;YACxC,MAAM,EAAE,QAAQ;YAChB,UAAU,EAAE,QAAQ;YACpB,cAAc,EAAE,QAAQ;YACxB,cAAc,EAAE,QAAQ;SACzB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -93,6 +93,47 @@ describe('QueryBuilder - Sub Query Support', function () {
|
|
|
93
93
|
sq0_param4: 'number',
|
|
94
94
|
});
|
|
95
95
|
});
|
|
96
|
+
test('Triple-nested subquery: query -> subquery -> sub-subquery', function () {
|
|
97
|
+
var _a, _b;
|
|
98
|
+
// Innermost sub-subquery: high-paid Support employees
|
|
99
|
+
var subSubQb = new QueryBuilder_1.QueryBuilder(tableName).and([
|
|
100
|
+
{ field: 'department', operator: '=', value: 'Support' },
|
|
101
|
+
{ field: 'salary', operator: '>', value: 70000 },
|
|
102
|
+
]);
|
|
103
|
+
// Middle subquery: employees with ≥2 years AND whose id is in subSubQb
|
|
104
|
+
var subQb = new QueryBuilder_1.QueryBuilder(tableName).and([
|
|
105
|
+
{ field: 'yearsOfExperience', operator: '>=', value: 2 },
|
|
106
|
+
{ field: 'id', operator: 'IN', value: subSubQb },
|
|
107
|
+
]);
|
|
108
|
+
// Outer (main) query: Engineering employees whose id is in subQb
|
|
109
|
+
var qb = new QueryBuilder_1.QueryBuilder(tableName).and([
|
|
110
|
+
{ field: 'department', operator: '=', value: 'Engineering' },
|
|
111
|
+
{ field: 'id', operator: 'IN', value: subQb },
|
|
112
|
+
]);
|
|
113
|
+
// Standard SQL
|
|
114
|
+
var result = qb.toSql({ dbName: dbName });
|
|
115
|
+
var expectedSql = "SELECT * FROM `test`.`Employee` WHERE (`department` = 'Engineering' AND `id` IN (SELECT * FROM `test`.`Employee` WHERE (`yearsOfExperience` >= 2 AND `id` IN (SELECT * FROM `test`.`Employee` WHERE (`department` = 'Support' AND `salary` > 70000)))));";
|
|
116
|
+
expect(result.sql).toBe(expectedSql);
|
|
117
|
+
// Positional params
|
|
118
|
+
result = qb.toSql({ dbName: dbName, useParams: true });
|
|
119
|
+
expect(result.sql).toContain('SELECT * FROM `test`.`Employee` WHERE (`department` = ? AND `id` IN (SELECT * FROM `test`.`Employee` WHERE (`yearsOfExperience` >= ? AND `id` IN (SELECT * FROM `test`.`Employee` WHERE (`department` = ? AND `salary` > ?)))));');
|
|
120
|
+
expect(result.params).toEqual(['Engineering', 2, 'Support', 70000]);
|
|
121
|
+
// Named params with types — align to your nested prefixing scheme (sq0 for middle, sq0_sq0 for inner)
|
|
122
|
+
result = qb.toSql({ dbName: dbName, useParams: true, useNamedParams: true });
|
|
123
|
+
expect(result.sql).toContain('SELECT * FROM `test`.`Employee` WHERE (`department` = @param0 AND `id` IN (SELECT * FROM `test`.`Employee` WHERE (`yearsOfExperience` >= @sq0_param0 AND `id` IN (SELECT * FROM `test`.`Employee` WHERE (`department` = @sq0_sq0_param0 AND `salary` > @sq0_sq0_param1)))));');
|
|
124
|
+
expect((_a = result.namedParams) === null || _a === void 0 ? void 0 : _a.params).toEqual({
|
|
125
|
+
param0: 'Engineering',
|
|
126
|
+
sq0_param0: 2,
|
|
127
|
+
sq0_sq0_param0: 'Support',
|
|
128
|
+
sq0_sq0_param1: 70000, // inner (salary)
|
|
129
|
+
});
|
|
130
|
+
expect((_b = result.namedParams) === null || _b === void 0 ? void 0 : _b.types).toEqual({
|
|
131
|
+
param0: 'string',
|
|
132
|
+
sq0_param0: 'number',
|
|
133
|
+
sq0_sq0_param0: 'string',
|
|
134
|
+
sq0_sq0_param1: 'number',
|
|
135
|
+
});
|
|
136
|
+
});
|
|
96
137
|
test('Throws error when using same QueryBuilder instance for subquery', function () {
|
|
97
138
|
var qb = new QueryBuilder_1.QueryBuilder(tableName);
|
|
98
139
|
var invalidCondition = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SubQueries.test.js","sourceRoot":"","sources":["../../test/SubQueries.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SubQueries.test.js","sourceRoot":"","sources":["../../test/SubQueries.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/** Load Dependency Source Graphs */
|
|
2
|
+
|
|
3
|
+
import '@proteinjs/logger';
|
|
4
|
+
import '@proteinjs/reflection';
|
|
5
|
+
import '@proteinjs/serializer';
|
|
6
|
+
import '@proteinjs/util';
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
/** Generate Source Graph */
|
|
10
|
+
|
|
11
|
+
const sourceGraph = "{\"options\":{\"directed\":true,\"multigraph\":false,\"compound\":false},\"nodes\":[{\"v\":\"/'AND' | 'OR'\"},{\"v\":\"/| '='\\n | '\"},{\"v\":\"/'COUNT' | 'SUM' | 'AVG' | 'MIN' | 'MAX'\"},{\"v\":\"@proteinjs/db-query/QueryBuilderSerializer\",\"value\":{\"packageName\":\"@proteinjs/db-query\",\"name\":\"QueryBuilderSerializer\",\"filePath\":\"/Users/brentbahry/repos/n3xa/packages/proteinjs/packages/db/packages/query/src/serializers/QueryBuilderSerializer.ts\",\"qualifiedName\":\"@proteinjs/db-query/QueryBuilderSerializer\",\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\",\"properties\":[{\"name\":\"id\",\"type\":null,\"isOptional\":false,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\"}],\"methods\":[{\"name\":\"serialize\",\"returnType\":{\"packageName\":\"@proteinjs/db-query\",\"name\":\"SerializedQueryBuilder\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/db-query/SerializedQueryBuilder\",\"typeParameters\":null,\"directParents\":null},\"isAsync\":false,\"isOptional\":false,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\",\"parameters\":[{\"name\":\"qb\",\"type\":{\"packageName\":\"\",\"name\":\"QueryBuilder<any>\",\"filePath\":null,\"qualifiedName\":\"/QueryBuilder<any>\",\"typeParameters\":null,\"directParents\":null}}]},{\"name\":\"deserialize\",\"returnType\":{\"packageName\":\"\",\"name\":\"QueryBuilder<any>\",\"filePath\":null,\"qualifiedName\":\"/QueryBuilder<any>\",\"typeParameters\":null,\"directParents\":null},\"isAsync\":false,\"isOptional\":false,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\",\"parameters\":[{\"name\":\"serializedQb\",\"type\":{\"packageName\":\"@proteinjs/db-query\",\"name\":\"SerializedQueryBuilder\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/db-query/SerializedQueryBuilder\",\"typeParameters\":null,\"directParents\":null}}]}],\"typeParameters\":[],\"directParentInterfaces\":[{\"packageName\":\"@proteinjs/serializer\",\"name\":\"CustomSerializer\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/serializer/CustomSerializer\",\"properties\":[],\"methods\":[],\"typeParameters\":[],\"directParents\":[]}],\"directParentClasses\":[],\"sourceType\":2}},{\"v\":\"@proteinjs/serializer/CustomSerializer\"}],\"edges\":[{\"v\":\"@proteinjs/db-query/QueryBuilderSerializer\",\"w\":\"@proteinjs/serializer/CustomSerializer\",\"value\":\"implements interface\"}]}";
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
/** Generate Source Links */
|
|
15
|
+
|
|
16
|
+
import { QueryBuilderSerializer } from '../src/serializers/QueryBuilderSerializer';
|
|
17
|
+
|
|
18
|
+
const sourceLinks = {
|
|
19
|
+
'@proteinjs/db-query/QueryBuilderSerializer': QueryBuilderSerializer,
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
/** Load Source Graph and Links */
|
|
24
|
+
|
|
25
|
+
import { SourceRepository } from '@proteinjs/reflection';
|
|
26
|
+
SourceRepository.merge(sourceGraph, sourceLinks);
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
export * from '../index';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@proteinjs/db-query",
|
|
3
|
-
"version": "1.3.
|
|
3
|
+
"version": "1.3.1",
|
|
4
4
|
"description": "A sql query builder",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
@@ -17,16 +17,18 @@
|
|
|
17
17
|
"license": "ISC",
|
|
18
18
|
"scripts": {
|
|
19
19
|
"clean": "rm -rf dist/ node_modules/ generated/",
|
|
20
|
-
"
|
|
21
|
-
"
|
|
20
|
+
"build": "reflection-build && tsc",
|
|
21
|
+
"watch": "reflection-watch",
|
|
22
22
|
"test": "jest"
|
|
23
23
|
},
|
|
24
24
|
"dependencies": {
|
|
25
25
|
"@proteinjs/logger": "1.0.10",
|
|
26
|
-
"@proteinjs/
|
|
26
|
+
"@proteinjs/reflection": "1.1.10",
|
|
27
|
+
"@proteinjs/serializer": "1.1.0",
|
|
27
28
|
"@proteinjs/util": "1.5.0"
|
|
28
29
|
},
|
|
29
30
|
"devDependencies": {
|
|
31
|
+
"@proteinjs/reflection-build": "1.2.0",
|
|
30
32
|
"@types/jest": "29.5.5",
|
|
31
33
|
"@types/node": "14.0.27",
|
|
32
34
|
"@typescript-eslint/eslint-plugin": "7.8.0",
|
|
@@ -38,7 +40,6 @@
|
|
|
38
40
|
"ts-jest": "29.1.1",
|
|
39
41
|
"typescript": "5.2.2"
|
|
40
42
|
},
|
|
41
|
-
"main": "./dist/index.js",
|
|
42
|
-
"types": "./dist/index.d.ts"
|
|
43
|
-
"gitHead": "fd8bc8a83b75ca63e7ee976a783947e972b8408e"
|
|
43
|
+
"main": "./dist/generated/index.js",
|
|
44
|
+
"types": "./dist/generated/index.d.ts"
|
|
44
45
|
}
|
package/src/QueryBuilder.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Logger } from '@proteinjs/logger';
|
|
2
|
-
import { Graph, isInstanceOf
|
|
2
|
+
import { Graph, isInstanceOf } from '@proteinjs/util';
|
|
3
|
+
import { Serializer } from '@proteinjs/serializer';
|
|
3
4
|
import { Statement, StatementConfig, StatementParamManager } from './StatementFactory';
|
|
4
5
|
|
|
5
6
|
export interface Select<T> {
|
|
@@ -33,7 +34,7 @@ export interface LogicalGroup<T> {
|
|
|
33
34
|
export interface Condition<T> {
|
|
34
35
|
field: keyof T;
|
|
35
36
|
operator: Operator;
|
|
36
|
-
value?: T[keyof T] | T[keyof T][] | QueryBuilder
|
|
37
|
+
value?: T[keyof T] | T[keyof T][] | QueryBuilder | null;
|
|
37
38
|
}
|
|
38
39
|
|
|
39
40
|
interface InternalCondition<T> extends Condition<T> {
|
|
@@ -94,33 +95,7 @@ export class QueryBuilder<T = any> {
|
|
|
94
95
|
* @returns a new QueryBuilder instance
|
|
95
96
|
*/
|
|
96
97
|
static fromQueryBuilder<T = any>(qb: QueryBuilder<T>, tableName: string): QueryBuilder<T> {
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
const clonedGraph: Graph = graphSerializer.deserialize(graphSerializer.serialize(qb.graph));
|
|
100
|
-
|
|
101
|
-
const subQueries: Array<[string, QueryBuilder]> = [];
|
|
102
|
-
(qb.graph.nodes() as string[]).forEach((nodeId: string) => {
|
|
103
|
-
const nodeValue = (qb.graph as any).node(nodeId).value;
|
|
104
|
-
if (nodeValue instanceof QueryBuilder) {
|
|
105
|
-
subQueries.push([nodeId, QueryBuilder.fromQueryBuilder(qb.graph.node(nodeId).value, nodeValue.tableName)]);
|
|
106
|
-
}
|
|
107
|
-
});
|
|
108
|
-
|
|
109
|
-
subQueries.forEach(([nodeId, subQuery]) => {
|
|
110
|
-
const node = clonedGraph.node(nodeId);
|
|
111
|
-
clonedGraph.setNode(nodeId, { ...node, value: subQuery });
|
|
112
|
-
});
|
|
113
|
-
|
|
114
|
-
newQb.graph = clonedGraph;
|
|
115
|
-
|
|
116
|
-
newQb.__serializerId = qb.__serializerId;
|
|
117
|
-
newQb.idCounter = qb.idCounter;
|
|
118
|
-
newQb.rootId = qb.rootId;
|
|
119
|
-
newQb.currentContextIds = [...qb.currentContextIds];
|
|
120
|
-
newQb.paginationNodeId = qb.paginationNodeId;
|
|
121
|
-
newQb.debugLogicalGrouping = qb.debugLogicalGrouping;
|
|
122
|
-
|
|
123
|
-
return newQb;
|
|
98
|
+
return Serializer.deserialize(Serializer.serialize(qb));
|
|
124
99
|
}
|
|
125
100
|
|
|
126
101
|
private generateId(): string {
|
package/src/StatementFactory.ts
CHANGED
|
@@ -197,7 +197,10 @@ export class StatementParamManager {
|
|
|
197
197
|
const prefix = `sq${this.subQueryCounter++}_`;
|
|
198
198
|
let subSql = subQuery.sql.slice(0, -1); // Remove trailing semicolon
|
|
199
199
|
|
|
200
|
-
|
|
200
|
+
// Replace longer keys first to avoid double-replacement
|
|
201
|
+
const keys = Object.keys(subQuery.namedParams.params).sort((a, b) => b.length - a.length);
|
|
202
|
+
|
|
203
|
+
for (const key of keys) {
|
|
201
204
|
const newName = `${prefix}${key}`;
|
|
202
205
|
this.paramNames[newName] = subQuery.namedParams.params[key];
|
|
203
206
|
this.paramTypes[newName] = subQuery.namedParams.types[key];
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { CustomSerializer } from '@proteinjs/serializer';
|
|
2
|
+
import { Graph } from '@proteinjs/util';
|
|
3
|
+
import { QueryBuilder } from '../QueryBuilder';
|
|
4
|
+
|
|
5
|
+
type SerializedQueryBuilder = {
|
|
6
|
+
tableName: string;
|
|
7
|
+
graph: Graph;
|
|
8
|
+
idCounter: number;
|
|
9
|
+
rootId: string;
|
|
10
|
+
currentContextIds: string[];
|
|
11
|
+
paginationNodeId?: string;
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
export const QueryBuilderSerializerId = '@proteinjs/db/QueryBuilderSerializer';
|
|
15
|
+
|
|
16
|
+
export class QueryBuilderSerializer implements CustomSerializer {
|
|
17
|
+
id = QueryBuilderSerializerId;
|
|
18
|
+
|
|
19
|
+
serialize(qb: QueryBuilder<any>): SerializedQueryBuilder {
|
|
20
|
+
return {
|
|
21
|
+
tableName: qb.tableName,
|
|
22
|
+
graph: qb.graph,
|
|
23
|
+
idCounter: qb.idCounter,
|
|
24
|
+
rootId: qb.rootId,
|
|
25
|
+
currentContextIds: qb.currentContextIds,
|
|
26
|
+
paginationNodeId: qb.paginationNodeId,
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
deserialize(serializedQb: SerializedQueryBuilder): QueryBuilder<any> {
|
|
31
|
+
const qb = new QueryBuilder(serializedQb.tableName);
|
|
32
|
+
qb.graph = serializedQb.graph;
|
|
33
|
+
qb.idCounter = serializedQb.idCounter;
|
|
34
|
+
qb.rootId = serializedQb.rootId;
|
|
35
|
+
qb.currentContextIds = serializedQb.currentContextIds;
|
|
36
|
+
qb.paginationNodeId = serializedQb.paginationNodeId;
|
|
37
|
+
return qb;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import '../generated/index';
|
|
2
|
+
import { Serializer } from '@proteinjs/serializer';
|
|
3
|
+
import { QueryBuilder } from '../src/QueryBuilder';
|
|
4
|
+
|
|
5
|
+
describe('QueryBuilder - Serialization', () => {
|
|
6
|
+
interface Employee {
|
|
7
|
+
id: number;
|
|
8
|
+
department: string;
|
|
9
|
+
salary: number;
|
|
10
|
+
yearsOfExperience: number;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
const dbName = 'test';
|
|
14
|
+
const tableName = 'Employee';
|
|
15
|
+
|
|
16
|
+
test('should serialize/deserialize a triple-nested subquery: query -> subquery -> sub-subquery', () => {
|
|
17
|
+
// Innermost sub-subquery: high-paid Support employees
|
|
18
|
+
const subSubQb = new QueryBuilder<Employee>(tableName).and([
|
|
19
|
+
{ field: 'department', operator: '=', value: 'Support' },
|
|
20
|
+
{ field: 'salary', operator: '>', value: 70000 },
|
|
21
|
+
]);
|
|
22
|
+
|
|
23
|
+
// Middle subquery: employees with ≥2 years AND whose id is in subSubQb
|
|
24
|
+
const subQb = new QueryBuilder<Employee>(tableName).and([
|
|
25
|
+
{ field: 'yearsOfExperience', operator: '>=', value: 2 },
|
|
26
|
+
{ field: 'id', operator: 'IN', value: subSubQb },
|
|
27
|
+
]);
|
|
28
|
+
|
|
29
|
+
// Outer (main) query: Engineering employees whose id is in subQb
|
|
30
|
+
const qb = new QueryBuilder<Employee>(tableName).and([
|
|
31
|
+
{ field: 'department', operator: '=', value: 'Engineering' },
|
|
32
|
+
{ field: 'id', operator: 'IN', value: subQb },
|
|
33
|
+
]);
|
|
34
|
+
|
|
35
|
+
const qbClone = Serializer.deserialize(Serializer.serialize(qb));
|
|
36
|
+
|
|
37
|
+
// Standard SQL
|
|
38
|
+
let result = qbClone.toSql({ dbName });
|
|
39
|
+
const expectedSql =
|
|
40
|
+
"SELECT * FROM `test`.`Employee` WHERE (`department` = 'Engineering' AND `id` IN (SELECT * FROM `test`.`Employee` WHERE (`yearsOfExperience` >= 2 AND `id` IN (SELECT * FROM `test`.`Employee` WHERE (`department` = 'Support' AND `salary` > 70000)))));";
|
|
41
|
+
expect(result.sql).toBe(expectedSql);
|
|
42
|
+
|
|
43
|
+
// Positional params
|
|
44
|
+
result = qbClone.toSql({ dbName, useParams: true });
|
|
45
|
+
expect(result.sql).toContain(
|
|
46
|
+
'SELECT * FROM `test`.`Employee` WHERE (`department` = ? AND `id` IN (SELECT * FROM `test`.`Employee` WHERE (`yearsOfExperience` >= ? AND `id` IN (SELECT * FROM `test`.`Employee` WHERE (`department` = ? AND `salary` > ?)))));'
|
|
47
|
+
);
|
|
48
|
+
expect(result.params).toEqual(['Engineering', 2, 'Support', 70000]);
|
|
49
|
+
|
|
50
|
+
// Named params with types — align to your nested prefixing scheme (sq0 for middle, sq0_sq0 for inner)
|
|
51
|
+
result = qbClone.toSql({ dbName, useParams: true, useNamedParams: true });
|
|
52
|
+
expect(result.sql).toContain(
|
|
53
|
+
'SELECT * FROM `test`.`Employee` WHERE (`department` = @param0 AND `id` IN (SELECT * FROM `test`.`Employee` WHERE (`yearsOfExperience` >= @sq0_param0 AND `id` IN (SELECT * FROM `test`.`Employee` WHERE (`department` = @sq0_sq0_param0 AND `salary` > @sq0_sq0_param1)))));'
|
|
54
|
+
);
|
|
55
|
+
expect(result.namedParams?.params).toEqual({
|
|
56
|
+
param0: 'Engineering', // outer
|
|
57
|
+
sq0_param0: 2, // middle (yearsOfExperience)
|
|
58
|
+
sq0_sq0_param0: 'Support', // inner (department)
|
|
59
|
+
sq0_sq0_param1: 70000, // inner (salary)
|
|
60
|
+
});
|
|
61
|
+
expect(result.namedParams?.types).toEqual({
|
|
62
|
+
param0: 'string',
|
|
63
|
+
sq0_param0: 'number',
|
|
64
|
+
sq0_sq0_param0: 'string',
|
|
65
|
+
sq0_sq0_param1: 'number',
|
|
66
|
+
});
|
|
67
|
+
});
|
|
68
|
+
});
|
package/test/SubQueries.test.ts
CHANGED
|
@@ -118,6 +118,57 @@ describe('QueryBuilder - Sub Query Support', () => {
|
|
|
118
118
|
});
|
|
119
119
|
});
|
|
120
120
|
|
|
121
|
+
test('Triple-nested subquery: query -> subquery -> sub-subquery', () => {
|
|
122
|
+
// Innermost sub-subquery: high-paid Support employees
|
|
123
|
+
const subSubQb = new QueryBuilder<Employee>(tableName).and([
|
|
124
|
+
{ field: 'department', operator: '=', value: 'Support' },
|
|
125
|
+
{ field: 'salary', operator: '>', value: 70000 },
|
|
126
|
+
]);
|
|
127
|
+
|
|
128
|
+
// Middle subquery: employees with ≥2 years AND whose id is in subSubQb
|
|
129
|
+
const subQb = new QueryBuilder<Employee>(tableName).and([
|
|
130
|
+
{ field: 'yearsOfExperience', operator: '>=', value: 2 },
|
|
131
|
+
{ field: 'id', operator: 'IN', value: subSubQb },
|
|
132
|
+
]);
|
|
133
|
+
|
|
134
|
+
// Outer (main) query: Engineering employees whose id is in subQb
|
|
135
|
+
const qb = new QueryBuilder<Employee>(tableName).and([
|
|
136
|
+
{ field: 'department', operator: '=', value: 'Engineering' },
|
|
137
|
+
{ field: 'id', operator: 'IN', value: subQb },
|
|
138
|
+
]);
|
|
139
|
+
|
|
140
|
+
// Standard SQL
|
|
141
|
+
let result = qb.toSql({ dbName });
|
|
142
|
+
const expectedSql =
|
|
143
|
+
"SELECT * FROM `test`.`Employee` WHERE (`department` = 'Engineering' AND `id` IN (SELECT * FROM `test`.`Employee` WHERE (`yearsOfExperience` >= 2 AND `id` IN (SELECT * FROM `test`.`Employee` WHERE (`department` = 'Support' AND `salary` > 70000)))));";
|
|
144
|
+
expect(result.sql).toBe(expectedSql);
|
|
145
|
+
|
|
146
|
+
// Positional params
|
|
147
|
+
result = qb.toSql({ dbName, useParams: true });
|
|
148
|
+
expect(result.sql).toContain(
|
|
149
|
+
'SELECT * FROM `test`.`Employee` WHERE (`department` = ? AND `id` IN (SELECT * FROM `test`.`Employee` WHERE (`yearsOfExperience` >= ? AND `id` IN (SELECT * FROM `test`.`Employee` WHERE (`department` = ? AND `salary` > ?)))));'
|
|
150
|
+
);
|
|
151
|
+
expect(result.params).toEqual(['Engineering', 2, 'Support', 70000]);
|
|
152
|
+
|
|
153
|
+
// Named params with types — align to your nested prefixing scheme (sq0 for middle, sq0_sq0 for inner)
|
|
154
|
+
result = qb.toSql({ dbName, useParams: true, useNamedParams: true });
|
|
155
|
+
expect(result.sql).toContain(
|
|
156
|
+
'SELECT * FROM `test`.`Employee` WHERE (`department` = @param0 AND `id` IN (SELECT * FROM `test`.`Employee` WHERE (`yearsOfExperience` >= @sq0_param0 AND `id` IN (SELECT * FROM `test`.`Employee` WHERE (`department` = @sq0_sq0_param0 AND `salary` > @sq0_sq0_param1)))));'
|
|
157
|
+
);
|
|
158
|
+
expect(result.namedParams?.params).toEqual({
|
|
159
|
+
param0: 'Engineering', // outer
|
|
160
|
+
sq0_param0: 2, // middle (yearsOfExperience)
|
|
161
|
+
sq0_sq0_param0: 'Support', // inner (department)
|
|
162
|
+
sq0_sq0_param1: 70000, // inner (salary)
|
|
163
|
+
});
|
|
164
|
+
expect(result.namedParams?.types).toEqual({
|
|
165
|
+
param0: 'string',
|
|
166
|
+
sq0_param0: 'number',
|
|
167
|
+
sq0_sq0_param0: 'string',
|
|
168
|
+
sq0_sq0_param1: 'number',
|
|
169
|
+
});
|
|
170
|
+
});
|
|
171
|
+
|
|
121
172
|
test('Throws error when using same QueryBuilder instance for subquery', () => {
|
|
122
173
|
const qb = new QueryBuilder<Employee>(tableName);
|
|
123
174
|
const invalidCondition: any = {
|
package/LICENSE
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
MIT License
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2023 Brent Bahry
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
-
in the Software without restriction, including without limitation the rights
|
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
-
furnished to do so, subject to the following conditions:
|
|
11
|
-
|
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
|
13
|
-
copies or substantial portions of the Software.
|
|
14
|
-
|
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
-
SOFTWARE.
|