@stamhoofd/sql 2.119.0 → 2.120.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/{src/ModelCache.d.ts → ModelCache.d.ts} +1 -1
- package/dist/ModelCache.d.ts.map +1 -0
- package/{src/ModelCache.ts → dist/ModelCache.js} +8 -16
- package/dist/ModelCache.js.map +1 -0
- package/dist/{src/QueryableModel.d.ts → QueryableModel.d.ts} +7 -6
- package/dist/QueryableModel.d.ts.map +1 -0
- package/dist/{src/QueryableModel.js → QueryableModel.js} +9 -13
- package/dist/QueryableModel.js.map +1 -0
- package/dist/{src/SQL.d.ts → SQL.d.ts} +7 -5
- package/dist/SQL.d.ts.map +1 -0
- package/dist/SQL.js +100 -0
- package/dist/SQL.js.map +1 -0
- package/dist/{src/SQLDelete.d.ts → SQLDelete.d.ts} +2 -2
- package/dist/SQLDelete.d.ts.map +1 -0
- package/dist/{src/SQLDelete.js → SQLDelete.js} +8 -12
- package/dist/SQLDelete.js.map +1 -0
- package/dist/SQLExpression.d.ts.map +1 -0
- package/dist/{src/SQLExpression.js → SQLExpression.js} +3 -8
- package/dist/SQLExpression.js.map +1 -0
- package/dist/{src/SQLExpressions.d.ts → SQLExpressions.d.ts} +2 -2
- package/dist/SQLExpressions.d.ts.map +1 -0
- package/dist/{src/SQLExpressions.js → SQLExpressions.js} +78 -115
- package/dist/SQLExpressions.js.map +1 -0
- package/dist/{src/SQLInsert.d.ts → SQLInsert.d.ts} +3 -2
- package/dist/SQLInsert.d.ts.map +1 -0
- package/dist/{src/SQLInsert.js → SQLInsert.js} +17 -21
- package/dist/SQLInsert.js.map +1 -0
- package/dist/{src/SQLJoin.d.ts → SQLJoin.d.ts} +1 -1
- package/dist/SQLJoin.d.ts.map +1 -0
- package/{src/SQLJoin.ts → dist/SQLJoin.js} +15 -18
- package/dist/SQLJoin.js.map +1 -0
- package/dist/{src/SQLJsonExpressions.d.ts → SQLJsonExpressions.d.ts} +2 -2
- package/dist/SQLJsonExpressions.d.ts.map +1 -0
- package/dist/{src/SQLJsonExpressions.js → SQLJsonExpressions.js} +31 -44
- package/dist/SQLJsonExpressions.js.map +1 -0
- package/dist/SQLLogger.d.ts.map +1 -0
- package/dist/{src/SQLLogger.js → SQLLogger.js} +5 -8
- package/dist/SQLLogger.js.map +1 -0
- package/dist/{src/SQLOrderBy.d.ts → SQLOrderBy.d.ts} +1 -1
- package/dist/SQLOrderBy.d.ts.map +1 -0
- package/dist/{src/SQLOrderBy.js → SQLOrderBy.js} +8 -13
- package/dist/SQLOrderBy.js.map +1 -0
- package/dist/{src/SQLSelect.d.ts → SQLSelect.d.ts} +3 -3
- package/dist/SQLSelect.d.ts.map +1 -0
- package/dist/{src/SQLSelect.js → SQLSelect.js} +24 -29
- package/dist/SQLSelect.js.map +1 -0
- package/dist/{src/SQLTranslatedStringHelper.d.ts → SQLTranslatedStringHelper.d.ts} +3 -2
- package/dist/SQLTranslatedStringHelper.d.ts.map +1 -0
- package/dist/SQLTranslatedStringHelper.js +33 -0
- package/dist/SQLTranslatedStringHelper.js.map +1 -0
- package/dist/{src/SQLUpdate.d.ts → SQLUpdate.d.ts} +3 -2
- package/dist/SQLUpdate.d.ts.map +1 -0
- package/{src/SQLUpdate.ts → dist/SQLUpdate.js} +18 -35
- package/dist/SQLUpdate.js.map +1 -0
- package/dist/{src/SQLWhere.d.ts → SQLWhere.d.ts} +3 -3
- package/dist/SQLWhere.d.ts.map +1 -0
- package/dist/{src/SQLWhere.js → SQLWhere.js} +42 -56
- package/dist/SQLWhere.js.map +1 -0
- package/dist/{src/filters → filters}/SQLFilter.d.ts +5 -5
- package/dist/filters/SQLFilter.d.ts.map +1 -0
- package/{src/filters/SQLFilter.ts → dist/filters/SQLFilter.js} +55 -121
- package/dist/filters/SQLFilter.js.map +1 -0
- package/dist/{src/filters → filters}/SQLSorter.d.ts +6 -6
- package/dist/filters/SQLSorter.d.ts.map +1 -0
- package/dist/{src/filters → filters}/SQLSorter.js +4 -7
- package/dist/filters/SQLSorter.js.map +1 -0
- package/dist/filters/compilers/contains.d.ts +4 -0
- package/dist/filters/compilers/contains.d.ts.map +1 -0
- package/{src/filters/compilers/contains.ts → dist/filters/compilers/contains.js} +7 -25
- package/dist/filters/compilers/contains.js.map +1 -0
- package/dist/filters/compilers/equals.d.ts +4 -0
- package/dist/filters/compilers/equals.d.ts.map +1 -0
- package/dist/filters/compilers/equals.js +44 -0
- package/dist/filters/compilers/equals.js.map +1 -0
- package/dist/filters/compilers/greater.d.ts +4 -0
- package/dist/filters/compilers/greater.d.ts.map +1 -0
- package/dist/filters/compilers/greater.js +15 -0
- package/dist/filters/compilers/greater.js.map +1 -0
- package/dist/filters/compilers/in.d.ts +4 -0
- package/dist/filters/compilers/in.d.ts.map +1 -0
- package/{src/filters/compilers/in.ts → dist/filters/compilers/in.js} +7 -21
- package/dist/filters/compilers/in.js.map +1 -0
- package/dist/filters/compilers/index.d.ts.map +1 -0
- package/{src/filters/compilers/index.ts → dist/filters/compilers/index.js} +1 -0
- package/dist/filters/compilers/index.js.map +1 -0
- package/dist/filters/compilers/less.d.ts +4 -0
- package/dist/filters/compilers/less.d.ts.map +1 -0
- package/dist/filters/compilers/less.js +15 -0
- package/dist/filters/compilers/less.js.map +1 -0
- package/dist/filters/helpers/isJSONColumn.d.ts +5 -0
- package/dist/filters/helpers/isJSONColumn.d.ts.map +1 -0
- package/{src/filters/helpers/isJSONColumn.ts → dist/filters/helpers/isJSONColumn.js} +4 -5
- package/dist/filters/helpers/isJSONColumn.js.map +1 -0
- package/dist/{src/filters → filters}/helpers/normalizeCompareValue.d.ts +1 -1
- package/dist/filters/helpers/normalizeCompareValue.d.ts.map +1 -0
- package/{src/filters/helpers/normalizeCompareValue.ts → dist/filters/helpers/normalizeCompareValue.js} +2 -20
- package/dist/filters/helpers/normalizeCompareValue.js.map +1 -0
- package/dist/index.d.ts +14 -14
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +14 -25
- package/dist/index.js.map +1 -1
- package/package.json +6 -6
- package/dist/src/ModelCache.d.ts.map +0 -1
- package/dist/src/ModelCache.js +0 -57
- package/dist/src/ModelCache.js.map +0 -1
- package/dist/src/QueryableModel.d.ts.map +0 -1
- package/dist/src/QueryableModel.js.map +0 -1
- package/dist/src/SQL.d.ts.map +0 -1
- package/dist/src/SQL.js +0 -103
- package/dist/src/SQL.js.map +0 -1
- package/dist/src/SQLDelete.d.ts.map +0 -1
- package/dist/src/SQLDelete.js.map +0 -1
- package/dist/src/SQLExpression.d.ts.map +0 -1
- package/dist/src/SQLExpression.js.map +0 -1
- package/dist/src/SQLExpressions.d.ts.map +0 -1
- package/dist/src/SQLExpressions.js.map +0 -1
- package/dist/src/SQLInsert.d.ts.map +0 -1
- package/dist/src/SQLInsert.js.map +0 -1
- package/dist/src/SQLJoin.d.ts.map +0 -1
- package/dist/src/SQLJoin.js +0 -61
- package/dist/src/SQLJoin.js.map +0 -1
- package/dist/src/SQLJsonExpressions.d.ts.map +0 -1
- package/dist/src/SQLJsonExpressions.js.map +0 -1
- package/dist/src/SQLLogger.d.ts.map +0 -1
- package/dist/src/SQLLogger.js.map +0 -1
- package/dist/src/SQLOrderBy.d.ts.map +0 -1
- package/dist/src/SQLOrderBy.js.map +0 -1
- package/dist/src/SQLSelect.d.ts.map +0 -1
- package/dist/src/SQLSelect.js.map +0 -1
- package/dist/src/SQLTranslatedStringHelper.d.ts.map +0 -1
- package/dist/src/SQLTranslatedStringHelper.js +0 -37
- package/dist/src/SQLTranslatedStringHelper.js.map +0 -1
- package/dist/src/SQLUpdate.d.ts.map +0 -1
- package/dist/src/SQLUpdate.js +0 -60
- package/dist/src/SQLUpdate.js.map +0 -1
- package/dist/src/SQLWhere.d.ts.map +0 -1
- package/dist/src/SQLWhere.js.map +0 -1
- package/dist/src/filters/SQLFilter.d.ts.map +0 -1
- package/dist/src/filters/SQLFilter.js +0 -220
- package/dist/src/filters/SQLFilter.js.map +0 -1
- package/dist/src/filters/SQLSorter.d.ts.map +0 -1
- package/dist/src/filters/SQLSorter.js.map +0 -1
- package/dist/src/filters/compilers/contains.d.ts +0 -4
- package/dist/src/filters/compilers/contains.d.ts.map +0 -1
- package/dist/src/filters/compilers/contains.js +0 -29
- package/dist/src/filters/compilers/contains.js.map +0 -1
- package/dist/src/filters/compilers/equals.d.ts +0 -4
- package/dist/src/filters/compilers/equals.d.ts.map +0 -1
- package/dist/src/filters/compilers/equals.js +0 -47
- package/dist/src/filters/compilers/equals.js.map +0 -1
- package/dist/src/filters/compilers/greater.d.ts +0 -4
- package/dist/src/filters/compilers/greater.d.ts.map +0 -1
- package/dist/src/filters/compilers/greater.js +0 -18
- package/dist/src/filters/compilers/greater.js.map +0 -1
- package/dist/src/filters/compilers/in.d.ts +0 -4
- package/dist/src/filters/compilers/in.d.ts.map +0 -1
- package/dist/src/filters/compilers/in.js +0 -51
- package/dist/src/filters/compilers/in.js.map +0 -1
- package/dist/src/filters/compilers/index.d.ts.map +0 -1
- package/dist/src/filters/compilers/index.js +0 -8
- package/dist/src/filters/compilers/index.js.map +0 -1
- package/dist/src/filters/compilers/less.d.ts +0 -4
- package/dist/src/filters/compilers/less.d.ts.map +0 -1
- package/dist/src/filters/compilers/less.js +0 -18
- package/dist/src/filters/compilers/less.js.map +0 -1
- package/dist/src/filters/helpers/isJSONColumn.d.ts +0 -4
- package/dist/src/filters/helpers/isJSONColumn.d.ts.map +0 -1
- package/dist/src/filters/helpers/isJSONColumn.js +0 -17
- package/dist/src/filters/helpers/isJSONColumn.js.map +0 -1
- package/dist/src/filters/helpers/normalizeCompareValue.d.ts.map +0 -1
- package/dist/src/filters/helpers/normalizeCompareValue.js +0 -87
- package/dist/src/filters/helpers/normalizeCompareValue.js.map +0 -1
- package/dist/tests/filters/$and.test.d.ts +0 -2
- package/dist/tests/filters/$and.test.d.ts.map +0 -1
- package/dist/tests/filters/$and.test.js +0 -216
- package/dist/tests/filters/$and.test.js.map +0 -1
- package/dist/tests/filters/$contains.test.d.ts +0 -2
- package/dist/tests/filters/$contains.test.d.ts.map +0 -1
- package/dist/tests/filters/$contains.test.js +0 -917
- package/dist/tests/filters/$contains.test.js.map +0 -1
- package/dist/tests/filters/$eq.test.d.ts +0 -2
- package/dist/tests/filters/$eq.test.d.ts.map +0 -1
- package/dist/tests/filters/$eq.test.js +0 -1464
- package/dist/tests/filters/$eq.test.js.map +0 -1
- package/dist/tests/filters/$gt.test.d.ts +0 -2
- package/dist/tests/filters/$gt.test.d.ts.map +0 -1
- package/dist/tests/filters/$gt.test.js +0 -641
- package/dist/tests/filters/$gt.test.js.map +0 -1
- package/dist/tests/filters/$gte.test.d.ts +0 -2
- package/dist/tests/filters/$gte.test.d.ts.map +0 -1
- package/dist/tests/filters/$gte.test.js +0 -433
- package/dist/tests/filters/$gte.test.js.map +0 -1
- package/dist/tests/filters/$in.test.d.ts +0 -2
- package/dist/tests/filters/$in.test.d.ts.map +0 -1
- package/dist/tests/filters/$in.test.js +0 -773
- package/dist/tests/filters/$in.test.js.map +0 -1
- package/dist/tests/filters/$lt.test.d.ts +0 -2
- package/dist/tests/filters/$lt.test.d.ts.map +0 -1
- package/dist/tests/filters/$lt.test.js +0 -433
- package/dist/tests/filters/$lt.test.js.map +0 -1
- package/dist/tests/filters/$lte.test.d.ts +0 -2
- package/dist/tests/filters/$lte.test.d.ts.map +0 -1
- package/dist/tests/filters/$lte.test.js +0 -472
- package/dist/tests/filters/$lte.test.js.map +0 -1
- package/dist/tests/filters/$neq.test.d.ts +0 -2
- package/dist/tests/filters/$neq.test.d.ts.map +0 -1
- package/dist/tests/filters/$neq.test.js +0 -32
- package/dist/tests/filters/$neq.test.js.map +0 -1
- package/dist/tests/filters/$not.test.d.ts +0 -2
- package/dist/tests/filters/$not.test.d.ts.map +0 -1
- package/dist/tests/filters/$not.test.js +0 -50
- package/dist/tests/filters/$not.test.js.map +0 -1
- package/dist/tests/filters/$or.test.d.ts +0 -2
- package/dist/tests/filters/$or.test.d.ts.map +0 -1
- package/dist/tests/filters/$or.test.js +0 -185
- package/dist/tests/filters/$or.test.js.map +0 -1
- package/dist/tests/filters/SQLTranslatedStringHelper.test.d.ts +0 -2
- package/dist/tests/filters/SQLTranslatedStringHelper.test.d.ts.map +0 -1
- package/dist/tests/filters/SQLTranslatedStringHelper.test.js +0 -491
- package/dist/tests/filters/SQLTranslatedStringHelper.test.js.map +0 -1
- package/dist/tests/filters/dot-syntax.test.d.ts +0 -2
- package/dist/tests/filters/dot-syntax.test.d.ts.map +0 -1
- package/dist/tests/filters/dot-syntax.test.js +0 -210
- package/dist/tests/filters/dot-syntax.test.js.map +0 -1
- package/dist/tests/filters/exists.test.d.ts +0 -2
- package/dist/tests/filters/exists.test.d.ts.map +0 -1
- package/dist/tests/filters/exists.test.js +0 -96
- package/dist/tests/filters/exists.test.js.map +0 -1
- package/dist/tests/filters/joined-relations.test.d.ts +0 -2
- package/dist/tests/filters/joined-relations.test.d.ts.map +0 -1
- package/dist/tests/filters/joined-relations.test.js +0 -167
- package/dist/tests/filters/joined-relations.test.js.map +0 -1
- package/dist/tests/filters/special-cases.test.d.ts +0 -2
- package/dist/tests/filters/special-cases.test.d.ts.map +0 -1
- package/dist/tests/filters/special-cases.test.js +0 -114
- package/dist/tests/filters/special-cases.test.js.map +0 -1
- package/dist/tests/filters/wildcard.test.d.ts +0 -2
- package/dist/tests/filters/wildcard.test.d.ts.map +0 -1
- package/dist/tests/filters/wildcard.test.js +0 -67
- package/dist/tests/filters/wildcard.test.js.map +0 -1
- package/dist/tests/jest.global.setup.d.ts +0 -3
- package/dist/tests/jest.global.setup.d.ts.map +0 -1
- package/dist/tests/jest.global.setup.js +0 -7
- package/dist/tests/jest.global.setup.js.map +0 -1
- package/dist/tests/jest.setup.d.ts +0 -2
- package/dist/tests/jest.setup.d.ts.map +0 -1
- package/dist/tests/jest.setup.js +0 -5
- package/dist/tests/jest.setup.js.map +0 -1
- package/dist/tests/utils/index.d.ts +0 -57
- package/dist/tests/utils/index.d.ts.map +0 -1
- package/dist/tests/utils/index.js +0 -206
- package/dist/tests/utils/index.js.map +0 -1
- package/dist/tsconfig.tsbuildinfo +0 -1
- package/src/QueryableModel.ts +0 -134
- package/src/SQL.ts +0 -128
- package/src/SQLDelete.ts +0 -73
- package/src/SQLExpression.ts +0 -34
- package/src/SQLExpressions.ts +0 -587
- package/src/SQLInsert.ts +0 -113
- package/src/SQLJsonExpressions.ts +0 -283
- package/src/SQLLogger.ts +0 -82
- package/src/SQLOrderBy.ts +0 -69
- package/src/SQLSelect.ts +0 -520
- package/src/SQLTranslatedStringHelper.ts +0 -40
- package/src/SQLWhere.ts +0 -744
- package/src/filters/SQLSorter.ts +0 -60
- package/src/filters/compilers/equals.ts +0 -73
- package/src/filters/compilers/greater.ts +0 -21
- package/src/filters/compilers/less.ts +0 -20
- /package/dist/{src/SQLExpression.d.ts → SQLExpression.d.ts} +0 -0
- /package/dist/{src/SQLLogger.d.ts → SQLLogger.d.ts} +0 -0
- /package/dist/{src/filters → filters}/compilers/index.d.ts +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SQLInsert.js","sourceRoot":"","sources":["../src/SQLInsert.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { SQLExpression, SQLExpressionOptions, SQLNamedExpression, SQLQuery } from './SQLExpression.js';
|
|
1
|
+
import type { SQLExpression, SQLExpressionOptions, SQLNamedExpression, SQLQuery } from './SQLExpression.js';
|
|
2
2
|
export declare enum SQLJoinType {
|
|
3
3
|
Left = "Left",
|
|
4
4
|
Right = "Right",
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SQLJoin.d.ts","sourceRoot":"","sources":["../src/SQLJoin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,QAAQ,EAAC,MAAM,oBAAoB,CAAC;AAK3G,oBAAY,WAAW;IACnB,IAAI,SAAS;IACb,KAAK,UAAU;IACf,KAAK,UAAU;IACf,KAAK,UAAU;CAClB;AAED,cAAM,UAAU;CAAG;;;;;;;;;;;;;AACnB,qBAAa,OAAQ,SAAQ,YAAsB,YAAW,aAAa;IACvE,IAAI,cAAoB;IACxB,KAAK,EAAE,kBAAkB,CAAC;gBAEd,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,kBAAkB;IAMxD,OAAO,CAAC,aAAa;IASrB,MAAM,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,QAAQ;CA4BnD"}
|
|
@@ -1,26 +1,24 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { joinSQLQuery } from './SQLExpression.js';
|
|
2
2
|
import { SQLSelect } from './SQLSelect.js';
|
|
3
3
|
import { Whereable } from './SQLWhere.js';
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
Left =
|
|
7
|
-
Right =
|
|
8
|
-
Inner =
|
|
9
|
-
Outer =
|
|
4
|
+
export var SQLJoinType;
|
|
5
|
+
(function (SQLJoinType) {
|
|
6
|
+
SQLJoinType["Left"] = "Left";
|
|
7
|
+
SQLJoinType["Right"] = "Right";
|
|
8
|
+
SQLJoinType["Inner"] = "Inner";
|
|
9
|
+
SQLJoinType["Outer"] = "Outer";
|
|
10
|
+
})(SQLJoinType || (SQLJoinType = {}));
|
|
11
|
+
class EmptyClass {
|
|
10
12
|
}
|
|
11
|
-
|
|
12
|
-
class EmptyClass {}
|
|
13
|
-
export class SQLJoin extends Whereable(EmptyClass) implements SQLExpression {
|
|
13
|
+
export class SQLJoin extends Whereable(EmptyClass) {
|
|
14
14
|
type = SQLJoinType.Left;
|
|
15
|
-
table
|
|
16
|
-
|
|
17
|
-
constructor(type: SQLJoinType, table: SQLNamedExpression) {
|
|
15
|
+
table;
|
|
16
|
+
constructor(type, table) {
|
|
18
17
|
super();
|
|
19
18
|
this.type = type;
|
|
20
19
|
this.table = table;
|
|
21
20
|
}
|
|
22
|
-
|
|
23
|
-
private getJoinPrefix(): string {
|
|
21
|
+
getJoinPrefix() {
|
|
24
22
|
switch (this.type) {
|
|
25
23
|
case SQLJoinType.Left: return 'LEFT JOIN';
|
|
26
24
|
case SQLJoinType.Right: return 'RIGHT JOIN';
|
|
@@ -28,8 +26,7 @@ export class SQLJoin extends Whereable(EmptyClass) implements SQLExpression {
|
|
|
28
26
|
case SQLJoinType.Outer: return 'OUTER JOIN';
|
|
29
27
|
}
|
|
30
28
|
}
|
|
31
|
-
|
|
32
|
-
getSQL(options?: SQLExpressionOptions): SQLQuery {
|
|
29
|
+
getSQL(options) {
|
|
33
30
|
// add parenthesis if the table is a select
|
|
34
31
|
if (this.table instanceof SQLSelect) {
|
|
35
32
|
return joinSQLQuery([
|
|
@@ -45,7 +42,6 @@ export class SQLJoin extends Whereable(EmptyClass) implements SQLExpression {
|
|
|
45
42
|
}),
|
|
46
43
|
], ' ');
|
|
47
44
|
}
|
|
48
|
-
|
|
49
45
|
return joinSQLQuery([
|
|
50
46
|
this.getJoinPrefix(),
|
|
51
47
|
this.table?.getSQL(options),
|
|
@@ -58,3 +54,4 @@ export class SQLJoin extends Whereable(EmptyClass) implements SQLExpression {
|
|
|
58
54
|
], ' ');
|
|
59
55
|
}
|
|
60
56
|
}
|
|
57
|
+
//# sourceMappingURL=SQLJoin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SQLJoin.js","sourceRoot":"","sources":["../src/SQLJoin.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE1C,MAAM,CAAN,IAAY,WAKX;AALD,WAAY,WAAW;IACnB,4BAAa,CAAA;IACb,8BAAe,CAAA;IACf,8BAAe,CAAA;IACf,8BAAe,CAAA;AACnB,CAAC,EALW,WAAW,KAAX,WAAW,QAKtB;AAED,MAAM,UAAU;CAAG;AACnB,MAAM,OAAO,OAAQ,SAAQ,SAAS,CAAC,UAAU,CAAC;IAC9C,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC;IACxB,KAAK,CAAqB;IAE1B,YAAY,IAAiB,EAAE,KAAyB;QACpD,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACvB,CAAC;IAEO,aAAa;QACjB,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;YAChB,KAAK,WAAW,CAAC,IAAI,CAAC,CAAC,OAAO,WAAW,CAAC;YAC1C,KAAK,WAAW,CAAC,KAAK,CAAC,CAAC,OAAO,YAAY,CAAC;YAC5C,KAAK,WAAW,CAAC,KAAK,CAAC,CAAC,OAAO,MAAM,CAAC;YACtC,KAAK,WAAW,CAAC,KAAK,CAAC,CAAC,OAAO,YAAY,CAAC;QAChD,CAAC;IACL,CAAC;IAED,MAAM,CAAC,OAA8B;QACjC,2CAA2C;QAC3C,IAAI,IAAI,CAAC,KAAK,YAAY,SAAS,EAAE,CAAC;YAClC,OAAO,YAAY,CAAC;gBAChB,IAAI,CAAC,aAAa,EAAE;gBACpB,GAAG;gBACH,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC;gBAC3B,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE;gBAC9B,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;gBAC9B,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC;oBAChB,GAAG,OAAO;oBACV,eAAe,EAAE,OAAO,EAAE,gBAAgB;oBAC1C,gBAAgB,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;iBACzC,CAAC;aACL,EAAE,GAAG,CAAC,CAAC;QACZ,CAAC;QAED,OAAO,YAAY,CAAC;YAChB,IAAI,CAAC,aAAa,EAAE;YACpB,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC;YAC3B,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;YAC9B,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC;gBAChB,GAAG,OAAO;gBACV,eAAe,EAAE,OAAO,EAAE,gBAAgB;gBAC1C,gBAAgB,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;aACzC,CAAC;SACL,EAAE,GAAG,CAAC,CAAC;IACZ,CAAC;CACJ"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { SQLExpression, SQLExpressionOptions, SQLQuery } from './SQLExpression.js';
|
|
2
|
-
import { SQLScalarValue } from './SQLExpressions.js';
|
|
1
|
+
import type { SQLExpression, SQLExpressionOptions, SQLQuery } from './SQLExpression.js';
|
|
2
|
+
import type { SQLScalarValue } from './SQLExpressions.js';
|
|
3
3
|
import { SQLWhere } from './SQLWhere.js';
|
|
4
4
|
export declare function scalarToSQLJSONExpression(s: SQLScalarValue | null): SQLExpression;
|
|
5
5
|
export declare class SQLJsonUnquote implements SQLExpression {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SQLJsonExpressions.d.ts","sourceRoot":"","sources":["../src/SQLJsonExpressions.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,37 +1,32 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
const SQLExpression_js_1 = require("./SQLExpression.js");
|
|
6
|
-
const SQLExpressions_js_1 = require("./SQLExpressions.js");
|
|
7
|
-
const SQLWhere_js_1 = require("./SQLWhere.js");
|
|
8
|
-
function scalarToSQLJSONExpression(s) {
|
|
1
|
+
import { joinSQLQuery } from './SQLExpression.js';
|
|
2
|
+
import { SQLJSONFalse, SQLJSONNull, SQLJSONTrue, SQLSafeValue, SQLScalar } from './SQLExpressions.js';
|
|
3
|
+
import { SQLWhere } from './SQLWhere.js';
|
|
4
|
+
export function scalarToSQLJSONExpression(s) {
|
|
9
5
|
if (s === null) {
|
|
10
|
-
return
|
|
6
|
+
return SQLJSONNull;
|
|
11
7
|
}
|
|
12
8
|
if (s === true) {
|
|
13
|
-
return
|
|
9
|
+
return SQLJSONTrue;
|
|
14
10
|
}
|
|
15
11
|
if (s === false) {
|
|
16
|
-
return
|
|
12
|
+
return SQLJSONFalse;
|
|
17
13
|
}
|
|
18
|
-
return new
|
|
14
|
+
return new SQLScalar(s);
|
|
19
15
|
}
|
|
20
|
-
class SQLJsonUnquote {
|
|
16
|
+
export class SQLJsonUnquote {
|
|
21
17
|
target;
|
|
22
18
|
constructor(target) {
|
|
23
19
|
this.target = target;
|
|
24
20
|
}
|
|
25
21
|
getSQL(options) {
|
|
26
|
-
return
|
|
22
|
+
return joinSQLQuery([
|
|
27
23
|
'JSON_UNQUOTE(',
|
|
28
24
|
this.target.getSQL(options),
|
|
29
25
|
')',
|
|
30
26
|
]);
|
|
31
27
|
}
|
|
32
28
|
}
|
|
33
|
-
|
|
34
|
-
class SQLJsonValue {
|
|
29
|
+
export class SQLJsonValue {
|
|
35
30
|
target;
|
|
36
31
|
path;
|
|
37
32
|
type;
|
|
@@ -44,24 +39,24 @@ class SQLJsonValue {
|
|
|
44
39
|
this.path = target.path;
|
|
45
40
|
return;
|
|
46
41
|
}
|
|
47
|
-
this.path = path ?? new
|
|
42
|
+
this.path = path ?? new SQLSafeValue('$');
|
|
48
43
|
}
|
|
49
44
|
getSQL(options) {
|
|
50
|
-
return
|
|
45
|
+
return joinSQLQuery([
|
|
51
46
|
'JSON_VALUE(',
|
|
52
47
|
this.target.getSQL(options),
|
|
53
48
|
',',
|
|
54
49
|
this.path.getSQL(options),
|
|
55
50
|
(this.type ? ' RETURNING ' + this.type + (this.type === 'CHAR' ? ' CHARACTER SET utf8mb4' : '') : ''),
|
|
56
51
|
' NULL ON ERROR)',
|
|
52
|
+
...(this.type === 'CHAR' ? [' COLLATE utf8mb4_0900_ai_ci'] : []),
|
|
57
53
|
]);
|
|
58
54
|
}
|
|
59
55
|
}
|
|
60
|
-
exports.SQLJsonValue = SQLJsonValue;
|
|
61
56
|
/**
|
|
62
57
|
* Same as target->path, JSON_EXTRACT(target, path)
|
|
63
58
|
*/
|
|
64
|
-
class SQLJsonExtract {
|
|
59
|
+
export class SQLJsonExtract {
|
|
65
60
|
target;
|
|
66
61
|
path;
|
|
67
62
|
constructor(target, path) {
|
|
@@ -69,7 +64,7 @@ class SQLJsonExtract {
|
|
|
69
64
|
this.path = path;
|
|
70
65
|
}
|
|
71
66
|
getSQL(options) {
|
|
72
|
-
return
|
|
67
|
+
return joinSQLQuery([
|
|
73
68
|
'JSON_EXTRACT(',
|
|
74
69
|
this.target.getSQL(options),
|
|
75
70
|
',',
|
|
@@ -86,39 +81,36 @@ class SQLJsonExtract {
|
|
|
86
81
|
return '"' + str.replace(/(["\\])/g, '\\$1') + '"';
|
|
87
82
|
}
|
|
88
83
|
}
|
|
89
|
-
|
|
90
|
-
class SQLJsonType {
|
|
84
|
+
export class SQLJsonType {
|
|
91
85
|
target;
|
|
92
86
|
constructor(target) {
|
|
93
87
|
this.target = target;
|
|
94
88
|
}
|
|
95
89
|
getSQL(options) {
|
|
96
|
-
return
|
|
90
|
+
return joinSQLQuery([
|
|
97
91
|
'JSON_TYPE(',
|
|
98
92
|
this.target.getSQL(options),
|
|
99
93
|
')',
|
|
100
94
|
]);
|
|
101
95
|
}
|
|
102
96
|
}
|
|
103
|
-
exports.SQLJsonType = SQLJsonType;
|
|
104
97
|
/**
|
|
105
98
|
* Same as target->path, JSON_EXTRACT(target, path)
|
|
106
99
|
*/
|
|
107
|
-
class SQLJsonKeys {
|
|
100
|
+
export class SQLJsonKeys {
|
|
108
101
|
target;
|
|
109
102
|
constructor(target) {
|
|
110
103
|
this.target = target;
|
|
111
104
|
}
|
|
112
105
|
getSQL(options) {
|
|
113
|
-
return
|
|
106
|
+
return joinSQLQuery([
|
|
114
107
|
'JSON_KEYS(',
|
|
115
108
|
this.target.getSQL(options),
|
|
116
109
|
')',
|
|
117
110
|
]);
|
|
118
111
|
}
|
|
119
112
|
}
|
|
120
|
-
|
|
121
|
-
class SQLJsonLength {
|
|
113
|
+
export class SQLJsonLength {
|
|
122
114
|
target;
|
|
123
115
|
path;
|
|
124
116
|
constructor(target, path) {
|
|
@@ -126,7 +118,7 @@ class SQLJsonLength {
|
|
|
126
118
|
this.path = path;
|
|
127
119
|
}
|
|
128
120
|
getSQL(options) {
|
|
129
|
-
return
|
|
121
|
+
return joinSQLQuery([
|
|
130
122
|
'JSON_LENGTH(',
|
|
131
123
|
this.target.getSQL(options),
|
|
132
124
|
...(this.path
|
|
@@ -139,11 +131,10 @@ class SQLJsonLength {
|
|
|
139
131
|
]);
|
|
140
132
|
}
|
|
141
133
|
}
|
|
142
|
-
exports.SQLJsonLength = SQLJsonLength;
|
|
143
134
|
/**
|
|
144
135
|
* JSON_SEARCH(json_doc, one_or_all, search_str[, escape_char[, path] ...])
|
|
145
136
|
*/
|
|
146
|
-
class SQLJsonSearch {
|
|
137
|
+
export class SQLJsonSearch {
|
|
147
138
|
target;
|
|
148
139
|
oneOrAll;
|
|
149
140
|
searchStr;
|
|
@@ -155,11 +146,11 @@ class SQLJsonSearch {
|
|
|
155
146
|
this.path = path;
|
|
156
147
|
}
|
|
157
148
|
getSQL(options) {
|
|
158
|
-
return
|
|
149
|
+
return joinSQLQuery([
|
|
159
150
|
'JSON_SEARCH(',
|
|
160
151
|
this.target.getSQL(options),
|
|
161
152
|
',',
|
|
162
|
-
new
|
|
153
|
+
new SQLSafeValue(this.oneOrAll).getSQL(options),
|
|
163
154
|
',',
|
|
164
155
|
this.searchStr.getSQL(options),
|
|
165
156
|
...(this.path
|
|
@@ -172,11 +163,10 @@ class SQLJsonSearch {
|
|
|
172
163
|
]);
|
|
173
164
|
}
|
|
174
165
|
}
|
|
175
|
-
exports.SQLJsonSearch = SQLJsonSearch;
|
|
176
166
|
/**
|
|
177
167
|
* JSON_CONTAINS(target, candidate[, path])
|
|
178
168
|
*/
|
|
179
|
-
class SQLJsonContains extends
|
|
169
|
+
export class SQLJsonContains extends SQLWhere {
|
|
180
170
|
target;
|
|
181
171
|
candidate;
|
|
182
172
|
path;
|
|
@@ -187,7 +177,7 @@ class SQLJsonContains extends SQLWhere_js_1.SQLWhere {
|
|
|
187
177
|
this.path = path;
|
|
188
178
|
}
|
|
189
179
|
getSQL(options) {
|
|
190
|
-
return
|
|
180
|
+
return joinSQLQuery([
|
|
191
181
|
'JSON_CONTAINS(',
|
|
192
182
|
this.target.getSQL(options),
|
|
193
183
|
',',
|
|
@@ -206,11 +196,10 @@ class SQLJsonContains extends SQLWhere_js_1.SQLWhere {
|
|
|
206
196
|
return c;
|
|
207
197
|
}
|
|
208
198
|
}
|
|
209
|
-
exports.SQLJsonContains = SQLJsonContains;
|
|
210
199
|
/**
|
|
211
200
|
* JSON_CONTAINS(json_doc1, json_doc2)
|
|
212
201
|
*/
|
|
213
|
-
class SQLJsonOverlaps extends
|
|
202
|
+
export class SQLJsonOverlaps extends SQLWhere {
|
|
214
203
|
jsonDoc1;
|
|
215
204
|
jsonDoc2;
|
|
216
205
|
constructor(jsonDoc1, jsonDoc2) {
|
|
@@ -219,7 +208,7 @@ class SQLJsonOverlaps extends SQLWhere_js_1.SQLWhere {
|
|
|
219
208
|
this.jsonDoc2 = jsonDoc2;
|
|
220
209
|
}
|
|
221
210
|
getSQL(options) {
|
|
222
|
-
return
|
|
211
|
+
return joinSQLQuery([
|
|
223
212
|
'JSON_OVERLAPS(',
|
|
224
213
|
this.jsonDoc1.getSQL(options),
|
|
225
214
|
',',
|
|
@@ -232,8 +221,7 @@ class SQLJsonOverlaps extends SQLWhere_js_1.SQLWhere {
|
|
|
232
221
|
return c;
|
|
233
222
|
}
|
|
234
223
|
}
|
|
235
|
-
|
|
236
|
-
class SQLLpad {
|
|
224
|
+
export class SQLLpad {
|
|
237
225
|
target;
|
|
238
226
|
length;
|
|
239
227
|
value;
|
|
@@ -243,7 +231,7 @@ class SQLLpad {
|
|
|
243
231
|
this.value = value;
|
|
244
232
|
}
|
|
245
233
|
getSQL(options) {
|
|
246
|
-
return
|
|
234
|
+
return joinSQLQuery([
|
|
247
235
|
'LPAD(',
|
|
248
236
|
this.target.getSQL(options),
|
|
249
237
|
',',
|
|
@@ -254,5 +242,4 @@ class SQLLpad {
|
|
|
254
242
|
]);
|
|
255
243
|
}
|
|
256
244
|
}
|
|
257
|
-
exports.SQLLpad = SQLLpad;
|
|
258
245
|
//# sourceMappingURL=SQLJsonExpressions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SQLJsonExpressions.js","sourceRoot":"","sources":["../src/SQLJsonExpressions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACtG,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,MAAM,UAAU,yBAAyB,CAAC,CAAwB;IAC9D,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;QACb,OAAO,WAAW,CAAC;IACvB,CAAC;IAED,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;QACb,OAAO,WAAW,CAAC;IACvB,CAAC;IAED,IAAI,CAAC,KAAK,KAAK,EAAE,CAAC;QACd,OAAO,YAAY,CAAC;IACxB,CAAC;IAED,OAAO,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC;AAC5B,CAAC;AAED,MAAM,OAAO,cAAc;IACvB,MAAM,CAAgB;IAEtB,YAAY,MAAqB;QAC7B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;IAED,MAAM,CAAC,OAA8B;QACjC,OAAO,YAAY,CAAC;YAChB,eAAe;YACf,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;YAC3B,GAAG;SACN,CAAC,CAAC;IACP,CAAC;CACJ;AAID,MAAM,OAAO,YAAY;IACrB,MAAM,CAAgB;IACtB,IAAI,CAAgB;IACpB,IAAI,CAAoB;IAExB,YAAY,MAAqB,EAAE,IAAuB,EAAE,IAAoB;QAC5E,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QAEjB,IAAI,CAAC,IAAI,IAAI,MAAM,YAAY,cAAc,EAAE,CAAC;YAC5C,kEAAkE;YAClE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;YAC5B,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;YACxB,OAAO;QACX,CAAC;QAED,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,IAAI,YAAY,CAAC,GAAG,CAAC,CAAC;IAC9C,CAAC;IAED,MAAM,CAAC,OAA8B;QACjC,OAAO,YAAY,CAAC;YAChB,aAAa;YACb,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;YAC3B,GAAG;YACH,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YACzB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,GAAG,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACrG,iBAAiB;YACjB,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;SACnE,CAAC,CAAC;IACP,CAAC;CACJ;AAED;;GAEG;AACH,MAAM,OAAO,cAAc;IACvB,MAAM,CAAgB;IACtB,IAAI,CAAgB;IAEpB,YAAY,MAAqB,EAAE,IAAmB;QAClD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC;IAED,MAAM,CAAC,OAA8B;QACjC,OAAO,YAAY,CAAC;YAChB,eAAe;YACf,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;YAC3B,GAAG;YACH,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YACzB,GAAG;SACN,CAAC,CAAC;IACP,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,mBAAmB,CAAC,GAAW;QAClC,OAAO,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,GAAG,GAAG,CAAC;IACvD,CAAC;CACJ;AAED,MAAM,OAAO,WAAW;IACpB,MAAM,CAAgB;IAEtB,YAAY,MAAqB;QAC7B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;IAED,MAAM,CAAC,OAA8B;QACjC,OAAO,YAAY,CAAC;YAChB,YAAY;YACZ,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;YAC3B,GAAG;SACN,CAAC,CAAC;IACP,CAAC;CACJ;AAED;;GAEG;AACH,MAAM,OAAO,WAAW;IACpB,MAAM,CAAgB;IAEtB,YAAY,MAAqB;QAC7B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;IAED,MAAM,CAAC,OAA8B;QACjC,OAAO,YAAY,CAAC;YAChB,YAAY;YACZ,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;YAC3B,GAAG;SACN,CAAC,CAAC;IACP,CAAC;CACJ;AAED,MAAM,OAAO,aAAa;IACtB,MAAM,CAAgB;IACtB,IAAI,CAAiB;IAErB,YAAY,MAAqB,EAAE,IAAoB;QACnD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC;IAED,MAAM,CAAC,OAA8B;QACjC,OAAO,YAAY,CAAC;YAChB,cAAc;YACd,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;YAC3B,GAAG,CAAC,IAAI,CAAC,IAAI;gBACT,CAAC,CAAC;oBACM,GAAG;oBACH,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;iBAC5B;gBACL,CAAC,CAAC,EAAE,CAAC;YACT,GAAG;SACN,CAAC,CAAC;IACP,CAAC;CACJ;AACD;;GAEG;AACH,MAAM,OAAO,aAAa;IACtB,MAAM,CAAgB;IACtB,QAAQ,CAAgB;IACxB,SAAS,CAAgB;IACzB,IAAI,CAAuB;IAE3B,YAAY,MAAqB,EAAE,QAAuB,EAAE,SAAwB,EAAE,OAA6B,IAAI;QACnH,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC;IAED,MAAM,CAAC,OAA8B;QACjC,OAAO,YAAY,CAAC;YAChB,cAAc;YACd,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;YAC3B,GAAG;YACH,IAAI,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;YAC/C,GAAG;YACH,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC;YAC9B,GAAG,CAAC,IAAI,CAAC,IAAI;gBACT,CAAC,CAAC;oBACM,GAAG;oBACH,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;iBAC5B;gBACL,CAAC,CAAC,EAAE,CAAC;YACT,GAAG;SACN,CAAC,CAAC;IACP,CAAC;CACJ;AAED;;GAEG;AACH,MAAM,OAAO,eAAgB,SAAQ,QAAQ;IACzC,MAAM,CAAgB;IACtB,SAAS,CAAgB;IACzB,IAAI,CAAuB;IAE3B,YAAY,MAAqB,EAAE,SAAwB,EAAE,OAA6B,IAAI;QAC1F,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC;IAED,MAAM,CAAC,OAA8B;QACjC,OAAO,YAAY,CAAC;YAChB,gBAAgB;YAChB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;YAC3B,GAAG;YACH,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC;YAC9B,GAAG,CAAC,IAAI,CAAC,IAAI;gBACT,CAAC,CAAC;oBACM,GAAG;oBACH,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;iBAC5B;gBACL,CAAC,CAAC,EAAE,CAAC;YACT,GAAG;SACN,CAAC,CAAC;IACP,CAAC;IAED,KAAK;QACD,MAAM,CAAC,GAAG,CAAC,IAAK,IAAI,CAAC,WAAmB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,CAAS,CAAC;QAC1F,OAAO,CAAC,CAAC;IACb,CAAC;CACJ;AAED;;GAEG;AACH,MAAM,OAAO,eAAgB,SAAQ,QAAQ;IACzC,QAAQ,CAAgB;IACxB,QAAQ,CAAgB;IAExB,YAAY,QAAuB,EAAE,QAAuB;QACxD,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC7B,CAAC;IAED,MAAM,CAAC,OAA8B;QACjC,OAAO,YAAY,CAAC;YAChB,gBAAgB;YAChB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC;YAC7B,GAAG;YACH,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC;YAC7B,GAAG;SACN,CAAC,CAAC;IACP,CAAC;IAED,KAAK;QACD,MAAM,CAAC,GAAG,CAAC,IAAK,IAAI,CAAC,WAAmB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAS,CAAC;QAChF,OAAO,CAAC,CAAC;IACb,CAAC;CACJ;AAED,MAAM,OAAO,OAAO;IAChB,MAAM,CAAgB;IACtB,MAAM,CAAgB;IACtB,KAAK,CAAgB;IAErB,YAAY,MAAqB,EAAE,MAAqB,EAAE,KAAoB;QAC1E,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACvB,CAAC;IAED,MAAM,CAAC,OAA8B;QACjC,OAAO,YAAY,CAAC;YAChB,OAAO;YACP,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;YAC3B,GAAG;YACH,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;YAC3B,GAAG;YACH,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC;YAC1B,GAAG;SACN,CAAC,CAAC;IACP,CAAC;CACJ"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SQLLogger.d.ts","sourceRoot":"","sources":["../src/SQLLogger.ts"],"names":[],"mappings":"AAGA,cAAM,eAAe;IACjB,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAQ;IAC3C,2BAA2B,UAAS;IACpC,aAAa,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,aAAa,EAAE,MAAM,KAAK,IAAI,CAAC,EAAE,CAAM;IAEhF,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE;IAapC,2BAA2B,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,aAAa,EAAE,GAAG,EAAE,aAAa,CAAC,EAAE,MAAM;IAqBpG,GAAG,CAAC,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC;CAqCnF;AAED,eAAO,MAAM,SAAS,iBAAwB,CAAC"}
|
|
@@ -1,8 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.SQLLogger = void 0;
|
|
4
|
-
const simple_database_1 = require("@simonbackx/simple-database");
|
|
5
|
-
const simple_logging_1 = require("@simonbackx/simple-logging");
|
|
1
|
+
import { Database } from '@simonbackx/simple-database';
|
|
2
|
+
import { StyledText } from '@simonbackx/simple-logging';
|
|
6
3
|
class StaticSQLLogger {
|
|
7
4
|
slowQueryThresholdMs = null;
|
|
8
5
|
explainAllAndLogInefficient = false;
|
|
@@ -11,7 +8,7 @@ class StaticSQLLogger {
|
|
|
11
8
|
// Run an EXPLAIN on the query to see what is going on
|
|
12
9
|
try {
|
|
13
10
|
const explainQuery = 'EXPLAIN ' + query;
|
|
14
|
-
const [explainRows] = await
|
|
11
|
+
const [explainRows] = await Database.select(explainQuery, params, { nestTables: true });
|
|
15
12
|
return explainRows[0]?.[''] ?? null;
|
|
16
13
|
}
|
|
17
14
|
catch (e) {
|
|
@@ -28,7 +25,7 @@ class StaticSQLLogger {
|
|
|
28
25
|
return;
|
|
29
26
|
}
|
|
30
27
|
if (explainResult['type'] === 'ALL') {
|
|
31
|
-
console.warn(new
|
|
28
|
+
console.warn(new StyledText('[FULL TABLE SCAN] ').addClass('error').addTag('query'), `Inefficient query detected${elapsedTimeMs !== undefined ? ' (' + elapsedTimeMs.toFixed(0) + 'ms)' : ''}:`, query, params, 'EXPLAIN result:', explainResult);
|
|
32
29
|
}
|
|
33
30
|
}
|
|
34
31
|
async log(queryPromise, query, params) {
|
|
@@ -63,5 +60,5 @@ class StaticSQLLogger {
|
|
|
63
60
|
return result;
|
|
64
61
|
}
|
|
65
62
|
}
|
|
66
|
-
|
|
63
|
+
export const SQLLogger = new StaticSQLLogger();
|
|
67
64
|
//# sourceMappingURL=SQLLogger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SQLLogger.js","sourceRoot":"","sources":["../src/SQLLogger.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { SQLExpression, SQLExpressionOptions, SQLQuery } from './SQLExpression.js';
|
|
1
|
+
import type { SQLExpression, SQLExpressionOptions, SQLQuery } from './SQLExpression.js';
|
|
2
2
|
type Constructor<T = object> = new (...args: any[]) => T;
|
|
3
3
|
export declare function Orderable<Sup extends Constructor<object>>(Base: Sup): {
|
|
4
4
|
new (...args: any[]): {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SQLOrderBy.d.ts","sourceRoot":"","sources":["../src/SQLOrderBy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,oBAAoB,EAAE,QAAQ,EAAC,MAAM,oBAAoB,CAAC;AAIvF,KAAK,WAAW,CAAC,CAAC,GAAG,MAAM,IAAI,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;AAEzD,wBAAgB,SAAS,CAAC,GAAG,SAAS,WAAW,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,GAAG;kBAFvB,GAAG,EAAE;kBAIhC,UAAU,GAAG,IAAI;gBAEnB,CAAC,QAAQ,CAAC,WAAW,UAAU,GAAG,CAAC;gBACnC,CAAC,QAAQ,CAAC,UAAU,aAAa,GAAG,MAAM,cAAc,mBAAmB,GAAG,CAAC;;QAsB9F;AAED,MAAM,MAAM,mBAAmB,GAAG,KAAK,GAAG,MAAM,CAAC;AACjD,qBAAa,UAAW,YAAW,aAAa;IAC5C,OAAO,EAAE;QAAE,MAAM,EAAE,aAAa,CAAC;QAAC,SAAS,EAAE,mBAAmB,CAAA;KAAE,EAAE,CAAM;gBAE9D,GAAG,OAAO,EAAE;QAAE,MAAM,EAAE,aAAa,CAAC;QAAC,SAAS,EAAE,mBAAmB,CAAA;KAAE,EAAE;IAInF,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,UAAU,EAAE;IAIpC,GAAG,CAAC,OAAO,EAAE,UAAU;IAIvB,MAAM,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,QAAQ;CAkBnD"}
|
|
@@ -1,17 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
exports.Orderable = Orderable;
|
|
5
|
-
const SQLExpression_js_1 = require("./SQLExpression.js");
|
|
6
|
-
const SQLExpressions_js_1 = require("./SQLExpressions.js");
|
|
7
|
-
function Orderable(Base) {
|
|
1
|
+
import { joinSQLQuery } from './SQLExpression.js';
|
|
2
|
+
import { SQLColumnExpression } from './SQLExpressions.js';
|
|
3
|
+
export function Orderable(Base) {
|
|
8
4
|
return class extends Base {
|
|
9
5
|
_orderBy = null;
|
|
10
6
|
orderBy(columnOrOrderBy, direction) {
|
|
11
7
|
let o = columnOrOrderBy;
|
|
12
8
|
if (!(columnOrOrderBy instanceof SQLOrderBy)) {
|
|
13
9
|
o = new SQLOrderBy({
|
|
14
|
-
column: typeof columnOrOrderBy === 'string' ? new
|
|
10
|
+
column: typeof columnOrOrderBy === 'string' ? new SQLColumnExpression(columnOrOrderBy) : columnOrOrderBy,
|
|
15
11
|
direction: direction ?? 'ASC',
|
|
16
12
|
});
|
|
17
13
|
}
|
|
@@ -26,7 +22,7 @@ function Orderable(Base) {
|
|
|
26
22
|
}
|
|
27
23
|
};
|
|
28
24
|
}
|
|
29
|
-
class SQLOrderBy {
|
|
25
|
+
export class SQLOrderBy {
|
|
30
26
|
orderBy = [];
|
|
31
27
|
constructor(...orderBy) {
|
|
32
28
|
this.orderBy = orderBy;
|
|
@@ -41,10 +37,10 @@ class SQLOrderBy {
|
|
|
41
37
|
if (this.orderBy.length === 0) {
|
|
42
38
|
return '';
|
|
43
39
|
}
|
|
44
|
-
return
|
|
40
|
+
return joinSQLQuery([
|
|
45
41
|
'ORDER BY ',
|
|
46
|
-
|
|
47
|
-
return
|
|
42
|
+
joinSQLQuery(this.orderBy.map((o) => {
|
|
43
|
+
return joinSQLQuery([
|
|
48
44
|
o.column.getSQL(options),
|
|
49
45
|
o.direction,
|
|
50
46
|
], ' ');
|
|
@@ -52,5 +48,4 @@ class SQLOrderBy {
|
|
|
52
48
|
]);
|
|
53
49
|
}
|
|
54
50
|
}
|
|
55
|
-
exports.SQLOrderBy = SQLOrderBy;
|
|
56
51
|
//# sourceMappingURL=SQLOrderBy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SQLOrderBy.js","sourceRoot":"","sources":["../src/SQLOrderBy.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAI1D,MAAM,UAAU,SAAS,CAAkC,IAAS;IAChE,OAAO,KAAM,SAAQ,IAAI;QACrB,QAAQ,GAAsB,IAAI,CAAC;QAInC,OAAO,CAAa,eAAuC,EAAE,SAA+B;YACxF,IAAI,CAAC,GAAG,eAA6B,CAAC;YACtC,IAAI,CAAC,CAAC,eAAe,YAAY,UAAU,CAAC,EAAE,CAAC;gBAC3C,CAAC,GAAG,IAAI,UAAU,CAAC;oBACf,MAAM,EAAE,OAAO,eAAe,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,mBAAmB,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,eAAe;oBACxG,SAAS,EAAE,SAAS,IAAI,KAAK;iBAChC,CAAC,CAAC;YACP,CAAC;YAED,MAAM,EAAE,GAAG,IAAW,CAAC,CAAC,6EAA6E;YAErG,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC;gBACd,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACvB,CAAC;iBACI,CAAC;gBACF,EAAE,CAAC,QAAQ,GAAG,CAAC,CAAC;YACpB,CAAC;YAED,OAAO,EAAE,CAAC;QACd,CAAC;KACJ,CAAC;AACN,CAAC;AAGD,MAAM,OAAO,UAAU;IACnB,OAAO,GAAgE,EAAE,CAAC;IAE1E,YAAY,GAAG,OAAoE;QAC/E,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IAC3B,CAAC;IAED,MAAM,CAAC,OAAO,CAAC,OAAqB;QAChC,OAAO,IAAI,UAAU,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IAC9D,CAAC;IAED,GAAG,CAAC,OAAmB;QACnB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC1C,CAAC;IAED,MAAM,CAAC,OAA8B;QACjC,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,OAAO,EAAE,CAAC;QACd,CAAC;QAED,OAAO,YAAY,CAAC;YAChB,WAAW;YACX,YAAY,CACR,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;gBACnB,OAAO,YAAY,CAAC;oBAChB,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;oBACxB,CAAC,CAAC,SAAS;iBACd,EAAE,GAAG,CAAC,CAAC;YACZ,CAAC,CAAC,EACF,IAAI,CACP;SACJ,CAAC,CAAC;IACP,CAAC;CACJ"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { SQLResultNamespacedRow } from '@simonbackx/simple-database';
|
|
2
|
-
import { SQLExpression, SQLExpressionOptions, SQLNamedExpression, SQLQuery } from './SQLExpression.js';
|
|
3
|
-
import { SQLJoin } from './SQLJoin.js';
|
|
1
|
+
import type { SQLResultNamespacedRow } from '@simonbackx/simple-database';
|
|
2
|
+
import type { SQLExpression, SQLExpressionOptions, SQLNamedExpression, SQLQuery } from './SQLExpression.js';
|
|
3
|
+
import type { SQLJoin } from './SQLJoin.js';
|
|
4
4
|
declare class EmptyClass {
|
|
5
5
|
}
|
|
6
6
|
export declare function parseTable(tableOrExpression: SQLNamedExpression | string, asNamespace?: string): SQLNamedExpression;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SQLSelect.d.ts","sourceRoot":"","sources":["../src/SQLSelect.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,25 +1,21 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
const SQLExpressions_js_1 = require("./SQLExpressions.js");
|
|
9
|
-
const SQLOrderBy_js_1 = require("./SQLOrderBy.js");
|
|
10
|
-
const SQLWhere_js_1 = require("./SQLWhere.js");
|
|
11
|
-
const SQLLogger_js_1 = require("./SQLLogger.js");
|
|
1
|
+
import { Database } from '@simonbackx/simple-database';
|
|
2
|
+
import { Formatter } from '@stamhoofd/utility';
|
|
3
|
+
import { joinSQLQuery, normalizeSQLQuery } from './SQLExpression.js';
|
|
4
|
+
import { SQLAlias, SQLColumnExpression, SQLCount, SQLSelectAs, SQLSum, SQLTableExpression } from './SQLExpressions.js';
|
|
5
|
+
import { Orderable } from './SQLOrderBy.js';
|
|
6
|
+
import { Whereable } from './SQLWhere.js';
|
|
7
|
+
import { SQLLogger } from './SQLLogger.js';
|
|
12
8
|
class EmptyClass {
|
|
13
9
|
}
|
|
14
|
-
function parseTable(tableOrExpression, asNamespace) {
|
|
10
|
+
export function parseTable(tableOrExpression, asNamespace) {
|
|
15
11
|
if (typeof tableOrExpression === 'string') {
|
|
16
|
-
return new
|
|
12
|
+
return new SQLTableExpression(tableOrExpression, asNamespace);
|
|
17
13
|
}
|
|
18
14
|
else {
|
|
19
15
|
return tableOrExpression;
|
|
20
16
|
}
|
|
21
17
|
}
|
|
22
|
-
class SQLSelect extends
|
|
18
|
+
export class SQLSelect extends Whereable(Orderable(EmptyClass)) {
|
|
23
19
|
_columns;
|
|
24
20
|
_from;
|
|
25
21
|
_limit = null;
|
|
@@ -35,7 +31,7 @@ class SQLSelect extends (0, SQLWhere_js_1.Whereable)((0, SQLOrderBy_js_1.Orderab
|
|
|
35
31
|
if (typeof columns[0] === 'function') {
|
|
36
32
|
this._transformer = columns.shift();
|
|
37
33
|
}
|
|
38
|
-
this._columns = columns.map(c => typeof c === 'string' ? new
|
|
34
|
+
this._columns = columns.map(c => typeof c === 'string' ? new SQLColumnExpression(c) : c);
|
|
39
35
|
}
|
|
40
36
|
clone() {
|
|
41
37
|
const c = new SQLSelect(...this._columns);
|
|
@@ -48,7 +44,7 @@ class SQLSelect extends (0, SQLWhere_js_1.Whereable)((0, SQLOrderBy_js_1.Orderab
|
|
|
48
44
|
return this;
|
|
49
45
|
}
|
|
50
46
|
select(...columns) {
|
|
51
|
-
this._columns.push(...columns.map(c => typeof c === 'string' ? new
|
|
47
|
+
this._columns.push(...columns.map(c => typeof c === 'string' ? new SQLColumnExpression(c) : c));
|
|
52
48
|
return this;
|
|
53
49
|
}
|
|
54
50
|
join(join) {
|
|
@@ -84,13 +80,13 @@ class SQLSelect extends (0, SQLWhere_js_1.Whereable)((0, SQLOrderBy_js_1.Orderab
|
|
|
84
80
|
options.parentNamespace = parentOptions.defaultNamespace;
|
|
85
81
|
}
|
|
86
82
|
const columns = this._columns.map(c => c.getSQL(options));
|
|
87
|
-
query.push(
|
|
83
|
+
query.push(joinSQLQuery(columns, ', '));
|
|
88
84
|
query.push('FROM');
|
|
89
85
|
query.push(this._from.getSQL(options));
|
|
90
86
|
// Joins
|
|
91
87
|
query.push(...this._joins.map(j => j.getSQL(options)));
|
|
92
88
|
if (this._where) {
|
|
93
|
-
const whereJoins =
|
|
89
|
+
const whereJoins = Formatter.uniqueArray(this._where.getJoins()).filter(j => !this._joins.includes(j));
|
|
94
90
|
query.push(...whereJoins.map(j => j.getSQL(options)));
|
|
95
91
|
}
|
|
96
92
|
// Where
|
|
@@ -106,7 +102,7 @@ class SQLSelect extends (0, SQLWhere_js_1.Whereable)((0, SQLOrderBy_js_1.Orderab
|
|
|
106
102
|
}
|
|
107
103
|
if (this._groupBy.length > 0) {
|
|
108
104
|
query.push('GROUP BY');
|
|
109
|
-
query.push(
|
|
105
|
+
query.push(joinSQLQuery(this._groupBy.map(c => c.getSQL(options)), ', '));
|
|
110
106
|
}
|
|
111
107
|
if (this._orderBy) {
|
|
112
108
|
query.push(this._orderBy.getSQL(options));
|
|
@@ -117,7 +113,7 @@ class SQLSelect extends (0, SQLWhere_js_1.Whereable)((0, SQLOrderBy_js_1.Orderab
|
|
|
117
113
|
query.push('OFFSET ' + this._offset);
|
|
118
114
|
}
|
|
119
115
|
}
|
|
120
|
-
return
|
|
116
|
+
return joinSQLQuery(query, ' ');
|
|
121
117
|
}
|
|
122
118
|
/**
|
|
123
119
|
* Returns true when it know all results will be included without filtering.
|
|
@@ -136,12 +132,12 @@ class SQLSelect extends (0, SQLWhere_js_1.Whereable)((0, SQLOrderBy_js_1.Orderab
|
|
|
136
132
|
if (this._where && this._where.isAlways === false) {
|
|
137
133
|
return [];
|
|
138
134
|
}
|
|
139
|
-
const { query, params } =
|
|
135
|
+
const { query, params } = normalizeSQLQuery(this.getSQL());
|
|
140
136
|
// when debugging: log all queries
|
|
141
137
|
// console.log(query, params);
|
|
142
138
|
let rows;
|
|
143
139
|
try {
|
|
144
|
-
const [_rows] = await
|
|
140
|
+
const [_rows] = await SQLLogger.log(Database.select(query, params, { nestTables: true }), query, params);
|
|
145
141
|
rows = _rows;
|
|
146
142
|
}
|
|
147
143
|
catch (e) {
|
|
@@ -185,13 +181,13 @@ class SQLSelect extends (0, SQLWhere_js_1.Whereable)((0, SQLOrderBy_js_1.Orderab
|
|
|
185
181
|
return 0;
|
|
186
182
|
}
|
|
187
183
|
this._columns = [
|
|
188
|
-
new
|
|
184
|
+
new SQLSelectAs(new SQLCount(expression ?? null), new SQLAlias('c')),
|
|
189
185
|
];
|
|
190
186
|
this._offset = null;
|
|
191
187
|
this._limit = null;
|
|
192
188
|
this._orderBy = null;
|
|
193
|
-
const { query, params } =
|
|
194
|
-
const [rows] = await
|
|
189
|
+
const { query, params } = normalizeSQLQuery(this.getSQL());
|
|
190
|
+
const [rows] = await SQLLogger.log(Database.select(query, params, { nestTables: true }), query, params);
|
|
195
191
|
if (rows.length === 1) {
|
|
196
192
|
const row = rows[0];
|
|
197
193
|
if ('' in row) {
|
|
@@ -212,14 +208,14 @@ class SQLSelect extends (0, SQLWhere_js_1.Whereable)((0, SQLOrderBy_js_1.Orderab
|
|
|
212
208
|
return 0;
|
|
213
209
|
}
|
|
214
210
|
this._columns = [
|
|
215
|
-
new
|
|
211
|
+
new SQLSelectAs(new SQLSum(expression), new SQLAlias('c')),
|
|
216
212
|
];
|
|
217
213
|
this._offset = null;
|
|
218
214
|
this._limit = null;
|
|
219
215
|
this._orderBy = null;
|
|
220
|
-
const { query, params } =
|
|
216
|
+
const { query, params } = normalizeSQLQuery(this.getSQL());
|
|
221
217
|
// console.log(query, params);
|
|
222
|
-
const [rows] = await
|
|
218
|
+
const [rows] = await SQLLogger.log(Database.select(query, params, { nestTables: true }), query, params);
|
|
223
219
|
if (rows.length === 1) {
|
|
224
220
|
const row = rows[0];
|
|
225
221
|
if ('' in row) {
|
|
@@ -405,5 +401,4 @@ class SQLSelect extends (0, SQLWhere_js_1.Whereable)((0, SQLOrderBy_js_1.Orderab
|
|
|
405
401
|
return this;
|
|
406
402
|
}
|
|
407
403
|
}
|
|
408
|
-
exports.SQLSelect = SQLSelect;
|
|
409
404
|
//# sourceMappingURL=SQLSelect.js.map
|