@quereus/quereus 4.19.4 → 4.20.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/README.md +257 -257
- package/dist/src/common/errors.d.ts +10 -0
- package/dist/src/common/errors.d.ts.map +1 -1
- package/dist/src/common/errors.js +14 -0
- package/dist/src/common/errors.js.map +1 -1
- package/dist/src/common/types.d.ts +16 -4
- package/dist/src/common/types.d.ts.map +1 -1
- package/dist/src/common/types.js.map +1 -1
- package/dist/src/core/database-events.d.ts.map +1 -1
- package/dist/src/core/database-events.js +12 -9
- package/dist/src/core/database-events.js.map +1 -1
- package/dist/src/core/database-transaction.d.ts.map +1 -1
- package/dist/src/core/database-transaction.js +28 -19
- package/dist/src/core/database-transaction.js.map +1 -1
- package/dist/src/core/database.d.ts +58 -6
- package/dist/src/core/database.d.ts.map +1 -1
- package/dist/src/core/database.js +185 -54
- package/dist/src/core/database.js.map +1 -1
- package/dist/src/core/param.d.ts +46 -1
- package/dist/src/core/param.d.ts.map +1 -1
- package/dist/src/core/param.js +87 -7
- package/dist/src/core/param.js.map +1 -1
- package/dist/src/core/statement.d.ts +66 -1
- package/dist/src/core/statement.d.ts.map +1 -1
- package/dist/src/core/statement.js +156 -91
- package/dist/src/core/statement.js.map +1 -1
- package/dist/src/index.d.ts +4 -4
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +5 -4
- package/dist/src/index.js.map +1 -1
- package/dist/src/parser/lexer.d.ts.map +1 -1
- package/dist/src/parser/lexer.js +9 -3
- package/dist/src/parser/lexer.js.map +1 -1
- package/dist/src/planner/analysis/change-scope.d.ts.map +1 -1
- package/dist/src/planner/analysis/change-scope.js +7 -20
- package/dist/src/planner/analysis/change-scope.js.map +1 -1
- package/dist/src/planner/analysis/check-extraction.d.ts +62 -0
- package/dist/src/planner/analysis/check-extraction.d.ts.map +1 -1
- package/dist/src/planner/analysis/check-extraction.js +19 -5
- package/dist/src/planner/analysis/check-extraction.js.map +1 -1
- package/dist/src/planner/analysis/constraint-extractor.d.ts.map +1 -1
- package/dist/src/planner/analysis/constraint-extractor.js +7 -0
- package/dist/src/planner/analysis/constraint-extractor.js.map +1 -1
- package/dist/src/planner/analysis/scalar-param-usage.d.ts +6 -3
- package/dist/src/planner/analysis/scalar-param-usage.d.ts.map +1 -1
- package/dist/src/planner/analysis/scalar-param-usage.js +32 -4
- package/dist/src/planner/analysis/scalar-param-usage.js.map +1 -1
- package/dist/src/planner/building/coercion.js +1 -1
- package/dist/src/planner/building/coercion.js.map +1 -1
- package/dist/src/planner/building/schema-authored-context.d.ts +7 -7
- package/dist/src/planner/building/schema-authored-context.js +7 -7
- package/dist/src/planner/nodes/scalar.d.ts +19 -1
- package/dist/src/planner/nodes/scalar.d.ts.map +1 -1
- package/dist/src/planner/nodes/scalar.js +13 -2
- package/dist/src/planner/nodes/scalar.js.map +1 -1
- package/dist/src/planner/nodes/set-operation-node.js +4 -0
- package/dist/src/planner/nodes/set-operation-node.js.map +1 -1
- package/dist/src/runtime/emit/add-constraint.js +44 -1
- package/dist/src/runtime/emit/add-constraint.js.map +1 -1
- package/dist/src/runtime/emit/alter-table.d.ts.map +1 -1
- package/dist/src/runtime/emit/alter-table.js +20 -32
- package/dist/src/runtime/emit/alter-table.js.map +1 -1
- package/dist/src/runtime/emit/ddl-event-scope.d.ts +20 -13
- package/dist/src/runtime/emit/ddl-event-scope.d.ts.map +1 -1
- package/dist/src/runtime/emit/ddl-event-scope.js +20 -13
- package/dist/src/runtime/emit/ddl-event-scope.js.map +1 -1
- package/dist/src/runtime/emit/materialized-view-helpers.d.ts.map +1 -1
- package/dist/src/runtime/emit/materialized-view-helpers.js +9 -4
- package/dist/src/runtime/emit/materialized-view-helpers.js.map +1 -1
- package/dist/src/runtime/emit/parameter.d.ts.map +1 -1
- package/dist/src/runtime/emit/parameter.js +13 -8
- package/dist/src/runtime/emit/parameter.js.map +1 -1
- package/dist/src/runtime/emit/schema-declarative.d.ts +17 -6
- package/dist/src/runtime/emit/schema-declarative.d.ts.map +1 -1
- package/dist/src/runtime/emit/schema-declarative.js +169 -31
- package/dist/src/runtime/emit/schema-declarative.js.map +1 -1
- package/dist/src/schema/catalog-rendering.d.ts +26 -0
- package/dist/src/schema/catalog-rendering.d.ts.map +1 -1
- package/dist/src/schema/catalog-rendering.js +54 -5
- package/dist/src/schema/catalog-rendering.js.map +1 -1
- package/dist/src/schema/catalog.d.ts +58 -2
- package/dist/src/schema/catalog.d.ts.map +1 -1
- package/dist/src/schema/catalog.js +45 -34
- package/dist/src/schema/catalog.js.map +1 -1
- package/dist/src/schema/constraint-builder.d.ts +67 -11
- package/dist/src/schema/constraint-builder.d.ts.map +1 -1
- package/dist/src/schema/constraint-builder.js +115 -12
- package/dist/src/schema/constraint-builder.js.map +1 -1
- package/dist/src/schema/ddl-generator.d.ts +21 -0
- package/dist/src/schema/ddl-generator.d.ts.map +1 -1
- package/dist/src/schema/ddl-generator.js +7 -1
- package/dist/src/schema/ddl-generator.js.map +1 -1
- package/dist/src/schema/rename/self-qualifier-strip.d.ts +27 -0
- package/dist/src/schema/rename/self-qualifier-strip.d.ts.map +1 -1
- package/dist/src/schema/rename/self-qualifier-strip.js +73 -0
- package/dist/src/schema/rename/self-qualifier-strip.js.map +1 -1
- package/dist/src/schema/rename-rewriter.d.ts +5 -5
- package/dist/src/schema/rename-rewriter.d.ts.map +1 -1
- package/dist/src/schema/rename-rewriter.js +5 -5
- package/dist/src/schema/rename-rewriter.js.map +1 -1
- package/dist/src/schema/schema-differ.d.ts +42 -2
- package/dist/src/schema/schema-differ.d.ts.map +1 -1
- package/dist/src/schema/schema-differ.js +722 -67
- package/dist/src/schema/schema-differ.js.map +1 -1
- package/dist/src/schema/unique-enforcement.d.ts +23 -1
- package/dist/src/schema/unique-enforcement.d.ts.map +1 -1
- package/dist/src/schema/unique-enforcement.js +43 -1
- package/dist/src/schema/unique-enforcement.js.map +1 -1
- package/dist/src/types/temporal-ops.d.ts.map +1 -1
- package/dist/src/types/temporal-ops.js +16 -10
- package/dist/src/types/temporal-ops.js.map +1 -1
- package/dist/src/vtab/capabilities.d.ts +5 -2
- package/dist/src/vtab/capabilities.d.ts.map +1 -1
- package/dist/src/vtab/memory/layer/manager.d.ts +30 -23
- package/dist/src/vtab/memory/layer/manager.d.ts.map +1 -1
- package/dist/src/vtab/memory/layer/manager.js +102 -111
- package/dist/src/vtab/memory/layer/manager.js.map +1 -1
- package/dist/src/vtab/module.d.ts +16 -0
- package/dist/src/vtab/module.d.ts.map +1 -1
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"temporal-ops.js","sourceRoot":"","sources":["../../../src/types/temporal-ops.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"temporal-ops.js","sourceRoot":"","sources":["../../../src/types/temporal-ops.ts"],"names":[],"mappings":"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"}
|
|
@@ -76,8 +76,11 @@ export interface ModuleCapabilities {
|
|
|
76
76
|
* with the CHECK — sound under the third-manifesto reading where CHECKs
|
|
77
77
|
* are gate-on-add.
|
|
78
78
|
*
|
|
79
|
-
* When true,
|
|
80
|
-
*
|
|
79
|
+
* When true, the engine's own existing-row scan on `ALTER TABLE … ADD
|
|
80
|
+
* CONSTRAINT … CHECK` (`rejectCheckViolatedByExistingRows`,
|
|
81
|
+
* `runtime/emit/add-constraint.ts`) is skipped — that is what lets the
|
|
82
|
+
* violator be grandfathered — and in exchange the lift is skipped for declared
|
|
83
|
+
* CHECKs on this table: the CHECK is still enforced at write time (the engine's CHECK enforcer is
|
|
81
84
|
* unchanged) but the planner can no longer prove `count(*) where v <= 0`
|
|
82
85
|
* folds to `0` from `CHECK (v > 0)` alone, because a grandfathered violator
|
|
83
86
|
* might satisfy the WHERE. Native modules (memory, store) leave this off,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capabilities.d.ts","sourceRoot":"","sources":["../../../src/vtab/capabilities.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAEnE;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,MAAM,mBAAmB,GAAG,eAAe,GAAG,mBAAmB,GAAG,aAAa,CAAC;AAExF;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IAWlC,oHAAoH;IACpH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB,sFAAsF;IACtF,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB,4EAA4E;IAC5E,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB,yEAAyE;IACzE,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAE3B,4FAA4F;IAC5F,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;;;;;;;;;;;;;;;;OAiBG;IACH,wBAAwB,CAAC,EAAE,OAAO,CAAC;IAEnC
|
|
1
|
+
{"version":3,"file":"capabilities.d.ts","sourceRoot":"","sources":["../../../src/vtab/capabilities.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAEnE;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,MAAM,mBAAmB,GAAG,eAAe,GAAG,mBAAmB,GAAG,aAAa,CAAC;AAExF;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IAWlC,oHAAoH;IACpH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB,sFAAsF;IACtF,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB,4EAA4E;IAC5E,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB,yEAAyE;IACzE,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAE3B,4FAA4F;IAC5F,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;;;;;;;;;;;;;;;;OAiBG;IACH,wBAAwB,CAAC,EAAE,OAAO,CAAC;IAEnC;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACH,kCAAkC,CAAC,EAAE,OAAO,CAAC;IAE7C;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,6BAA6B,CAAC,EAAE,OAAO,CAAC;IAExC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+BG;IACH,oCAAoC,CAAC,EAAE,OAAO,CAAC;IAE/C;;;;;;;;;;;;;;;OAeG;IACH,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;CAC1C;AAED;;;;;GAKG;AACH,MAAM,WAAW,kBAAkB;IAClC,eAAe,CAAC,IAAI,kBAAkB,CAAC;CACvC;AAED;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IACrC;;;OAGG;IACH,iBAAiB,CAAC,GAAG,EAAE,GAAG,GAAG,QAAQ,EAAE,CAAC;IAExC;;;;OAIG;IACH,iBAAiB,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,CAAC,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;IAExD;;;;;;OAMG;IACH,kBAAkB,CAAC,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,EAAE,GAAG,SAAS,CAAC;IAEhE;;;OAGG;IACH,oBAAoB,IAAI,MAAM,EAAE,CAAC;CACjC"}
|
|
@@ -257,21 +257,22 @@ export declare class MemoryTableManager {
|
|
|
257
257
|
private validateMutationPermissions;
|
|
258
258
|
private ensureTransactionLayer;
|
|
259
259
|
private performInsert;
|
|
260
|
+
/**
|
|
261
|
+
* Resolves a primary-key collision with `existingRow` under the effective
|
|
262
|
+
* action (statement OR > per-constraint default > ABORT). Returns the
|
|
263
|
+
* terminating result for IGNORE / ABORT-family actions, or null for REPLACE —
|
|
264
|
+
* the caller then proceeds to the secondary UNIQUE check and the write, and
|
|
265
|
+
* reports `existingRow` as `replacedRow`.
|
|
266
|
+
*/
|
|
267
|
+
private resolvePkConflict;
|
|
260
268
|
private performUpdate;
|
|
261
269
|
private performUpdateWithPrimaryKeyChange;
|
|
262
270
|
private performDelete;
|
|
263
271
|
/**
|
|
264
|
-
*
|
|
265
|
-
*
|
|
266
|
-
*
|
|
267
|
-
*
|
|
268
|
-
* NOTE: the per-column test is byte-level `compareSqlValues`, not the enforcement
|
|
269
|
-
* comparator, so it OVER-triggers for a semantic-ordering column: rewriting a
|
|
270
|
-
* TIMESPAN 'PT1H' to 'PT60M' reports "changed" and re-runs the UNIQUE check, which
|
|
271
|
-
* then excludes the row's own primary key and passes. Correct — this only gates
|
|
272
|
-
* whether to re-check — just not minimal. If UPDATE-heavy workloads over
|
|
273
|
-
* semantic-ordering UNIQUE columns ever show the redundant re-check as hot, route
|
|
274
|
-
* this through `uniqueEnforcementComparators` too.
|
|
272
|
+
* Same-PK UPDATE gate over the shared {@link sharedUniqueColumnsChanged} (see its
|
|
273
|
+
* NOTE on byte-level over-triggering). A partial constraint's referenced columns
|
|
274
|
+
* come from its covering index's compiled predicate when one is on hand; for an
|
|
275
|
+
* MV-covered (or uncovered) constraint the predicate is compiled ad hoc.
|
|
275
276
|
*/
|
|
276
277
|
private uniqueColumnsChanged;
|
|
277
278
|
/**
|
|
@@ -280,6 +281,7 @@ export declare class MemoryTableManager {
|
|
|
280
281
|
* For REPLACE conflicts, the conflicting rows are deleted from the layer and
|
|
281
282
|
* pushed onto `evicted` so the DML executor can run the full delete pipeline
|
|
282
283
|
* (change-tracking, row-time MV maintenance, FK cascade, auto-events) for each.
|
|
284
|
+
* Rows at the `self` slots are never conflicts (see {@link UniqueCheckSelf}).
|
|
283
285
|
*/
|
|
284
286
|
private checkUniqueConstraints;
|
|
285
287
|
private checkSingleUniqueConstraint;
|
|
@@ -307,7 +309,7 @@ export declare class MemoryTableManager {
|
|
|
307
309
|
* rather than a secondary BTree). The backing scan yields candidate conflicting
|
|
308
310
|
* source PKs; each is *validated against the live source row* before acting, since
|
|
309
311
|
* a backing entry can lag a source row deleted/updated internally within the same
|
|
310
|
-
* statement (e.g.
|
|
312
|
+
* statement (e.g. a prior REPLACE eviction or key-changing UPDATE)
|
|
311
313
|
* — the row-time hook only fires for DML-executor row writes, not these internal
|
|
312
314
|
* mutations. A candidate whose source row is gone or no longer matches the UC is
|
|
313
315
|
* stale and skipped, so a false conflict is never raised.
|
|
@@ -321,6 +323,7 @@ export declare class MemoryTableManager {
|
|
|
321
323
|
* backing delete still lands within this statement.
|
|
322
324
|
*/
|
|
323
325
|
private checkUniqueViaMaterializedView;
|
|
326
|
+
private isSelfKey;
|
|
324
327
|
private checkUniqueByScanning;
|
|
325
328
|
renameTable(newName: string): void;
|
|
326
329
|
/**
|
|
@@ -580,20 +583,24 @@ export declare class MemoryTableManager {
|
|
|
580
583
|
* predicate + per-column collation honored, NULLs distinct).
|
|
581
584
|
* - FOREIGN KEY appends the constraint and runs the pragma-gated existing-row
|
|
582
585
|
* validation (engine-side enforcement needs no physical structure).
|
|
583
|
-
* - CHECK appends the constraint (no physical structure
|
|
584
|
-
*
|
|
585
|
-
*
|
|
586
|
-
*
|
|
587
|
-
*
|
|
588
|
-
*
|
|
586
|
+
* - CHECK appends the constraint (no physical structure; the existing-row scan is
|
|
587
|
+
* the ENGINE's, run pre-dispatch for every module — see
|
|
588
|
+
* `rejectCheckViolatedByExistingRows` in `runtime/emit/add-constraint.ts`); it
|
|
589
|
+
* routes here, rather than being applied catalog-only, so the module-cached
|
|
590
|
+
* schema stays in lock-step with the catalog and a later `DROP/RENAME CONSTRAINT`
|
|
591
|
+
* resolves it. (The engine keeps an engine-side append fallback in the same file
|
|
592
|
+
* only for modules that omit `alterTable` — which cannot DROP/RENAME a constraint
|
|
593
|
+
* anyway.)
|
|
589
594
|
*/
|
|
590
595
|
addConstraint(constraint: ASTTableConstraint, rows?: EffectiveRowSource): Promise<void>;
|
|
591
596
|
/**
|
|
592
|
-
* CHECK arm of {@link addConstraint}. Schema-only: a CHECK has no covering
|
|
593
|
-
* structure and
|
|
594
|
-
*
|
|
595
|
-
*
|
|
596
|
-
*
|
|
597
|
+
* CHECK arm of {@link addConstraint}. Schema-only HERE: a CHECK has no covering
|
|
598
|
+
* structure, and the existing-row validation is not the module's job — the engine
|
|
599
|
+
* runs it pre-dispatch for every module (`rejectCheckViolatedByExistingRows` in
|
|
600
|
+
* `runtime/emit/add-constraint.ts`), so by the time this arm runs the rows are known
|
|
601
|
+
* to conform and this just appends the constraint to the cached schema. Forward
|
|
602
|
+
* enforcement is engine-side at INSERT/UPDATE plan time. Runs under the same latch /
|
|
603
|
+
* rollback scaffolding as the other arms (via {@link addConstraint}).
|
|
597
604
|
*/
|
|
598
605
|
private addCheckConstraint;
|
|
599
606
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../../../../src/vtab/memory/layer/manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,WAAW,EAAE,KAAK,sBAAsB,EAAgL,MAAM,0BAA0B,CAAC;AACzR,OAAO,EAAY,KAAK,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAGhE,OAAO,EAAc,KAAK,QAAQ,EAAE,KAAK,GAAG,EAAE,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAGlG,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAExD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,KAAK,EAAE,SAAS,IAAI,YAAY,EAAE,eAAe,IAAI,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAM/G,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAM/C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAK1D,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC7E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAE1D,OAAO,EAAmD,KAAK,iBAAiB,EAA4C,MAAM,mBAAmB,CAAC;AAoBtJ;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,MAAM,iBAAiB,GAC1B;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,KAAK,EAAE,WAAW,CAAA;CAAE,GAC5C;IAAE,IAAI,EAAE,mBAAmB,CAAC;IAAC,IAAI,EAAE,qBAAqB,CAAA;CAAE,CAAC;AAE9D,qFAAqF;AACrF,MAAM,WAAW,yBAAyB;IACzC,qGAAqG;IACrG,SAAS,EAAE,MAAM,CAAC;IAClB,mFAAmF;IACnF,MAAM,EAAE,iCAAiC,CAAC;CAC1C;
|
|
1
|
+
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../../../../src/vtab/memory/layer/manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,9 +10,9 @@ import { MemoryVirtualTableConnection } from '../connection.js';
|
|
|
10
10
|
import { QuereusError } from '../../../common/errors.js';
|
|
11
11
|
import { ConflictResolution } from '../../../common/constants.js';
|
|
12
12
|
import { buildUniqueConstraintSchema, buildForeignKeyConstraintSchema, buildCheckConstraintSchema, validateForeignKeyOverExistingRows, maintainedTableUniqueViolationError, formatKeyValue } from '../../../schema/constraint-builder.js';
|
|
13
|
-
import { indexEnforcesUnique, uniqueEnforcementCollations, uniqueEnforcementComparators } from '../../../schema/unique-enforcement.js';
|
|
13
|
+
import { indexEnforcesUnique, uniqueColumnsChanged as sharedUniqueColumnsChanged, uniqueEnforcementCollations, uniqueEnforcementComparators } from '../../../schema/unique-enforcement.js';
|
|
14
14
|
import { generateIndexDDL, generateDropIndexDDL } from '../../../schema/ddl-generator.js';
|
|
15
|
-
import {
|
|
15
|
+
import { rowsValueIdentical, normalizeCollationName } from '../../../util/comparison.js';
|
|
16
16
|
import { scanLayer as scanLayerImpl } from './scan-layer.js';
|
|
17
17
|
import { createPrimaryKeyFunctions, buildPrimaryKeyFromValues, primaryKeyArity } from '../utils/primary-key.js';
|
|
18
18
|
import { createMemoryTableLoggers } from '../utils/logging.js';
|
|
@@ -916,32 +916,43 @@ export class MemoryTableManager {
|
|
|
916
916
|
const primaryKey = this.primaryKeyFromRow(newRowData);
|
|
917
917
|
const existingRow = this.lookupEffectiveRow(primaryKey, targetLayer);
|
|
918
918
|
if (existingRow !== null) {
|
|
919
|
-
|
|
920
|
-
|
|
921
|
-
|
|
922
|
-
|
|
923
|
-
|
|
924
|
-
if (pkAction === ConflictResolution.REPLACE) {
|
|
925
|
-
targetLayer.recordUpsert(primaryKey, newRowData, existingRow);
|
|
926
|
-
return { status: 'ok', row: newRowData, replacedRow: existingRow };
|
|
927
|
-
}
|
|
928
|
-
return {
|
|
929
|
-
status: 'constraint',
|
|
930
|
-
constraint: 'unique',
|
|
931
|
-
message: `UNIQUE constraint failed: ${this._tableName} PK.`,
|
|
932
|
-
existingRow: existingRow
|
|
933
|
-
};
|
|
919
|
+
const pkOutcome = this.resolvePkConflict(schema, onConflict, existingRow, `UNIQUE constraint failed: ${this._tableName} PK.`);
|
|
920
|
+
if (pkOutcome)
|
|
921
|
+
return pkOutcome;
|
|
922
|
+
// REPLACE: the row at this PK is overwritten below, after the secondary
|
|
923
|
+
// UNIQUE check (which excludes this PK, so it cannot self-conflict).
|
|
934
924
|
}
|
|
935
925
|
// Check UNIQUE constraints against secondary indexes. Secondary-UNIQUE
|
|
936
926
|
// REPLACE evictions (rows at OTHER PKs) accumulate in `evicted` and are
|
|
937
927
|
// surfaced via `evictedRows` so the DML executor runs the full delete
|
|
938
928
|
// pipeline (change-tracking, row-time MV maintenance, FK cascade, events).
|
|
939
929
|
const evicted = [];
|
|
940
|
-
const ucResult = await this.checkUniqueConstraints(targetLayer, schema, newRowData, primaryKey, onConflict, evicted);
|
|
930
|
+
const ucResult = await this.checkUniqueConstraints(targetLayer, schema, newRowData, { key: primaryKey }, onConflict, evicted);
|
|
941
931
|
if (ucResult)
|
|
942
932
|
return ucResult;
|
|
943
|
-
targetLayer.recordUpsert(primaryKey, newRowData,
|
|
944
|
-
return {
|
|
933
|
+
targetLayer.recordUpsert(primaryKey, newRowData, existingRow);
|
|
934
|
+
return {
|
|
935
|
+
status: 'ok',
|
|
936
|
+
row: newRowData,
|
|
937
|
+
replacedRow: existingRow ?? undefined,
|
|
938
|
+
evictedRows: evicted.length > 0 ? evicted : undefined,
|
|
939
|
+
};
|
|
940
|
+
}
|
|
941
|
+
/**
|
|
942
|
+
* Resolves a primary-key collision with `existingRow` under the effective
|
|
943
|
+
* action (statement OR > per-constraint default > ABORT). Returns the
|
|
944
|
+
* terminating result for IGNORE / ABORT-family actions, or null for REPLACE —
|
|
945
|
+
* the caller then proceeds to the secondary UNIQUE check and the write, and
|
|
946
|
+
* reports `existingRow` as `replacedRow`.
|
|
947
|
+
*/
|
|
948
|
+
resolvePkConflict(schema, onConflict, existingRow, message) {
|
|
949
|
+
const pkAction = onConflict ?? resolvePkDefaultConflict(schema) ?? ConflictResolution.ABORT;
|
|
950
|
+
if (pkAction === ConflictResolution.REPLACE)
|
|
951
|
+
return null;
|
|
952
|
+
if (pkAction === ConflictResolution.IGNORE) {
|
|
953
|
+
return { status: 'ok', row: undefined };
|
|
954
|
+
}
|
|
955
|
+
return { status: 'constraint', constraint: 'unique', message, existingRow };
|
|
945
956
|
}
|
|
946
957
|
async performUpdate(targetLayer, values, oldKeyValues, onConflict, preCoerced) {
|
|
947
958
|
if (!values || !oldKeyValues) {
|
|
@@ -973,7 +984,7 @@ export class MemoryTableManager {
|
|
|
973
984
|
// surface them via `evictedRows` for the executor's delete pipeline.
|
|
974
985
|
const evicted = [];
|
|
975
986
|
if (this.uniqueColumnsChanged(schema, oldRowData, newRowData)) {
|
|
976
|
-
const ucResult = await this.checkUniqueConstraints(targetLayer, schema, newRowData, targetPrimaryKey, onConflict, evicted);
|
|
987
|
+
const ucResult = await this.checkUniqueConstraints(targetLayer, schema, newRowData, { key: targetPrimaryKey }, onConflict, evicted);
|
|
977
988
|
if (ucResult)
|
|
978
989
|
return ucResult;
|
|
979
990
|
}
|
|
@@ -984,38 +995,34 @@ export class MemoryTableManager {
|
|
|
984
995
|
async performUpdateWithPrimaryKeyChange(targetLayer, schema, oldPrimaryKey, newPrimaryKey, oldRowData, newRowData, onConflict) {
|
|
985
996
|
const existingRowAtNewKey = this.lookupEffectiveRow(newPrimaryKey, targetLayer);
|
|
986
997
|
if (existingRowAtNewKey !== null) {
|
|
987
|
-
const
|
|
988
|
-
if (
|
|
989
|
-
return
|
|
990
|
-
|
|
991
|
-
|
|
992
|
-
|
|
993
|
-
|
|
994
|
-
|
|
995
|
-
|
|
996
|
-
|
|
997
|
-
|
|
998
|
-
// Return constraint violation with existing row
|
|
999
|
-
return {
|
|
1000
|
-
status: 'constraint',
|
|
1001
|
-
constraint: 'unique',
|
|
1002
|
-
message: `UNIQUE constraint failed on new PK for ${this._tableName}.`,
|
|
1003
|
-
existingRow: existingRowAtNewKey
|
|
1004
|
-
};
|
|
1005
|
-
}
|
|
1006
|
-
// Delete old row first, then check UNIQUE constraints at the new position.
|
|
1007
|
-
// A secondary-UNIQUE REPLACE at the new position evicts conflicting row(s)
|
|
1008
|
-
// at other PKs; surface them via `evictedRows` for the executor pipeline.
|
|
1009
|
-
targetLayer.recordDelete(oldPrimaryKey, oldRowData);
|
|
998
|
+
const pkOutcome = this.resolvePkConflict(schema, onConflict, existingRowAtNewKey, `UNIQUE constraint failed on new PK for ${this._tableName}.`);
|
|
999
|
+
if (pkOutcome)
|
|
1000
|
+
return pkOutcome;
|
|
1001
|
+
// REPLACE: the row at the new PK is evicted below, once the secondary
|
|
1002
|
+
// UNIQUE check passes.
|
|
1003
|
+
}
|
|
1004
|
+
// Check UNIQUE constraints before touching either slot. Both the old and the
|
|
1005
|
+
// new PK are the moving row's own (the old row leaves, any row at the new PK
|
|
1006
|
+
// is displaced), so neither can conflict. A secondary-UNIQUE REPLACE evicts
|
|
1007
|
+
// conflicting row(s) at other PKs; surface them via `evictedRows` for the
|
|
1008
|
+
// executor pipeline.
|
|
1010
1009
|
const evicted = [];
|
|
1011
|
-
const ucResult = await this.checkUniqueConstraints(targetLayer, schema, newRowData, newPrimaryKey, onConflict, evicted);
|
|
1012
|
-
if (ucResult)
|
|
1013
|
-
// Rollback the delete if constraint check fails
|
|
1014
|
-
targetLayer.recordUpsert(oldPrimaryKey, oldRowData, null);
|
|
1010
|
+
const ucResult = await this.checkUniqueConstraints(targetLayer, schema, newRowData, { key: newPrimaryKey, vacated: oldPrimaryKey }, onConflict, evicted);
|
|
1011
|
+
if (ucResult)
|
|
1015
1012
|
return ucResult;
|
|
1013
|
+
// Journal order evict-delete, move-delete, move-insert is the data-change
|
|
1014
|
+
// event contract (docs/usage.md § Subscribing to Data Changes).
|
|
1015
|
+
if (existingRowAtNewKey !== null) {
|
|
1016
|
+
targetLayer.recordDelete(newPrimaryKey, existingRowAtNewKey);
|
|
1016
1017
|
}
|
|
1018
|
+
targetLayer.recordDelete(oldPrimaryKey, oldRowData);
|
|
1017
1019
|
targetLayer.recordUpsert(newPrimaryKey, newRowData, null);
|
|
1018
|
-
return {
|
|
1020
|
+
return {
|
|
1021
|
+
status: 'ok',
|
|
1022
|
+
row: newRowData,
|
|
1023
|
+
replacedRow: existingRowAtNewKey ?? undefined,
|
|
1024
|
+
evictedRows: evicted.length > 0 ? evicted : undefined,
|
|
1025
|
+
};
|
|
1019
1026
|
}
|
|
1020
1027
|
async performDelete(targetLayer, oldKeyValues) {
|
|
1021
1028
|
if (!oldKeyValues) {
|
|
@@ -1031,43 +1038,18 @@ export class MemoryTableManager {
|
|
|
1031
1038
|
return { status: 'ok', row: oldRowData };
|
|
1032
1039
|
}
|
|
1033
1040
|
/**
|
|
1034
|
-
*
|
|
1035
|
-
*
|
|
1036
|
-
*
|
|
1037
|
-
*
|
|
1038
|
-
* NOTE: the per-column test is byte-level `compareSqlValues`, not the enforcement
|
|
1039
|
-
* comparator, so it OVER-triggers for a semantic-ordering column: rewriting a
|
|
1040
|
-
* TIMESPAN 'PT1H' to 'PT60M' reports "changed" and re-runs the UNIQUE check, which
|
|
1041
|
-
* then excludes the row's own primary key and passes. Correct — this only gates
|
|
1042
|
-
* whether to re-check — just not minimal. If UPDATE-heavy workloads over
|
|
1043
|
-
* semantic-ordering UNIQUE columns ever show the redundant re-check as hot, route
|
|
1044
|
-
* this through `uniqueEnforcementComparators` too.
|
|
1041
|
+
* Same-PK UPDATE gate over the shared {@link sharedUniqueColumnsChanged} (see its
|
|
1042
|
+
* NOTE on byte-level over-triggering). A partial constraint's referenced columns
|
|
1043
|
+
* come from its covering index's compiled predicate when one is on hand; for an
|
|
1044
|
+
* MV-covered (or uncovered) constraint the predicate is compiled ad hoc.
|
|
1045
1045
|
*/
|
|
1046
1046
|
uniqueColumnsChanged(schema, oldRow, newRow) {
|
|
1047
|
-
|
|
1048
|
-
|
|
1049
|
-
|
|
1050
|
-
|
|
1051
|
-
|
|
1052
|
-
|
|
1053
|
-
}
|
|
1054
|
-
if (uc.predicate) {
|
|
1055
|
-
const covering = this.findIndexForConstraint(this._currentCommittedLayer, uc);
|
|
1056
|
-
// For an index the compiled predicate is already on hand; for an MV-covered
|
|
1057
|
-
// (or uncovered) constraint, compile the partial predicate ad hoc to learn
|
|
1058
|
-
// which columns can transition the row across the predicate's scope.
|
|
1059
|
-
const referenced = covering?.kind === 'memory-index'
|
|
1060
|
-
? covering.index.predicate?.referencedColumns
|
|
1061
|
-
: compilePredicate(uc.predicate, schema.columns, schema.name).referencedColumns;
|
|
1062
|
-
if (referenced) {
|
|
1063
|
-
for (const colIdx of referenced) {
|
|
1064
|
-
if (compareSqlValues(oldRow[colIdx], newRow[colIdx]) !== 0)
|
|
1065
|
-
return true;
|
|
1066
|
-
}
|
|
1067
|
-
}
|
|
1068
|
-
}
|
|
1069
|
-
}
|
|
1070
|
-
return false;
|
|
1047
|
+
return sharedUniqueColumnsChanged(schema.uniqueConstraints, oldRow, newRow, uc => {
|
|
1048
|
+
const covering = this.findIndexForConstraint(this._currentCommittedLayer, uc);
|
|
1049
|
+
return covering?.kind === 'memory-index'
|
|
1050
|
+
? covering.index.predicate?.referencedColumns
|
|
1051
|
+
: compilePredicate(uc.predicate, schema.columns, schema.name).referencedColumns;
|
|
1052
|
+
});
|
|
1071
1053
|
}
|
|
1072
1054
|
/**
|
|
1073
1055
|
* Checks all UNIQUE constraints for a new/updated row. Returns an UpdateResult
|
|
@@ -1075,18 +1057,19 @@ export class MemoryTableManager {
|
|
|
1075
1057
|
* For REPLACE conflicts, the conflicting rows are deleted from the layer and
|
|
1076
1058
|
* pushed onto `evicted` so the DML executor can run the full delete pipeline
|
|
1077
1059
|
* (change-tracking, row-time MV maintenance, FK cascade, auto-events) for each.
|
|
1060
|
+
* Rows at the `self` slots are never conflicts (see {@link UniqueCheckSelf}).
|
|
1078
1061
|
*/
|
|
1079
|
-
async checkUniqueConstraints(targetLayer, schema, newRowData,
|
|
1062
|
+
async checkUniqueConstraints(targetLayer, schema, newRowData, self, onConflict, evicted) {
|
|
1080
1063
|
if (!schema.uniqueConstraints)
|
|
1081
1064
|
return null;
|
|
1082
1065
|
for (const uc of schema.uniqueConstraints) {
|
|
1083
|
-
const result = await this.checkSingleUniqueConstraint(targetLayer, schema, uc, newRowData,
|
|
1066
|
+
const result = await this.checkSingleUniqueConstraint(targetLayer, schema, uc, newRowData, self, onConflict, evicted);
|
|
1084
1067
|
if (result)
|
|
1085
1068
|
return result;
|
|
1086
1069
|
}
|
|
1087
1070
|
return null;
|
|
1088
1071
|
}
|
|
1089
|
-
async checkSingleUniqueConstraint(targetLayer, schema, uc, newRowData,
|
|
1072
|
+
async checkSingleUniqueConstraint(targetLayer, schema, uc, newRowData, self, onConflict, evicted, allowMvCovering = true) {
|
|
1090
1073
|
// SQL semantics: UNIQUE allows multiple NULLs — skip if any constrained column is NULL
|
|
1091
1074
|
if (uc.columns.some(colIdx => newRowData[colIdx] === null))
|
|
1092
1075
|
return null;
|
|
@@ -1112,9 +1095,9 @@ export class MemoryTableManager {
|
|
|
1112
1095
|
if (covering) {
|
|
1113
1096
|
switch (covering.kind) {
|
|
1114
1097
|
case 'memory-index':
|
|
1115
|
-
return this.checkUniqueViaIndex(targetLayer, schema, uc, covering.index, newRowData,
|
|
1098
|
+
return this.checkUniqueViaIndex(targetLayer, schema, uc, covering.index, newRowData, self, effective, evicted);
|
|
1116
1099
|
case 'materialized-view':
|
|
1117
|
-
return this.checkUniqueViaMaterializedView(targetLayer, schema, uc, covering.view, newRowData,
|
|
1100
|
+
return this.checkUniqueViaMaterializedView(targetLayer, schema, uc, covering.view, newRowData, self, effective, evicted);
|
|
1118
1101
|
default: {
|
|
1119
1102
|
const exhaustive = covering;
|
|
1120
1103
|
throw new QuereusError(`Unknown covering structure: ${JSON.stringify(exhaustive)}`, StatusCode.INTERNAL);
|
|
@@ -1122,7 +1105,7 @@ export class MemoryTableManager {
|
|
|
1122
1105
|
}
|
|
1123
1106
|
}
|
|
1124
1107
|
// Fallback: scan primary tree
|
|
1125
|
-
return this.checkUniqueByScanning(targetLayer, schema, uc, newRowData,
|
|
1108
|
+
return this.checkUniqueByScanning(targetLayer, schema, uc, newRowData, self, effective, evicted);
|
|
1126
1109
|
}
|
|
1127
1110
|
/**
|
|
1128
1111
|
* Resolves the {@link CoveringStructure} enforcing a UNIQUE constraint. Prefers
|
|
@@ -1215,7 +1198,7 @@ export class MemoryTableManager {
|
|
|
1215
1198
|
}
|
|
1216
1199
|
return undefined;
|
|
1217
1200
|
}
|
|
1218
|
-
checkUniqueViaIndex(targetLayer, schema, uc, index, newRowData,
|
|
1201
|
+
checkUniqueViaIndex(targetLayer, schema, uc, index, newRowData, self, onConflict, evicted) {
|
|
1219
1202
|
const indexKey = index.keyFromRow(newRowData);
|
|
1220
1203
|
const existingPKs = index.getPrimaryKeys(indexKey);
|
|
1221
1204
|
// The overwhelmingly common insert has no candidate at all; bail before paying
|
|
@@ -1229,7 +1212,7 @@ export class MemoryTableManager {
|
|
|
1229
1212
|
const enforcementCollations = uc.columns.map((col, i) => this.collationResolver(index.specColumns[i]?.collation ?? schema.columns[col].collation ?? 'BINARY'));
|
|
1230
1213
|
const compares = uniqueEnforcementComparators(schema.columns, uc.columns, enforcementCollations);
|
|
1231
1214
|
for (const existingPK of existingPKs) {
|
|
1232
|
-
if (this.
|
|
1215
|
+
if (this.isSelfKey(self, existingPK))
|
|
1233
1216
|
continue;
|
|
1234
1217
|
// Validate the candidate against the live effective row before acting —
|
|
1235
1218
|
// the same stale-candidate discipline as checkUniqueViaMaterializedView.
|
|
@@ -1301,7 +1284,7 @@ export class MemoryTableManager {
|
|
|
1301
1284
|
* rather than a secondary BTree). The backing scan yields candidate conflicting
|
|
1302
1285
|
* source PKs; each is *validated against the live source row* before acting, since
|
|
1303
1286
|
* a backing entry can lag a source row deleted/updated internally within the same
|
|
1304
|
-
* statement (e.g.
|
|
1287
|
+
* statement (e.g. a prior REPLACE eviction or key-changing UPDATE)
|
|
1305
1288
|
* — the row-time hook only fires for DML-executor row writes, not these internal
|
|
1306
1289
|
* mutations. A candidate whose source row is gone or no longer matches the UC is
|
|
1307
1290
|
* stale and skipped, so a false conflict is never raised.
|
|
@@ -1314,14 +1297,14 @@ export class MemoryTableManager {
|
|
|
1314
1297
|
* executor processes the eviction before the writing row's own bookkeeping, so the
|
|
1315
1298
|
* backing delete still lands within this statement.
|
|
1316
1299
|
*/
|
|
1317
|
-
async checkUniqueViaMaterializedView(targetLayer, schema, uc, mv, newRowData,
|
|
1300
|
+
async checkUniqueViaMaterializedView(targetLayer, schema, uc, mv, newRowData, self, onConflict, evicted) {
|
|
1318
1301
|
// Component-array view of the source PK. Shape comes from the PK arity, never
|
|
1319
1302
|
// from `Array.isArray` — a single-column JSON PK holding a document like `[1]`
|
|
1320
1303
|
// is a scalar key that is also a JS array (see the `BTreeKey` invariant).
|
|
1321
1304
|
// A wrong shape here only WIDENS the candidate set (the row fails its own
|
|
1322
1305
|
// self-exclusion), and the loop below re-excludes self through the real PK
|
|
1323
1306
|
// comparator — which is why no query result can observe this line.
|
|
1324
|
-
const newSourcePk = keyParts(
|
|
1307
|
+
const newSourcePk = keyParts(self.key, primaryKeyArity(schema) !== 1);
|
|
1325
1308
|
const conflicts = await this.db._lookupCoveringConflicts(mv, uc, newRowData, newSourcePk);
|
|
1326
1309
|
// Re-validate under each column's enforcement collation — the index's per-column
|
|
1327
1310
|
// COLLATE for an index-derived UNIQUE, else the declared column collation
|
|
@@ -1340,7 +1323,7 @@ export class MemoryTableManager {
|
|
|
1340
1323
|
const compares = uniqueEnforcementComparators(schema.columns, uc.columns, collations);
|
|
1341
1324
|
for (const conflict of conflicts) {
|
|
1342
1325
|
const existingPK = buildPrimaryKeyFromValues(conflict.pk, schema.primaryKeyDefinition);
|
|
1343
|
-
if (this.
|
|
1326
|
+
if (this.isSelfKey(self, existingPK))
|
|
1344
1327
|
continue;
|
|
1345
1328
|
// Validate against the live source row: skip stale backing candidates.
|
|
1346
1329
|
const conflictingRow = this.lookupEffectiveRow(existingPK, targetLayer);
|
|
@@ -1367,7 +1350,11 @@ export class MemoryTableManager {
|
|
|
1367
1350
|
}
|
|
1368
1351
|
return null;
|
|
1369
1352
|
}
|
|
1370
|
-
|
|
1353
|
+
isSelfKey(self, pk) {
|
|
1354
|
+
return this.comparePrimaryKeys(self.key, pk) === 0
|
|
1355
|
+
|| (self.vacated !== undefined && this.comparePrimaryKeys(self.vacated, pk) === 0);
|
|
1356
|
+
}
|
|
1357
|
+
checkUniqueByScanning(targetLayer, schema, uc, newRowData, self, onConflict, evicted) {
|
|
1371
1358
|
const primaryTree = targetLayer.getModificationTree('primary');
|
|
1372
1359
|
if (!primaryTree)
|
|
1373
1360
|
return null;
|
|
@@ -1392,7 +1379,7 @@ export class MemoryTableManager {
|
|
|
1392
1379
|
for (const path of primaryTree.ascending(primaryTree.first())) {
|
|
1393
1380
|
const existingRow = primaryTree.at(path);
|
|
1394
1381
|
const existingPK = this.primaryKeyFromRow(existingRow);
|
|
1395
|
-
if (this.
|
|
1382
|
+
if (this.isSelfKey(self, existingPK))
|
|
1396
1383
|
continue;
|
|
1397
1384
|
if (predicate && predicate.evaluate(existingRow) !== true)
|
|
1398
1385
|
continue;
|
|
@@ -1698,9 +1685,9 @@ export class MemoryTableManager {
|
|
|
1698
1685
|
for (const change of changes) {
|
|
1699
1686
|
if (change.op === 'delete')
|
|
1700
1687
|
continue;
|
|
1701
|
-
const
|
|
1688
|
+
const self = { key: this.primaryKeyFromRow(change.newRow) };
|
|
1702
1689
|
for (const uc of ucs) {
|
|
1703
|
-
const result = await this.checkSingleUniqueConstraint(layer, schema, uc, change.newRow,
|
|
1690
|
+
const result = await this.checkSingleUniqueConstraint(layer, schema, uc, change.newRow, self, ConflictResolution.ABORT, noEvict, /*allowMvCovering*/ false);
|
|
1704
1691
|
if (result) {
|
|
1705
1692
|
const colNames = uc.columns.map(i => schema.columns[i]?.name ?? String(i));
|
|
1706
1693
|
throw maintainedTableUniqueViolationError(this.schemaName, this._tableName, uc.name ?? implicitIndexNameOver(uc, schema.columns), colNames, uc.columns.map(i => change.newRow[i]));
|
|
@@ -2706,12 +2693,14 @@ export class MemoryTableManager {
|
|
|
2706
2693
|
* predicate + per-column collation honored, NULLs distinct).
|
|
2707
2694
|
* - FOREIGN KEY appends the constraint and runs the pragma-gated existing-row
|
|
2708
2695
|
* validation (engine-side enforcement needs no physical structure).
|
|
2709
|
-
* - CHECK appends the constraint (no physical structure
|
|
2710
|
-
*
|
|
2711
|
-
*
|
|
2712
|
-
*
|
|
2713
|
-
*
|
|
2714
|
-
*
|
|
2696
|
+
* - CHECK appends the constraint (no physical structure; the existing-row scan is
|
|
2697
|
+
* the ENGINE's, run pre-dispatch for every module — see
|
|
2698
|
+
* `rejectCheckViolatedByExistingRows` in `runtime/emit/add-constraint.ts`); it
|
|
2699
|
+
* routes here, rather than being applied catalog-only, so the module-cached
|
|
2700
|
+
* schema stays in lock-step with the catalog and a later `DROP/RENAME CONSTRAINT`
|
|
2701
|
+
* resolves it. (The engine keeps an engine-side append fallback in the same file
|
|
2702
|
+
* only for modules that omit `alterTable` — which cannot DROP/RENAME a constraint
|
|
2703
|
+
* anyway.)
|
|
2715
2704
|
*/
|
|
2716
2705
|
async addConstraint(constraint, rows) {
|
|
2717
2706
|
if (this.isReadOnly)
|
|
@@ -2750,11 +2739,13 @@ export class MemoryTableManager {
|
|
|
2750
2739
|
}
|
|
2751
2740
|
}
|
|
2752
2741
|
/**
|
|
2753
|
-
* CHECK arm of {@link addConstraint}. Schema-only: a CHECK has no covering
|
|
2754
|
-
* structure and
|
|
2755
|
-
*
|
|
2756
|
-
*
|
|
2757
|
-
*
|
|
2742
|
+
* CHECK arm of {@link addConstraint}. Schema-only HERE: a CHECK has no covering
|
|
2743
|
+
* structure, and the existing-row validation is not the module's job — the engine
|
|
2744
|
+
* runs it pre-dispatch for every module (`rejectCheckViolatedByExistingRows` in
|
|
2745
|
+
* `runtime/emit/add-constraint.ts`), so by the time this arm runs the rows are known
|
|
2746
|
+
* to conform and this just appends the constraint to the cached schema. Forward
|
|
2747
|
+
* enforcement is engine-side at INSERT/UPDATE plan time. Runs under the same latch /
|
|
2748
|
+
* rollback scaffolding as the other arms (via {@link addConstraint}).
|
|
2758
2749
|
*/
|
|
2759
2750
|
addCheckConstraint(constraint) {
|
|
2760
2751
|
const check = buildCheckConstraintSchema(constraint, this.tableSchema.checkConstraints.length, collectTableConstraintNames(this.tableSchema));
|