@quereus/quereus 4.10.0 → 4.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/planner/building/constraint-builder.d.ts +3 -2
- package/dist/src/planner/building/constraint-builder.d.ts.map +1 -1
- package/dist/src/planner/building/constraint-builder.js +15 -24
- package/dist/src/planner/building/constraint-builder.js.map +1 -1
- package/dist/src/planner/building/delete.d.ts.map +1 -1
- package/dist/src/planner/building/delete.js +7 -24
- package/dist/src/planner/building/delete.js.map +1 -1
- package/dist/src/planner/building/foreign-key-builder.d.ts +3 -2
- package/dist/src/planner/building/foreign-key-builder.d.ts.map +1 -1
- package/dist/src/planner/building/foreign-key-builder.js +13 -17
- package/dist/src/planner/building/foreign-key-builder.js.map +1 -1
- package/dist/src/planner/building/insert.d.ts.map +1 -1
- package/dist/src/planner/building/insert.js +16 -32
- package/dist/src/planner/building/insert.js.map +1 -1
- package/dist/src/planner/building/mutation-context.d.ts +63 -0
- package/dist/src/planner/building/mutation-context.d.ts.map +1 -0
- package/dist/src/planner/building/mutation-context.js +126 -0
- package/dist/src/planner/building/mutation-context.js.map +1 -0
- package/dist/src/planner/building/update.d.ts.map +1 -1
- package/dist/src/planner/building/update.js +7 -24
- package/dist/src/planner/building/update.js.map +1 -1
- package/dist/src/runtime/emit/alter-table.d.ts.map +1 -1
- package/dist/src/runtime/emit/alter-table.js +11 -2
- package/dist/src/runtime/emit/alter-table.js.map +1 -1
- package/dist/src/runtime/emit/constraint-check.d.ts.map +1 -1
- package/dist/src/runtime/emit/constraint-check.js +17 -7
- package/dist/src/runtime/emit/constraint-check.js.map +1 -1
- package/dist/src/runtime/emit/dml-executor.d.ts.map +1 -1
- package/dist/src/runtime/emit/dml-executor.js +5 -1
- package/dist/src/runtime/emit/dml-executor.js.map +1 -1
- package/dist/src/schema/catalog.d.ts +25 -2
- package/dist/src/schema/catalog.d.ts.map +1 -1
- package/dist/src/schema/catalog.js +35 -2
- package/dist/src/schema/catalog.js.map +1 -1
- package/dist/src/schema/constraint-builder.d.ts +15 -2
- package/dist/src/schema/constraint-builder.d.ts.map +1 -1
- package/dist/src/schema/constraint-builder.js +21 -5
- package/dist/src/schema/constraint-builder.js.map +1 -1
- package/dist/src/schema/manager.d.ts +13 -0
- package/dist/src/schema/manager.d.ts.map +1 -1
- package/dist/src/schema/manager.js +44 -11
- package/dist/src/schema/manager.js.map +1 -1
- package/dist/src/schema/table.d.ts +43 -0
- package/dist/src/schema/table.d.ts.map +1 -1
- package/dist/src/schema/table.js +80 -0
- package/dist/src/schema/table.js.map +1 -1
- package/package.json +3 -3
|
@@ -4,11 +4,12 @@ import { RowOpFlag } from '../../schema/table.js';
|
|
|
4
4
|
import type { Attribute, RowDescriptor } from '../nodes/plan-node.js';
|
|
5
5
|
import type { ConstraintCheck, NotNullDefaultPlan } from '../nodes/constraint-check-node.js';
|
|
6
6
|
import type { Scope } from '../scopes/scope.js';
|
|
7
|
+
import { type MutationContextAttribute } from './mutation-context.js';
|
|
7
8
|
/**
|
|
8
9
|
* Builds constraint check expressions at plan time.
|
|
9
10
|
* This allows the optimizer to see and optimize constraint expressions.
|
|
10
11
|
*/
|
|
11
|
-
export declare function buildConstraintChecks(ctx: PlanningContext, tableSchema: TableSchema, operation: RowOpFlag, oldAttributes: Attribute[], newAttributes: Attribute[], _flatRowDescriptor: RowDescriptor, contextAttributes?:
|
|
12
|
+
export declare function buildConstraintChecks(ctx: PlanningContext, tableSchema: TableSchema, operation: RowOpFlag, oldAttributes: Attribute[], newAttributes: Attribute[], _flatRowDescriptor: RowDescriptor, contextAttributes?: ReadonlyArray<MutationContextAttribute>,
|
|
12
13
|
/**
|
|
13
14
|
* Extra CHECK constraints to enforce alongside the table's own — already
|
|
14
15
|
* resolved in this table's column space. The lens layer threads its logical
|
|
@@ -36,7 +37,7 @@ additionalConstraints?: ReadonlyArray<RowConstraintSchema>): ConstraintCheck[];
|
|
|
36
37
|
* check time in `checkNotNullConstraints` by column index (the first NOT-NULL
|
|
37
38
|
* column with a NULL effective value), so don't look for it in this builder.
|
|
38
39
|
*/
|
|
39
|
-
export declare function buildNotNullDefaults(ctx: PlanningContext, tableSchema: TableSchema, newAttributes: Attribute[], contextAttributes?:
|
|
40
|
+
export declare function buildNotNullDefaults(ctx: PlanningContext, tableSchema: TableSchema, newAttributes: Attribute[], contextAttributes?: ReadonlyArray<MutationContextAttribute>,
|
|
40
41
|
/**
|
|
41
42
|
* Parent scope for `new.<col>` resolution, threaded by a synthetic decomposition /
|
|
42
43
|
* multi-source member insert (see {@link buildInsertStmt}'s `defaultRowContextScope`).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constraint-builder.d.ts","sourceRoot":"","sources":["../../../../src/planner/building/constraint-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC9E,OAAO,EAAE,SAAS,EAA+B,MAAM,uBAAuB,CAAC;AAC/E,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,KAAK,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAE7F,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"constraint-builder.d.ts","sourceRoot":"","sources":["../../../../src/planner/building/constraint-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC9E,OAAO,EAAE,SAAS,EAA+B,MAAM,uBAAuB,CAAC;AAC/E,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,KAAK,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAE7F,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAYhD,OAAO,EAA2D,KAAK,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAU/H;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,eAAe,EACpB,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,SAAS,EACpB,aAAa,EAAE,SAAS,EAAE,EAC1B,aAAa,EAAE,SAAS,EAAE,EAC1B,kBAAkB,EAAE,aAAa,EACjC,iBAAiB,GAAE,aAAa,CAAC,wBAAwB,CAAM;AAC/D;;;;;GAKG;AACH,qBAAqB,GAAE,aAAa,CAAC,mBAAmB,CAAM,GAC7D,eAAe,EAAE,CAsKnB;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,eAAe,EACpB,WAAW,EAAE,WAAW,EACxB,aAAa,EAAE,SAAS,EAAE,EAC1B,iBAAiB,GAAE,aAAa,CAAC,wBAAwB,CAAM;AAC/D;;;;;;;;GAQG;AACH,sBAAsB,CAAC,EAAE,KAAK,GAC7B,kBAAkB,EAAE,CA0CtB"}
|
|
@@ -9,6 +9,7 @@ import { columnSchemaToScalarType } from '../type-utils.js';
|
|
|
9
9
|
import { stripSelfQualifierInCheckExpression } from '../../schema/rename-rewriter.js';
|
|
10
10
|
import { buildColumnSourceResolver } from '../../schema/column-source-resolver.js';
|
|
11
11
|
import { cloneExpr } from '../mutation/scope-transform.js';
|
|
12
|
+
import { mutationContextVarNames, registerMutationContextSymbols } from './mutation-context.js';
|
|
12
13
|
/**
|
|
13
14
|
* Determines if a constraint should be checked for the given operation
|
|
14
15
|
*/
|
|
@@ -47,20 +48,16 @@ additionalConstraints = []) {
|
|
|
47
48
|
const applicableConstraints = [...tableSchema.checkConstraints, ...additionalConstraints]
|
|
48
49
|
.filter(constraint => shouldCheckConstraint(constraint, operation));
|
|
49
50
|
const resolveColumnInSource = buildColumnSourceResolver(ctx.db);
|
|
51
|
+
// Bare column names a mutation context variable claims. The unqualified form is left
|
|
52
|
+
// to the context variable (the documented WITH CONTEXT precedence); the shadowed
|
|
53
|
+
// column stays reachable as `new.<col>` / `old.<col>`.
|
|
54
|
+
const shadowedByContext = mutationContextVarNames(contextAttributes);
|
|
50
55
|
// Build expression nodes for each constraint
|
|
51
56
|
return applicableConstraints.map(constraint => {
|
|
52
57
|
// Create scope with OLD/NEW column access for constraint evaluation
|
|
53
58
|
const constraintScope = new RegisteredScope(ctx.scope);
|
|
54
59
|
// Register mutation context variables FIRST (so they shadow column names if conflicts exist)
|
|
55
|
-
|
|
56
|
-
if (contextVarIndex < (tableSchema.mutationContext?.length || 0)) {
|
|
57
|
-
const contextVar = tableSchema.mutationContext[contextVarIndex];
|
|
58
|
-
const varNameLower = contextVar.name.toLowerCase();
|
|
59
|
-
// Register both unqualified and qualified names
|
|
60
|
-
constraintScope.registerSymbol(varNameLower, (exp, s) => new ColumnReferenceNode(s, exp, attr.type, attr.id, contextVarIndex));
|
|
61
|
-
constraintScope.registerSymbol(`context.${varNameLower}`, (exp, s) => new ColumnReferenceNode(s, exp, attr.type, attr.id, contextVarIndex));
|
|
62
|
-
}
|
|
63
|
-
});
|
|
60
|
+
registerMutationContextSymbols(constraintScope, contextAttributes);
|
|
64
61
|
// The per-relation write-row correlation for THIS op's target relation — the
|
|
65
62
|
// decomposition analogue of `NEW`. A lens row-local CHECK rewritten over a multi-member
|
|
66
63
|
// decomposition qualifies its write-row terms with `writeRowRelationCorrelation(owning
|
|
@@ -89,8 +86,9 @@ additionalConstraints = []) {
|
|
|
89
86
|
// Relation-qualified write-row correlation (lens decomposition rewrite) — the
|
|
90
87
|
// `<corr>.<col>` analogue of `new.<col>` for this member relation.
|
|
91
88
|
constraintScope.registerSymbol(`${writeRowCorr}.${colNameLower}`, (exp, s) => new ColumnReferenceNode(s, exp, newColumnType, newAttrId, tableColIndex));
|
|
92
|
-
// For INSERT/UPDATE, unqualified column defaults to NEW
|
|
93
|
-
|
|
89
|
+
// For INSERT/UPDATE, unqualified column defaults to NEW — unless a mutation
|
|
90
|
+
// context variable claims the bare name.
|
|
91
|
+
if ((operation === RowOpFlag.INSERT || operation === RowOpFlag.UPDATE) && !shadowedByContext.has(colNameLower)) {
|
|
94
92
|
constraintScope.registerSymbol(colNameLower, (exp, s) => new ColumnReferenceNode(s, exp, newColumnType, newAttrId, tableColIndex));
|
|
95
93
|
}
|
|
96
94
|
}
|
|
@@ -101,8 +99,9 @@ additionalConstraints = []) {
|
|
|
101
99
|
const oldColumnType = columnSchemaToScalarType(tableColumn, { nullable: true });
|
|
102
100
|
// OLD.column
|
|
103
101
|
constraintScope.registerSymbol(`old.${colNameLower}`, (exp, s) => new ColumnReferenceNode(s, exp, oldColumnType, oldAttrId, tableColIndex));
|
|
104
|
-
// For DELETE, unqualified column defaults to OLD
|
|
105
|
-
|
|
102
|
+
// For DELETE, unqualified column defaults to OLD — unless a mutation context
|
|
103
|
+
// variable claims the bare name.
|
|
104
|
+
if (operation === RowOpFlag.DELETE && !shadowedByContext.has(colNameLower)) {
|
|
106
105
|
constraintScope.registerSymbol(colNameLower, (exp, s) => new ColumnReferenceNode(s, exp, oldColumnType, oldAttrId, tableColIndex));
|
|
107
106
|
}
|
|
108
107
|
}
|
|
@@ -197,6 +196,8 @@ export function buildNotNullDefaults(ctx, tableSchema, newAttributes, contextAtt
|
|
|
197
196
|
*/
|
|
198
197
|
defaultRowContextScope) {
|
|
199
198
|
const result = [];
|
|
199
|
+
// Bare column names a mutation context variable claims (see buildConstraintChecks).
|
|
200
|
+
const reservedKeys = mutationContextVarNames(contextAttributes);
|
|
200
201
|
for (let columnIndex = 0; columnIndex < tableSchema.columns.length; columnIndex++) {
|
|
201
202
|
const column = tableSchema.columns[columnIndex];
|
|
202
203
|
if (!column.notNull)
|
|
@@ -205,19 +206,9 @@ defaultRowContextScope) {
|
|
|
205
206
|
if (!defaultExpr || typeof defaultExpr !== 'object' || !('type' in defaultExpr))
|
|
206
207
|
continue;
|
|
207
208
|
const scope = new RegisteredScope(defaultRowContextScope ?? ctx.scope);
|
|
208
|
-
const reservedKeys = new Set();
|
|
209
209
|
// Mutation context variables first so they shadow column names if conflicts exist
|
|
210
210
|
// (matches createRowExpansionProjection's resolution order).
|
|
211
|
-
|
|
212
|
-
if (contextVarIndex < (tableSchema.mutationContext?.length || 0)) {
|
|
213
|
-
const contextVar = tableSchema.mutationContext[contextVarIndex];
|
|
214
|
-
const varNameLower = contextVar.name.toLowerCase();
|
|
215
|
-
scope.registerSymbol(varNameLower, (exp, s) => new ColumnReferenceNode(s, exp, attr.type, attr.id, contextVarIndex));
|
|
216
|
-
scope.registerSymbol(`context.${varNameLower}`, (exp, s) => new ColumnReferenceNode(s, exp, attr.type, attr.id, contextVarIndex));
|
|
217
|
-
reservedKeys.add(varNameLower);
|
|
218
|
-
reservedKeys.add(`context.${varNameLower}`);
|
|
219
|
-
}
|
|
220
|
-
});
|
|
211
|
+
registerMutationContextSymbols(scope, contextAttributes);
|
|
221
212
|
// Register NEW columns (DEFAULT can reference siblings as in row-expansion).
|
|
222
213
|
// Skip the unqualified form when shadowed by a mutation context variable; the
|
|
223
214
|
// qualified `new.<col>` form remains available.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constraint-builder.js","sourceRoot":"","sources":["../../../../src/planner/building/constraint-builder.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAC;AAG/E,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1D,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,OAAO,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE3D,OAAO,EAAE,+BAA+B,EAAE,MAAM,wCAAwC,CAAC;AACzF,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,mCAAmC,EAAE,MAAM,iCAAiC,CAAC;AACtF,OAAO,EAAE,yBAAyB,EAAE,MAAM,wCAAwC,CAAC;AACnF,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"constraint-builder.js","sourceRoot":"","sources":["../../../../src/planner/building/constraint-builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delete.d.ts","sourceRoot":"","sources":["../../../../src/planner/building/delete.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,GAAG,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAI9D,OAAO,EAAE,QAAQ,
|
|
1
|
+
{"version":3,"file":"delete.d.ts","sourceRoot":"","sources":["../../../../src/planner/building/delete.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,GAAG,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAI9D,OAAO,EAAE,QAAQ,EAAoE,MAAM,uBAAuB,CAAC;AASnH,OAAO,EAAa,KAAK,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAoB5E,wBAAgB,eAAe,CAC7B,GAAG,EAAE,eAAe,EACpB,IAAI,EAAE,GAAG,CAAC,UAAU;AACpB;;;;;;;GAOG;AACH,qBAAqB,GAAE,aAAa,CAAC,mBAAmB,CAAM;AAC9D;;;;;;GAMG;AACH,UAAU,UAAQ,GACjB,QAAQ,CA+SV"}
|
|
@@ -28,6 +28,7 @@ import { raiseStmtTagDiagnostics } from './tag-diagnostics.js';
|
|
|
28
28
|
import { buildWithContext } from './select-context.js';
|
|
29
29
|
import { resolveCteTarget, contextForCteTarget, resolveSubqueryTarget } from './dml-target.js';
|
|
30
30
|
import { schemaAuthoredContext } from './schema-authored-context.js';
|
|
31
|
+
import { buildMutationContextAttributes, buildMutationContextValues } from './mutation-context.js';
|
|
31
32
|
export function buildDeleteStmt(ctx, stmt,
|
|
32
33
|
/**
|
|
33
34
|
* Extra row constraints to enforce alongside the table's own — already resolved
|
|
@@ -106,30 +107,12 @@ lensRouted = false) {
|
|
|
106
107
|
if (isMaintainedTable(deleteResolved)) {
|
|
107
108
|
return buildViewMutation(contextWithCTEs, maintainedTableViewLike(deleteResolved), { op: 'delete', stmt });
|
|
108
109
|
}
|
|
109
|
-
//
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
contextAttributes.push({
|
|
116
|
-
id: PlanNode.nextAttrId(),
|
|
117
|
-
name: contextVar.name,
|
|
118
|
-
type: {
|
|
119
|
-
typeClass: 'scalar',
|
|
120
|
-
logicalType: contextVar.logicalType,
|
|
121
|
-
nullable: !contextVar.notNull,
|
|
122
|
-
isReadOnly: true
|
|
123
|
-
},
|
|
124
|
-
sourceRelation: `context.${tableReference.tableSchema.name}`
|
|
125
|
-
});
|
|
126
|
-
});
|
|
127
|
-
// Build context value expressions (evaluated in the base scope, before table scope)
|
|
128
|
-
stmt.contextValues.forEach((assignment) => {
|
|
129
|
-
const valueExpr = buildExpression(contextWithCTEs, assignment.value);
|
|
130
|
-
mutationContextValues.set(assignment.name, valueExpr);
|
|
131
|
-
});
|
|
132
|
-
}
|
|
110
|
+
// Mutation context is driven by the TABLE's declaration, not by the statement — see
|
|
111
|
+
// building/mutation-context.ts. Values are evaluated in the base scope, before the
|
|
112
|
+
// table scope; a declared variable the statement omitted gets a NULL literal, and a
|
|
113
|
+
// NOT NULL one fails at reference time from any `check on delete` that reads it.
|
|
114
|
+
const contextAttributes = buildMutationContextAttributes(tableReference.tableSchema, stmt.contextValues);
|
|
115
|
+
const mutationContextValues = buildMutationContextValues(contextWithCTEs, contextAttributes, stmt.contextValues);
|
|
133
116
|
// Plan the source of rows to delete. This is typically the table itself, potentially filtered.
|
|
134
117
|
let sourceNode = tableRetrieve; // Use the RetrieveNode as source
|
|
135
118
|
// Create a new scope with the table columns registered for column resolution.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delete.js","sourceRoot":"","sources":["../../../../src/planner/building/delete.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"delete.js","sourceRoot":"","sources":["../../../../src/planner/building/delete.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,7 @@ import { ConflictResolution } from '../../common/constants.js';
|
|
|
6
6
|
import type { Attribute } from '../nodes/plan-node.js';
|
|
7
7
|
import type { ConstraintCheck } from '../nodes/constraint-check-node.js';
|
|
8
8
|
import * as AST from '../../parser/ast.js';
|
|
9
|
+
import { type MutationContextAttribute } from './mutation-context.js';
|
|
9
10
|
/**
|
|
10
11
|
* Assembles the MATCH SIMPLE-guarded child-side FK existence expression:
|
|
11
12
|
*
|
|
@@ -39,12 +40,12 @@ export declare function synthesizeFKNotExistsExpr(childTableName: string, childC
|
|
|
39
40
|
* Builds child-side FK constraint checks (for INSERT/UPDATE on the referencing table).
|
|
40
41
|
* For each FK, generates an EXISTS check ensuring the parent row exists.
|
|
41
42
|
*/
|
|
42
|
-
export declare function buildChildSideFKChecks(ctx: PlanningContext, tableSchema: TableSchema, operation: RowOpFlag, oldAttributes: Attribute[], newAttributes: Attribute[], contextAttributes?:
|
|
43
|
+
export declare function buildChildSideFKChecks(ctx: PlanningContext, tableSchema: TableSchema, operation: RowOpFlag, oldAttributes: Attribute[], newAttributes: Attribute[], contextAttributes?: ReadonlyArray<MutationContextAttribute>): ConstraintCheck[];
|
|
43
44
|
/**
|
|
44
45
|
* Builds parent-side FK constraint checks (for DELETE/UPDATE on the referenced table).
|
|
45
46
|
* For each FK that references this table, generates a NOT EXISTS check for RESTRICT/NO ACTION.
|
|
46
47
|
*/
|
|
47
|
-
export declare function buildParentSideFKChecks(ctx: PlanningContext, tableSchema: TableSchema, operation: RowOpFlag, oldAttributes: Attribute[], newAttributes: Attribute[], contextAttributes?:
|
|
48
|
+
export declare function buildParentSideFKChecks(ctx: PlanningContext, tableSchema: TableSchema, operation: RowOpFlag, oldAttributes: Attribute[], newAttributes: Attribute[], contextAttributes?: ReadonlyArray<MutationContextAttribute>): ConstraintCheck[];
|
|
48
49
|
/**
|
|
49
50
|
* One inbound RESTRICT FK eligible for statement-end batched enforcement —
|
|
50
51
|
* discovery output of {@link getBatchableRestrictFks}, consumed by the runtime
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"foreign-key-builder.d.ts","sourceRoot":"","sources":["../../../../src/planner/building/foreign-key-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,0BAA0B,EAAuB,MAAM,uBAAuB,CAAC;AAC1G,OAAO,EAAE,SAAS,EAA4C,MAAM,uBAAuB,CAAC;AAC5F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,KAAK,EAAE,SAAS,EAAkB,MAAM,uBAAuB,CAAC;AACvE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AAMzE,OAAO,KAAK,GAAG,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"foreign-key-builder.d.ts","sourceRoot":"","sources":["../../../../src/planner/building/foreign-key-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,0BAA0B,EAAuB,MAAM,uBAAuB,CAAC;AAC1G,OAAO,EAAE,SAAS,EAA4C,MAAM,uBAAuB,CAAC;AAC5F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,KAAK,EAAE,SAAS,EAAkB,MAAM,uBAAuB,CAAC;AACvE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AAMzE,OAAO,KAAK,GAAG,MAAM,qBAAqB,CAAC;AAE3C,OAAO,EAA2D,KAAK,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AA4C/H;;;;;;;;;;;;GAYG;AACH,wBAAgB,sBAAsB,CACrC,eAAe,EAAE,MAAM,EACvB,aAAa,EAAE,SAAS,MAAM,EAAE,EAChC,YAAY,EAAE,SAAS,MAAM,EAAE,EAC/B,SAAS,EAAE,KAAK,GAAG,KAAK,EACxB,UAAU,CAAC,EAAE,MAAM,GACjB,GAAG,CAAC,UAAU,CAyBhB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,yBAAyB,CACxC,cAAc,EAAE,MAAM,EACtB,YAAY,EAAE,SAAS,MAAM,EAAE,EAC/B,aAAa,EAAE,SAAS,MAAM,EAAE,EAChC,SAAS,EAAE,KAAK,GAAG,KAAK,EACxB,UAAU,CAAC,EAAE,MAAM,GACjB,GAAG,CAAC,SAAS,CAgBf;AAiDD;;;GAGG;AACH,wBAAgB,sBAAsB,CACrC,GAAG,EAAE,eAAe,EACpB,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,SAAS,EACpB,aAAa,EAAE,SAAS,EAAE,EAC1B,aAAa,EAAE,SAAS,EAAE,EAC1B,iBAAiB,GAAE,aAAa,CAAC,wBAAwB,CAAM,GAC7D,eAAe,EAAE,CAgHnB;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CACtC,GAAG,EAAE,eAAe,EACpB,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,SAAS,EACpB,aAAa,EAAE,SAAS,EAAE,EAC1B,aAAa,EAAE,SAAS,EAAE,EAC1B,iBAAiB,GAAE,aAAa,CAAC,wBAAwB,CAAM,GAC7D,eAAe,EAAE,CAmHnB;AAED;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IACnC,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC;IACjC,QAAQ,CAAC,EAAE,EAAE,0BAA0B,CAAC;IACxC,wFAAwF;IACxF,QAAQ,CAAC,gBAAgB,EAAE,MAAM,EAAE,CAAC;CACpC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,uBAAuB,CACtC,aAAa,EAAE,aAAa,EAC5B,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,QAAQ,GAAG,QAAQ,EAC9B,UAAU,EAAE,kBAAkB,GAAG,SAAS,EAC1C,UAAU,EAAE,OAAO,GACjB,mBAAmB,EAAE,GAAG,SAAS,CAqBnC"}
|
|
@@ -6,6 +6,7 @@ import { ColumnReferenceNode } from '../nodes/reference.js';
|
|
|
6
6
|
import { columnSchemaToScalarType } from '../type-utils.js';
|
|
7
7
|
import { basisFksOverriddenByDivergentLensFk } from '../../schema/lens-fk-discovery.js';
|
|
8
8
|
import { createLogger } from '../../common/logger.js';
|
|
9
|
+
import { mutationContextVarNames, registerMutationContextSymbols } from './mutation-context.js';
|
|
9
10
|
const log = createLogger('planner:fk-builder');
|
|
10
11
|
/**
|
|
11
12
|
* Builds a SELECT 1 FROM [<schema>.]<table> WHERE <col pairs joined by AND>
|
|
@@ -142,6 +143,9 @@ export function buildChildSideFKChecks(ctx, tableSchema, operation, oldAttribute
|
|
|
142
143
|
if (operation !== RowOpFlag.INSERT && operation !== RowOpFlag.UPDATE)
|
|
143
144
|
return [];
|
|
144
145
|
const checks = [];
|
|
146
|
+
// Bare column names a mutation context variable claims — the unqualified form is
|
|
147
|
+
// left to the context variable (WITH CONTEXT precedence, as in buildConstraintChecks).
|
|
148
|
+
const shadowedByContext = mutationContextVarNames(contextAttributes);
|
|
145
149
|
for (const fk of tableSchema.foreignKeys) {
|
|
146
150
|
// Resolve parent table. If absent, MATCH SIMPLE still allows the row when any
|
|
147
151
|
// FK column is NULL — but otherwise no parent row can match, so the check must
|
|
@@ -176,14 +180,8 @@ export function buildChildSideFKChecks(ctx, tableSchema, operation, oldAttribute
|
|
|
176
180
|
};
|
|
177
181
|
// Build the expression using a scope with OLD/NEW column access
|
|
178
182
|
const constraintScope = new RegisteredScope(ctx.scope);
|
|
179
|
-
// Register mutation context variables
|
|
180
|
-
|
|
181
|
-
if (contextVarIndex < (tableSchema.mutationContext?.length || 0)) {
|
|
182
|
-
const contextVar = tableSchema.mutationContext[contextVarIndex];
|
|
183
|
-
const varNameLower = contextVar.name.toLowerCase();
|
|
184
|
-
constraintScope.registerSymbol(varNameLower, (exp, s) => new ColumnReferenceNode(s, exp, attr.type, attr.id, contextVarIndex));
|
|
185
|
-
}
|
|
186
|
-
});
|
|
183
|
+
// Register mutation context variables FIRST (so they shadow column names)
|
|
184
|
+
registerMutationContextSymbols(constraintScope, contextAttributes);
|
|
187
185
|
// Register column symbols
|
|
188
186
|
tableSchema.columns.forEach((tableColumn, tableColIndex) => {
|
|
189
187
|
const colNameLower = tableColumn.name.toLowerCase();
|
|
@@ -194,7 +192,7 @@ export function buildChildSideFKChecks(ctx, tableSchema, operation, oldAttribute
|
|
|
194
192
|
// query would (mirrors the CHECK constraint scope).
|
|
195
193
|
const newColumnType = columnSchemaToScalarType(tableColumn);
|
|
196
194
|
constraintScope.registerSymbol(`new.${colNameLower}`, (exp, s) => new ColumnReferenceNode(s, exp, newColumnType, newAttr.id, tableColIndex));
|
|
197
|
-
if (operation === RowOpFlag.INSERT || operation === RowOpFlag.UPDATE) {
|
|
195
|
+
if ((operation === RowOpFlag.INSERT || operation === RowOpFlag.UPDATE) && !shadowedByContext.has(colNameLower)) {
|
|
198
196
|
constraintScope.registerSymbol(colNameLower, (exp, s) => new ColumnReferenceNode(s, exp, newColumnType, newAttr.id, tableColIndex));
|
|
199
197
|
}
|
|
200
198
|
}
|
|
@@ -238,6 +236,8 @@ export function buildParentSideFKChecks(ctx, tableSchema, operation, oldAttribut
|
|
|
238
236
|
if (operation !== RowOpFlag.DELETE && operation !== RowOpFlag.UPDATE)
|
|
239
237
|
return [];
|
|
240
238
|
const checks = [];
|
|
239
|
+
// Bare column names a mutation context variable claims (see buildChildSideFKChecks).
|
|
240
|
+
const shadowedByContext = mutationContextVarNames(contextAttributes);
|
|
241
241
|
// Basis RESTRICT FKs a divergent non-RESTRICT logical FK overrides — their immediate
|
|
242
242
|
// plan-time NOT EXISTS is suppressed so the parent write a logical cascade must
|
|
243
243
|
// complete is not rejected. Cheap-empty when no lens slot is backed by `tableSchema`.
|
|
@@ -274,12 +274,8 @@ export function buildParentSideFKChecks(ctx, tableSchema, operation, oldAttribut
|
|
|
274
274
|
};
|
|
275
275
|
// Build scope with OLD/NEW column access
|
|
276
276
|
const constraintScope = new RegisteredScope(ctx.scope);
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
const contextVar = tableSchema.mutationContext[contextVarIndex];
|
|
280
|
-
constraintScope.registerSymbol(contextVar.name.toLowerCase(), (exp, s) => new ColumnReferenceNode(s, exp, attr.type, attr.id, contextVarIndex));
|
|
281
|
-
}
|
|
282
|
-
});
|
|
277
|
+
// Register mutation context variables FIRST (so they shadow column names)
|
|
278
|
+
registerMutationContextSymbols(constraintScope, contextAttributes);
|
|
283
279
|
tableSchema.columns.forEach((tableColumn, tableColIndex) => {
|
|
284
280
|
const colNameLower = tableColumn.name.toLowerCase();
|
|
285
281
|
const oldAttr = oldAttributes[tableColIndex];
|
|
@@ -287,7 +283,7 @@ export function buildParentSideFKChecks(ctx, tableSchema, operation, oldAttribut
|
|
|
287
283
|
const oldColumnType = columnSchemaToScalarType(tableColumn);
|
|
288
284
|
constraintScope.registerSymbol(`old.${colNameLower}`, (exp, s) => new ColumnReferenceNode(s, exp, oldColumnType, oldAttr.id, tableColIndex));
|
|
289
285
|
// For DELETE, unqualified defaults to OLD
|
|
290
|
-
if (operation === RowOpFlag.DELETE) {
|
|
286
|
+
if (operation === RowOpFlag.DELETE && !shadowedByContext.has(colNameLower)) {
|
|
291
287
|
constraintScope.registerSymbol(colNameLower, (exp, s) => new ColumnReferenceNode(s, exp, oldColumnType, oldAttr.id, tableColIndex));
|
|
292
288
|
}
|
|
293
289
|
}
|
|
@@ -295,7 +291,7 @@ export function buildParentSideFKChecks(ctx, tableSchema, operation, oldAttribut
|
|
|
295
291
|
if (newAttr) {
|
|
296
292
|
const newColumnType = columnSchemaToScalarType(tableColumn, { nullable: true });
|
|
297
293
|
constraintScope.registerSymbol(`new.${colNameLower}`, (exp, s) => new ColumnReferenceNode(s, exp, newColumnType, newAttr.id, tableColIndex));
|
|
298
|
-
if (operation === RowOpFlag.UPDATE) {
|
|
294
|
+
if (operation === RowOpFlag.UPDATE && !shadowedByContext.has(colNameLower)) {
|
|
299
295
|
constraintScope.registerSymbol(colNameLower, (exp, s) => new ColumnReferenceNode(s, exp, newColumnType, newAttr.id, tableColIndex));
|
|
300
296
|
}
|
|
301
297
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"foreign-key-builder.js","sourceRoot":"","sources":["../../../../src/planner/building/foreign-key-builder.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"foreign-key-builder.js","sourceRoot":"","sources":["../../../../src/planner/building/foreign-key-builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"insert.d.ts","sourceRoot":"","sources":["../../../../src/planner/building/insert.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,GAAG,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAU9D,OAAO,EAAE,QAAQ,EAAE,KAAK,kBAAkB,EAA2D,MAAM,uBAAuB,CAAC;AAKnI,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAKhD,OAAO,EAA+B,KAAK,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"insert.d.ts","sourceRoot":"","sources":["../../../../src/planner/building/insert.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,GAAG,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAU9D,OAAO,EAAE,QAAQ,EAAE,KAAK,kBAAkB,EAA2D,MAAM,uBAAuB,CAAC;AAKnI,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAKhD,OAAO,EAA+B,KAAK,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAikB9F,wBAAgB,eAAe,CAC9B,GAAG,EAAE,eAAe,EACpB,IAAI,EAAE,GAAG,CAAC,UAAU;AACpB;;;;;;GAMG;AACH,gBAAgB,GAAE,aAAa,CAAC,mBAAmB,CAAM;AACzD;;;;;;;;;GASG;AACH,cAAc,CAAC,EAAE,kBAAkB;AACnC;;;;;;GAMG;AACH,UAAU,UAAQ;AAClB;;;;;;;;;;;;GAYG;AACH,sBAAsB,CAAC,EAAE,KAAK,GAC5B,QAAQ,CAuaV"}
|
|
@@ -33,6 +33,7 @@ import { isMaintainedTable, maintainedTableViewLike } from '../../schema/derivat
|
|
|
33
33
|
import { isViewSchema } from '../../schema/view.js';
|
|
34
34
|
import { validateReservedTags } from '../../schema/reserved-tags.js';
|
|
35
35
|
import { raiseStmtTagDiagnostics } from './tag-diagnostics.js';
|
|
36
|
+
import { buildMutationContextAttributes, buildMutationContextValues, registerMutationContextSymbols } from './mutation-context.js';
|
|
36
37
|
/**
|
|
37
38
|
* Creates a uniform row expansion projection that maps any relational source
|
|
38
39
|
* to the target table's column structure, filling in defaults for omitted columns.
|
|
@@ -569,45 +570,28 @@ defaultRowContextScope) {
|
|
|
569
570
|
if (isMaintainedTable(insertResolved)) {
|
|
570
571
|
return buildViewMutation(contextWithCTEs, maintainedTableViewLike(insertResolved), { op: 'insert', stmt });
|
|
571
572
|
}
|
|
572
|
-
//
|
|
573
|
-
|
|
574
|
-
|
|
573
|
+
// Mutation context is driven by the TABLE's declaration, not by the statement: the
|
|
574
|
+
// symbols are registered whenever the table declares any, so a default or CHECK that
|
|
575
|
+
// reads one still resolves when the statement carries no `with context` clause. A
|
|
576
|
+
// NOT NULL variable the statement omitted then fails at reference time with a message
|
|
577
|
+
// naming the table and the variable — see building/mutation-context.ts.
|
|
578
|
+
const contextAttributes = buildMutationContextAttributes(tableReference.tableSchema, stmt.contextValues);
|
|
575
579
|
let contextScope;
|
|
576
|
-
if (
|
|
577
|
-
// Create context attributes
|
|
578
|
-
tableReference.tableSchema.mutationContext.forEach((contextVar) => {
|
|
579
|
-
contextAttributes.push({
|
|
580
|
-
id: PlanNode.nextAttrId(),
|
|
581
|
-
name: contextVar.name,
|
|
582
|
-
type: {
|
|
583
|
-
typeClass: 'scalar',
|
|
584
|
-
logicalType: contextVar.logicalType,
|
|
585
|
-
nullable: !contextVar.notNull,
|
|
586
|
-
isReadOnly: true
|
|
587
|
-
},
|
|
588
|
-
sourceRelation: `context.${tableReference.tableSchema.name}`
|
|
589
|
-
});
|
|
590
|
-
});
|
|
580
|
+
if (contextAttributes.length > 0) {
|
|
591
581
|
// Create a new scope for mutation context. When a synthetic member insert
|
|
592
582
|
// threads a produced-row NEW context, parent on it so context variables still
|
|
593
583
|
// shadow the envelope's `new.<col>` (WITH CONTEXT precedence), while an envelope
|
|
594
584
|
// column the member does not carry stays resolvable below.
|
|
595
585
|
contextScope = new RegisteredScope(defaultRowContextScope ?? contextWithCTEs.scope);
|
|
596
|
-
|
|
597
|
-
contextAttributes.forEach((attr, index) => {
|
|
598
|
-
const contextVar = tableReference.tableSchema.mutationContext[index];
|
|
599
|
-
const varNameLower = contextVar.name.toLowerCase();
|
|
600
|
-
// Register both unqualified and qualified names
|
|
601
|
-
contextScope.registerSymbol(varNameLower, (exp, s) => new ColumnReferenceNode(s, exp, attr.type, attr.id, index));
|
|
602
|
-
contextScope.registerSymbol(`context.${varNameLower}`, (exp, s) => new ColumnReferenceNode(s, exp, attr.type, attr.id, index));
|
|
603
|
-
});
|
|
604
|
-
// Build context value expressions using the context scope
|
|
605
|
-
const contextWithScope = { ...contextWithCTEs, scope: contextScope };
|
|
606
|
-
stmt.contextValues.forEach((assignment) => {
|
|
607
|
-
const valueExpr = buildExpression(contextWithScope, assignment.value);
|
|
608
|
-
mutationContextValues.set(assignment.name, valueExpr);
|
|
609
|
-
});
|
|
586
|
+
registerMutationContextSymbols(contextScope, contextAttributes);
|
|
610
587
|
}
|
|
588
|
+
// Build the context value expressions against the produced-row NEW context when a
|
|
589
|
+
// synthetic member insert threads one, but NOT against `contextScope` itself: a
|
|
590
|
+
// context value that reads a context variable has no context row to read it from
|
|
591
|
+
// and fails at runtime with an opaque "no row context found". Resolving outward
|
|
592
|
+
// instead reports it as the ordinary unresolved column it is, matching UPDATE and
|
|
593
|
+
// DELETE, which build their values in the plain base scope.
|
|
594
|
+
const mutationContextValues = buildMutationContextValues(defaultRowContextScope ? { ...contextWithCTEs, scope: defaultRowContextScope } : contextWithCTEs, contextAttributes, stmt.contextValues);
|
|
611
595
|
let targetColumns = [];
|
|
612
596
|
if (stmt.columns && stmt.columns.length > 0) {
|
|
613
597
|
// Reject a column named more than once in the INSERT column list
|