@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
|
@@ -4,7 +4,7 @@ import { isMaintainedTable } from './derivation.js';
|
|
|
4
4
|
import { createTableToString, createViewToString, createMaterializedViewToString, createIndexToString, createAssertionToString, quoteIdentifier, expressionToString, viewDefinitionToCanonicalString } from '../emit/ast-stringify.js';
|
|
5
5
|
import { StatusCode } from '../common/types.js';
|
|
6
6
|
import { QuereusError } from '../common/errors.js';
|
|
7
|
-
import { generateTableDDL, generateIndexDDL, generateMaintainedTableDDL, constraintToCanonicalDDL, indexToCanonicalDDL } from './ddl-generator.js';
|
|
7
|
+
import { generateTableDDL, generateIndexDDL, generateMaintainedTableDDL, constraintToCanonicalDDL, indexToCanonicalDDL, schemaConstraintToTableConstraint } from './ddl-generator.js';
|
|
8
8
|
import { applyViewSchemaDefault, applyAssertionSchemaDefault } from './schema-differ.js';
|
|
9
9
|
import { ENGINE_MANAGED_TABLE_TAG } from './reserved-tags.js';
|
|
10
10
|
/**
|
|
@@ -12,10 +12,11 @@ import { ENGINE_MANAGED_TABLE_TAG } from './reserved-tags.js';
|
|
|
12
12
|
* The schema extractors auto-name unnamed column/table constraints with a
|
|
13
13
|
* reserved `_`-leading prefix (`_check_<col>`, `_fk_<table>_<cols>`,
|
|
14
14
|
* `_uc_<cols>`); such names are deterministic from structure but are NOT stable
|
|
15
|
-
* identity a declarative schema can reference, so they are
|
|
15
|
+
* identity a declarative schema can reference, so they are kept out of the
|
|
16
16
|
* catalog's user-addressable `namedConstraints` (which drives differ
|
|
17
|
-
* add/drop/rename lifecycle)
|
|
18
|
-
*
|
|
17
|
+
* add/drop/rename lifecycle) and listed in `unnamedConstraints`, which the differ
|
|
18
|
+
* matches by body. A user who explicitly names a constraint `_x` gets it treated
|
|
19
|
+
* as unnamed — matched by body, not by the name — an acceptable corner.
|
|
19
20
|
*/
|
|
20
21
|
function isAutoConstraintName(name) {
|
|
21
22
|
return name.startsWith('_');
|
|
@@ -143,33 +144,7 @@ function tableSchemaToCatalog(tableSchema, db) {
|
|
|
143
144
|
seen.add(refName);
|
|
144
145
|
referencedTables.push(refName);
|
|
145
146
|
}
|
|
146
|
-
|
|
147
|
-
// can detect renames / drops / adds of named CHECK / UNIQUE / FOREIGN KEY
|
|
148
|
-
// constraints. Excluded:
|
|
149
|
-
// - engine-synthesized names (the `_check_*` / `_fk_*` / `_uc_*` auto-names
|
|
150
|
-
// the extractors assign to unnamed column/table constraints) — these are
|
|
151
|
-
// not stable identity a user can reference declaratively, and surfacing
|
|
152
|
-
// them would churn add/drop on every diff against a declaration that only
|
|
153
|
-
// carries explicit names (see `isAutoConstraintName`);
|
|
154
|
-
// - UNIQUE constraints synthesized from a `CREATE UNIQUE INDEX`
|
|
155
|
-
// (`derivedFromIndex`) — those are managed as indexes (the differ's
|
|
156
|
-
// index buckets), not as table constraints.
|
|
157
|
-
const namedConstraints = [];
|
|
158
|
-
for (const c of tableSchema.checkConstraints ?? []) {
|
|
159
|
-
if (c.name && !isAutoConstraintName(c.name)) {
|
|
160
|
-
namedConstraints.push({ name: c.name, tags: c.tags, definition: constraintToCanonicalDDL('check', c, tableSchema) });
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
for (const c of tableSchema.uniqueConstraints ?? []) {
|
|
164
|
-
if (c.name && !isAutoConstraintName(c.name) && !c.derivedFromIndex) {
|
|
165
|
-
namedConstraints.push({ name: c.name, tags: c.tags, definition: constraintToCanonicalDDL('unique', c, tableSchema) });
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
for (const c of tableSchema.foreignKeys ?? []) {
|
|
169
|
-
if (c.name && !isAutoConstraintName(c.name)) {
|
|
170
|
-
namedConstraints.push({ name: c.name, tags: c.tags, definition: constraintToCanonicalDDL('foreignKey', c, tableSchema) });
|
|
171
|
-
}
|
|
172
|
-
}
|
|
147
|
+
const { namedConstraints, unnamedConstraints } = catalogConstraints(tableSchema);
|
|
173
148
|
return {
|
|
174
149
|
name: tableSchema.name,
|
|
175
150
|
ddl,
|
|
@@ -178,9 +153,43 @@ function tableSchemaToCatalog(tableSchema, db) {
|
|
|
178
153
|
referencedTables,
|
|
179
154
|
tags: tableSchema.tags,
|
|
180
155
|
namedConstraints,
|
|
156
|
+
unnamedConstraints,
|
|
181
157
|
...(maintainedTable ? { maintained: maintainedDescriptor(maintainedTable) } : {}),
|
|
182
158
|
};
|
|
183
159
|
}
|
|
160
|
+
/**
|
|
161
|
+
* Splits a table's CHECK / UNIQUE / FOREIGN KEY constraints into the
|
|
162
|
+
* *user-addressable* named ones (diffed by name: rename / drop / add / body
|
|
163
|
+
* change) and the rest (diffed by body — see `CatalogTable.unnamedConstraints`).
|
|
164
|
+
* An engine-synthesized `_check_*` / `_fk_*` / `_uc_*` auto-name is not identity
|
|
165
|
+
* a declaration can reference (see `isAutoConstraintName`), so it lands in the
|
|
166
|
+
* unnamed list with its stored name kept for DROP. UNIQUE constraints synthesized
|
|
167
|
+
* from a `CREATE UNIQUE INDEX` (`derivedFromIndex`) are in neither list — they are
|
|
168
|
+
* managed as indexes (the differ's index buckets), not as table constraints.
|
|
169
|
+
*/
|
|
170
|
+
function catalogConstraints(tableSchema) {
|
|
171
|
+
const namedConstraints = [];
|
|
172
|
+
const unnamedConstraints = [];
|
|
173
|
+
const add = (kind, c) => {
|
|
174
|
+
const definition = constraintToCanonicalDDL(kind, c, tableSchema);
|
|
175
|
+
const bodyAst = schemaConstraintToTableConstraint(kind, c, tableSchema);
|
|
176
|
+
if (c.name && !isAutoConstraintName(c.name)) {
|
|
177
|
+
namedConstraints.push({ name: c.name, tags: c.tags, definition, bodyAst });
|
|
178
|
+
}
|
|
179
|
+
else {
|
|
180
|
+
unnamedConstraints.push({ kind, name: c.name, tags: c.tags, definition, bodyAst });
|
|
181
|
+
}
|
|
182
|
+
};
|
|
183
|
+
for (const c of tableSchema.checkConstraints ?? [])
|
|
184
|
+
add('check', c);
|
|
185
|
+
for (const c of tableSchema.uniqueConstraints ?? []) {
|
|
186
|
+
if (!c.derivedFromIndex)
|
|
187
|
+
add('unique', c);
|
|
188
|
+
}
|
|
189
|
+
for (const c of tableSchema.foreignKeys ?? [])
|
|
190
|
+
add('foreignKey', c);
|
|
191
|
+
return { namedConstraints, unnamedConstraints };
|
|
192
|
+
}
|
|
184
193
|
/**
|
|
185
194
|
* The derivation dimension surfaced on a maintained table's catalog entry — the
|
|
186
195
|
* canonical body hash plus the normalized backing module (compared separately
|
|
@@ -195,6 +204,7 @@ function maintainedDescriptor(table) {
|
|
|
195
204
|
backingModuleName: backing.storedModuleName,
|
|
196
205
|
backingModuleArgs: backing.storedModuleArgs,
|
|
197
206
|
select: table.derivation.selectAst,
|
|
207
|
+
columns: table.derivation.columns,
|
|
198
208
|
};
|
|
199
209
|
}
|
|
200
210
|
function viewSchemaToCatalog(viewSchema) {
|
|
@@ -204,6 +214,7 @@ function viewSchemaToCatalog(viewSchema) {
|
|
|
204
214
|
definition: viewDefinitionToCanonicalString(viewSchema.columns, viewSchema.selectAst),
|
|
205
215
|
tags: viewSchema.tags,
|
|
206
216
|
select: viewSchema.selectAst,
|
|
217
|
+
columns: viewSchema.columns,
|
|
207
218
|
};
|
|
208
219
|
}
|
|
209
220
|
/**
|
|
@@ -336,8 +347,8 @@ function uniqueConstraintColumnNames(columns, uc) {
|
|
|
336
347
|
/**
|
|
337
348
|
* The same name rule as {@link implicitIndexName}, expressed over column *names*
|
|
338
349
|
* rather than a resolved {@link UniqueConstraintSchema}. Declaration-time callers
|
|
339
|
-
* (`ALTER TABLE … ADD CONSTRAINT`, `ADD COLUMN … unique
|
|
340
|
-
* column names — an `ADD COLUMN`'s column does not even exist on the table yet — so
|
|
350
|
+
* (`ALTER TABLE … ADD CONSTRAINT`, `ADD COLUMN … unique`, the declarative differ's
|
|
351
|
+
* mint for an unnamed UNIQUE) hold only column names — an `ADD COLUMN`'s column does not even exist on the table yet — so
|
|
341
352
|
* they cannot go through the schema-resolved form.
|
|
342
353
|
*
|
|
343
354
|
* Keep this the ONLY spelling of the `_uc_<cols>` rule in this package. Three
|
|
@@ -346,7 +357,7 @@ function uniqueConstraintColumnNames(columns, uc) {
|
|
|
346
357
|
* `quereus-isolation`'s `installOverlayUniqueConstraint` (which names the overlay's
|
|
347
358
|
* narrowed unique index by the same rule so DROP / RENAME CONSTRAINT forwards resolve).
|
|
348
359
|
*/
|
|
349
|
-
function implicitIndexNameForColumns(constraintName, columnNames) {
|
|
360
|
+
export function implicitIndexNameForColumns(constraintName, columnNames) {
|
|
350
361
|
return constraintName ?? `_uc_${columnNames.join('_')}`;
|
|
351
362
|
}
|
|
352
363
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"catalog.js","sourceRoot":"","sources":["../../../src/schema/catalog.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"catalog.js","sourceRoot":"","sources":["../../../src/schema/catalog.ts"],"names":[],"mappings":"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"}
|
|
@@ -114,25 +114,81 @@ export declare function formatKeyValue(v: SqlValue): string;
|
|
|
114
114
|
* § Constraint validation.
|
|
115
115
|
*/
|
|
116
116
|
export declare function maintainedTableUniqueViolationError(schemaName: string, tableName: string, constraintName: string, columnNames: readonly string[], keyValues: readonly SqlValue[]): QuereusError;
|
|
117
|
+
/**
|
|
118
|
+
* The part of a CHECK that every STORED row of `tableSchema` must satisfy, rendered
|
|
119
|
+
* so it plans over `from <table> as STORED_ROW_ALIAS` — or `undefined` when nothing
|
|
120
|
+
* in the CHECK can be judged from a row sitting still.
|
|
121
|
+
*
|
|
122
|
+
* This is the validation-side twin of the optimizer's row-invariant lift
|
|
123
|
+
* (`planner/analysis/check-extraction.ts`), and the two must not drift in either
|
|
124
|
+
* direction: the optimizer trusts a declared CHECK as a fact about every stored row
|
|
125
|
+
* and folds contradicting predicates away (`ruleFilterContradiction`), so whatever
|
|
126
|
+
* it lifts MUST have been validated by the scan this feeds — validate less and rows
|
|
127
|
+
* silently vanish from query results; validate more and legal statements start
|
|
128
|
+
* failing. Hence the same per-top-level-AND-conjunct split, and the optimizer's own
|
|
129
|
+
* screens:
|
|
130
|
+
*
|
|
131
|
+
* - a conjunct referencing `old.<col>` is a transition constraint over the PREVIOUS
|
|
132
|
+
* row image (`check (old.a is null or a >= old.a)`); it says nothing about a row
|
|
133
|
+
* sitting still and the optimizer refuses to lift it — dropped, via the very
|
|
134
|
+
* predicate the optimizer uses ({@link containsOldRowImageRef}). Its `old.`-free
|
|
135
|
+
* siblings are kept: under SQL ternary logic `C1 AND C2` is FALSE whenever `C2`
|
|
136
|
+
* is, so each such conjunct holds over stored rows on its own.
|
|
137
|
+
* - `new.<col>` IS the stored row (the optimizer lifts it), so it is requalified to
|
|
138
|
+
* the scan alias rather than left for the planner to reject as `new.<col> isn't a
|
|
139
|
+
* column`; a self-qualified `<table>.<col>` gets the same treatment.
|
|
140
|
+
*
|
|
141
|
+
* Returns fresh AST (the stored constraint is never mutated).
|
|
142
|
+
*/
|
|
143
|
+
export declare function storedRowPredicate(check: RowConstraintSchema, tableSchema: TableSchema): AST.Expression | undefined;
|
|
117
144
|
/**
|
|
118
145
|
* Validates a table's EXISTING (effective, pending-over-committed) rows against
|
|
119
|
-
* each CHECK in `checks`, throwing on the first violating row.
|
|
120
|
-
*
|
|
121
|
-
* `
|
|
122
|
-
*
|
|
123
|
-
* (`
|
|
124
|
-
*
|
|
146
|
+
* each CHECK in `checks`, throwing on the first violating row. One shared scan
|
|
147
|
+
* for every path that installs a CHECK over rows that already exist —
|
|
148
|
+
* `ALTER TABLE … ADD CONSTRAINT … CHECK` and its engine-side fallback
|
|
149
|
+
* (`runtime/emit/add-constraint.ts`), `ALTER TABLE … ADD COLUMN … CHECK`
|
|
150
|
+
* (`validateBackfillAgainstChecks` in `runtime/emit/alter-table.ts`) and the
|
|
151
|
+
* maintained-table derivation (`runtime/emit/materialized-view-helpers.ts`) — so
|
|
152
|
+
* the `new.` / `old.` / operation-mask rules below are decided once. One
|
|
153
|
+
* `select 1 from <t> as <alias> where not (<stored-row predicate>) limit 1` scan per
|
|
154
|
+
* CHECK, so the NULL-pass rule falls out of SQL semantics (`not NULL` is NULL — the
|
|
155
|
+
* row is not a violation). A subquery-bearing CHECK is just SQL here; the scan
|
|
156
|
+
* reads final pending state through the ordinary read path, so rows the issuing
|
|
157
|
+
* transaction has staged but not committed count as present.
|
|
158
|
+
*
|
|
159
|
+
* The operation-mask policy is the CALLER's, not this scan's: which stored rows
|
|
160
|
+
* owe a partial-mask CHECK (`check on insert (…)`, `check on update (…)`) anything
|
|
161
|
+
* depends on how the rows got there. The ALTER paths hand rows stored under any
|
|
162
|
+
* path and so validate only row invariants
|
|
163
|
+
* ({@link validateRowInvariantChecksOverExistingRows}); the maintained-table
|
|
164
|
+
* derivation validates every derived image against any insert-or-update CHECK
|
|
165
|
+
* (its op-mask collapse, `docs/mv-constraints.md`) and filters accordingly before
|
|
166
|
+
* calling here. The one screen intrinsic to the scan is the `old.` one: a stored
|
|
167
|
+
* row has no previous image whoever asks, so a CHECK whose every conjunct is a
|
|
168
|
+
* transition constraint is skipped (see {@link storedRowPredicate}).
|
|
125
169
|
*
|
|
126
170
|
* CAUTION — declared-constraint folding: the optimizer trusts a DECLARED CHECK
|
|
127
171
|
* as a proven domain invariant, so if the LIVE catalog entry for `tableSchema`
|
|
128
|
-
*
|
|
172
|
+
* already declares the CHECK being validated, `ruleFilterContradiction` folds the
|
|
129
173
|
* `where not (<expr>)` scan to EmptyRelation and the validation vacuously
|
|
130
|
-
* passes
|
|
131
|
-
* constraints under validation
|
|
132
|
-
*
|
|
133
|
-
*
|
|
174
|
+
* passes — it trusts the very thing it is testing. Callers must scan while the
|
|
175
|
+
* live record does NOT declare the constraints under validation: the ALTER
|
|
176
|
+
* paths run this before the catalog swap, the maintained-table path swaps in a
|
|
177
|
+
* constraint-stripped record first.
|
|
134
178
|
*/
|
|
135
179
|
export declare function validateChecksOverExistingRows(db: Database, tableSchema: TableSchema, checks: ReadonlyArray<RowConstraintSchema>, onViolation?: (check: RowConstraintSchema, exprSql: string) => QuereusError): Promise<void>;
|
|
180
|
+
/**
|
|
181
|
+
* {@link validateChecksOverExistingRows} restricted to the CHECKs that are row
|
|
182
|
+
* invariants by the optimizer's own gate ({@link isRowInvariantCheck}) — the
|
|
183
|
+
* ALTER-path entry point (`ADD CONSTRAINT … CHECK`, `ADD COLUMN … CHECK`). The
|
|
184
|
+
* rows an ALTER meets were stored under every write path, and a partial-mask
|
|
185
|
+
* CHECK lets a row be legally stored in violation of it (inserted under an
|
|
186
|
+
* update-only one, updated under an insert-only one), so those rows owe it
|
|
187
|
+
* nothing — and the optimizer lifts nothing from it, so accepting leaves no
|
|
188
|
+
* wrong-result risk open. Gating on the same predicate the lift uses is what
|
|
189
|
+
* makes the validated set exactly the lifted set; change one, change the other.
|
|
190
|
+
*/
|
|
191
|
+
export declare function validateRowInvariantChecksOverExistingRows(db: Database, tableSchema: TableSchema, checks: ReadonlyArray<RowConstraintSchema>, onViolation?: (check: RowConstraintSchema, exprSql: string) => QuereusError): Promise<void>;
|
|
136
192
|
/**
|
|
137
193
|
* Validates every existing CHILD row against a newly-added FOREIGN KEY,
|
|
138
194
|
* throwing `StatusCode.CONSTRAINT` if any row references a non-existent parent.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constraint-builder.d.ts","sourceRoot":"","sources":["../../../src/schema/constraint-builder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEvH,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAc,KAAK,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,KAAK,KAAK,GAAG,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"constraint-builder.d.ts","sourceRoot":"","sources":["../../../src/schema/constraint-builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,6 +21,9 @@ import { quoteIdentifier, expressionToString } from '../emit/ast-stringify.js';
|
|
|
21
21
|
import { createLogger } from '../common/logger.js';
|
|
22
22
|
import { columnSchemaToScalarType } from '../planner/type-utils.js';
|
|
23
23
|
import { resolveComparisonCollation } from '../planner/analysis/comparison-collation.js';
|
|
24
|
+
import { containsOldRowImageRef, isRowInvariantCheck } from '../planner/analysis/check-extraction.js';
|
|
25
|
+
import { cloneExpr } from '../planner/mutation/scope-transform.js';
|
|
26
|
+
import { requalifyOwnRowRefsInSchemaExpression } from './rename-rewriter.js';
|
|
24
27
|
const log = createLogger('schema:constraint-builder');
|
|
25
28
|
/**
|
|
26
29
|
* Builds a {@link UniqueConstraintSchema} from a table-level UNIQUE
|
|
@@ -295,29 +298,115 @@ export function maintainedTableUniqueViolationError(schemaName, tableName, const
|
|
|
295
298
|
return new QuereusError(`UNIQUE constraint failed: ${constraintName} (${columnNames.join(', ')}) — row derived into maintained table `
|
|
296
299
|
+ `'${schemaName}.${tableName}' collides on its declared UNIQUE constraint (key: ${keyValues.map(formatKeyValue).join(', ')})`, StatusCode.CONSTRAINT);
|
|
297
300
|
}
|
|
301
|
+
/**
|
|
302
|
+
* The alias the existing-row CHECK scan gives the scanned table, and the qualifier
|
|
303
|
+
* every own-row reference in the CHECK is rewritten to
|
|
304
|
+
* ({@link requalifyOwnRowRefsInSchemaExpression}). Spelled so that no FROM source a
|
|
305
|
+
* user could write inside a CHECK subquery rebinds it.
|
|
306
|
+
*/
|
|
307
|
+
const STORED_ROW_ALIAS = '__quereus_stored_row__';
|
|
308
|
+
/** Top-level AND-conjuncts of `expr`, the same split the optimizer's `walkConjunction` makes. */
|
|
309
|
+
function topLevelConjuncts(expr) {
|
|
310
|
+
const out = [];
|
|
311
|
+
const stack = [expr];
|
|
312
|
+
while (stack.length > 0) {
|
|
313
|
+
const cur = stack.pop();
|
|
314
|
+
if (cur.type === 'binary' && cur.operator === 'AND') {
|
|
315
|
+
const b = cur;
|
|
316
|
+
// Right first so `out` keeps source order.
|
|
317
|
+
stack.push(b.right, b.left);
|
|
318
|
+
continue;
|
|
319
|
+
}
|
|
320
|
+
out.push(cur);
|
|
321
|
+
}
|
|
322
|
+
return out;
|
|
323
|
+
}
|
|
324
|
+
/**
|
|
325
|
+
* The part of a CHECK that every STORED row of `tableSchema` must satisfy, rendered
|
|
326
|
+
* so it plans over `from <table> as STORED_ROW_ALIAS` — or `undefined` when nothing
|
|
327
|
+
* in the CHECK can be judged from a row sitting still.
|
|
328
|
+
*
|
|
329
|
+
* This is the validation-side twin of the optimizer's row-invariant lift
|
|
330
|
+
* (`planner/analysis/check-extraction.ts`), and the two must not drift in either
|
|
331
|
+
* direction: the optimizer trusts a declared CHECK as a fact about every stored row
|
|
332
|
+
* and folds contradicting predicates away (`ruleFilterContradiction`), so whatever
|
|
333
|
+
* it lifts MUST have been validated by the scan this feeds — validate less and rows
|
|
334
|
+
* silently vanish from query results; validate more and legal statements start
|
|
335
|
+
* failing. Hence the same per-top-level-AND-conjunct split, and the optimizer's own
|
|
336
|
+
* screens:
|
|
337
|
+
*
|
|
338
|
+
* - a conjunct referencing `old.<col>` is a transition constraint over the PREVIOUS
|
|
339
|
+
* row image (`check (old.a is null or a >= old.a)`); it says nothing about a row
|
|
340
|
+
* sitting still and the optimizer refuses to lift it — dropped, via the very
|
|
341
|
+
* predicate the optimizer uses ({@link containsOldRowImageRef}). Its `old.`-free
|
|
342
|
+
* siblings are kept: under SQL ternary logic `C1 AND C2` is FALSE whenever `C2`
|
|
343
|
+
* is, so each such conjunct holds over stored rows on its own.
|
|
344
|
+
* - `new.<col>` IS the stored row (the optimizer lifts it), so it is requalified to
|
|
345
|
+
* the scan alias rather than left for the planner to reject as `new.<col> isn't a
|
|
346
|
+
* column`; a self-qualified `<table>.<col>` gets the same treatment.
|
|
347
|
+
*
|
|
348
|
+
* Returns fresh AST (the stored constraint is never mutated).
|
|
349
|
+
*/
|
|
350
|
+
export function storedRowPredicate(check, tableSchema) {
|
|
351
|
+
const kept = [];
|
|
352
|
+
for (const conjunct of topLevelConjuncts(check.expr)) {
|
|
353
|
+
if (containsOldRowImageRef(conjunct))
|
|
354
|
+
continue;
|
|
355
|
+
const clone = cloneExpr(conjunct);
|
|
356
|
+
requalifyOwnRowRefsInSchemaExpression(clone, tableSchema.name, tableSchema.schemaName, STORED_ROW_ALIAS);
|
|
357
|
+
kept.push(clone);
|
|
358
|
+
}
|
|
359
|
+
if (kept.length === 0)
|
|
360
|
+
return undefined;
|
|
361
|
+
return kept.reduce((acc, next) => {
|
|
362
|
+
const conjunction = { type: 'binary', operator: 'AND', left: acc, right: next };
|
|
363
|
+
return conjunction;
|
|
364
|
+
});
|
|
365
|
+
}
|
|
298
366
|
/**
|
|
299
367
|
* Validates a table's EXISTING (effective, pending-over-committed) rows against
|
|
300
|
-
* each CHECK in `checks`, throwing on the first violating row.
|
|
301
|
-
*
|
|
302
|
-
* `
|
|
303
|
-
*
|
|
304
|
-
* (`
|
|
305
|
-
*
|
|
368
|
+
* each CHECK in `checks`, throwing on the first violating row. One shared scan
|
|
369
|
+
* for every path that installs a CHECK over rows that already exist —
|
|
370
|
+
* `ALTER TABLE … ADD CONSTRAINT … CHECK` and its engine-side fallback
|
|
371
|
+
* (`runtime/emit/add-constraint.ts`), `ALTER TABLE … ADD COLUMN … CHECK`
|
|
372
|
+
* (`validateBackfillAgainstChecks` in `runtime/emit/alter-table.ts`) and the
|
|
373
|
+
* maintained-table derivation (`runtime/emit/materialized-view-helpers.ts`) — so
|
|
374
|
+
* the `new.` / `old.` / operation-mask rules below are decided once. One
|
|
375
|
+
* `select 1 from <t> as <alias> where not (<stored-row predicate>) limit 1` scan per
|
|
376
|
+
* CHECK, so the NULL-pass rule falls out of SQL semantics (`not NULL` is NULL — the
|
|
377
|
+
* row is not a violation). A subquery-bearing CHECK is just SQL here; the scan
|
|
378
|
+
* reads final pending state through the ordinary read path, so rows the issuing
|
|
379
|
+
* transaction has staged but not committed count as present.
|
|
380
|
+
*
|
|
381
|
+
* The operation-mask policy is the CALLER's, not this scan's: which stored rows
|
|
382
|
+
* owe a partial-mask CHECK (`check on insert (…)`, `check on update (…)`) anything
|
|
383
|
+
* depends on how the rows got there. The ALTER paths hand rows stored under any
|
|
384
|
+
* path and so validate only row invariants
|
|
385
|
+
* ({@link validateRowInvariantChecksOverExistingRows}); the maintained-table
|
|
386
|
+
* derivation validates every derived image against any insert-or-update CHECK
|
|
387
|
+
* (its op-mask collapse, `docs/mv-constraints.md`) and filters accordingly before
|
|
388
|
+
* calling here. The one screen intrinsic to the scan is the `old.` one: a stored
|
|
389
|
+
* row has no previous image whoever asks, so a CHECK whose every conjunct is a
|
|
390
|
+
* transition constraint is skipped (see {@link storedRowPredicate}).
|
|
306
391
|
*
|
|
307
392
|
* CAUTION — declared-constraint folding: the optimizer trusts a DECLARED CHECK
|
|
308
393
|
* as a proven domain invariant, so if the LIVE catalog entry for `tableSchema`
|
|
309
|
-
*
|
|
394
|
+
* already declares the CHECK being validated, `ruleFilterContradiction` folds the
|
|
310
395
|
* `where not (<expr>)` scan to EmptyRelation and the validation vacuously
|
|
311
|
-
* passes
|
|
312
|
-
* constraints under validation
|
|
313
|
-
*
|
|
314
|
-
*
|
|
396
|
+
* passes — it trusts the very thing it is testing. Callers must scan while the
|
|
397
|
+
* live record does NOT declare the constraints under validation: the ALTER
|
|
398
|
+
* paths run this before the catalog swap, the maintained-table path swaps in a
|
|
399
|
+
* constraint-stripped record first.
|
|
315
400
|
*/
|
|
316
401
|
export async function validateChecksOverExistingRows(db, tableSchema, checks, onViolation) {
|
|
317
402
|
const tableRef = qualifyRelation(tableSchema.schemaName, tableSchema.name);
|
|
318
403
|
for (const check of checks) {
|
|
404
|
+
const predicate = storedRowPredicate(check, tableSchema);
|
|
405
|
+
if (!predicate)
|
|
406
|
+
continue;
|
|
319
407
|
const exprSql = expressionToString(check.expr);
|
|
320
|
-
const sql = `select 1 from ${tableRef}
|
|
408
|
+
const sql = `select 1 from ${tableRef} as ${quoteIdentifier(STORED_ROW_ALIAS)} `
|
|
409
|
+
+ `where not (${expressionToString(predicate)}) limit 1`;
|
|
321
410
|
log('CHECK existing-row validation for %s.%s: %s', tableSchema.schemaName, tableSchema.name, sql);
|
|
322
411
|
const stmt = db.prepare(sql);
|
|
323
412
|
// The CHECK is SCHEMA-AUTHORED, so a bare relation name inside it means the OWNING
|
|
@@ -336,6 +425,20 @@ export async function validateChecksOverExistingRows(db, tableSchema, checks, on
|
|
|
336
425
|
}
|
|
337
426
|
}
|
|
338
427
|
}
|
|
428
|
+
/**
|
|
429
|
+
* {@link validateChecksOverExistingRows} restricted to the CHECKs that are row
|
|
430
|
+
* invariants by the optimizer's own gate ({@link isRowInvariantCheck}) — the
|
|
431
|
+
* ALTER-path entry point (`ADD CONSTRAINT … CHECK`, `ADD COLUMN … CHECK`). The
|
|
432
|
+
* rows an ALTER meets were stored under every write path, and a partial-mask
|
|
433
|
+
* CHECK lets a row be legally stored in violation of it (inserted under an
|
|
434
|
+
* update-only one, updated under an insert-only one), so those rows owe it
|
|
435
|
+
* nothing — and the optimizer lifts nothing from it, so accepting leaves no
|
|
436
|
+
* wrong-result risk open. Gating on the same predicate the lift uses is what
|
|
437
|
+
* makes the validated set exactly the lifted set; change one, change the other.
|
|
438
|
+
*/
|
|
439
|
+
export async function validateRowInvariantChecksOverExistingRows(db, tableSchema, checks, onViolation) {
|
|
440
|
+
await validateChecksOverExistingRows(db, tableSchema, checks.filter(isRowInvariantCheck), onViolation);
|
|
441
|
+
}
|
|
339
442
|
/**
|
|
340
443
|
* Validates every existing CHILD row against a newly-added FOREIGN KEY,
|
|
341
444
|
* throwing `StatusCode.CONSTRAINT` if any row references a non-existent parent.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constraint-builder.js","sourceRoot":"","sources":["../../../src/schema/constraint-builder.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"constraint-builder.js","sourceRoot":"","sources":["../../../src/schema/constraint-builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,6 +21,7 @@ import type { TableSchema, IndexSchema, RowConstraintSchema, UniqueConstraintSch
|
|
|
21
21
|
import type { ViewSchema } from './view.js';
|
|
22
22
|
import type { MaintainedTableSchema } from './derivation.js';
|
|
23
23
|
import type { SqlValue } from '../common/types.js';
|
|
24
|
+
import type * as AST from '../parser/ast.js';
|
|
24
25
|
/** Generate canonical DDL for a table from its schema. */
|
|
25
26
|
export declare function generateTableDDL(tableSchema: TableSchema, db?: Database): string;
|
|
26
27
|
/**
|
|
@@ -130,4 +131,24 @@ export declare function indexToCanonicalDDL(indexSchema: IndexSchema, tableSchem
|
|
|
130
131
|
* already elides a parent == child qualifier, so this pass is idempotent here).
|
|
131
132
|
*/
|
|
132
133
|
export declare function constraintToCanonicalDDL(kind: NamedConstraintClass, constraint: RowConstraintSchema | UniqueConstraintSchema | ForeignKeyConstraintSchema, tableSchema: TableSchema): string;
|
|
134
|
+
/**
|
|
135
|
+
* Lifts a stored named constraint back into the equivalent AST.TableConstraint.
|
|
136
|
+
*
|
|
137
|
+
* **Full-fidelity**: preserves the constraint `name` and `tags`, and (for FK)
|
|
138
|
+
* reconstructs the deferrability clause, so the same lift drives both the
|
|
139
|
+
* persistence emitter ({@link generateTableDDL}, via {@link tableConstraintsToString})
|
|
140
|
+
* and the canonical-body comparison ({@link constraintToCanonicalDDL}). The
|
|
141
|
+
* canonical consumer strips `name`/`tags`/deferrable downstream
|
|
142
|
+
* (`constraintBodyToCanonicalString` does `{ ...tc, name: undefined, tags: undefined }`
|
|
143
|
+
* and `canonicalForeignKeyClause` drops the deferrable clause), so carrying these
|
|
144
|
+
* fields here does NOT change `constraintToCanonicalDDL` output — only the
|
|
145
|
+
* persistence path benefits.
|
|
146
|
+
*
|
|
147
|
+
* Exported for the schema catalog (`CatalogTable.namedConstraints[].bodyAst`): the
|
|
148
|
+
* migration planner restores a dropped constraint from this lift, and needs the
|
|
149
|
+
* full-fidelity form — the canonical `definition` has already lost deferrability.
|
|
150
|
+
* A CHECK's `expr` is the LIVE schema AST, not a copy; consumers clone before
|
|
151
|
+
* rewriting it.
|
|
152
|
+
*/
|
|
153
|
+
export declare function schemaConstraintToTableConstraint(kind: NamedConstraintClass, constraint: RowConstraintSchema | UniqueConstraintSchema | ForeignKeyConstraintSchema, tableSchema: TableSchema): AST.TableConstraint;
|
|
133
154
|
//# sourceMappingURL=ddl-generator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ddl-generator.d.ts","sourceRoot":"","sources":["../../../src/schema/ddl-generator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAG1J,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAE5C,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"ddl-generator.d.ts","sourceRoot":"","sources":["../../../src/schema/ddl-generator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAG1J,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAE5C,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAEnD,OAAO,KAAK,KAAK,GAAG,MAAM,kBAAkB,CAAC;AAsB7C,0DAA0D;AAC1D,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,WAAW,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,MAAM,CAKhF;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,qBAAqB,GAAG,MAAM,CAkB/E;AAsFD,2DAA2D;AAC3D,wBAAgB,gBAAgB,CAC/B,WAAW,EAAE,WAAW,EACxB,WAAW,EAAE,WAAW,EACxB,EAAE,CAAC,EAAE,QAAQ,GACX,MAAM,CAiCR;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAElF;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAElF;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAWxD;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,oBAAoB,CACnC,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,GACtC,MAAM,CAOR;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,GAAG,MAAM,CAe9F;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,wBAAwB,CACvC,IAAI,EAAE,oBAAoB,EAC1B,UAAU,EAAE,mBAAmB,GAAG,sBAAsB,GAAG,0BAA0B,EACrF,WAAW,EAAE,WAAW,GACtB,MAAM,CAER;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,iCAAiC,CAChD,IAAI,EAAE,oBAAoB,EAC1B,UAAU,EAAE,mBAAmB,GAAG,sBAAsB,GAAG,0BAA0B,EACrF,WAAW,EAAE,WAAW,GACtB,GAAG,CAAC,eAAe,CA4CrB"}
|
|
@@ -324,8 +324,14 @@ export function constraintToCanonicalDDL(kind, constraint, tableSchema) {
|
|
|
324
324
|
* and `canonicalForeignKeyClause` drops the deferrable clause), so carrying these
|
|
325
325
|
* fields here does NOT change `constraintToCanonicalDDL` output — only the
|
|
326
326
|
* persistence path benefits.
|
|
327
|
+
*
|
|
328
|
+
* Exported for the schema catalog (`CatalogTable.namedConstraints[].bodyAst`): the
|
|
329
|
+
* migration planner restores a dropped constraint from this lift, and needs the
|
|
330
|
+
* full-fidelity form — the canonical `definition` has already lost deferrability.
|
|
331
|
+
* A CHECK's `expr` is the LIVE schema AST, not a copy; consumers clone before
|
|
332
|
+
* rewriting it.
|
|
327
333
|
*/
|
|
328
|
-
function schemaConstraintToTableConstraint(kind, constraint, tableSchema) {
|
|
334
|
+
export function schemaConstraintToTableConstraint(kind, constraint, tableSchema) {
|
|
329
335
|
const colName = (i) => tableSchema.columns[i]?.name ?? String(i);
|
|
330
336
|
switch (kind) {
|
|
331
337
|
case 'check': {
|