@spinajs/orm-sql 2.0.500 → 2.0.502
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/lib/cjs/statements.d.ts +62 -2
- package/lib/cjs/statements.d.ts.map +1 -1
- package/lib/cjs/statements.js +75 -11
- package/lib/cjs/statements.js.map +1 -1
- package/lib/mjs/statements.d.ts +62 -2
- package/lib/mjs/statements.d.ts.map +1 -1
- package/lib/mjs/statements.js +75 -11
- package/lib/mjs/statements.js.map +1 -1
- package/lib/tsconfig.cjs.tsbuildinfo +1 -1
- package/lib/tsconfig.mjs.tsbuildinfo +1 -1
- package/package.json +5 -5
package/lib/cjs/statements.d.ts
CHANGED
|
@@ -6,16 +6,50 @@ import { IQueryStatement, LazyQueryStatement, QueryBuilder, SelectQueryBuilder,
|
|
|
6
6
|
* {@link IdentifierQuoter}, which is why it is a parameter rather than an import.
|
|
7
7
|
*/
|
|
8
8
|
export declare function _columnWrap(quoter: IdentifierQuoter, column: string, tableAlias: string | undefined, isAggregate?: boolean): string;
|
|
9
|
+
/**
|
|
10
|
+
* The `clone(parent?)` contract, and which statements below participate in it.
|
|
11
|
+
*
|
|
12
|
+
* A statement that holds a live reference to a BUILDER must rebind that reference to the
|
|
13
|
+
* builder it is handed. `SelectQueryBuilder.clone()` and `WhereBuilder.clone()` pass the new
|
|
14
|
+
* builder to every statement they copy, precisely so the copies stop pointing at the original.
|
|
15
|
+
* Anything that reads `builder.TableAlias` at BUILD time and kept the original produced SQL
|
|
16
|
+
* naming an alias the cloned query never declares.
|
|
17
|
+
*
|
|
18
|
+
* Rebinding statements: {@link SqlWhereStatement} (`_builder`), {@link SqlInStatement}
|
|
19
|
+
* (`_builder`), {@link SqlJoinStatement} (`_options.builder`), {@link SqlWhereQueryStatement}
|
|
20
|
+
* (nested where-builder), {@link SqlExistsQueryStatement} (sub-select correlation),
|
|
21
|
+
* {@link SqlLazyQueryStatement} (deferred evaluation context) and
|
|
22
|
+
* {@link SqlWithRecursiveStatement} (`_query`, the owning query).
|
|
23
|
+
*
|
|
24
|
+
* Statements that deliberately do NOT rebind — {@link SqlBetweenStatement},
|
|
25
|
+
* {@link SqlGroupByStatement}, {@link SqlColumnStatement}, {@link SqlColumnMethodStatement},
|
|
26
|
+
* {@link SqlInSetStatement} (and its per-driver subclasses), {@link SqlRawStatement},
|
|
27
|
+
* {@link SqlColumnRawStatement} — hold no builder at all. They carry the table alias as a
|
|
28
|
+
* VALUE, snapshotted when they were created; `SelectQueryBuilder.setAlias()` re-stamps that
|
|
29
|
+
* value on every statement of the builder that owns them, so a clone follows its own builder's
|
|
30
|
+
* alias without needing a reference to it.
|
|
31
|
+
*/
|
|
9
32
|
export declare class SqlRawStatement extends RawQueryStatement {
|
|
10
33
|
clone(): SqlRawStatement;
|
|
11
34
|
build(): IQueryStatementResult;
|
|
12
35
|
}
|
|
13
36
|
export declare class SqlLazyQueryStatement extends LazyQueryStatement {
|
|
14
|
-
|
|
37
|
+
/**
|
|
38
|
+
* REBINDS to the builder it is handed — the deferred callback is evaluated against
|
|
39
|
+
* `this.context`, so a clone that kept the source builder would resolve its aliases (and,
|
|
40
|
+
* for a correlated EXISTS, its whole correlation) against the query it was cloned from.
|
|
41
|
+
*/
|
|
42
|
+
clone<T extends QueryBuilder | SelectQueryBuilder | WhereBuilder<any>>(parent?: T): SqlLazyQueryStatement;
|
|
15
43
|
build(): IQueryStatementResult;
|
|
16
44
|
}
|
|
17
45
|
export declare class SqlWithRecursiveStatement extends WithRecursiveStatement {
|
|
18
|
-
|
|
46
|
+
/**
|
|
47
|
+
* REBINDS to the builder it is handed. `_query` is the OWNING query — `withRecursive()`
|
|
48
|
+
* passes `this` — and `build()` mutates it ( it pushes a join before compiling the recursive
|
|
49
|
+
* member ). A clone that kept the source query compiled the CTE of the query it was cloned
|
|
50
|
+
* from and pushed joins into it.
|
|
51
|
+
*/
|
|
52
|
+
clone<T extends QueryBuilder | SelectQueryBuilder | WhereBuilder<any>>(parent?: T): SqlWithRecursiveStatement;
|
|
19
53
|
build(): IQueryStatementResult;
|
|
20
54
|
}
|
|
21
55
|
export declare class SqlBetweenStatement extends BetweenStatement {
|
|
@@ -30,6 +64,15 @@ export declare class SqlGroupByStatement extends GroupByStatement {
|
|
|
30
64
|
}
|
|
31
65
|
export declare class SqlWhereStatement extends WhereStatement {
|
|
32
66
|
Quoter: IdentifierQuoter;
|
|
67
|
+
/**
|
|
68
|
+
* REBINDS to the builder it is handed.
|
|
69
|
+
*
|
|
70
|
+
* `build()` reads `this._builder.TableAlias`, and a query's alias is usually assigned AFTER
|
|
71
|
+
* the query was cloned ( `populate()` calls `setAlias()` ). Keeping the source builder here
|
|
72
|
+
* therefore made the clone emit the alias of the query it was cloned from — an alias the
|
|
73
|
+
* clone's own FROM never declares — and the database answered "Unknown column
|
|
74
|
+
* '$Model$.column' in 'where clause'".
|
|
75
|
+
*/
|
|
33
76
|
clone<T extends QueryBuilder | SelectQueryBuilder | WhereBuilder<any>>(_builder?: T): SqlWhereStatement;
|
|
34
77
|
build(): IQueryStatementResult;
|
|
35
78
|
}
|
|
@@ -84,6 +127,11 @@ export declare class SqlColumnRawStatement extends ColumnRawStatement {
|
|
|
84
127
|
build(): IQueryStatementResult;
|
|
85
128
|
}
|
|
86
129
|
export declare class SqlWhereQueryStatement extends WhereQueryStatement {
|
|
130
|
+
/**
|
|
131
|
+
* REBINDS the nested where-builder to the builder it is handed, falling back to the parent
|
|
132
|
+
* the nested builder already has so a clone taken without one stays attached to something
|
|
133
|
+
* ( `WhereBuilder`'s constructor dereferences its parent ).
|
|
134
|
+
*/
|
|
87
135
|
clone<T extends QueryBuilder | SelectQueryBuilder | WhereBuilder<any>>(_parent?: T): IQueryStatement;
|
|
88
136
|
build(): {
|
|
89
137
|
Bindings: any[];
|
|
@@ -91,6 +139,18 @@ export declare class SqlWhereQueryStatement extends WhereQueryStatement {
|
|
|
91
139
|
};
|
|
92
140
|
}
|
|
93
141
|
export declare class SqlExistsQueryStatement extends ExistsQueryStatement {
|
|
142
|
+
/**
|
|
143
|
+
* The sub-select is cloned ( it is owned by this statement, not shared with the outer query )
|
|
144
|
+
* and then RE-CORRELATED to the builder this statement was handed.
|
|
145
|
+
*
|
|
146
|
+
* Re-correlating is the whole point: the sub-select's correlation predicate names the OUTER
|
|
147
|
+
* query's alias, and it is emitted lazily at compile time because that alias is usually
|
|
148
|
+
* assigned after the sub-query is built. Leaving the clone pointing at the source query meant
|
|
149
|
+
* a cloned query's EXISTS either referenced an alias the clone never declared or — because
|
|
150
|
+
* the lazy predicate was appended to the source's sub-builder rather than the clone's — was
|
|
151
|
+
* dropped altogether, leaving an UNCORRELATED `EXISTS (SELECT ...)` that is true for every
|
|
152
|
+
* row. That is how a cloned count query escaped an rbac `readOwn` constraint.
|
|
153
|
+
*/
|
|
94
154
|
clone<T extends QueryBuilder | SelectQueryBuilder | WhereBuilder<any>>(_parent?: T): IQueryStatement;
|
|
95
155
|
build(): IQueryStatementResult;
|
|
96
156
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"statements.d.ts","sourceRoot":"","sources":["../../src/statements.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAc,kBAAkB,EAAE,YAAY,EAAE,kBAAkB,EAAE,YAAY,EAA0B,gBAAgB,EAAE,aAAa,EAAE,eAAe,EAAE,kBAAkB,EAAE,WAAW,EAAE,cAAc,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,cAAc,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,gBAAgB,EAAY,WAAW,EAAE,eAAe,EAAgF,gBAAgB,EAAwC,MAAM,cAAc,CAAC;AAO9kB;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,SAAS,EAAE,WAAW,CAAC,EAAE,OAAO,GAAG,MAAM,CAMnI;AAgBD,qBACa,eAAgB,SAAQ,iBAAiB;IAC7C,KAAK,IAAI,eAAe,CAE9B;IAEM,KAAK,IAAI,qBAAqB,CAKpC;CACF;AAED,qBACa,qBAAsB,SAAQ,kBAAkB;
|
|
1
|
+
{"version":3,"file":"statements.d.ts","sourceRoot":"","sources":["../../src/statements.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAc,kBAAkB,EAAE,YAAY,EAAE,kBAAkB,EAAE,YAAY,EAA0B,gBAAgB,EAAE,aAAa,EAAE,eAAe,EAAE,kBAAkB,EAAE,WAAW,EAAE,cAAc,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,cAAc,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,gBAAgB,EAAY,WAAW,EAAE,eAAe,EAAgF,gBAAgB,EAAwC,MAAM,cAAc,CAAC;AAO9kB;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,SAAS,EAAE,WAAW,CAAC,EAAE,OAAO,GAAG,MAAM,CAMnI;AAgBD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,qBACa,eAAgB,SAAQ,iBAAiB;IAC7C,KAAK,IAAI,eAAe,CAE9B;IAEM,KAAK,IAAI,qBAAqB,CAKpC;CACF;AAED,qBACa,qBAAsB,SAAQ,kBAAkB;IAE3D;;;;OAIG;IACI,KAAK,CAAC,CAAC,SAAS,YAAY,GAAG,kBAAkB,GAAG,YAAY,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,GAAG,qBAAqB,CAE/G;IAED,KAAK,IAAI,qBAAqB,CAmB7B;CAEF;AAED,qBACa,yBAA0B,SAAQ,sBAAsB;IACnE;;;;;OAKG;IACI,KAAK,CAAC,CAAC,SAAS,YAAY,GAAG,kBAAkB,GAAG,YAAY,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,GAAG,yBAAyB,CAEnH;IAEM,KAAK,IAAI,qBAAqB,CA+CpC;CACF;AAED,qBACa,mBAAoB,SAAQ,gBAAgB;IAEhD,MAAM,EAAE,gBAAgB,CAAC;IAEzB,KAAK,IAAI,mBAAmB,CAElC;IAEM,KAAK,IAAI,qBAAqB,CAOpC;CACF;AAED,qBACa,mBAAoB,SAAQ,gBAAgB;IAEhD,MAAM,EAAE,gBAAgB,CAAC;IAEzB,KAAK,IAAI,mBAAmB,CAElC;IAED,KAAK,IAAI,qBAAqB,CAY7B;CACF;AAED,qBACa,iBAAkB,SAAQ,cAAc;IAE5C,MAAM,EAAE,gBAAgB,CAAC;IAGhC;;;;;;;;OAQG;IACI,KAAK,CAAC,CAAC,SAAS,YAAY,GAAG,kBAAkB,GAAG,YAAY,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC,GAAG,iBAAiB,CAK7G;IAEM,KAAK,IAAI,qBAAqB,CAsDpC;CACF;AAED,qBACa,gBAAiB,SAAQ,aAAa;IAE1C,MAAM,EAAE,gBAAgB,CAAC;IAEzB,KAAK,CAAC,CAAC,SAAS,YAAY,GAAG,kBAAkB,GAAG,YAAY,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,GAAG,eAAe,CAQzG;IAEM,KAAK,IAAI,qBAAqB,CA0GpC;CACF;AAED,qBACa,cAAe,SAAQ,WAAW;IAEtC,MAAM,EAAE,gBAAgB,CAAC;IAEzB,KAAK,CAAC,CAAC,SAAS,YAAY,GAAG,kBAAkB,GAAG,YAAY,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,GAAG,eAAe,CAEzG;IAEM,KAAK,IAAI,qBAAqB,CAQpC;CACF;AAED;;;;;;;;;;;;GAYG;AACH,qBACa,iBAAkB,SAAQ,cAAc;IAE5C,MAAM,EAAE,gBAAgB,CAAC;IAEhC,KAAK,IAAI,qBAAqB,CAkB7B;IAEM,KAAK,IAAI,eAAe,CAE9B;CACF;AAED,qBACa,kBAAmB,SAAQ,eAAe;IAE9C,MAAM,EAAE,gBAAgB,CAAC;IAEzB,KAAK,IAAI,kBAAkB,CAEjC;IAEM,KAAK,IAAI,qBAAqB,CAqBpC;CACF;AAED,qBACa,wBAAyB,SAAQ,qBAAqB;IAE1D,MAAM,EAAE,gBAAgB,CAAC;IAEzB,KAAK,IAAI,wBAAwB,CAEvC;IAEM,KAAK,IAAI,qBAAqB,CAiBpC;CACF;AAED,8BACsB,cAAe,SAAQ,WAAW;IAE/C,MAAM,EAAE,gBAAgB,CAAC;IAEzB,IAAI,IAAI,MAAM,CAMpB;CACF;AAED,8BAAsB,kBAAmB,SAAQ,eAAe;IAEvD,MAAM,EAAE,gBAAgB,CAAC;IAEzB,IAAI,IAAI,MAAM,CAMpB;CACF;AAED,qBACa,qBAAsB,SAAQ,kBAAkB;IACpD,KAAK,IAAI,qBAAqB,CAEpC;IAEM,KAAK,IAAI,qBAAqB,CAKpC;CACF;AAED,qBACa,sBAAuB,SAAQ,mBAAmB;IAC7D;;;;OAIG;IACI,KAAK,CAAC,CAAC,SAAS,YAAY,GAAG,kBAAkB,GAAG,YAAY,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC,GAAG,eAAe,CAI1G;IAEM,KAAK;QAKR,QAAQ;QACR,UAAU;MAEb;CACF;AAED,qBACa,uBAAwB,SAAQ,oBAAoB;IAC/D;;;;;;;;;;;OAWG;IACI,KAAK,CAAC,CAAC,SAAS,YAAY,GAAG,kBAAkB,GAAG,YAAY,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC,GAAG,eAAe,CAQ1G;IAEM,KAAK,IAAI,qBAAqB,CAcpC;CACF"}
|
package/lib/cjs/statements.js
CHANGED
|
@@ -41,6 +41,29 @@ function _carryQuoter(clone, source) {
|
|
|
41
41
|
clone.Quoter = source.Quoter;
|
|
42
42
|
return clone;
|
|
43
43
|
}
|
|
44
|
+
/**
|
|
45
|
+
* The `clone(parent?)` contract, and which statements below participate in it.
|
|
46
|
+
*
|
|
47
|
+
* A statement that holds a live reference to a BUILDER must rebind that reference to the
|
|
48
|
+
* builder it is handed. `SelectQueryBuilder.clone()` and `WhereBuilder.clone()` pass the new
|
|
49
|
+
* builder to every statement they copy, precisely so the copies stop pointing at the original.
|
|
50
|
+
* Anything that reads `builder.TableAlias` at BUILD time and kept the original produced SQL
|
|
51
|
+
* naming an alias the cloned query never declares.
|
|
52
|
+
*
|
|
53
|
+
* Rebinding statements: {@link SqlWhereStatement} (`_builder`), {@link SqlInStatement}
|
|
54
|
+
* (`_builder`), {@link SqlJoinStatement} (`_options.builder`), {@link SqlWhereQueryStatement}
|
|
55
|
+
* (nested where-builder), {@link SqlExistsQueryStatement} (sub-select correlation),
|
|
56
|
+
* {@link SqlLazyQueryStatement} (deferred evaluation context) and
|
|
57
|
+
* {@link SqlWithRecursiveStatement} (`_query`, the owning query).
|
|
58
|
+
*
|
|
59
|
+
* Statements that deliberately do NOT rebind — {@link SqlBetweenStatement},
|
|
60
|
+
* {@link SqlGroupByStatement}, {@link SqlColumnStatement}, {@link SqlColumnMethodStatement},
|
|
61
|
+
* {@link SqlInSetStatement} (and its per-driver subclasses), {@link SqlRawStatement},
|
|
62
|
+
* {@link SqlColumnRawStatement} — hold no builder at all. They carry the table alias as a
|
|
63
|
+
* VALUE, snapshotted when they were created; `SelectQueryBuilder.setAlias()` re-stamps that
|
|
64
|
+
* value on every statement of the builder that owns them, so a clone follows its own builder's
|
|
65
|
+
* alias without needing a reference to it.
|
|
66
|
+
*/
|
|
44
67
|
let SqlRawStatement = SqlRawStatement_1 = class SqlRawStatement extends orm_1.RawQueryStatement {
|
|
45
68
|
clone() {
|
|
46
69
|
return new SqlRawStatement_1(this._query, this._bindings);
|
|
@@ -57,12 +80,21 @@ exports.SqlRawStatement = SqlRawStatement = SqlRawStatement_1 = __decorate([
|
|
|
57
80
|
(0, di_1.NewInstance)()
|
|
58
81
|
], SqlRawStatement);
|
|
59
82
|
let SqlLazyQueryStatement = SqlLazyQueryStatement_1 = class SqlLazyQueryStatement extends orm_1.LazyQueryStatement {
|
|
60
|
-
|
|
61
|
-
|
|
83
|
+
/**
|
|
84
|
+
* REBINDS to the builder it is handed — the deferred callback is evaluated against
|
|
85
|
+
* `this.context`, so a clone that kept the source builder would resolve its aliases (and,
|
|
86
|
+
* for a correlated EXISTS, its whole correlation) against the query it was cloned from.
|
|
87
|
+
*/
|
|
88
|
+
clone(parent) {
|
|
89
|
+
return new SqlLazyQueryStatement_1(this.callback, parent ?? this.context);
|
|
62
90
|
}
|
|
63
91
|
build() {
|
|
64
92
|
const context = this.context.clone();
|
|
65
93
|
context.setAlias(this.context.TableAlias);
|
|
94
|
+
// The correlation link is what tells the callback which OUTER query to correlate against.
|
|
95
|
+
// `clone()` above already copies it, but `setAlias()` does not, and a context built from a
|
|
96
|
+
// builder that was never a sub-query has none — restate it so it can never be lost here.
|
|
97
|
+
context.correlateWith(this.context.CorrelationSource);
|
|
66
98
|
context.clearColumns().clearGroupBy().clearJoins().clearWhere();
|
|
67
99
|
this.callback?.call(context);
|
|
68
100
|
const result = context.Statements.map((s) => s.build());
|
|
@@ -77,8 +109,14 @@ exports.SqlLazyQueryStatement = SqlLazyQueryStatement = SqlLazyQueryStatement_1
|
|
|
77
109
|
(0, di_1.NewInstance)()
|
|
78
110
|
], SqlLazyQueryStatement);
|
|
79
111
|
let SqlWithRecursiveStatement = SqlWithRecursiveStatement_1 = class SqlWithRecursiveStatement extends orm_1.WithRecursiveStatement {
|
|
80
|
-
|
|
81
|
-
|
|
112
|
+
/**
|
|
113
|
+
* REBINDS to the builder it is handed. `_query` is the OWNING query — `withRecursive()`
|
|
114
|
+
* passes `this` — and `build()` mutates it ( it pushes a join before compiling the recursive
|
|
115
|
+
* member ). A clone that kept the source query compiled the CTE of the query it was cloned
|
|
116
|
+
* from and pushed joins into it.
|
|
117
|
+
*/
|
|
118
|
+
clone(parent) {
|
|
119
|
+
return new SqlWithRecursiveStatement_1(this.container, this._name, parent ?? this._query, this._rcKeyName, this._pkName);
|
|
82
120
|
}
|
|
83
121
|
build() {
|
|
84
122
|
// `clearRecursive()` on both clones is what stops this from recursing forever. `clone()`
|
|
@@ -179,8 +217,17 @@ exports.SqlGroupByStatement = SqlGroupByStatement = SqlGroupByStatement_1 = __de
|
|
|
179
217
|
(0, di_1.NewInstance)()
|
|
180
218
|
], SqlGroupByStatement);
|
|
181
219
|
let SqlWhereStatement = SqlWhereStatement_1 = class SqlWhereStatement extends orm_1.WhereStatement {
|
|
220
|
+
/**
|
|
221
|
+
* REBINDS to the builder it is handed.
|
|
222
|
+
*
|
|
223
|
+
* `build()` reads `this._builder.TableAlias`, and a query's alias is usually assigned AFTER
|
|
224
|
+
* the query was cloned ( `populate()` calls `setAlias()` ). Keeping the source builder here
|
|
225
|
+
* therefore made the clone emit the alias of the query it was cloned from — an alias the
|
|
226
|
+
* clone's own FROM never declares — and the database answered "Unknown column
|
|
227
|
+
* '$Model$.column' in 'where clause'".
|
|
228
|
+
*/
|
|
182
229
|
clone(_builder) {
|
|
183
|
-
return _carryQuoter(new SqlWhereStatement_1(this._column, this._operator, this._value, this._builder), this);
|
|
230
|
+
return _carryQuoter(new SqlWhereStatement_1(this._column, this._operator, this._value, (_builder ?? this._builder)), this);
|
|
184
231
|
}
|
|
185
232
|
build() {
|
|
186
233
|
const isNullableQuery = this._operator === orm_1.SqlOperator.NOT_NULL || this._operator === orm_1.SqlOperator.NULL;
|
|
@@ -513,9 +560,14 @@ exports.SqlColumnRawStatement = SqlColumnRawStatement = SqlColumnRawStatement_1
|
|
|
513
560
|
(0, di_1.NewInstance)()
|
|
514
561
|
], SqlColumnRawStatement);
|
|
515
562
|
let SqlWhereQueryStatement = SqlWhereQueryStatement_1 = class SqlWhereQueryStatement extends orm_1.WhereQueryStatement {
|
|
563
|
+
/**
|
|
564
|
+
* REBINDS the nested where-builder to the builder it is handed, falling back to the parent
|
|
565
|
+
* the nested builder already has so a clone taken without one stays attached to something
|
|
566
|
+
* ( `WhereBuilder`'s constructor dereferences its parent ).
|
|
567
|
+
*/
|
|
516
568
|
clone(_parent) {
|
|
517
569
|
// TODO: fix this any cast !
|
|
518
|
-
return new SqlWhereQueryStatement_1(this._builder.clone(_parent));
|
|
570
|
+
return new SqlWhereQueryStatement_1(this._builder.clone((_parent ?? this._builder.Parent ?? this._builder)));
|
|
519
571
|
}
|
|
520
572
|
build() {
|
|
521
573
|
const _compiler = new compilers_js_1.SqlWhereCompiler();
|
|
@@ -531,12 +583,24 @@ exports.SqlWhereQueryStatement = SqlWhereQueryStatement = SqlWhereQueryStatement
|
|
|
531
583
|
(0, di_1.NewInstance)()
|
|
532
584
|
], SqlWhereQueryStatement);
|
|
533
585
|
let SqlExistsQueryStatement = SqlExistsQueryStatement_1 = class SqlExistsQueryStatement extends orm_1.ExistsQueryStatement {
|
|
586
|
+
/**
|
|
587
|
+
* The sub-select is cloned ( it is owned by this statement, not shared with the outer query )
|
|
588
|
+
* and then RE-CORRELATED to the builder this statement was handed.
|
|
589
|
+
*
|
|
590
|
+
* Re-correlating is the whole point: the sub-select's correlation predicate names the OUTER
|
|
591
|
+
* query's alias, and it is emitted lazily at compile time because that alias is usually
|
|
592
|
+
* assigned after the sub-query is built. Leaving the clone pointing at the source query meant
|
|
593
|
+
* a cloned query's EXISTS either referenced an alias the clone never declared or — because
|
|
594
|
+
* the lazy predicate was appended to the source's sub-builder rather than the clone's — was
|
|
595
|
+
* dropped altogether, leaving an UNCORRELATED `EXISTS (SELECT ...)` that is true for every
|
|
596
|
+
* row. That is how a cloned count query escaped an rbac `readOwn` constraint.
|
|
597
|
+
*/
|
|
534
598
|
clone(_parent) {
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
return new SqlExistsQueryStatement_1(
|
|
599
|
+
const builder = this._builder.clone();
|
|
600
|
+
if (_parent) {
|
|
601
|
+
builder.correlateWith(_parent);
|
|
602
|
+
}
|
|
603
|
+
return new SqlExistsQueryStatement_1(builder, this._not);
|
|
540
604
|
}
|
|
541
605
|
build() {
|
|
542
606
|
let exprr = '';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"statements.js","sourceRoot":"","sources":["../../src/statements.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"statements.js","sourceRoot":"","sources":["../../src/statements.ts"],"names":[],"mappings":"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"}
|
package/lib/mjs/statements.d.ts
CHANGED
|
@@ -6,16 +6,50 @@ import { IQueryStatement, LazyQueryStatement, QueryBuilder, SelectQueryBuilder,
|
|
|
6
6
|
* {@link IdentifierQuoter}, which is why it is a parameter rather than an import.
|
|
7
7
|
*/
|
|
8
8
|
export declare function _columnWrap(quoter: IdentifierQuoter, column: string, tableAlias: string | undefined, isAggregate?: boolean): string;
|
|
9
|
+
/**
|
|
10
|
+
* The `clone(parent?)` contract, and which statements below participate in it.
|
|
11
|
+
*
|
|
12
|
+
* A statement that holds a live reference to a BUILDER must rebind that reference to the
|
|
13
|
+
* builder it is handed. `SelectQueryBuilder.clone()` and `WhereBuilder.clone()` pass the new
|
|
14
|
+
* builder to every statement they copy, precisely so the copies stop pointing at the original.
|
|
15
|
+
* Anything that reads `builder.TableAlias` at BUILD time and kept the original produced SQL
|
|
16
|
+
* naming an alias the cloned query never declares.
|
|
17
|
+
*
|
|
18
|
+
* Rebinding statements: {@link SqlWhereStatement} (`_builder`), {@link SqlInStatement}
|
|
19
|
+
* (`_builder`), {@link SqlJoinStatement} (`_options.builder`), {@link SqlWhereQueryStatement}
|
|
20
|
+
* (nested where-builder), {@link SqlExistsQueryStatement} (sub-select correlation),
|
|
21
|
+
* {@link SqlLazyQueryStatement} (deferred evaluation context) and
|
|
22
|
+
* {@link SqlWithRecursiveStatement} (`_query`, the owning query).
|
|
23
|
+
*
|
|
24
|
+
* Statements that deliberately do NOT rebind — {@link SqlBetweenStatement},
|
|
25
|
+
* {@link SqlGroupByStatement}, {@link SqlColumnStatement}, {@link SqlColumnMethodStatement},
|
|
26
|
+
* {@link SqlInSetStatement} (and its per-driver subclasses), {@link SqlRawStatement},
|
|
27
|
+
* {@link SqlColumnRawStatement} — hold no builder at all. They carry the table alias as a
|
|
28
|
+
* VALUE, snapshotted when they were created; `SelectQueryBuilder.setAlias()` re-stamps that
|
|
29
|
+
* value on every statement of the builder that owns them, so a clone follows its own builder's
|
|
30
|
+
* alias without needing a reference to it.
|
|
31
|
+
*/
|
|
9
32
|
export declare class SqlRawStatement extends RawQueryStatement {
|
|
10
33
|
clone(): SqlRawStatement;
|
|
11
34
|
build(): IQueryStatementResult;
|
|
12
35
|
}
|
|
13
36
|
export declare class SqlLazyQueryStatement extends LazyQueryStatement {
|
|
14
|
-
|
|
37
|
+
/**
|
|
38
|
+
* REBINDS to the builder it is handed — the deferred callback is evaluated against
|
|
39
|
+
* `this.context`, so a clone that kept the source builder would resolve its aliases (and,
|
|
40
|
+
* for a correlated EXISTS, its whole correlation) against the query it was cloned from.
|
|
41
|
+
*/
|
|
42
|
+
clone<T extends QueryBuilder | SelectQueryBuilder | WhereBuilder<any>>(parent?: T): SqlLazyQueryStatement;
|
|
15
43
|
build(): IQueryStatementResult;
|
|
16
44
|
}
|
|
17
45
|
export declare class SqlWithRecursiveStatement extends WithRecursiveStatement {
|
|
18
|
-
|
|
46
|
+
/**
|
|
47
|
+
* REBINDS to the builder it is handed. `_query` is the OWNING query — `withRecursive()`
|
|
48
|
+
* passes `this` — and `build()` mutates it ( it pushes a join before compiling the recursive
|
|
49
|
+
* member ). A clone that kept the source query compiled the CTE of the query it was cloned
|
|
50
|
+
* from and pushed joins into it.
|
|
51
|
+
*/
|
|
52
|
+
clone<T extends QueryBuilder | SelectQueryBuilder | WhereBuilder<any>>(parent?: T): SqlWithRecursiveStatement;
|
|
19
53
|
build(): IQueryStatementResult;
|
|
20
54
|
}
|
|
21
55
|
export declare class SqlBetweenStatement extends BetweenStatement {
|
|
@@ -30,6 +64,15 @@ export declare class SqlGroupByStatement extends GroupByStatement {
|
|
|
30
64
|
}
|
|
31
65
|
export declare class SqlWhereStatement extends WhereStatement {
|
|
32
66
|
Quoter: IdentifierQuoter;
|
|
67
|
+
/**
|
|
68
|
+
* REBINDS to the builder it is handed.
|
|
69
|
+
*
|
|
70
|
+
* `build()` reads `this._builder.TableAlias`, and a query's alias is usually assigned AFTER
|
|
71
|
+
* the query was cloned ( `populate()` calls `setAlias()` ). Keeping the source builder here
|
|
72
|
+
* therefore made the clone emit the alias of the query it was cloned from — an alias the
|
|
73
|
+
* clone's own FROM never declares — and the database answered "Unknown column
|
|
74
|
+
* '$Model$.column' in 'where clause'".
|
|
75
|
+
*/
|
|
33
76
|
clone<T extends QueryBuilder | SelectQueryBuilder | WhereBuilder<any>>(_builder?: T): SqlWhereStatement;
|
|
34
77
|
build(): IQueryStatementResult;
|
|
35
78
|
}
|
|
@@ -84,6 +127,11 @@ export declare class SqlColumnRawStatement extends ColumnRawStatement {
|
|
|
84
127
|
build(): IQueryStatementResult;
|
|
85
128
|
}
|
|
86
129
|
export declare class SqlWhereQueryStatement extends WhereQueryStatement {
|
|
130
|
+
/**
|
|
131
|
+
* REBINDS the nested where-builder to the builder it is handed, falling back to the parent
|
|
132
|
+
* the nested builder already has so a clone taken without one stays attached to something
|
|
133
|
+
* ( `WhereBuilder`'s constructor dereferences its parent ).
|
|
134
|
+
*/
|
|
87
135
|
clone<T extends QueryBuilder | SelectQueryBuilder | WhereBuilder<any>>(_parent?: T): IQueryStatement;
|
|
88
136
|
build(): {
|
|
89
137
|
Bindings: any[];
|
|
@@ -91,6 +139,18 @@ export declare class SqlWhereQueryStatement extends WhereQueryStatement {
|
|
|
91
139
|
};
|
|
92
140
|
}
|
|
93
141
|
export declare class SqlExistsQueryStatement extends ExistsQueryStatement {
|
|
142
|
+
/**
|
|
143
|
+
* The sub-select is cloned ( it is owned by this statement, not shared with the outer query )
|
|
144
|
+
* and then RE-CORRELATED to the builder this statement was handed.
|
|
145
|
+
*
|
|
146
|
+
* Re-correlating is the whole point: the sub-select's correlation predicate names the OUTER
|
|
147
|
+
* query's alias, and it is emitted lazily at compile time because that alias is usually
|
|
148
|
+
* assigned after the sub-query is built. Leaving the clone pointing at the source query meant
|
|
149
|
+
* a cloned query's EXISTS either referenced an alias the clone never declared or — because
|
|
150
|
+
* the lazy predicate was appended to the source's sub-builder rather than the clone's — was
|
|
151
|
+
* dropped altogether, leaving an UNCORRELATED `EXISTS (SELECT ...)` that is true for every
|
|
152
|
+
* row. That is how a cloned count query escaped an rbac `readOwn` constraint.
|
|
153
|
+
*/
|
|
94
154
|
clone<T extends QueryBuilder | SelectQueryBuilder | WhereBuilder<any>>(_parent?: T): IQueryStatement;
|
|
95
155
|
build(): IQueryStatementResult;
|
|
96
156
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"statements.d.ts","sourceRoot":"","sources":["../../src/statements.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAc,kBAAkB,EAAE,YAAY,EAAE,kBAAkB,EAAE,YAAY,EAA0B,gBAAgB,EAAE,aAAa,EAAE,eAAe,EAAE,kBAAkB,EAAE,WAAW,EAAE,cAAc,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,cAAc,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,gBAAgB,EAAY,WAAW,EAAE,eAAe,EAAgF,gBAAgB,EAAwC,MAAM,cAAc,CAAC;AAO9kB;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,SAAS,EAAE,WAAW,CAAC,EAAE,OAAO,GAAG,MAAM,CAMnI;AAgBD,qBACa,eAAgB,SAAQ,iBAAiB;IAC7C,KAAK,IAAI,eAAe,CAE9B;IAEM,KAAK,IAAI,qBAAqB,CAKpC;CACF;AAED,qBACa,qBAAsB,SAAQ,kBAAkB;
|
|
1
|
+
{"version":3,"file":"statements.d.ts","sourceRoot":"","sources":["../../src/statements.ts"],"names":[],"mappings":"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"}
|
package/lib/mjs/statements.js
CHANGED
|
@@ -37,6 +37,29 @@ function _carryQuoter(clone, source) {
|
|
|
37
37
|
clone.Quoter = source.Quoter;
|
|
38
38
|
return clone;
|
|
39
39
|
}
|
|
40
|
+
/**
|
|
41
|
+
* The `clone(parent?)` contract, and which statements below participate in it.
|
|
42
|
+
*
|
|
43
|
+
* A statement that holds a live reference to a BUILDER must rebind that reference to the
|
|
44
|
+
* builder it is handed. `SelectQueryBuilder.clone()` and `WhereBuilder.clone()` pass the new
|
|
45
|
+
* builder to every statement they copy, precisely so the copies stop pointing at the original.
|
|
46
|
+
* Anything that reads `builder.TableAlias` at BUILD time and kept the original produced SQL
|
|
47
|
+
* naming an alias the cloned query never declares.
|
|
48
|
+
*
|
|
49
|
+
* Rebinding statements: {@link SqlWhereStatement} (`_builder`), {@link SqlInStatement}
|
|
50
|
+
* (`_builder`), {@link SqlJoinStatement} (`_options.builder`), {@link SqlWhereQueryStatement}
|
|
51
|
+
* (nested where-builder), {@link SqlExistsQueryStatement} (sub-select correlation),
|
|
52
|
+
* {@link SqlLazyQueryStatement} (deferred evaluation context) and
|
|
53
|
+
* {@link SqlWithRecursiveStatement} (`_query`, the owning query).
|
|
54
|
+
*
|
|
55
|
+
* Statements that deliberately do NOT rebind — {@link SqlBetweenStatement},
|
|
56
|
+
* {@link SqlGroupByStatement}, {@link SqlColumnStatement}, {@link SqlColumnMethodStatement},
|
|
57
|
+
* {@link SqlInSetStatement} (and its per-driver subclasses), {@link SqlRawStatement},
|
|
58
|
+
* {@link SqlColumnRawStatement} — hold no builder at all. They carry the table alias as a
|
|
59
|
+
* VALUE, snapshotted when they were created; `SelectQueryBuilder.setAlias()` re-stamps that
|
|
60
|
+
* value on every statement of the builder that owns them, so a clone follows its own builder's
|
|
61
|
+
* alias without needing a reference to it.
|
|
62
|
+
*/
|
|
40
63
|
let SqlRawStatement = SqlRawStatement_1 = class SqlRawStatement extends RawQueryStatement {
|
|
41
64
|
clone() {
|
|
42
65
|
return new SqlRawStatement_1(this._query, this._bindings);
|
|
@@ -53,12 +76,21 @@ SqlRawStatement = SqlRawStatement_1 = __decorate([
|
|
|
53
76
|
], SqlRawStatement);
|
|
54
77
|
export { SqlRawStatement };
|
|
55
78
|
let SqlLazyQueryStatement = SqlLazyQueryStatement_1 = class SqlLazyQueryStatement extends LazyQueryStatement {
|
|
56
|
-
|
|
57
|
-
|
|
79
|
+
/**
|
|
80
|
+
* REBINDS to the builder it is handed — the deferred callback is evaluated against
|
|
81
|
+
* `this.context`, so a clone that kept the source builder would resolve its aliases (and,
|
|
82
|
+
* for a correlated EXISTS, its whole correlation) against the query it was cloned from.
|
|
83
|
+
*/
|
|
84
|
+
clone(parent) {
|
|
85
|
+
return new SqlLazyQueryStatement_1(this.callback, parent ?? this.context);
|
|
58
86
|
}
|
|
59
87
|
build() {
|
|
60
88
|
const context = this.context.clone();
|
|
61
89
|
context.setAlias(this.context.TableAlias);
|
|
90
|
+
// The correlation link is what tells the callback which OUTER query to correlate against.
|
|
91
|
+
// `clone()` above already copies it, but `setAlias()` does not, and a context built from a
|
|
92
|
+
// builder that was never a sub-query has none — restate it so it can never be lost here.
|
|
93
|
+
context.correlateWith(this.context.CorrelationSource);
|
|
62
94
|
context.clearColumns().clearGroupBy().clearJoins().clearWhere();
|
|
63
95
|
this.callback?.call(context);
|
|
64
96
|
const result = context.Statements.map((s) => s.build());
|
|
@@ -73,8 +105,14 @@ SqlLazyQueryStatement = SqlLazyQueryStatement_1 = __decorate([
|
|
|
73
105
|
], SqlLazyQueryStatement);
|
|
74
106
|
export { SqlLazyQueryStatement };
|
|
75
107
|
let SqlWithRecursiveStatement = SqlWithRecursiveStatement_1 = class SqlWithRecursiveStatement extends WithRecursiveStatement {
|
|
76
|
-
|
|
77
|
-
|
|
108
|
+
/**
|
|
109
|
+
* REBINDS to the builder it is handed. `_query` is the OWNING query — `withRecursive()`
|
|
110
|
+
* passes `this` — and `build()` mutates it ( it pushes a join before compiling the recursive
|
|
111
|
+
* member ). A clone that kept the source query compiled the CTE of the query it was cloned
|
|
112
|
+
* from and pushed joins into it.
|
|
113
|
+
*/
|
|
114
|
+
clone(parent) {
|
|
115
|
+
return new SqlWithRecursiveStatement_1(this.container, this._name, parent ?? this._query, this._rcKeyName, this._pkName);
|
|
78
116
|
}
|
|
79
117
|
build() {
|
|
80
118
|
// `clearRecursive()` on both clones is what stops this from recursing forever. `clone()`
|
|
@@ -175,8 +213,17 @@ SqlGroupByStatement = SqlGroupByStatement_1 = __decorate([
|
|
|
175
213
|
], SqlGroupByStatement);
|
|
176
214
|
export { SqlGroupByStatement };
|
|
177
215
|
let SqlWhereStatement = SqlWhereStatement_1 = class SqlWhereStatement extends WhereStatement {
|
|
216
|
+
/**
|
|
217
|
+
* REBINDS to the builder it is handed.
|
|
218
|
+
*
|
|
219
|
+
* `build()` reads `this._builder.TableAlias`, and a query's alias is usually assigned AFTER
|
|
220
|
+
* the query was cloned ( `populate()` calls `setAlias()` ). Keeping the source builder here
|
|
221
|
+
* therefore made the clone emit the alias of the query it was cloned from — an alias the
|
|
222
|
+
* clone's own FROM never declares — and the database answered "Unknown column
|
|
223
|
+
* '$Model$.column' in 'where clause'".
|
|
224
|
+
*/
|
|
178
225
|
clone(_builder) {
|
|
179
|
-
return _carryQuoter(new SqlWhereStatement_1(this._column, this._operator, this._value, this._builder), this);
|
|
226
|
+
return _carryQuoter(new SqlWhereStatement_1(this._column, this._operator, this._value, (_builder ?? this._builder)), this);
|
|
180
227
|
}
|
|
181
228
|
build() {
|
|
182
229
|
const isNullableQuery = this._operator === SqlOperator.NOT_NULL || this._operator === SqlOperator.NULL;
|
|
@@ -508,9 +555,14 @@ SqlColumnRawStatement = SqlColumnRawStatement_1 = __decorate([
|
|
|
508
555
|
], SqlColumnRawStatement);
|
|
509
556
|
export { SqlColumnRawStatement };
|
|
510
557
|
let SqlWhereQueryStatement = SqlWhereQueryStatement_1 = class SqlWhereQueryStatement extends WhereQueryStatement {
|
|
558
|
+
/**
|
|
559
|
+
* REBINDS the nested where-builder to the builder it is handed, falling back to the parent
|
|
560
|
+
* the nested builder already has so a clone taken without one stays attached to something
|
|
561
|
+
* ( `WhereBuilder`'s constructor dereferences its parent ).
|
|
562
|
+
*/
|
|
511
563
|
clone(_parent) {
|
|
512
564
|
// TODO: fix this any cast !
|
|
513
|
-
return new SqlWhereQueryStatement_1(this._builder.clone(_parent));
|
|
565
|
+
return new SqlWhereQueryStatement_1(this._builder.clone((_parent ?? this._builder.Parent ?? this._builder)));
|
|
514
566
|
}
|
|
515
567
|
build() {
|
|
516
568
|
const _compiler = new SqlWhereCompiler();
|
|
@@ -526,12 +578,24 @@ SqlWhereQueryStatement = SqlWhereQueryStatement_1 = __decorate([
|
|
|
526
578
|
], SqlWhereQueryStatement);
|
|
527
579
|
export { SqlWhereQueryStatement };
|
|
528
580
|
let SqlExistsQueryStatement = SqlExistsQueryStatement_1 = class SqlExistsQueryStatement extends ExistsQueryStatement {
|
|
581
|
+
/**
|
|
582
|
+
* The sub-select is cloned ( it is owned by this statement, not shared with the outer query )
|
|
583
|
+
* and then RE-CORRELATED to the builder this statement was handed.
|
|
584
|
+
*
|
|
585
|
+
* Re-correlating is the whole point: the sub-select's correlation predicate names the OUTER
|
|
586
|
+
* query's alias, and it is emitted lazily at compile time because that alias is usually
|
|
587
|
+
* assigned after the sub-query is built. Leaving the clone pointing at the source query meant
|
|
588
|
+
* a cloned query's EXISTS either referenced an alias the clone never declared or — because
|
|
589
|
+
* the lazy predicate was appended to the source's sub-builder rather than the clone's — was
|
|
590
|
+
* dropped altogether, leaving an UNCORRELATED `EXISTS (SELECT ...)` that is true for every
|
|
591
|
+
* row. That is how a cloned count query escaped an rbac `readOwn` constraint.
|
|
592
|
+
*/
|
|
529
593
|
clone(_parent) {
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
return new SqlExistsQueryStatement_1(
|
|
594
|
+
const builder = this._builder.clone();
|
|
595
|
+
if (_parent) {
|
|
596
|
+
builder.correlateWith(_parent);
|
|
597
|
+
}
|
|
598
|
+
return new SqlExistsQueryStatement_1(builder, this._not);
|
|
535
599
|
}
|
|
536
600
|
build() {
|
|
537
601
|
let exprr = '';
|