@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.
@@ -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
- clone(): SqlLazyQueryStatement;
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
- clone(): SqlWithRecursiveStatement;
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":"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"}
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"}
@@ -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
- clone() {
61
- return new SqlLazyQueryStatement_1(this.callback, this.context);
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
- clone() {
81
- return new SqlWithRecursiveStatement_1(this.container, this._name, this._query, this._rcKeyName, this._pkName);
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
- // TODO: this look wrong to clone _builder,
536
- // it could be shared between statements
537
- // and cloning it every time could lead to unexpected results
538
- // eg. modifying cloned builder will not behave as expected
539
- return new SqlExistsQueryStatement_1(this._builder.clone(), this._not);
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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"}
@@ -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
- clone(): SqlLazyQueryStatement;
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
- clone(): SqlWithRecursiveStatement;
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":"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"}
1
+ {"version":3,"file":"statements.d.ts","sourceRoot":"","sources":["../../src/statements.ts"],"names":[],"mappings":"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"}
@@ -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
- clone() {
57
- return new SqlLazyQueryStatement_1(this.callback, this.context);
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
- clone() {
77
- return new SqlWithRecursiveStatement_1(this.container, this._name, this._query, this._rcKeyName, this._pkName);
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
- // TODO: this look wrong to clone _builder,
531
- // it could be shared between statements
532
- // and cloning it every time could lead to unexpected results
533
- // eg. modifying cloned builder will not behave as expected
534
- return new SqlExistsQueryStatement_1(this._builder.clone(), this._not);
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 = '';