@proteinjs/db-query 1.2.13 → 1.3.0
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/CHANGELOG.md +16 -0
- package/LICENSE +21 -0
- package/dist/src/QueryBuilder.js +14 -2
- package/dist/src/QueryBuilder.js.map +1 -1
- package/dist/src/StatementFactory.d.ts +1 -0
- package/dist/src/StatementFactory.js +14 -7
- package/dist/src/StatementFactory.js.map +1 -1
- package/dist/test/SubQueries.test.js +14 -14
- package/dist/test/SubQueries.test.js.map +1 -1
- package/package.json +3 -2
- package/src/QueryBuilder.ts +16 -2
- package/src/StatementFactory.ts +16 -7
- package/test/SubQueries.test.ts +14 -14
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,22 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# [1.3.0](https://github.com/proteinjs/db/compare/@proteinjs/db-query@1.2.13...@proteinjs/db-query@1.3.0) (2025-08-20)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* broken subquery test ([c1c449b](https://github.com/proteinjs/db/commit/c1c449b14772d81b9f26ba056a9a6560b880e523))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
### Features
|
|
15
|
+
|
|
16
|
+
* Run onBeforeInsert during insert ([c736f62](https://github.com/proteinjs/db/commit/c736f625b7bbee5f02ad364228c7175699e46dff))
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
6
22
|
## [1.2.7](https://github.com/proteinjs/db/compare/@proteinjs/db-query@1.2.6...@proteinjs/db-query@1.2.7) (2024-08-16)
|
|
7
23
|
|
|
8
24
|
|
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
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.
|
package/dist/src/QueryBuilder.js
CHANGED
|
@@ -85,8 +85,20 @@ var QueryBuilder = /** @class */ (function () {
|
|
|
85
85
|
*/
|
|
86
86
|
QueryBuilder.fromQueryBuilder = function (qb, tableName) {
|
|
87
87
|
var newQb = new QueryBuilder(tableName);
|
|
88
|
-
var
|
|
89
|
-
|
|
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;
|
|
90
102
|
newQb.__serializerId = qb.__serializerId;
|
|
91
103
|
newQb.idCounter = qb.idCounter;
|
|
92
104
|
newQb.rootId = qb.rootId;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QueryBuilder.js","sourceRoot":"","sources":["../../src/QueryBuilder.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA,4CAA2C;AAC3C,wCAAuE;AACvE,uDAAuF;AAyDvF;IASE,sBAAmB,SAAiB;QAApC,iBAGC;QAHkB,cAAS,GAAT,SAAS,CAAQ;QAR7B,mBAAc,GAAG,sCAAsC,CAAC;QAExD,cAAS,GAAW,CAAC,CAAC;QACtB,WAAM,GAAW,MAAM,CAAC;QACxB,sBAAiB,GAAa,EAAE,CAAC;QAEhC,yBAAoB,GAAG,KAAK,CAAC;QAiDrC;;;;;;;;WAQG;QACK,wBAAmB,GAAG,UAAC,MAAuB,EAAE,kBAA0B,EAAE,KAAU;YAC5F,IAAM,MAAM,GAAG,IAAI,eAAM,CAAC,EAAE,IAAI,EAAE,kCAAkC,EAAE,CAAC,CAAC;YACxE,IAAI;gBACF,IAAM,UAAU,GAAG,MAAM,CAAC,gBAAgB;oBACxC,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,KAAI,CAAC,SAAS,EAAE,kBAAkB,CAAC;oBAC7D,CAAC,CAAC,kBAAkB,CAAC;gBACvB,OAAO,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAC,MAAM,CAAC,mBAAmB,CAAC,KAAI,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC;aAC3G;YAAC,OAAO,KAAU,EAAE;gBACnB,MAAM,CAAC,KAAK,CAAC;oBACX,OAAO,EAAE,iDAA0C,KAAI,CAAC,SAAS,cAAI,kBAAkB,CAAE;oBACzF,GAAG,EAAE,EAAE,KAAK,OAAA,EAAE;iBACf,CAAC,CAAC;gBACH,OAAO,OAAO,KAAK,CAAC;aACrB;QACH,CAAC,CAAC;QArEA,IAAI,CAAC,KAAK,GAAG,IAAI,YAAK,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;IACpD,CAAC;IAED;;;;;;OAMG;IACI,uBAAU,GAAjB,UAAoC,GAAe,EAAE,SAAiB;QACpE,IAAM,EAAE,GAAG,IAAI,YAAY,CAAI,SAAS,CAAC,CAAC;QAC1C,KAAmB,UAAgB,EAAhB,KAAA,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAhB,cAAgB,EAAhB,IAAgB,EAAE;YAAhC,IAAM,IAAI,SAAA;YACb,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,IAAe,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,IAAe,CAAe,EAAE,CAAC,CAAC;SACpG;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IAED;;;;;;OAMG;IACI,6BAAgB,GAAvB,UAAiC,EAAmB,EAAE,SAAiB;QACrE,IAAM,KAAK,GAAG,IAAI,YAAY,CAAI,SAAS,CAAC,CAAC;QAE7C,IAAM,eAAe,GAAG,sBAAe,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;QAC5D,KAAK,CAAC,KAAK,GAAG,sBAAe,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;QAE3D,KAAK,CAAC,cAAc,GAAG,EAAE,CAAC,cAAc,CAAC;QACzC,KAAK,CAAC,SAAS,GAAG,EAAE,CAAC,SAAS,CAAC;QAC/B,KAAK,CAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;QACzB,KAAK,CAAC,iBAAiB,qBAAO,EAAE,CAAC,iBAAiB,OAAC,CAAC;QACpD,KAAK,CAAC,gBAAgB,GAAG,EAAE,CAAC,gBAAgB,CAAC;QAC7C,KAAK,CAAC,oBAAoB,GAAG,EAAE,CAAC,oBAAoB,CAAC;QAErD,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,iCAAU,GAAlB;QACE,OAAO,eAAQ,IAAI,CAAC,SAAS,EAAE,CAAE,CAAC;IACpC,CAAC;IA2BD,6BAAM,GAAN,UAAO,MAAiB;QACtB,IAAM,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAC7B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,aAAI,IAAI,EAAE,QAAQ,IAAK,MAAM,EAAG,CAAC;QACtD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACpC,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;OAIG;IACH,0BAAG,GAAH,UAAI,QAAiE;QACnE,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC5C,CAAC;IAED;;;;OAIG;IACH,yBAAE,GAAF,UAAG,QAAiE;QAClE,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC3C,CAAC;IAED;;;;;;OAMG;IACH,mCAAY,GAAZ,UACE,QAAyB,EACzB,QAAiE,EACjE,QAAiB;QAHnB,iBAiDC;QA5CC,IAAM,MAAM,GAAG,IAAI,eAAM,CAAC;YACxB,IAAI,EAAE,UAAG,IAAI,CAAC,WAAW,CAAC,IAAI,kBAAe;YAC7C,QAAQ,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM;SACvD,CAAC,CAAC;QACH,IAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAClC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,UAAA,EAAE,CAAC,CAAC;QAC3D,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,wBAAiB,QAAQ,eAAK,OAAO,MAAG,EAAE,CAAC,CAAC;QACpE,IAAI,QAAQ,EAAE;YACZ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YACtC,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,oBAAa,QAAQ,iBAAO,OAAO,CAAE,EAAE,CAAC,CAAC;SAClE;aAAM;YACL,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YACzC,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,oBAAa,IAAI,CAAC,MAAM,iBAAO,OAAO,CAAE,EAAE,CAAC,CAAC;SACrE;QAED,IAAM,QAAQ,GAAa,EAAE,CAAC;QAC9B,8CAA8C;QAC9C,QAAQ,CAAC,OAAO,CAAC,UAAC,OAAO;YACvB,IAAI,IAAA,mBAAY,EAAC,OAAO,EAAE,YAAY,CAAC,EAAE;gBACvC,uEAAuE;gBACvE,IAAI,KAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE;oBACrC,QAAQ,CAAC,OAAO,CAAC,KAAI,CAAC,iBAAiB,CAAC,GAAG,EAAY,CAAC,CAAC;iBAC1D;aACF;iBAAM,IAAI,UAAU,IAAI,OAAO,IAAI,UAAU,IAAI,OAAO,EAAE;gBACzD,2CAA2C;gBAC3C,KAAI,CAAC,YAAY,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;aAChE;iBAAM;gBACL,4BAA4B;gBAC5B,KAAI,CAAC,SAAS,CAAC,OAAuB,EAAE,OAAO,CAAC,CAAC;aAClD;QACH,CAAC,CAAC,CAAC;QAEH,2CAA2C;QAC3C,KAAsB,UAAQ,EAAR,qBAAQ,EAAR,sBAAQ,EAAR,IAAQ,EAAE;YAA3B,IAAM,OAAO,iBAAA;YAChB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YACrC,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,oBAAa,OAAO,iBAAO,OAAO,CAAE,EAAE,CAAC,CAAC;YAChE,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE;gBAC5C,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBAC5C,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,wBAAiB,IAAI,CAAC,MAAM,iBAAO,OAAO,CAAE,EAAE,CAAC,CAAC;aACzE;SACF;QAED,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACrC,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;OAMG;IACH,gCAAS,GAAT,UAAU,SAAuB,EAAE,QAAiB,EAAE,aAA6B;QAA7B,8BAAA,EAAA,oBAA6B;QACjF,IAAI,SAAS,CAAC,KAAK,KAAK,IAAI,EAAE;YAC5B,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;SACtE;QAED,IAAI,iBAAiB,GAAG,SAAS,CAAC;QAClC,IACE,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC;YAC/D,CAAC,CAAC,SAAS,CAAC,QAAQ,KAAK,IAAI,IAAI,SAAS,CAAC,QAAQ,KAAK,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EACtF;YACA,iBAAiB,GAAG,MAAM,CAAC,MAAM,CAAC,iBAAiB,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAyB,CAAC;SAC5G;QAED,IAAI,OAAO,iBAAiB,CAAC,KAAK,KAAK,WAAW,EAAE;YAClD,IAAI,SAAS,CAAC,QAAQ,KAAK,SAAS,IAAI,SAAS,CAAC,QAAQ,KAAK,aAAa,EAAE;gBAC5E,MAAM,IAAI,KAAK,CACb,iIAA0H,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAE,CACtJ,CAAC;aACH;YACD,iBAAiB,CAAC,KAAK,GAAG,IAAI,CAAC;SAChC;QAED,iBAAiB,GAAG,MAAM,CAAC,MAAM,CAAC,iBAAiB,EAAE,EAAE,aAAa,eAAA,EAAE,CAAyB,CAAC;QAEhG,IAAM,MAAM,GAAG,IAAI,eAAM,CAAC;YACxB,IAAI,EAAE,UAAG,IAAI,CAAC,WAAW,CAAC,IAAI,eAAY;YAC1C,QAAQ,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM;SACvD,CAAC,CAAC;QACH,IAAM,WAAW,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QACtC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,wBAAO,iBAAiB,KAAE,IAAI,EAAE,WAAW,IAAG,CAAC;QAC7E,MAAM,CAAC,KAAK,CAAC;YACX,OAAO,EAAE,wBAAwB;YACjC,GAAG,EAAE,EAAE,SAAS,EAAE,iBAAiB,EAAE,WAAW,aAAA,EAAE;SACnD,CAAC,CAAC;QACH,IAAI,QAAQ,EAAE;YACZ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;YAC1C,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,oBAAa,QAAQ,iBAAO,WAAW,CAAE,EAAE,CAAC,CAAC;SACtE;aAAM;YACL,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;YAC7C,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,oBAAa,IAAI,CAAC,MAAM,iBAAO,WAAW,CAAE,EAAE,CAAC,CAAC;YACxE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;SAC1C;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,gCAAS,GAAT,UAAU,SAAuB;QAC/B,IAAM,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAC7B,SAAS,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAE,GAAe,CAAC;QACvE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,wBAAO,SAAS,KAAE,IAAI,EAAE,WAAW,IAAG,CAAC;QAC5D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACpC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,8BAAO,GAAP,UAAQ,MAAmB;QACzB,IAAM,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAC7B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,QAAA,EAAE,CAAC,CAAC;QACrD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACpC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,+BAAQ,GAAR,UAAS,UAAsB;QAC7B,IAAM,oBAAoB,GAAG,OAAO,IAAI,CAAC,gBAAgB,KAAK,WAAW,CAAC;QAC1E,IAAM,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;QAC7E,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;QAC3B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,aAAI,IAAI,EAAE,YAAY,IAAK,UAAU,EAAG,CAAC;QAC9D,IAAI,CAAC,oBAAoB,EAAE;YACzB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;SACrC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,2BAAI,GAAJ,UAAK,YAA+B;QAApC,iBAOC;QANC,YAAY,CAAC,OAAO,CAAC,UAAC,QAAQ;YAC5B,IAAM,EAAE,GAAG,KAAI,CAAC,UAAU,EAAE,CAAC;YAC7B,KAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,UAAA,EAAE,CAAC,CAAC;YACnD,KAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IAED,oCAAa,GAAb,UAAc,MAAuB,EAAE,qBAA6C;QAApF,iBAuFC;QAtFC,IAAM,YAAY,GAAG,qBAAqB,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,IAAI,wCAAqB,CAAC,MAAM,CAAC,CAAC;QAEvG,2EAA2E;QAC3E,IAAM,WAAW,GAAG,UAAC,MAAc;YACjC,IAAM,IAAI,GAAQ,KAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC1C,QAAQ,IAAI,CAAC,IAAI,EAAE;gBACjB,KAAK,WAAW,CAAC,CAAC;oBAChB,IAAM,iBAAiB,GACrB,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,KAAI,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;oBAE3G,IAAM,sBAAsB,GAAG,WAAK,iBAAiB,MAAI,CAAC;oBAC1D,IAAI,kBAAkB,GAAG,sBAAsB,CAAC;oBAChD,IAAI,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC;oBAChC,qEAAqE;oBACrE,IAAI,MAAM,CAAC,gBAAgB,IAAI,MAAM,CAAC,qBAAqB,EAAE;wBAC3D,kBAAkB,GAAG,MAAM,CAAC,qBAAqB,CAAC,KAAI,CAAC,SAAS,EAAE,iBAAiB,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;wBACzG,kBAAkB,GAAG,kBAAkB,CAAC,OAAO,CAAC,iBAAiB,EAAE,sBAAsB,CAAC,CAAC;wBAC3F,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;4BACvB,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;gCAC7B,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAC,IAAS,IAAK,OAAA,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAtD,CAAsD,CAAC,CAAC;6BACxG;iCAAM,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE;gCACzC,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;6BAC3C;yBACF;qBACF;oBAED,IAAI,IAAI,CAAC,KAAK,EAAE;wBACd,OAAO,KAAK,CAAC;qBACd;yBAAM,IAAI,IAAA,mBAAY,EAAC,cAAc,EAAE,YAAY,CAAC,EAAE;wBACrD,IAAM,QAAQ,GAAG,YAAY,CAAC,YAAY,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;wBACvE,OAAO,UAAG,kBAAkB,cAAI,IAAI,CAAC,QAAQ,cAAI,QAAQ,CAAE,CAAC;qBAC7D;yBAAM,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,QAAQ,EAAE;wBAC/D,IAAI,MAAM,CAAC,cAAc,EAAE;4BACzB,IAAM,WAAS,GAAG,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC;gCAC7C,CAAC,CAAC,YAAY,CAAC,YAAY,CACvB,cAAc,EACd,KAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,CAChE;gCACH,CAAC,CAAC,YAAY,CAAC,YAAY,CACvB,cAAc,EACd,KAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,cAAc,CAAC,CAC7D,CAAC;4BACN,OAAO,UAAG,kBAAkB,cAAI,IAAI,CAAC,QAAQ,qBAAW,WAAS,MAAG,CAAC;yBACtE;wBACD,IAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC;4BAC7C,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,UAAC,GAAQ,IAAK,OAAA,YAAY,CAAC,YAAY,CAAC,GAAG,EAAE,OAAO,GAAG,CAAC,EAA1C,CAA0C,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;4BACzF,CAAC,CAAC,YAAY,CAAC,YAAY,CAAC,cAAc,EAAE,OAAO,cAAc,CAAC,CAAC;wBACrE,OAAO,UAAG,kBAAkB,cAAI,IAAI,CAAC,QAAQ,eAAK,SAAS,MAAG,CAAC;qBAChE;yBAAM,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE;wBACtC,iEAAiE;wBACjE,IAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC;4BAC7C,CAAC,CAAC,cAAc;iCACX,GAAG,CAAC,UAAC,GAAQ,IAAK,OAAA,YAAY,CAAC,YAAY,CAAC,GAAG,EAAE,KAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,EAAjF,CAAiF,CAAC;iCACpG,IAAI,CAAC,OAAO,CAAC;4BAClB,CAAC,CAAC,YAAY,CAAC,YAAY,CAAC,cAAc,EAAE,KAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC;wBAC5G,OAAO,UAAG,kBAAkB,cAAI,IAAI,CAAC,QAAQ,cAAI,SAAS,CAAE,CAAC;qBAC9D;yBAAM,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,IAAI,IAAI,CAAC,QAAQ,KAAK,aAAa,EAAE;wBACzE,OAAO,UAAG,kBAAkB,cAAI,IAAI,CAAC,QAAQ,CAAE,CAAC;qBACjD;yBAAM;wBACL,IAAI,cAAc,KAAK,IAAI,EAAE;4BAC3B,OAAO,UAAG,kBAAkB,aAAU,CAAC;yBACxC;wBAED,IAAM,cAAc,GAAG,YAAY,CAAC,YAAY,CAC9C,cAAc,EACd,KAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,cAAc,CAAC,CAC7D,CAAC;wBACF,OAAO,UAAG,kBAAkB,cAAI,IAAI,CAAC,QAAQ,cAAI,cAAc,CAAE,CAAC;qBACnE;iBACF;gBACD,KAAK,SAAS,CAAC,CAAC;oBACd,IAAM,QAAQ,GAAa,KAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;oBAC/D,IAAM,eAAe,GAAa,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,UAAC,IAAI,IAAK,OAAA,IAAI,KAAK,EAAE,EAAX,CAAW,CAAC,CAAC;oBAC1F,IAAM,kBAAkB,GAAG,eAAe,CAAC,IAAI,CAAC,WAAI,IAAI,CAAC,QAAQ,MAAG,CAAC,CAAC;oBACtE,OAAO,kBAAkB,CAAC,CAAC,CAAC,WAAI,kBAAkB,MAAG,CAAC,CAAC,CAAC,EAAE,CAAC;iBAC5D;gBACD;oBACE,OAAO,EAAE,CAAC;aACb;QACH,CAAC,CAAC;QAEF,sCAAsC;QACtC,IAAM,YAAY,GAAa,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACxE,IAAM,UAAU,GAAG,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,UAAC,IAAI,IAAK,OAAA,IAAI,CAAC,MAAM,GAAG,CAAC,EAAf,CAAe,CAAC,CAAC;QACnF,IAAM,WAAW,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,gBAAS,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrF,kBAAS,GAAG,EAAE,WAAW,IAAK,YAAY,CAAC,SAAS,EAAE,EAAG;IAC3D,CAAC;IAED,4BAAK,GAAL,UAAM,MAAuB;QAA7B,iBAyGC;QAxGC,IAAI,MAA+B,CAAC;QACpC,IAAM,UAAU,GAAa,EAAE,CAAC;QAChC,IAAM,QAAQ,GAAa,EAAE,CAAC;QAC9B,IAAI,UAAkC,CAAC;QACvC,IAAM,WAAW,GAAa,EAAE,CAAC;QACjC,IAAM,YAAY,GAAG,IAAI,wCAAqB,CAAC,MAAM,CAAC,CAAC;QAEvD,mEAAmE;QACnE,IAAM,WAAW,GAAG,UAAC,MAAc;YACjC,IAAM,IAAI,GAAQ,KAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC1C,QAAQ,IAAI,CAAC,IAAI,EAAE;gBACjB,KAAK,QAAQ;oBACX,MAAM,GAAG,IAAI,CAAC;oBACd,OAAO,EAAE,CAAC;gBACZ,KAAK,WAAW,CAAC,CAAC;oBAChB,IAAM,oBAAoB,GACxB,IAAI,CAAC,KAAK,KAAK,GAAG;wBAChB,CAAC,CAAC,GAAG;wBACL,CAAC,CAAC,MAAM,CAAC,gBAAgB;4BACvB,CAAC,CAAC,WAAK,MAAM,CAAC,gBAAgB,CAAC,KAAI,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,MAAI;4BAC9D,CAAC,CAAC,WAAK,IAAI,CAAC,KAAK,MAAI,CAAC;oBAC5B,UAAU,CAAC,IAAI,CACb,UAAG,IAAI,CAAC,QAAQ,cAAI,oBAAoB,cAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,cAAO,IAAI,CAAC,UAAU,CAAE,CAAC,CAAC,CAAC,EAAE,CAAE,CAC9F,CAAC;oBACF,OAAO,EAAE,CAAC;iBACX;gBACD,KAAK,UAAU,CAAC,CAAC;oBACf,QAAQ,CAAC,IAAI,OAAb,QAAQ,EACH,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAC,KAAc;wBAChC,OAAA,MAAM,CAAC,gBAAgB;4BACrB,CAAC,CAAC,WAAK,MAAM,CAAC,gBAAgB,CAAC,KAAI,CAAC,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,MAAI;4BACjE,CAAC,CAAC,WAAK,MAAM,CAAC,KAAK,CAAC,MAAI;oBAF1B,CAE0B,CAC3B,EACD;oBACF,OAAO,EAAE,CAAC;iBACX;gBACD,KAAK,YAAY;oBACf,UAAU,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC;oBAClD,OAAO,EAAE,CAAC;gBACZ,KAAK,MAAM,CAAC,CAAC;oBACL,IAAA,KAA4B,IAAI,CAAC,QAAQ,EAAvC,KAAK,WAAA,EAAE,IAAI,UAAA,EAAE,QAAQ,cAAkB,CAAC;oBAChD,IAAM,uBAAqB,GAAG,MAAM,CAAC,gBAAgB;wBACnD,CAAC,CAAC,WAAK,MAAM,CAAC,gBAAgB,CAAC,KAAI,CAAC,SAAS,EAAE,KAAK,CAAC,MAAI;wBACzD,CAAC,CAAC,WAAK,KAAK,MAAI,CAAC;oBACnB,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;wBACnC,+DAA+D;wBAC/D,IAAM,KAAK,GAAG,QAAQ;6BACnB,GAAG,CACF,UAAC,KAAa,EAAE,KAAa;4BAC3B,OAAA,eAAQ,uBAAqB,gBAAM,YAAY,CAAC,YAAY,CAAC,KAAK,EAAE,KAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,mBAAS,KAAK,CAAE;wBAAxI,CAAwI,CAC3I;6BACA,IAAI,CAAC,GAAG,CAAC,CAAC;wBACb,IAAM,WAAW,GAAG,eAAQ,KAAK,mBAAS,QAAQ,CAAC,MAAM,SAAM,CAAC;wBAChE,WAAW,CAAC,IAAI,CAAC,UAAG,WAAW,SAAG,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAE,CAAC,CAAC;qBAC9D;yBAAM;wBACL,mBAAmB;wBACnB,IAAM,UAAU,GAAG,UAAG,uBAAqB,SAAG,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAE,CAAC;wBACxE,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;qBAC9B;oBACD,OAAO,EAAE,CAAC;iBACX;gBACD;oBACE,OAAO,EAAE,CAAC;aACb;QACH,CAAC,CAAC;QAEF,sCAAsC;QACtC,IAAM,YAAY,GAAa,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QAExE,wEAAwE;QAChE,IAAK,WAAW,GAAK,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,YAAY,CAAC,IAA7C,CAA8C;QACtE,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,UAAC,IAAI,IAAK,OAAA,IAAI,CAAC,MAAM,GAAG,CAAC,EAAf,CAAe,CAAC,CAAC;QAChE,wEAAwE;QAExE,IAAI,GAAG,GAAG,SAAS,CAAC;QACpB,IAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,EAAE;YAClB,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,UAAC,KAAK,IAAK,OAAA,WAAK,MAAM,CAAC,KAAK,CAAC,MAAI,EAAtB,CAAsB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACxE;aAAM,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;YAChC,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAC9B;aAAM;YACL,GAAG,IAAI,GAAG,CAAC;SACZ;QACD,GAAG,IAAI,gBAAS,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,WAAK,MAAM,CAAC,MAAM,OAAK,CAAC,CAAC,CAAC,EAAE,cAAK,IAAI,CAAC,SAAS,MAAI,CAAC;QAEpF,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;YAC1B,GAAG,IAAI,WAAI,WAAW,CAAE,CAAC;SAC1B;QAED,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YACvB,GAAG,IAAI,oBAAa,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAE,CAAC;SAC3C;QAED,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;YAC1B,GAAG,IAAI,oBAAa,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAE,CAAC;SAC9C;QAED,IAAI,UAAU,EAAE;YACd,IAAM,KAAK,GAAG,UAAU,CAAC,GAAG,GAAG,UAAU,CAAC,KAAK,CAAC;YAChD,IAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC;YAChC,GAAG,IAAI,iBAAU,KAAK,qBAAW,MAAM,CAAE,CAAC;SAC3C;QAED,GAAG,GAAG,GAAG,CAAC,IAAI,EAAE,GAAG,GAAG,CAAC;QACvB,kBAAS,GAAG,KAAA,IAAK,YAAY,CAAC,SAAS,EAAE,EAAG;IAC9C,CAAC;IACH,mBAAC;AAAD,CAAC,AA9bD,IA8bC;AA9bY,oCAAY"}
|
|
1
|
+
{"version":3,"file":"QueryBuilder.js","sourceRoot":"","sources":["../../src/QueryBuilder.ts"],"names":[],"mappings":"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"}
|
|
@@ -64,6 +64,7 @@ export declare class StatementParamManager {
|
|
|
64
64
|
private paramNames;
|
|
65
65
|
private paramTypes;
|
|
66
66
|
private paramCounter;
|
|
67
|
+
private subQueryCounter;
|
|
67
68
|
constructor(config: StatementConfig);
|
|
68
69
|
/**
|
|
69
70
|
* Process and parameterize values (ie. condition values), including handling subqueries
|
|
@@ -123,6 +123,7 @@ var StatementParamManager = /** @class */ (function () {
|
|
|
123
123
|
this.paramNames = {};
|
|
124
124
|
this.paramTypes = {};
|
|
125
125
|
this.paramCounter = 0;
|
|
126
|
+
this.subQueryCounter = 0;
|
|
126
127
|
}
|
|
127
128
|
/**
|
|
128
129
|
* Process and parameterize values (ie. condition values), including handling subqueries
|
|
@@ -134,21 +135,27 @@ var StatementParamManager = /** @class */ (function () {
|
|
|
134
135
|
var subQuery = value.toSql(this.config);
|
|
135
136
|
if (this.config.useParams) {
|
|
136
137
|
if (this.config.useNamedParams && subQuery.namedParams) {
|
|
137
|
-
//
|
|
138
|
+
// Namespace subquery param names to avoid collisions and update SQL accordingly
|
|
139
|
+
var prefix = "sq".concat(this.subQueryCounter++, "_");
|
|
140
|
+
var subSql = subQuery.sql.slice(0, -1); // Remove trailing semicolon
|
|
138
141
|
for (var _i = 0, _b = Object.keys(subQuery.namedParams.params); _i < _b.length; _i++) {
|
|
139
142
|
var key = _b[_i];
|
|
140
|
-
var
|
|
141
|
-
this.paramNames[
|
|
142
|
-
this.paramTypes[
|
|
143
|
+
var newName = "".concat(prefix).concat(key);
|
|
144
|
+
this.paramNames[newName] = subQuery.namedParams.params[key];
|
|
145
|
+
this.paramTypes[newName] = subQuery.namedParams.types[key];
|
|
146
|
+
// Replace occurrences of @key with @prefix_key in subquery SQL
|
|
147
|
+
var escapedKey = key.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
148
|
+
var regex = new RegExp("@".concat(escapedKey, "(?=\\b)"), 'g');
|
|
149
|
+
subSql = subSql.replace(regex, "@".concat(newName));
|
|
143
150
|
}
|
|
144
|
-
return "(".concat(
|
|
151
|
+
return "(".concat(subSql, ")");
|
|
145
152
|
}
|
|
146
153
|
else if (subQuery.params) {
|
|
147
|
-
// Append parameters from subquery
|
|
154
|
+
// Append positional parameters from subquery
|
|
148
155
|
(_a = this.params).push.apply(_a, subQuery.params);
|
|
149
156
|
}
|
|
150
157
|
}
|
|
151
|
-
return "(".concat(subQuery.sql.slice(0, -1), ")"); // Subquery SQL for non-parameterized config
|
|
158
|
+
return "(".concat(subQuery.sql.slice(0, -1), ")"); // Subquery SQL for non-parameterized config or when not using named params
|
|
152
159
|
}
|
|
153
160
|
else if (this.config.useParams) {
|
|
154
161
|
if (this.config.useNamedParams) {
|
|
@@ -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":";;;;;;;;;;;;;;;;;;;;;;;AAAA,wCAA+C;AAC/C,+CAA8C;AAwD9C;IAAA;IA0GA,CAAC;IAzGC,iCAAM,GAAN,UAAO,SAAiB,EAAE,IAAgB,EAAE,MAAuB;QACjE,IAAM,YAAY,GAAG,IAAI,qBAAqB,CAAC,MAAM,CAAC,CAAC;QACvD,IAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChC,IAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,UAAC,IAAI;YAC5B,OAAA,YAAY,CAAC,YAAY,CACvB,IAAI,CAAC,IAAe,CAAC,EACrB,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAC,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,IAAe,CAAC,CACxG;QAHD,CAGC,CACF,CAAC;QACF,IAAM,GAAG,GAAG,sBAAe,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,WAAK,MAAM,CAAC,MAAM,OAAK,CAAC,CAAC,CAAC,EAAE,cAAK,SAAS,iBAAS,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,wBAAe,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAI,CAAC;QACrJ,kBAAS,GAAG,KAAA,IAAK,YAAY,CAAC,SAAS,EAAE,EAAG;IAC9C,CAAC;IAED,iCAAM,GAAN,UAAO,SAAiB,EAAE,IAAgB,EAAE,YAA6B,EAAE,MAAuB;QAChG,IAAM,YAAY,GAAG,IAAI,qBAAqB,CAAC,MAAM,CAAC,CAAC;QACvD,IAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChC,IAAM,UAAU,GAAG,KAAK;aACrB,GAAG,CACF,UAAC,IAAI;YACH,OAAA,WAAK,IAAI,iBAAQ,YAAY,CAAC,YAAY,CACxC,IAAI,CAAC,IAAe,CAAC,EACrB,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAC,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,IAAe,CAAC,CACxG,CAAE;QAHH,CAGG,CACN;aACA,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,IAAM,WAAW,GAAG,YAAY,CAAC,aAAa,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;QACrE,IAAM,GAAG,GAAG,iBAAU,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,WAAK,MAAM,CAAC,MAAM,OAAK,CAAC,CAAC,CAAC,EAAE,cAAK,SAAS,mBAAU,UAAU,cAAI,WAAW,CAAC,GAAG,MAAG,CAAC;QAC3H,kBAAS,GAAG,KAAA,IAAK,YAAY,CAAC,SAAS,EAAE,EAAG;IAC9C,CAAC;IAED,iCAAM,GAAN,UAAO,SAAiB,EAAE,YAA6B,EAAE,MAAuB;QAC9E,IAAM,YAAY,GAAG,IAAI,qBAAqB,CAAC,MAAM,CAAC,CAAC;QACvD,IAAM,WAAW,GAAG,YAAY,CAAC,aAAa,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;QACrE,IAAM,GAAG,GAAG,sBAAe,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,WAAK,MAAM,CAAC,MAAM,OAAK,CAAC,CAAC,CAAC,EAAE,cAAK,SAAS,eAAM,WAAW,CAAC,GAAG,MAAG,CAAC;QAC9G,kBAAS,GAAG,KAAA,IAAK,YAAY,CAAC,SAAS,EAAE,EAAG;IAC9C,CAAC;IAED,sCAAW,GAAX,UACE,SAAiB,EACjB,OAAiB,EACjB,UAA8B,EAC9B,WAA0B;QAE1B,IAAM,UAAU,GAAG,OAAO;aACvB,GAAG,CAAC,UAAC,MAAM,IAAK,OAAA,WAAK,MAAM,CAAC,IAAI,eAAM,MAAM,CAAC,IAAI,SAAG,MAAM,CAAC,QAAQ,KAAK,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAE,EAAlF,CAAkF,CAAC;aACnG,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,IAAM,aAAa,GAAG,UAAU;YAC9B,CAAC,CAAC,OAAO,UAAU,KAAK,QAAQ;gBAC9B,CAAC,CAAC,wBAAkB,UAAU,OAAK;gBACnC,CAAC,CAAC,uBAAgB,UAAU,CAAC,GAAG,CAAC,UAAC,EAAE,IAAK,OAAA,WAAK,EAAE,MAAI,EAAX,CAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAG;YACrE,CAAC,CAAC,EAAE,CAAC;QACP,IAAM,cAAc,GAAG,WAAW;YAChC,CAAC,CAAC,WAAW;iBACR,GAAG,CACF,UAAC,UAAU;gBACT,OAAA,qBAAc,aAAa,CAAC,iBAAiB,CAAC,SAAS,EAAE,UAAU,CAAC,4BAAmB,UAAU,CAAC,kBAAkB,4BAAoB,UAAU,CAAC,KAAK,gBAAQ,UAAU,CAAC,MAAM,OAAK;YAAtL,CAAsL,CACzL;iBACA,IAAI,CAAC,IAAI,CAAC;YACf,CAAC,CAAC,EAAE,CAAC;QACP,IAAM,GAAG,GAAG,gCACO,SAAS,0BACtB,UAAU,uBACV,cAAc,CAAC,CAAC,CAAC,IAAI,GAAG,cAAc,CAAC,CAAC,CAAC,EAAE,uBAC3C,aAAa,CAAE,CAAC;QACtB,OAAO,EAAE,GAAG,KAAA,EAAE,CAAC;IACjB,CAAC;IAED,qCAAU,GAAV,UAAW,EAMQ;QANnB,iBAqBC;YApBC,SAAS,eAAA,EACT,oBAAiB,EAAjB,YAAY,mBAAG,EAAE,KAAA,EACjB,yBAAsB,EAAtB,iBAAiB,mBAAG,EAAE,KAAA,EACtB,wBAAqB,EAArB,gBAAgB,mBAAG,EAAE,KAAA,EACrB,qBAAkB,EAAlB,aAAa,mBAAG,EAAE,KAAA;QAElB,IAAM,aAAa,GAAG,YAAY,CAAC,GAAG,CACpC,UAAC,MAAM;YACL,OAAA,uBAAiB,SAAS,2BAAmB,MAAM,CAAC,IAAI,eAAM,MAAM,CAAC,IAAI,SAAG,MAAM,CAAC,QAAQ,KAAK,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAE;QAA1H,CAA0H,CAC7H,CAAC;QACF,IAAM,kBAAkB,GAAG,iBAAiB,CAAC,GAAG,CAAC,UAAC,UAAU,IAAK,OAAA,KAAI,CAAC,cAAc,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,GAAG,EAA9C,CAA8C,CAAC,CAAC;QACjH,IAAM,iBAAiB,GAAG,gBAAgB,CAAC,GAAG,CAC5C,UAAC,UAAU;YACT,OAAA,uBAAiB,SAAS,8BAAqB,aAAa,CAAC,iBAAiB,CAAC,SAAS,EAAE,UAAU,CAAC,4BAAmB,UAAU,CAAC,kBAAkB,4BAAoB,UAAU,CAAC,KAAK,gBAAQ,UAAU,CAAC,MAAM,OAAK;QAAvN,CAAuN,CAC1N,CAAC;QACF,IAAM,gBAAgB,GAAG,aAAa,CAAC,GAAG,CACxC,UAAC,MAAM,IAAK,OAAA,uBAAiB,SAAS,8BAAsB,MAAM,CAAC,WAAW,mBAAW,MAAM,CAAC,OAAO,MAAI,EAA/F,CAA+F,CAC5G,CAAC;QACF,IAAM,GAAG,+DAAO,aAAa,SAAK,kBAAkB,SAAK,iBAAiB,SAAK,gBAAgB,OAAC,CAAC;QACjG,OAAO,GAAG,CAAC,GAAG,CAAC,UAAC,OAAO,IAAK,OAAA,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,EAAlB,CAAkB,CAAC,CAAC;IAClD,CAAC;IAED,yCAAc,GAAd,UAAe,SAAiB,EAAE,UAAsB;QACtD,OAAO;YACL,GAAG,EAAE,uBAAiB,SAAS,+BAAsB,aAAa,CAAC,iBAAiB,CAAC,SAAS,EAAE,UAAU,CAAC,CAAE;SAC9G,CAAC;IACJ,CAAC;IAED,sCAAW,GAAX,UAAY,KAAY,EAAE,SAAiB;QACzC,IAAM,GAAG,GAAG,gBAAS,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,oBAAU,aAAa,CAAC,YAAY,CAAC,SAAS,EAAE,KAAK,CAAC,kBAAS,SAAS,gBAAQ,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,OAAK,CAAC;QACtN,OAAO,EAAE,GAAG,KAAA,EAAE,CAAC;IACjB,CAAC;IAED,oCAAS,GAAT,UAAU,KAAY,EAAE,SAAiB;QACvC,IAAM,GAAG,GAAG,qBAAc,aAAa,CAAC,YAAY,CAAC,SAAS,EAAE,KAAK,CAAC,CAAE,CAAC;QACzE,OAAO,EAAE,GAAG,KAAA,EAAE,CAAC;IACjB,CAAC;IACH,uBAAC;AAAD,CAAC,AA1GD,IA0GC;AA1GY,4CAAgB;AA4G7B;IAAA;IAUA,CAAC;IATQ,0BAAY,GAAnB,UAAoB,SAAiB,EAAE,KAAY;QACjD,OAAO,KAAK,CAAC,IAAI;YACf,CAAC,CAAC,KAAK,CAAC,IAAI;YACZ,CAAC,CAAC,UAAG,SAAS,cAAI,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,SAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAE,CAAC;IACpI,CAAC;IAEM,+BAAiB,GAAxB,UAAyB,SAAiB,EAAE,UAAsB;QAChE,OAAO,UAAG,SAAS,cAAI,UAAU,CAAC,kBAAkB,iBAAO,UAAU,CAAC,KAAK,cAAI,UAAU,CAAC,MAAM,aAAU,CAAC;IAC7G,CAAC;IACH,oBAAC;AAAD,CAAC,AAVD,IAUC;AAVY,sCAAa;AAY1B;IAOE,+BAAoB,MAAuB;QAAvB,WAAM,GAAN,MAAM,CAAiB;QANnC,WAAM,GAAU,EAAE,CAAC;QACnB,eAAU,GAAwB,EAAE,CAAC;QACrC,eAAU,GAAwB,EAAE,CAAC;QACrC,iBAAY,GAAG,CAAC,CAAC;QACjB,oBAAe,GAAG,CAAC,CAAC;IAEkB,CAAC;IAE/C;;OAEG;IACH,4CAAY,GAAZ,UAAa,KAAU,EAAE,SAAiB;;QACxC,IAAI,IAAA,mBAAY,EAAC,KAAK,EAAE,2BAAY,CAAC,EAAE;YACrC,gCAAgC;YAChC,IAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC1C,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE;gBACzB,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,IAAI,QAAQ,CAAC,WAAW,EAAE;oBACtD,gFAAgF;oBAChF,IAAM,MAAM,GAAG,YAAK,IAAI,CAAC,eAAe,EAAE,MAAG,CAAC;oBAC9C,IAAI,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,4BAA4B;oBAEpE,KAAkB,UAAwC,EAAxC,KAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,EAAxC,cAAwC,EAAxC,IAAwC,EAAE;wBAAvD,IAAM,GAAG,SAAA;wBACZ,IAAM,OAAO,GAAG,UAAG,MAAM,SAAG,GAAG,CAAE,CAAC;wBAClC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;wBAC5D,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;wBAE3D,+DAA+D;wBAC/D,IAAM,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;wBAC9D,IAAM,KAAK,GAAG,IAAI,MAAM,CAAC,WAAI,UAAU,YAAS,EAAE,GAAG,CAAC,CAAC;wBACvD,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,WAAI,OAAO,CAAE,CAAC,CAAC;qBAC/C;oBACD,OAAO,WAAI,MAAM,MAAG,CAAC;iBACtB;qBAAM,IAAI,QAAQ,CAAC,MAAM,EAAE;oBAC1B,6CAA6C;oBAC7C,CAAA,KAAA,IAAI,CAAC,MAAM,CAAA,CAAC,IAAI,WAAI,QAAQ,CAAC,MAAM,EAAE;iBACtC;aACF;YACD,OAAO,WAAI,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAG,CAAC,CAAC,2EAA2E;SACrH;aAAM,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE;YAChC,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE;gBAC9B,IAAM,SAAS,GAAG,eAAQ,IAAI,CAAC,YAAY,EAAE,CAAE,CAAC;gBAChD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;oBACxB,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC;oBACnC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,CAAC;iBAC5E;qBAAM;oBACL,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC;oBACnC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC;iBACxC;gBACD,OAAO,WAAI,SAAS,CAAE,CAAC;aACxB;iBAAM;gBACL,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACxB,OAAO,GAAG,CAAC;aACZ;SACF;aAAM;YACL,wDAAwD;YACxD,IAAI,KAAK,YAAY,IAAI,EAAE;gBACzB,OAAO,KAAK,CAAC,WAAW,EAAE,CAAC;aAC5B;YACD,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAI,KAAK,MAAG,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;SACjE;IACH,CAAC;IAED,yCAAS,GAAT;QAOE,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE;YACzB,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE;gBAC9B,OAAO,EAAE,WAAW,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC;aAC7E;iBAAM;gBACL,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;aAChC;SACF;QAED,OAAO,EAAE,CAAC;IACZ,CAAC;IACH,4BAAC;AAAD,CAAC,AAhFD,IAgFC;AAhFY,sDAAqB"}
|
|
@@ -26,9 +26,9 @@ describe('QueryBuilder - Sub Query Support', function () {
|
|
|
26
26
|
expect(result.params).toEqual(['Engineering']);
|
|
27
27
|
// SQL output with named parameters and types for subquery
|
|
28
28
|
result = qb.toSql({ dbName: dbName, useParams: true, useNamedParams: true });
|
|
29
|
-
expect(result.sql).toContain('SELECT * FROM `test`.`Employee` WHERE `id` IN (SELECT * FROM `test`.`Employee` WHERE `department` = @
|
|
30
|
-
expect((_a = result.namedParams) === null || _a === void 0 ? void 0 : _a.params).toEqual({
|
|
31
|
-
expect((_b = result.namedParams) === null || _b === void 0 ? void 0 : _b.types).toEqual({
|
|
29
|
+
expect(result.sql).toContain('SELECT * FROM `test`.`Employee` WHERE `id` IN (SELECT * FROM `test`.`Employee` WHERE `department` = @sq0_param0);');
|
|
30
|
+
expect((_a = result.namedParams) === null || _a === void 0 ? void 0 : _a.params).toEqual({ sq0_param0: 'Engineering' });
|
|
31
|
+
expect((_b = result.namedParams) === null || _b === void 0 ? void 0 : _b.types).toEqual({ sq0_param0: 'string' });
|
|
32
32
|
});
|
|
33
33
|
test('Complex query with deeply nested, complex subquery', function () {
|
|
34
34
|
var _a, _b;
|
|
@@ -74,23 +74,23 @@ describe('QueryBuilder - Sub Query Support', function () {
|
|
|
74
74
|
param0: 'Engineering',
|
|
75
75
|
param1: 50000,
|
|
76
76
|
param2: 3,
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
77
|
+
sq0_param0: 'HR',
|
|
78
|
+
sq0_param1: 5,
|
|
79
|
+
sq0_param2: 60000,
|
|
80
|
+
sq0_param3: 'IT',
|
|
81
|
+
sq0_param4: 80000,
|
|
82
82
|
};
|
|
83
|
-
expect(result.sql).toContain('SELECT * FROM `test`.`Employee` WHERE (`department` = @param0 OR (`salary` > @param1 AND (`yearsOfExperience` <= @param2 OR `id` IN (SELECT * FROM `test`.`Employee` WHERE (`department` = @
|
|
83
|
+
expect(result.sql).toContain('SELECT * FROM `test`.`Employee` WHERE (`department` = @param0 OR (`salary` > @param1 AND (`yearsOfExperience` <= @param2 OR `id` IN (SELECT * FROM `test`.`Employee` WHERE (`department` = @sq0_param0 AND `yearsOfExperience` > @sq0_param1 AND `salary` < @sq0_param2) AND (`department` = @sq0_param3 OR `salary` >= @sq0_param4)))));');
|
|
84
84
|
expect((_a = result.namedParams) === null || _a === void 0 ? void 0 : _a.params).toEqual(expectedParams);
|
|
85
85
|
expect((_b = result.namedParams) === null || _b === void 0 ? void 0 : _b.types).toEqual({
|
|
86
86
|
param0: 'string',
|
|
87
87
|
param1: 'number',
|
|
88
88
|
param2: 'number',
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
89
|
+
sq0_param0: 'string',
|
|
90
|
+
sq0_param1: 'number',
|
|
91
|
+
sq0_param2: 'number',
|
|
92
|
+
sq0_param3: 'string',
|
|
93
|
+
sq0_param4: 'number',
|
|
94
94
|
});
|
|
95
95
|
});
|
|
96
96
|
test('Throws error when using same QueryBuilder instance for subquery', function () {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SubQueries.test.js","sourceRoot":"","sources":["../../test/SubQueries.test.ts"],"names":[],"mappings":";;AAAA,oDAAmD;AAEnD,QAAQ,CAAC,kCAAkC,EAAE;IAQ3C,IAAM,MAAM,GAAG,MAAM,CAAC;IACtB,IAAM,SAAS,GAAG,UAAU,CAAC;IAE7B,0BAA0B;IAC1B,IAAI,CAAC,2CAA2C,EAAE;;QAChD,IAAM,KAAK,GAAG,IAAI,2BAAY,CAAW,SAAS,CAAC,CAAC,SAAS,CAAC;YAC5D,KAAK,EAAE,YAAY;YACnB,QAAQ,EAAE,GAAG;YACb,KAAK,EAAE,aAAa;SACrB,CAAC,CAAC;QACH,IAAM,EAAE,GAAG,IAAI,2BAAY,CAAW,SAAS,CAAC,CAAC,SAAS,CAAC;YACzD,KAAK,EAAE,IAAI;YACX,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE,KAAK;SACb,CAAC,CAAC;QAEH,mCAAmC;QACnC,IAAI,MAAM,GAAG,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,QAAA,EAAE,CAAC,CAAC;QAClC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CACrB,qHAAqH,CACtH,CAAC;QAEF,qDAAqD;QACrD,MAAM,GAAG,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,QAAA,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/C,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAC1B,yGAAyG,CAC1G,CAAC;QACF,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC;QAE/C,0DAA0D;QAC1D,MAAM,GAAG,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,QAAA,EAAE,SAAS,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC;QACrE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAC1B
|
|
1
|
+
{"version":3,"file":"SubQueries.test.js","sourceRoot":"","sources":["../../test/SubQueries.test.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@proteinjs/db-query",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.3.0",
|
|
4
4
|
"description": "A sql query builder",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
@@ -39,5 +39,6 @@
|
|
|
39
39
|
"typescript": "5.2.2"
|
|
40
40
|
},
|
|
41
41
|
"main": "./dist/index.js",
|
|
42
|
-
"types": "./dist/index.d.ts"
|
|
42
|
+
"types": "./dist/index.d.ts",
|
|
43
|
+
"gitHead": "fd8bc8a83b75ca63e7ee976a783947e972b8408e"
|
|
43
44
|
}
|
package/src/QueryBuilder.ts
CHANGED
|
@@ -96,8 +96,22 @@ export class QueryBuilder<T = any> {
|
|
|
96
96
|
static fromQueryBuilder<T = any>(qb: QueryBuilder<T>, tableName: string): QueryBuilder<T> {
|
|
97
97
|
const newQb = new QueryBuilder<T>(tableName);
|
|
98
98
|
|
|
99
|
-
const
|
|
100
|
-
|
|
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;
|
|
101
115
|
|
|
102
116
|
newQb.__serializerId = qb.__serializerId;
|
|
103
117
|
newQb.idCounter = qb.idCounter;
|
package/src/StatementFactory.ts
CHANGED
|
@@ -180,6 +180,7 @@ export class StatementParamManager {
|
|
|
180
180
|
private paramNames: Record<string, any> = {};
|
|
181
181
|
private paramTypes: Record<string, any> = {};
|
|
182
182
|
private paramCounter = 0;
|
|
183
|
+
private subQueryCounter = 0;
|
|
183
184
|
|
|
184
185
|
constructor(private config: StatementConfig) {}
|
|
185
186
|
|
|
@@ -192,19 +193,27 @@ export class StatementParamManager {
|
|
|
192
193
|
const subQuery = value.toSql(this.config);
|
|
193
194
|
if (this.config.useParams) {
|
|
194
195
|
if (this.config.useNamedParams && subQuery.namedParams) {
|
|
195
|
-
//
|
|
196
|
+
// Namespace subquery param names to avoid collisions and update SQL accordingly
|
|
197
|
+
const prefix = `sq${this.subQueryCounter++}_`;
|
|
198
|
+
let subSql = subQuery.sql.slice(0, -1); // Remove trailing semicolon
|
|
199
|
+
|
|
196
200
|
for (const key of Object.keys(subQuery.namedParams.params)) {
|
|
197
|
-
const
|
|
198
|
-
this.paramNames[
|
|
199
|
-
this.paramTypes[
|
|
201
|
+
const newName = `${prefix}${key}`;
|
|
202
|
+
this.paramNames[newName] = subQuery.namedParams.params[key];
|
|
203
|
+
this.paramTypes[newName] = subQuery.namedParams.types[key];
|
|
204
|
+
|
|
205
|
+
// Replace occurrences of @key with @prefix_key in subquery SQL
|
|
206
|
+
const escapedKey = key.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
207
|
+
const regex = new RegExp(`@${escapedKey}(?=\\b)`, 'g');
|
|
208
|
+
subSql = subSql.replace(regex, `@${newName}`);
|
|
200
209
|
}
|
|
201
|
-
return `(${
|
|
210
|
+
return `(${subSql})`;
|
|
202
211
|
} else if (subQuery.params) {
|
|
203
|
-
// Append parameters from subquery
|
|
212
|
+
// Append positional parameters from subquery
|
|
204
213
|
this.params.push(...subQuery.params);
|
|
205
214
|
}
|
|
206
215
|
}
|
|
207
|
-
return `(${subQuery.sql.slice(0, -1)})`; // Subquery SQL for non-parameterized config
|
|
216
|
+
return `(${subQuery.sql.slice(0, -1)})`; // Subquery SQL for non-parameterized config or when not using named params
|
|
208
217
|
} else if (this.config.useParams) {
|
|
209
218
|
if (this.config.useNamedParams) {
|
|
210
219
|
const paramName = `param${this.paramCounter++}`;
|
package/test/SubQueries.test.ts
CHANGED
|
@@ -40,10 +40,10 @@ describe('QueryBuilder - Sub Query Support', () => {
|
|
|
40
40
|
// SQL output with named parameters and types for subquery
|
|
41
41
|
result = qb.toSql({ dbName, useParams: true, useNamedParams: true });
|
|
42
42
|
expect(result.sql).toContain(
|
|
43
|
-
'SELECT * FROM `test`.`Employee` WHERE `id` IN (SELECT * FROM `test`.`Employee` WHERE `department` = @
|
|
43
|
+
'SELECT * FROM `test`.`Employee` WHERE `id` IN (SELECT * FROM `test`.`Employee` WHERE `department` = @sq0_param0);'
|
|
44
44
|
);
|
|
45
|
-
expect(result.namedParams?.params).toEqual({
|
|
46
|
-
expect(result.namedParams?.types).toEqual({
|
|
45
|
+
expect(result.namedParams?.params).toEqual({ sq0_param0: 'Engineering' });
|
|
46
|
+
expect(result.namedParams?.types).toEqual({ sq0_param0: 'string' });
|
|
47
47
|
});
|
|
48
48
|
|
|
49
49
|
test('Complex query with deeply nested, complex subquery', () => {
|
|
@@ -96,25 +96,25 @@ describe('QueryBuilder - Sub Query Support', () => {
|
|
|
96
96
|
param0: 'Engineering',
|
|
97
97
|
param1: 50000,
|
|
98
98
|
param2: 3,
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
99
|
+
sq0_param0: 'HR',
|
|
100
|
+
sq0_param1: 5,
|
|
101
|
+
sq0_param2: 60000,
|
|
102
|
+
sq0_param3: 'IT',
|
|
103
|
+
sq0_param4: 80000,
|
|
104
104
|
};
|
|
105
105
|
expect(result.sql).toContain(
|
|
106
|
-
'SELECT * FROM `test`.`Employee` WHERE (`department` = @param0 OR (`salary` > @param1 AND (`yearsOfExperience` <= @param2 OR `id` IN (SELECT * FROM `test`.`Employee` WHERE (`department` = @
|
|
106
|
+
'SELECT * FROM `test`.`Employee` WHERE (`department` = @param0 OR (`salary` > @param1 AND (`yearsOfExperience` <= @param2 OR `id` IN (SELECT * FROM `test`.`Employee` WHERE (`department` = @sq0_param0 AND `yearsOfExperience` > @sq0_param1 AND `salary` < @sq0_param2) AND (`department` = @sq0_param3 OR `salary` >= @sq0_param4)))));'
|
|
107
107
|
);
|
|
108
108
|
expect(result.namedParams?.params).toEqual(expectedParams);
|
|
109
109
|
expect(result.namedParams?.types).toEqual({
|
|
110
110
|
param0: 'string',
|
|
111
111
|
param1: 'number',
|
|
112
112
|
param2: 'number',
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
113
|
+
sq0_param0: 'string',
|
|
114
|
+
sq0_param1: 'number',
|
|
115
|
+
sq0_param2: 'number',
|
|
116
|
+
sq0_param3: 'string',
|
|
117
|
+
sq0_param4: 'number',
|
|
118
118
|
});
|
|
119
119
|
});
|
|
120
120
|
|