@quereus/quereus 4.2.0 → 4.2.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/core/statement.d.ts +8 -0
- package/dist/src/core/statement.d.ts.map +1 -1
- package/dist/src/core/statement.js +32 -0
- package/dist/src/core/statement.js.map +1 -1
- package/dist/src/index.d.ts +1 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +4 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/planner/analysis/scalar-param-usage.d.ts +20 -0
- package/dist/src/planner/analysis/scalar-param-usage.d.ts.map +1 -0
- package/dist/src/planner/analysis/scalar-param-usage.js +94 -0
- package/dist/src/planner/analysis/scalar-param-usage.js.map +1 -0
- package/dist/src/planner/building/constraint-builder.d.ts.map +1 -1
- package/dist/src/planner/building/constraint-builder.js +17 -1
- package/dist/src/planner/building/constraint-builder.js.map +1 -1
- package/dist/src/planner/building/view-mutation-builder.d.ts.map +1 -1
- package/dist/src/planner/building/view-mutation-builder.js +59 -32
- package/dist/src/planner/building/view-mutation-builder.js.map +1 -1
- package/dist/src/planner/mutation/lens-enforcement.d.ts +9 -6
- package/dist/src/planner/mutation/lens-enforcement.d.ts.map +1 -1
- package/dist/src/planner/mutation/lens-enforcement.js +181 -44
- package/dist/src/planner/mutation/lens-enforcement.js.map +1 -1
- package/dist/src/planner/rules/access/rule-select-access-path.js +7 -4
- package/dist/src/planner/rules/access/rule-select-access-path.js.map +1 -1
- package/dist/src/schema/catalog.d.ts.map +1 -1
- package/dist/src/schema/catalog.js +25 -0
- package/dist/src/schema/catalog.js.map +1 -1
- package/dist/src/schema/reserved-tags.d.ts +23 -0
- package/dist/src/schema/reserved-tags.d.ts.map +1 -1
- package/dist/src/schema/reserved-tags.js +43 -1
- package/dist/src/schema/reserved-tags.js.map +1 -1
- package/dist/src/schema/table.d.ts +56 -8
- package/dist/src/schema/table.d.ts.map +1 -1
- package/dist/src/schema/table.js +21 -0
- package/dist/src/schema/table.js.map +1 -1
- package/dist/src/util/comparison.d.ts +7 -0
- package/dist/src/util/comparison.d.ts.map +1 -1
- package/dist/src/util/comparison.js +9 -0
- package/dist/src/util/comparison.js.map +1 -1
- package/package.json +3 -3
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { RowOpFlag } from '../../schema/table.js';
|
|
1
|
+
import { RowOpFlag, writeRowRelationCorrelation } from '../../schema/table.js';
|
|
2
2
|
import { resolveSlotBasisSource, collectColumnRefNames, authoredForwardMap } from '../../schema/lens-prover.js';
|
|
3
3
|
import { logicalToBasisColumnMap, resolveLogicalReferencedColumns, mappedFkBasisPairs, matchingBasisFks, findLogicalParentFkRefs, } from '../../schema/lens-fk-discovery.js';
|
|
4
4
|
import { transformScopedExpr, transformExpr } from './scope-transform.js';
|
|
@@ -54,6 +54,66 @@ const log = createLogger('planner:lens-enforcement');
|
|
|
54
54
|
*/
|
|
55
55
|
/** Marker tag stamped on a routed basis-term constraint so its lens origin is visible. */
|
|
56
56
|
export const LENS_BOUNDARY_ATTACHED_TAG = 'quereus.lens.boundary.attached';
|
|
57
|
+
/**
|
|
58
|
+
* Resolves, per logical column of a slot, the **basis relation that owns it** — the
|
|
59
|
+
* member relation under a decomposition advertisement, or the slot's single basis
|
|
60
|
+
* source for a non-decomposition lens. The per-op decomposition gate
|
|
61
|
+
* (`constraintsForOp` in `view-mutation-builder`) needs this to route a
|
|
62
|
+
* lens-synthesized constraint onto the exact member op that owns each referenced
|
|
63
|
+
* write-row column, instead of any sibling member op that merely shares the basis
|
|
64
|
+
* column NAME (the bug this metadata fixes: two members both spelling their value
|
|
65
|
+
* column `val`).
|
|
66
|
+
*
|
|
67
|
+
* Sourced from `slot.advertisement.storage.members` (each member's `relation` +
|
|
68
|
+
* the `logicalColumn`s it backs) when a decomposition backs the table; else from
|
|
69
|
+
* {@link resolveSlotBasisSource} (the single basis relation answers for every
|
|
70
|
+
* column). Returns `undefined` for a column it cannot attribute (an EAV-pivot
|
|
71
|
+
* logical column, an opaque slot) — the caller then omits the relation metadata for
|
|
72
|
+
* that constraint, so the gate falls back to its bare-name path.
|
|
73
|
+
*/
|
|
74
|
+
function makeOwningRelationResolver(slot, schemaManager) {
|
|
75
|
+
const members = slot.advertisement?.storage?.members;
|
|
76
|
+
if (members && members.length > 0) {
|
|
77
|
+
const byLogical = new Map();
|
|
78
|
+
for (const m of members) {
|
|
79
|
+
for (const cm of m.columns)
|
|
80
|
+
byLogical.set(cm.logicalColumn.toLowerCase(), m.relation);
|
|
81
|
+
}
|
|
82
|
+
return (logicalColumn) => byLogical.get(logicalColumn.toLowerCase());
|
|
83
|
+
}
|
|
84
|
+
const basis = schemaManager ? resolveSlotBasisSource(slot, schemaManager) : undefined;
|
|
85
|
+
if (basis) {
|
|
86
|
+
const ref = { schema: basis.schemaName, table: basis.name };
|
|
87
|
+
return () => ref;
|
|
88
|
+
}
|
|
89
|
+
return () => undefined;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Builds one relation-qualified write-row entry per `(owning relation, basis column)`
|
|
93
|
+
* pair, given the referenced logical column it derives from. Returns `undefined`
|
|
94
|
+
* (signalling "omit the relation metadata, fall back to the bare-name gate") if any
|
|
95
|
+
* logical column's owning relation cannot be resolved — so an incomplete attribution
|
|
96
|
+
* is never silently treated as a complete one. The returned list is deduped by
|
|
97
|
+
* `(schema, table, column)`.
|
|
98
|
+
*/
|
|
99
|
+
function buildWriteRowRelations(owningRelation, entries) {
|
|
100
|
+
const out = [];
|
|
101
|
+
const seen = new Set();
|
|
102
|
+
for (const { logicalColumn, basisColumns } of entries) {
|
|
103
|
+
const rel = owningRelation(logicalColumn);
|
|
104
|
+
if (!rel)
|
|
105
|
+
return undefined;
|
|
106
|
+
for (const basisColumn of basisColumns) {
|
|
107
|
+
const column = basisColumn.toLowerCase();
|
|
108
|
+
const key = `${rel.schema.toLowerCase()}.${rel.table.toLowerCase()}.${column}`;
|
|
109
|
+
if (seen.has(key))
|
|
110
|
+
continue;
|
|
111
|
+
seen.add(key);
|
|
112
|
+
out.push({ schema: rel.schema, table: rel.table, column });
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
return out;
|
|
116
|
+
}
|
|
57
117
|
/**
|
|
58
118
|
* The {@link ScopeContext} for the logical→basis row-local CHECK rewrite — the
|
|
59
119
|
* scope-aware dual of the single-source view-column descent ({@link import('./single-source.js').makeViewScope}).
|
|
@@ -66,19 +126,24 @@ export const LENS_BOUNDARY_ATTACHED_TAG = 'quereus.lens.boundary.attached';
|
|
|
66
126
|
* per column:
|
|
67
127
|
*
|
|
68
128
|
* - **Qualified by the logical table name** and mapped ⇒ a qualified write-row ref ⇒
|
|
69
|
-
* replace with the basis column qualified
|
|
129
|
+
* replace with the basis column qualified `<corr>.<basis>` (the write-row correlation name).
|
|
70
130
|
* Any other qualifier (`Allowed.name`, a subquery FROM source) ⇒ left untouched — it
|
|
71
131
|
* resolves against the subquery FROM. This is the negative-case guard against
|
|
72
132
|
* over-rewriting a foreign ref whose name happens to equal a logical column.
|
|
73
133
|
* - **Bare**, shadowed by a (this-or-enclosing) subquery FROM ⇒ left untouched
|
|
74
|
-
* (subquery-local); else, name maps ⇒ replace with
|
|
134
|
+
* (subquery-local); else, name maps ⇒ replace with `<corr>.<basis>` (a correlated
|
|
75
135
|
* write-row ref); else ⇒ left untouched.
|
|
76
136
|
*
|
|
77
|
-
*
|
|
78
|
-
*
|
|
79
|
-
*
|
|
80
|
-
*
|
|
81
|
-
*
|
|
137
|
+
* `<corr>` is `NEW` for a single-source lens and the per-relation
|
|
138
|
+
* {@link import('../../schema/table.js').writeRowRelationCorrelation} on a multi-member
|
|
139
|
+
* decomposition (`relationQualify`): two members that back distinct logical columns with the
|
|
140
|
+
* SAME basis-column name (`id`,`name` → `val` on `w_id`,`w_name`) then rewrite to *distinct*
|
|
141
|
+
* terms instead of collapsing to one `NEW.val`. The qualifier (rather than a bare ref) is
|
|
142
|
+
* load-bearing so a ref emitted inside a correlated subquery cannot be captured by a
|
|
143
|
+
* same-named column the subquery's own FROM introduces (the lens analogue of the single-source
|
|
144
|
+
* descent's {@link import('./single-source.js').makeBaseQualifier}); see
|
|
145
|
+
* {@link makeLensRewriteScope}'s `resolve`. At the top level it resolves to the write row
|
|
146
|
+
* identically to a bare ref.
|
|
82
147
|
*
|
|
83
148
|
* The old top-level behavior — strip the qualifier of an *unmapped* qualified column — is
|
|
84
149
|
* intentionally dropped: the prover errors at deploy on a CHECK over a non-reconstructible
|
|
@@ -91,21 +156,43 @@ export const LENS_BOUNDARY_ATTACHED_TAG = 'quereus.lens.boundary.attached';
|
|
|
91
156
|
* diagnostic rather than mis-rewrite or fall through to a cryptic build crash. A foreign /
|
|
92
157
|
* qualified ref in a tainted scope is still left untouched (its name is not a logical column).
|
|
93
158
|
*/
|
|
94
|
-
function makeLensRewriteScope(map, forwards, logicalTableName) {
|
|
159
|
+
function makeLensRewriteScope(map, forwards, logicalTableName, owningRelation, relationQualify) {
|
|
95
160
|
const lcTable = logicalTableName.toLowerCase();
|
|
96
|
-
//
|
|
161
|
+
// The write-row correlation name for a mapped logical column: on a **multi-member
|
|
162
|
+
// decomposition** (`relationQualify`), the per-relation synthetic correlation keyed by
|
|
163
|
+
// the column's owning member (so two members spelling their value column the same NAME
|
|
164
|
+
// stay distinct — `id`'s `val` on `w_id` vs `name`'s `val` on `w_name`), else bare `NEW`.
|
|
165
|
+
// Falls back to `NEW` when the owning relation cannot be attributed (an EAV-pivot / opaque
|
|
166
|
+
// column) — mirroring `buildWriteRowRelations` returning `undefined` (gate falls back to
|
|
167
|
+
// the bare-name path), so the rewrite and the gate metadata agree on those columns.
|
|
168
|
+
const writeRowCorrelation = (name) => {
|
|
169
|
+
if (!relationQualify)
|
|
170
|
+
return 'NEW';
|
|
171
|
+
const rel = owningRelation(name);
|
|
172
|
+
return rel ? writeRowRelationCorrelation(rel.schema, rel.table) : 'NEW';
|
|
173
|
+
};
|
|
174
|
+
// A rewritten write-row ref is qualified `<corr>.<basis>` — the write-row correlation
|
|
97
175
|
// name the constraint scope registers (`building/constraint-builder.ts` registers
|
|
98
|
-
// `new.<col>` for every
|
|
99
|
-
// checks are INSERT|UPDATE only).
|
|
100
|
-
//
|
|
101
|
-
//
|
|
102
|
-
//
|
|
103
|
-
//
|
|
104
|
-
//
|
|
105
|
-
//
|
|
106
|
-
//
|
|
107
|
-
//
|
|
108
|
-
//
|
|
176
|
+
// `new.<col>` AND `<writeRowRelationCorrelation(opSchema,opTable)>.<col>` for every
|
|
177
|
+
// basis column on an INSERT/UPDATE check; row-local lens checks are INSERT|UPDATE only).
|
|
178
|
+
// On a **single-source** lens `<corr>` is `NEW`; on a **multi-member decomposition** it
|
|
179
|
+
// is the per-relation correlation (above) so two members whose value columns share a
|
|
180
|
+
// NAME do not collapse to the same term (the `id`/`name` → `val` collision). The
|
|
181
|
+
// qualifier is load-bearing for a ref emitted INSIDE a correlated subquery: a *bare*
|
|
182
|
+
// basis column there would re-bind to a same-named column the subquery's own FROM
|
|
183
|
+
// introduces (innermost SQL scoping) instead of the write row — silently changing the
|
|
184
|
+
// CHECK's meaning when a renamed logical column's basis spelling collides with a
|
|
185
|
+
// subquery-source column. This is the lens analogue of the single-source descent's
|
|
186
|
+
// `makeBaseQualifier` (which qualifies with the lowered target's alias for the same
|
|
187
|
+
// reason); the decomposition correlation is capture-safe for the SAME reason `NEW`
|
|
188
|
+
// is — neither is a reserved keyword, but `__lens_new__…` (like `NEW`) is vanishingly
|
|
189
|
+
// implausible as a user-written subquery-FROM alias, so it is not shadow-captured in
|
|
190
|
+
// practice (using the bare basis table name WOULD reintroduce the capture bug `NEW` was
|
|
191
|
+
// added to fix — a subquery's FROM routinely names the basis table). At the top level
|
|
192
|
+
// `<corr>.<basis>` resolves to
|
|
193
|
+
// the write row identically to the prior bare form, so behavior is unchanged except in
|
|
194
|
+
// the collision corner. Mirrors the FK / set-level synthesizers, which likewise qualify
|
|
195
|
+
// their write-row side `NEW.*`.
|
|
109
196
|
//
|
|
110
197
|
// An **authored-inverse** column has no single basis spelling — substitute its
|
|
111
198
|
// forward `get` expression instead, every base ref `NEW.`-qualified for the same
|
|
@@ -117,9 +204,12 @@ function makeLensRewriteScope(map, forwards, logicalTableName) {
|
|
|
117
204
|
const resolve = (name) => {
|
|
118
205
|
const basisColumn = map.get(name);
|
|
119
206
|
if (basisColumn !== undefined)
|
|
120
|
-
return { type: 'column', name: basisColumn, table:
|
|
207
|
+
return { type: 'column', name: basisColumn, table: writeRowCorrelation(name) };
|
|
121
208
|
const forward = forwards.get(name);
|
|
122
209
|
if (forward !== undefined) {
|
|
210
|
+
// Authored-inverse forward: `authoredForwardMap` admits only subquery-free
|
|
211
|
+
// single-source forwards, so it is never decomposition-ambiguous — its base refs
|
|
212
|
+
// stay on `NEW`.
|
|
123
213
|
return transformExpr(forward, col => ({ type: 'column', name: col.name, table: 'NEW' }));
|
|
124
214
|
}
|
|
125
215
|
return undefined;
|
|
@@ -165,8 +255,8 @@ function makeLensRewriteScope(map, forwards, logicalTableName) {
|
|
|
165
255
|
* now also rewritten (to `NEW.doc_key`) rather than passing through verbatim and crashing at
|
|
166
256
|
* constraint build.
|
|
167
257
|
*/
|
|
168
|
-
function rewriteToBasisTerms(ctx, expr, map, forwards, logicalTableName) {
|
|
169
|
-
return transformScopedExpr(ctx, makeLensRewriteScope(map, forwards, logicalTableName), expr);
|
|
258
|
+
function rewriteToBasisTerms(ctx, expr, map, forwards, logicalTableName, owningRelation, relationQualify) {
|
|
259
|
+
return transformScopedExpr(ctx, makeLensRewriteScope(map, forwards, logicalTableName, owningRelation, relationQualify), expr);
|
|
170
260
|
}
|
|
171
261
|
/**
|
|
172
262
|
* The lowercased **basis**-column names a row-local logical CHECK depends on — the
|
|
@@ -192,22 +282,33 @@ function rewriteToBasisTerms(ctx, expr, map, forwards, logicalTableName) {
|
|
|
192
282
|
*
|
|
193
283
|
* An authored-inverse column contributes its forward `get` expression's basis
|
|
194
284
|
* refs (the columns the substituted CHECK actually reads on the write row).
|
|
285
|
+
*
|
|
286
|
+
* Returned per-referenced-logical-column (`{ logicalColumn, basisColumns }`) so the
|
|
287
|
+
* caller can both flatten it to the bare {@link RowConstraintSchema.referencedWriteRowColumns}
|
|
288
|
+
* list AND attribute each basis column to its owning relation for the relation-qualified
|
|
289
|
+
* gate metadata. A logical column referenced more than once contributes a single entry
|
|
290
|
+
* (deduped by lowercased logical name).
|
|
195
291
|
*/
|
|
196
|
-
function
|
|
197
|
-
const
|
|
292
|
+
function rowLocalReferencedWriteRow(expr, map, forwards) {
|
|
293
|
+
const entries = [];
|
|
294
|
+
const seen = new Set();
|
|
198
295
|
for (const name of collectColumnRefNames(expr)) {
|
|
199
|
-
const
|
|
296
|
+
const lc = name.toLowerCase();
|
|
297
|
+
if (seen.has(lc))
|
|
298
|
+
continue;
|
|
299
|
+
const basis = map.get(lc);
|
|
200
300
|
if (basis !== undefined) {
|
|
201
|
-
|
|
301
|
+
seen.add(lc);
|
|
302
|
+
entries.push({ logicalColumn: name, basisColumns: [basis.toLowerCase()] });
|
|
202
303
|
continue;
|
|
203
304
|
}
|
|
204
|
-
const forward = forwards.get(
|
|
305
|
+
const forward = forwards.get(lc);
|
|
205
306
|
if (forward !== undefined) {
|
|
206
|
-
|
|
207
|
-
|
|
307
|
+
seen.add(lc);
|
|
308
|
+
entries.push({ logicalColumn: name, basisColumns: collectColumnRefNames(forward).map(f => f.toLowerCase()) });
|
|
208
309
|
}
|
|
209
310
|
}
|
|
210
|
-
return
|
|
311
|
+
return entries;
|
|
211
312
|
}
|
|
212
313
|
/**
|
|
213
314
|
* Builds the basis-term row-local CHECK constraints a lens write must enforce.
|
|
@@ -215,11 +316,14 @@ function rowLocalReferencedBasisColumns(expr, map, forwards) {
|
|
|
215
316
|
* and tags it with {@link LENS_BOUNDARY_ATTACHED_TAG}. The result is merged into
|
|
216
317
|
* the basis INSERT/UPDATE's constraint-check pipeline by the base-table builder.
|
|
217
318
|
*
|
|
218
|
-
* Each constraint also carries {@link
|
|
219
|
-
* `referencedWriteRowColumns`
|
|
220
|
-
*
|
|
221
|
-
*
|
|
222
|
-
*
|
|
319
|
+
* Each constraint also carries its {@link rowLocalReferencedWriteRow} dependency set as
|
|
320
|
+
* `referencedWriteRowColumns` (bare basis names) **and** `referencedWriteRowRelations`
|
|
321
|
+
* (each basis column qualified by its owning member relation) — prover-supplied metadata
|
|
322
|
+
* the per-op decomposition gate uses instead of an AST walk, so a subquery-bearing
|
|
323
|
+
* row-local CHECK (which the prover still classifies `enforced-row-local`) gates onto the
|
|
324
|
+
* member op that owns its correlated write-row column — by relation identity, not bare
|
|
325
|
+
* name — rather than crashing on a member that cannot resolve it (or mis-routing onto a
|
|
326
|
+
* sibling member that merely shares the basis-column name).
|
|
223
327
|
*
|
|
224
328
|
* Returns `[]` when the slot is un-proved (`obligations` undefined) or carries no
|
|
225
329
|
* row-local checks — the common case, so a non-lens / check-free write pays nothing.
|
|
@@ -229,6 +333,13 @@ export function collectLensRowLocalConstraints(ctx, slot) {
|
|
|
229
333
|
return [];
|
|
230
334
|
const map = logicalToBasisColumnMap(slot);
|
|
231
335
|
const forwards = authoredForwardMap(slot);
|
|
336
|
+
const owningRelation = makeOwningRelationResolver(slot, ctx.schemaManager);
|
|
337
|
+
// Relation-qualify the rewrite ONLY on a multi-member decomposition, where the same
|
|
338
|
+
// basis-column NAME can denote different physical columns on different members. A
|
|
339
|
+
// single-source lens (or a degenerate single-member decomposition) has no such ambiguity,
|
|
340
|
+
// so it keeps the `NEW` write-row correlation — no rewrite/behavior change there.
|
|
341
|
+
const members = slot.advertisement?.storage?.members;
|
|
342
|
+
const relationQualify = !!members && members.length > 1;
|
|
232
343
|
const logicalTableName = slot.logicalTable.name;
|
|
233
344
|
const constraints = [];
|
|
234
345
|
for (const obligation of slot.obligations) {
|
|
@@ -237,13 +348,16 @@ export function collectLensRowLocalConstraints(ctx, slot) {
|
|
|
237
348
|
if (obligation.constraint.kind !== 'check')
|
|
238
349
|
continue;
|
|
239
350
|
const source = obligation.constraint.constraint;
|
|
351
|
+
const writeRow = rowLocalReferencedWriteRow(source.expr, map, forwards);
|
|
240
352
|
constraints.push({
|
|
241
353
|
name: source.name ? `lens:${source.name}` : 'lens:check',
|
|
242
|
-
expr: rewriteToBasisTerms(ctx, source.expr, map, forwards, logicalTableName),
|
|
354
|
+
expr: rewriteToBasisTerms(ctx, source.expr, map, forwards, logicalTableName, owningRelation, relationQualify),
|
|
243
355
|
// A logical CHECK guards the row being written: insert and update only.
|
|
244
356
|
operations: RowOpFlag.INSERT | RowOpFlag.UPDATE,
|
|
245
|
-
// Prover-supplied write-row dependency set for the per-op decomposition gate
|
|
246
|
-
|
|
357
|
+
// Prover-supplied write-row dependency set for the per-op decomposition gate
|
|
358
|
+
// (bare names for introspection; relation-qualified for the gate itself).
|
|
359
|
+
referencedWriteRowColumns: [...new Set(writeRow.flatMap(e => e.basisColumns))],
|
|
360
|
+
referencedWriteRowRelations: buildWriteRowRelations(owningRelation, writeRow),
|
|
247
361
|
tags: { [LENS_BOUNDARY_ATTACHED_TAG]: true },
|
|
248
362
|
});
|
|
249
363
|
}
|
|
@@ -410,6 +524,7 @@ export function collectLensForeignKeyConstraints(slot, schemaManager) {
|
|
|
410
524
|
if (!slot.obligations || slot.obligations.length === 0)
|
|
411
525
|
return [];
|
|
412
526
|
const map = logicalToBasisColumnMap(slot);
|
|
527
|
+
const owningRelation = makeOwningRelationResolver(slot, schemaManager);
|
|
413
528
|
const logicalSchemaName = slot.logicalTable.schemaName;
|
|
414
529
|
const constraints = [];
|
|
415
530
|
for (const obligation of slot.obligations) {
|
|
@@ -438,16 +553,20 @@ export function collectLensForeignKeyConstraints(slot, schemaManager) {
|
|
|
438
553
|
// Rewrite each FK child column index → logical name → basis column. A column
|
|
439
554
|
// the prover proved reconstructible maps; otherwise it falls back to the logical
|
|
440
555
|
// name (the prover would have errored on a non-reconstructible FK child column).
|
|
441
|
-
|
|
556
|
+
// The child (NEW) columns are the constraint's write-row refs; attribute each to
|
|
557
|
+
// the member relation that owns it for the per-op decomposition gate.
|
|
558
|
+
const writeRow = fk.columns.map(childIdx => {
|
|
442
559
|
const logicalName = slot.logicalTable.columns[childIdx]?.name ?? `#${childIdx}`;
|
|
443
|
-
return map.get(logicalName.toLowerCase()) ?? logicalName;
|
|
560
|
+
return { logicalColumn: logicalName, basisColumns: [map.get(logicalName.toLowerCase()) ?? logicalName] };
|
|
444
561
|
});
|
|
562
|
+
const childColumns = writeRow.map(e => e.basisColumns[0]);
|
|
445
563
|
const expr = synthesizeFKExistsExpr(fk.referencedTable, parentColumns, childColumns, 'NEW', referencedSchema);
|
|
446
564
|
constraints.push({
|
|
447
565
|
name: fk.name ? `lens:fk:${fk.name}` : 'lens:fk',
|
|
448
566
|
expr,
|
|
449
567
|
// Child-side FK guards the row being written: insert and update only.
|
|
450
568
|
operations: RowOpFlag.INSERT | RowOpFlag.UPDATE,
|
|
569
|
+
referencedWriteRowRelations: buildWriteRowRelations(owningRelation, writeRow),
|
|
451
570
|
tags: { [LENS_BOUNDARY_ATTACHED_TAG]: true },
|
|
452
571
|
});
|
|
453
572
|
}
|
|
@@ -594,6 +713,16 @@ export function collectLensParentSideForeignKeyConstraints(parentSlot, schemaMan
|
|
|
594
713
|
name: fk.name ? `lens:fk:parent:${fk.name}` : 'lens:fk:parent',
|
|
595
714
|
expr,
|
|
596
715
|
operations: operation,
|
|
716
|
+
// The OLD/NEW referenced columns are this constraint's write-row refs; they ride
|
|
717
|
+
// the parent's basis write row, which is exactly `basisParent` (this collector
|
|
718
|
+
// only runs for a single-source parent — it early-returned otherwise). The child
|
|
719
|
+
// columns inside the NOT EXISTS stay logical (subquery-FROM resolved) and are not
|
|
720
|
+
// write-row refs, so they are not attributed.
|
|
721
|
+
referencedWriteRowRelations: parentBasisColumns.map(column => ({
|
|
722
|
+
schema: basisParent.schemaName,
|
|
723
|
+
table: basisParent.name,
|
|
724
|
+
column: column.toLowerCase(),
|
|
725
|
+
})),
|
|
597
726
|
tags: { [LENS_BOUNDARY_ATTACHED_TAG]: true },
|
|
598
727
|
});
|
|
599
728
|
}
|
|
@@ -682,11 +811,12 @@ function synthesizeUniqueCountExpr(logicalSchema, logicalTable, keyColumns) {
|
|
|
682
811
|
* view / proved-key write pays nothing. DELETE never introduces a duplicate, so the
|
|
683
812
|
* caller restricts this to insert/update.
|
|
684
813
|
*/
|
|
685
|
-
export function collectLensSetLevelConstraints(slot) {
|
|
814
|
+
export function collectLensSetLevelConstraints(slot, schemaManager) {
|
|
686
815
|
if (!slot.obligations || slot.obligations.length === 0)
|
|
687
816
|
return [];
|
|
688
817
|
const map = logicalToBasisColumnMap(slot);
|
|
689
818
|
const forwards = authoredForwardMap(slot);
|
|
819
|
+
const owningRelation = makeOwningRelationResolver(slot, schemaManager);
|
|
690
820
|
const logicalSchemaName = slot.logicalTable.schemaName;
|
|
691
821
|
const logicalTableName = slot.logicalTable.name;
|
|
692
822
|
const constraints = [];
|
|
@@ -707,18 +837,24 @@ export function collectLensSetLevelConstraints(slot) {
|
|
|
707
837
|
// `get` image for a proven-bijective `with inverse` column (so the count compares
|
|
708
838
|
// logical value to logical value). A non-reconstructible, non-authored key would
|
|
709
839
|
// have made the table read-only — no write reaches here — but the bare-name
|
|
710
|
-
// fallback keeps the synthesis total.
|
|
840
|
+
// fallback keeps the synthesis total. `writeRow` accumulates, per key column, the
|
|
841
|
+
// basis columns its NEW side references — the per-op decomposition gate's write-row
|
|
842
|
+
// dependency set, attributed below to each column's owning member relation.
|
|
843
|
+
const writeRow = [];
|
|
711
844
|
const keyColumns = logicalColumns.map(li => {
|
|
712
845
|
const logicalColumn = slot.logicalTable.columns[li]?.name ?? `#${li}`;
|
|
713
846
|
const lc = logicalColumn.toLowerCase();
|
|
714
847
|
const basisColumn = map.get(lc);
|
|
715
848
|
if (basisColumn !== undefined) {
|
|
849
|
+
writeRow.push({ logicalColumn, basisColumns: [basisColumn.toLowerCase()] });
|
|
716
850
|
return { logicalColumn, newSide: { type: 'column', name: basisColumn, table: 'NEW' } };
|
|
717
851
|
}
|
|
718
852
|
const forward = forwards.get(lc);
|
|
719
853
|
if (forward !== undefined) {
|
|
854
|
+
writeRow.push({ logicalColumn, basisColumns: collectColumnRefNames(forward).map(f => f.toLowerCase()) });
|
|
720
855
|
return { logicalColumn, newSide: transformExpr(forward, col => ({ type: 'column', name: col.name, table: 'NEW' })) };
|
|
721
856
|
}
|
|
857
|
+
writeRow.push({ logicalColumn, basisColumns: [logicalColumn.toLowerCase()] });
|
|
722
858
|
return { logicalColumn, newSide: { type: 'column', name: logicalColumn, table: 'NEW' } };
|
|
723
859
|
});
|
|
724
860
|
constraints.push({
|
|
@@ -727,6 +863,7 @@ export function collectLensSetLevelConstraints(slot) {
|
|
|
727
863
|
// A duplicate is only introduced by an insert or a key-changing update;
|
|
728
864
|
// a delete cannot create one (and is excluded by the caller anyway).
|
|
729
865
|
operations: RowOpFlag.INSERT | RowOpFlag.UPDATE,
|
|
866
|
+
referencedWriteRowRelations: buildWriteRowRelations(owningRelation, writeRow),
|
|
730
867
|
tags: { [LENS_BOUNDARY_ATTACHED_TAG]: true },
|
|
731
868
|
});
|
|
732
869
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lens-enforcement.js","sourceRoot":"","sources":["../../../../src/planner/mutation/lens-enforcement.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAElD,OAAO,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAChH,OAAO,EACN,uBAAuB,EACvB,+BAA+B,EAC/B,kBAAkB,EAClB,gBAAgB,EAChB,uBAAuB,GACvB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAqB,MAAM,sBAAsB,CAAC;AAC7F,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAEnE,OAAO,EAAE,sBAAsB,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AACvG,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtD,MAAM,GAAG,GAAG,YAAY,CAAC,0BAA0B,CAAC,CAAC;AAErD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AAEH,0FAA0F;AAC1F,MAAM,CAAC,MAAM,0BAA0B,GAAG,gCAAgC,CAAC;AAE3E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,SAAS,oBAAoB,CAAC,GAAgC,EAAE,QAA6C,EAAE,gBAAwB;IACtI,MAAM,OAAO,GAAG,gBAAgB,CAAC,WAAW,EAAE,CAAC;IAC/C,mFAAmF;IACnF,kFAAkF;IAClF,+EAA+E;IAC/E,kFAAkF;IAClF,+EAA+E;IAC/E,+EAA+E;IAC/E,kFAAkF;IAClF,kFAAkF;IAClF,8EAA8E;IAC9E,mFAAmF;IACnF,qFAAqF;IACrF,mFAAmF;IACnF,qEAAqE;IACrE,EAAE;IACF,+EAA+E;IAC/E,iFAAiF;IACjF,6EAA6E;IAC7E,gFAAgF;IAChF,wEAAwE;IACxE,iFAAiF;IACjF,oEAAoE;IACpE,MAAM,OAAO,GAAG,CAAC,IAAY,EAA8B,EAAE;QAC5D,MAAM,WAAW,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,WAAW,KAAK,SAAS;YAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;QAC1F,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC3B,OAAO,aAAa,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;QAC1F,CAAC;QACD,OAAO,SAAS,CAAC;IAClB,CAAC,CAAC;IACF,OAAO;QACN,cAAc,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE;YAC9C,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACpC,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;gBACf,4EAA4E;gBAC5E,0DAA0D;gBAC1D,OAAO,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACxE,CAAC;YACD,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,OAAO,SAAS,CAAC;YACzC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,OAAO,SAAS,CAAC;YAC5D,IAAI,OAAO,EAAE,CAAC;gBACb,uBAAuB,CAAC;oBACvB,MAAM,EAAE,kCAAkC;oBAC1C,KAAK,EAAE,gBAAgB;oBACvB,MAAM,EAAE,GAAG,CAAC,IAAI;oBAChB,OAAO,EAAE,wCAAwC,gBAAgB,qBAAqB,GAAG,CAAC,IAAI,yQAAyQ;iBACvW,CAAC,CAAC;YACJ,CAAC;YACD,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;QACtB,CAAC;QACD,iBAAiB,EAAE,OAAO;QAC1B,iBAAiB,EAAE,GAAG,EAAE,CAAC,uBAAuB,CAAC;YAChD,MAAM,EAAE,kCAAkC;YAC1C,KAAK,EAAE,gBAAgB;YACvB,OAAO,EAAE,wCAAwC,gBAAgB,4GAA4G;SAC7K,CAAC;KACF,CAAC;AACH,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAS,mBAAmB,CAC3B,GAAoB,EACpB,IAAoB,EACpB,GAAgC,EAChC,QAA6C,EAC7C,gBAAwB;IAExB,OAAO,mBAAmB,CAAC,GAAG,EAAE,oBAAoB,CAAC,GAAG,EAAE,QAAQ,EAAE,gBAAgB,CAAC,EAAE,IAAI,CAAC,CAAC;AAC9F,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,SAAS,8BAA8B,CACtC,IAAoB,EACpB,GAAgC,EAChC,QAA6C;IAE7C,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,KAAK,MAAM,IAAI,IAAI,qBAAqB,CAAC,IAAI,CAAC,EAAE,CAAC;QAChD,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QAC1C,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACzB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;YAC9B,SAAS;QACV,CAAC;QACD,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QACjD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC3B,KAAK,MAAM,CAAC,IAAI,qBAAqB,CAAC,OAAO,CAAC;gBAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;QAC3E,CAAC;IACF,CAAC;IACD,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;AAClB,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,8BAA8B,CAAC,GAAoB,EAAE,IAAc;IAClF,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAClE,MAAM,GAAG,GAAG,uBAAuB,CAAC,IAAI,CAAC,CAAC;IAC1C,MAAM,QAAQ,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAC1C,MAAM,gBAAgB,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;IAChD,MAAM,WAAW,GAA0B,EAAE,CAAC;IAC9C,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;QAC3C,IAAI,UAAU,CAAC,IAAI,KAAK,oBAAoB;YAAE,SAAS;QACvD,IAAI,UAAU,CAAC,UAAU,CAAC,IAAI,KAAK,OAAO;YAAE,SAAS;QACrD,MAAM,MAAM,GAAG,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC;QAChD,WAAW,CAAC,IAAI,CAAC;YAChB,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,YAAY;YACxD,IAAI,EAAE,mBAAmB,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,gBAAgB,CAAC;YAC5E,wEAAwE;YACxE,UAAU,EAAE,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM;YAC/C,8EAA8E;YAC9E,yBAAyB,EAAE,8BAA8B,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,CAAC;YACrF,IAAI,EAAE,EAAE,CAAC,0BAA0B,CAAC,EAAE,IAAI,EAAE;SAC5C,CAAC,CAAC;IACJ,CAAC;IACD,OAAO,WAAW,CAAC;AACpB,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,0BAA0B,CAAC,IAAoB;IACvD,OAAO,IAAI,CAAC,KAAK,KAAK,SAAS;WAC3B,CAAC,IAAI,CAAC,OAAO,KAAK,SAAS,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC;WACzD,IAAI,CAAC,MAAM,KAAK,SAAS;WACzB,CAAC,IAAI,CAAC,QAAQ;WACd,IAAI,CAAC,KAAK,KAAK,SAAS;WACxB,IAAI,CAAC,MAAM,KAAK,SAAS;WACzB,IAAI,CAAC,KAAK,KAAK,SAAS;WACxB,IAAI,CAAC,QAAQ,KAAK,SAAS;WAC3B,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC;AACnC,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,SAAS,iBAAiB,CACzB,SAAmB,EACnB,EAA8B,EAC9B,UAAoB,EACpB,oBAAuC,EACvC,UAAuB,EACvB,WAAwB,EACxB,iBAAqC;IAErC,MAAM,WAAW,GAAG,kBAAkB,CAAC,SAAS,EAAE,EAAE,EAAE,UAAU,EAAE,oBAAoB,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;IACjH,IAAI,CAAC,WAAW;QAAE,OAAO,EAAE,CAAC;IAC5B,MAAM,QAAQ,GAAG,iBAAiB,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;IACzE,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,YAAY,CAAC;QAAE,OAAO,EAAE,CAAC;IAClE,OAAO,gBAAgB,CAAC,UAAU,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;AAC/D,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,SAAS,uBAAuB,CAC/B,IAAc,EACd,EAA8B,EAC9B,gBAAwB,EACxB,oBAAuC,EACvC,aAA4B;IAE5B,uCAAuC;IACvC,MAAM,UAAU,GAAG,sBAAsB,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IAC/D,IAAI,CAAC,UAAU;QAAE,OAAO,SAAS,CAAC;IAElC,+DAA+D;IAC/D,MAAM,UAAU,GAAG,aAAa,CAAC,SAAS,CAAC,gBAAgB,CAAC,EAAE,WAAW,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC;IAC9F,IAAI,CAAC,UAAU;QAAE,OAAO,SAAS,CAAC;IAClC,MAAM,WAAW,GAAG,sBAAsB,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;IACtE,IAAI,CAAC,WAAW;QAAE,OAAO,SAAS,CAAC;IAEnC,6EAA6E;IAC7E,4EAA4E;IAC5E,6EAA6E;IAC7E,OAAO,iBAAiB,CAAC,IAAI,EAAE,EAAE,EAAE,UAAU,EAAE,oBAAoB,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5G,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,SAAS,iCAAiC,CACzC,SAAmB,EACnB,EAA8B,EAC9B,UAAoB,EACpB,WAAwB,EACxB,oBAAuC,EACvC,SAA8C,EAC9C,aAA4B;IAE5B,MAAM,UAAU,GAAG,sBAAsB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;IACpE,IAAI,CAAC,UAAU;QAAE,OAAO,SAAS,CAAC;IAClC,MAAM,OAAO,GAAG,iBAAiB,CAAC,SAAS,EAAE,EAAE,EAAE,UAAU,EAAE,oBAAoB,EAAE,UAAU,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;IACrH,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAC3C,kFAAkF;IAClF,mFAAmF;IACnF,uDAAuD;IACvD,MAAM,QAAQ,GAAG,CAAC,CAA6B,EAAE,EAAE,CAAC,SAAS,KAAK,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;IAC7G,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC;QAAE,OAAO,SAAS,CAAC;IACtE,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC;AACnB,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,UAAU,gCAAgC,CAAC,IAAc,EAAE,aAA4B;IAC5F,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAClE,MAAM,GAAG,GAAG,uBAAuB,CAAC,IAAI,CAAC,CAAC;IAC1C,MAAM,iBAAiB,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC;IACvD,MAAM,WAAW,GAA0B,EAAE,CAAC;IAC9C,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;QAC3C,IAAI,UAAU,CAAC,IAAI,KAAK,aAAa;YAAE,SAAS;QAChD,IAAI,UAAU,CAAC,UAAU,CAAC,IAAI,KAAK,YAAY;YAAE,SAAS;QAC1D,MAAM,EAAE,GAAG,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC;QAC5C,MAAM,gBAAgB,GAAG,EAAE,CAAC,gBAAgB,IAAI,iBAAiB,CAAC;QAClE,MAAM,aAAa,GAAG,+BAA+B,CAAC,EAAE,EAAE,gBAAgB,EAAE,aAAa,CAAC,CAAC;QAC3F,6EAA6E;QAC7E,2EAA2E;QAC3E,+EAA+E;QAC/E,gFAAgF;QAChF,IAAI,aAAa,CAAC,MAAM,KAAK,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YAChD,GAAG,CAAC,2EAA2E,EAC9E,EAAE,CAAC,IAAI,IAAI,QAAQ,EAAE,aAAa,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAC/D,SAAS;QACV,CAAC;QACD,yEAAyE;QACzE,0EAA0E;QAC1E,MAAM,SAAS,GAAG,uBAAuB,CAAC,IAAI,EAAE,EAAE,EAAE,gBAAgB,EAAE,aAAa,EAAE,aAAa,CAAC,CAAC;QACpG,IAAI,SAAS,EAAE,CAAC;YACf,GAAG,CAAC,qHAAqH,EACxH,EAAE,CAAC,IAAI,IAAI,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,EAC3C,SAAS,CAAC,IAAI,IAAI,QAAQ,EAAE,SAAS,CAAC,eAAe,CAAC,CAAC;YACxD,SAAS;QACV,CAAC;QACD,6EAA6E;QAC7E,iFAAiF;QACjF,iFAAiF;QACjF,MAAM,YAAY,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;YAC9C,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,IAAI,IAAI,IAAI,QAAQ,EAAE,CAAC;YAChF,OAAO,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,IAAI,WAAW,CAAC;QAC1D,CAAC,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,sBAAsB,CAAC,EAAE,CAAC,eAAe,EAAE,aAAa,EAAE,YAAY,EAAE,KAAK,EAAE,gBAAgB,CAAC,CAAC;QAC9G,WAAW,CAAC,IAAI,CAAC;YAChB,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS;YAChD,IAAI;YACJ,sEAAsE;YACtE,UAAU,EAAE,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM;YAC/C,IAAI,EAAE,EAAE,CAAC,0BAA0B,CAAC,EAAE,IAAI,EAAE;SAC5C,CAAC,CAAC;IACJ,CAAC;IACD,OAAO,WAAW,CAAC;AACpB,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,SAAS,qBAAqB,CAAC,GAAW;IACzC,MAAM,GAAG,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAoB,CAAC;IAC1E,MAAM,GAAG,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAoB,CAAC;IAC1E,MAAM,MAAM,GAAG,CAAC,CAAiB,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAoB,CAAA,CAAC;IACzG,MAAM,SAAS,GAAG,CAAC,CAAiB,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAoB,CAAA,CAAC;IAChH,MAAM,GAAG,GAAG,CAAC,CAAiB,EAAE,CAAiB,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAqB,CAAA,CAAC;IACjI,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/C,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAoB,CAAC;IACtF,MAAM,gBAAgB,GAAG,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACtE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,gBAAgB,EAAoB,CAAC;AACtG,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,SAAS,0BAA0B,CAAC,kBAAqC,EAAE,SAAyB;IACnG,MAAM,UAAU,GAAqB,kBAAkB,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;IACnF,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QAC7C,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,KAAK;QACf,IAAI,EAAE,GAAG;QACT,KAAK,EAAE,EAAE;KACU,CAAA,CAAC,CAAC;IACtB,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAoB,CAAC;AAC5F,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,MAAM,UAAU,0CAA0C,CACzD,UAAoB,EACpB,aAA4B,EAC5B,SAA8C;IAE9C,oFAAoF;IACpF,iFAAiF;IACjF,qFAAqF;IACrF,qFAAqF;IACrF,MAAM,WAAW,GAAG,sBAAsB,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;IACtE,IAAI,CAAC,WAAW;QAAE,OAAO,EAAE,CAAC;IAE5B,MAAM,SAAS,GAAG,uBAAuB,CAAC,UAAU,CAAC,CAAC;IAEtD,MAAM,WAAW,GAA0B,EAAE,CAAC;IAC9C,mFAAmF;IACnF,gFAAgF;IAChF,4DAA4D;IAC5D,KAAK,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,IAAI,uBAAuB,CAAC,UAAU,EAAE,aAAa,CAAC,EAAE,CAAC;QAC/H,sEAAsE;QACtE,0EAA0E;QAC1E,+DAA+D;QAC/D,MAAM,MAAM,GAAG,SAAS,KAAK,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC;QAC1E,IAAI,MAAM,KAAK,UAAU;YAAE,SAAS;QACpC,0EAA0E;QAC1E,0EAA0E;QAC1E,yEAAyE;QACzE,0BAA0B;QAC1B,MAAM,SAAS,GAAG,iCAAiC,CAClD,SAAS,EAAE,EAAE,EAAE,UAAU,EAAE,WAAW,EAAE,oBAAoB,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;QACzF,IAAI,SAAS,EAAE,CAAC;YACf,GAAG,CAAC,yJAAyJ,EAC5J,EAAE,CAAC,IAAI,IAAI,QAAQ,EAAE,UAAU,CAAC,YAAY,CAAC,IAAI,EACjD,SAAS,CAAC,IAAI,IAAI,QAAQ,EAAE,SAAS,CAAC,eAAe,CAAC,CAAC;YACxD,SAAS;QACV,CAAC;QACD,8EAA8E;QAC9E,+CAA+C;QAC/C,MAAM,kBAAkB,GAAG,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC;QACvG,4EAA4E;QAC5E,mDAAmD;QACnD,MAAM,SAAS,GAAG,yBAAyB,CAC1C,SAAS,CAAC,YAAY,CAAC,IAAI,EAC3B,mBAAmB,EACnB,kBAAkB,EAClB,KAAK,EACL,SAAS,CAAC,YAAY,CAAC,UAAU,CACjC,CAAC;QACF,MAAM,IAAI,GAAG,SAAS,KAAK,SAAS,CAAC,MAAM;YAC1C,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,0BAA0B,CAAC,kBAAkB,EAAE,SAAS,CAAC,CAAC;QAC7D,WAAW,CAAC,IAAI,CAAC;YAChB,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,kBAAkB,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,gBAAgB;YAC9D,IAAI;YACJ,UAAU,EAAE,SAAS;YACrB,IAAI,EAAE,EAAE,CAAC,0BAA0B,CAAC,EAAE,IAAI,EAAE;SAC5C,CAAC,CAAC;IACJ,CAAC;IACD,OAAO,WAAW,CAAC;AACpB,CAAC;AAED,gFAAgF;AAChF,SAAS,kBAAkB,CAAC,CAAgE;IAC3F,OAAO,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC;AACzF,CAAC;AAED,mGAAmG;AACnG,SAAS,sBAAsB,CAAC,CAAgE;IAC/F,IAAI,CAAC,CAAC,IAAI,KAAK,YAAY;QAAE,OAAO,SAAS,CAAC;IAC9C,OAAO,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC;AAC/E,CAAC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,SAAS,yBAAyB,CACjC,aAAqB,EACrB,YAAoB,EACpB,UAA6E;IAE7E,MAAM,KAAK,GAAG,IAAI,CAAC;IACnB,MAAM,UAAU,GAAqB,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,aAAa,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;QACpF,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,GAAG;QACb,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,EAAoB;QAC7E,KAAK,EAAE,OAAO;KACK,CAAA,CAAC,CAAC;IAEtB,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;QACnD,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,KAAK;QACf,IAAI,EAAE,GAAG;QACT,KAAK,EAAE,IAAI;KACQ,CAAA,CAAC,CAAC;IAEtB,MAAM,QAAQ,GAAmB;QAChC,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAsB,EAAE,CAAC;QACtG,IAAI,EAAE,CAAC;gBACN,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE;gBACxE,KAAK;aACc,CAAC;QACrB,KAAK,EAAE,SAAS;KAChB,CAAC;IAEF,OAAO;QACN,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,IAAI;QACd,IAAI,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAsB;QAC/D,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,EAAqB;KACrC,CAAC;AACrB,CAAC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,UAAU,8BAA8B,CAAC,IAAc;IAC5D,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAClE,MAAM,GAAG,GAAG,uBAAuB,CAAC,IAAI,CAAC,CAAC;IAC1C,MAAM,QAAQ,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAC1C,MAAM,iBAAiB,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC;IACvD,MAAM,gBAAgB,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;IAChD,MAAM,WAAW,GAA0B,EAAE,CAAC;IAC9C,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;QAC3C,IAAI,UAAU,CAAC,IAAI,KAAK,oBAAoB,IAAI,UAAU,CAAC,IAAI,KAAK,aAAa;YAAE,SAAS;QAC5F,MAAM,CAAC,GAAG,UAAU,CAAC,UAAU,CAAC;QAChC,IAAI,CAAC,CAAC,IAAI,KAAK,YAAY,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ;YAAE,SAAS;QAC7D,MAAM,cAAc,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC;QAC7C,+EAA+E;QAC/E,4DAA4D;QAC5D,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QAC1C,gFAAgF;QAChF,6EAA6E;QAC7E,gFAAgF;QAChF,kFAAkF;QAClF,iFAAiF;QACjF,4EAA4E;QAC5E,sCAAsC;QACtC,MAAM,UAAU,GAAG,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;YAC1C,MAAM,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,IAAI,IAAI,IAAI,EAAE,EAAE,CAAC;YACtE,MAAM,EAAE,GAAG,aAAa,CAAC,WAAW,EAAE,CAAC;YACvC,MAAM,WAAW,GAAG,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChC,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;gBAC/B,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,EAAoB,EAAE,CAAC;YAC1G,CAAC;YACD,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACjC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC3B,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,aAAa,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC;YACtH,CAAC;YACD,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,EAAoB,EAAE,CAAC;QAC5G,CAAC,CAAC,CAAC;QACH,WAAW,CAAC,IAAI,CAAC;YAChB,IAAI,EAAE,sBAAsB,CAAC,CAAC,CAAC;YAC/B,IAAI,EAAE,yBAAyB,CAAC,iBAAiB,EAAE,gBAAgB,EAAE,UAAU,CAAC;YAChF,wEAAwE;YACxE,qEAAqE;YACrE,UAAU,EAAE,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM;YAC/C,IAAI,EAAE,EAAE,CAAC,0BAA0B,CAAC,EAAE,IAAI,EAAE;SAC5C,CAAC,CAAC;IACJ,CAAC;IACD,OAAO,WAAW,CAAC;AACpB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,+BAA+B,CAAC,IAAc;IAC7D,OAAO,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,oBAAoB,IAAI,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC;AACxG,CAAC"}
|
|
1
|
+
{"version":3,"file":"lens-enforcement.js","sourceRoot":"","sources":["../../../../src/planner/mutation/lens-enforcement.ts"],"names":[],"mappings":"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"}
|
|
@@ -798,10 +798,13 @@ function literalFromValue(scope, value) {
|
|
|
798
798
|
*
|
|
799
799
|
* NOTE (array-valued scalar param): binding `in (?)` with an *array* value (params
|
|
800
800
|
* `[[1,2]]`) is not IN-list expansion — the engine has no such concept. The seek key
|
|
801
|
-
* is the parameter expression, so at runtime the array
|
|
802
|
-
* scalar column value and the predicate
|
|
803
|
-
*
|
|
804
|
-
*
|
|
801
|
+
* is the parameter expression, so at runtime the array would compare unequal to every
|
|
802
|
+
* scalar column value and the predicate would match *nothing*. This is now rejected
|
|
803
|
+
* at bind time: the parameter is recognized as a scalar comparand on the *logical*
|
|
804
|
+
* plan (before this rule folds the comparison into a seek) by
|
|
805
|
+
* `collectScalarRequiredParams` (`planner/analysis/scalar-param-usage.ts`), and
|
|
806
|
+
* `Statement.validateParameterTypes` throws `StatusCode.MISMATCH` when such a
|
|
807
|
+
* parameter is bound to an array/object value.
|
|
805
808
|
*/
|
|
806
809
|
function equalitySeekKey(scope, c) {
|
|
807
810
|
if (c.op === 'IN' && Array.isArray(c.valueExpr) && c.valueExpr.length === 1) {
|