@quereus/quereus 4.7.0 → 4.9.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/common/types.d.ts +19 -0
- package/dist/src/common/types.d.ts.map +1 -1
- package/dist/src/common/types.js.map +1 -1
- package/dist/src/core/database.d.ts +45 -1
- package/dist/src/core/database.d.ts.map +1 -1
- package/dist/src/core/database.js +212 -2
- package/dist/src/core/database.js.map +1 -1
- package/dist/src/core/statement.d.ts.map +1 -1
- package/dist/src/core/statement.js +86 -0
- package/dist/src/core/statement.js.map +1 -1
- package/dist/src/func/builtins/aggregate.d.ts.map +1 -1
- package/dist/src/func/builtins/aggregate.js +3 -2
- package/dist/src/func/builtins/aggregate.js.map +1 -1
- package/dist/src/func/builtins/conversion.d.ts +5 -0
- package/dist/src/func/builtins/conversion.d.ts.map +1 -1
- package/dist/src/func/builtins/conversion.js +16 -2
- package/dist/src/func/builtins/conversion.js.map +1 -1
- package/dist/src/func/builtins/index.d.ts.map +1 -1
- package/dist/src/func/builtins/index.js +5 -2
- package/dist/src/func/builtins/index.js.map +1 -1
- package/dist/src/func/builtins/string.d.ts +2 -0
- package/dist/src/func/builtins/string.d.ts.map +1 -1
- package/dist/src/func/builtins/string.js +60 -4
- package/dist/src/func/builtins/string.js.map +1 -1
- package/dist/src/index.d.ts +11 -4
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +18 -3
- package/dist/src/index.js.map +1 -1
- package/dist/src/planner/building/constraint-builder.js +1 -1
- package/dist/src/planner/building/constraint-builder.js.map +1 -1
- package/dist/src/planner/rules/retrieve/rule-grow-retrieve.d.ts.map +1 -1
- package/dist/src/planner/rules/retrieve/rule-grow-retrieve.js +121 -51
- package/dist/src/planner/rules/retrieve/rule-grow-retrieve.js.map +1 -1
- package/dist/src/planner/rules/shared/index-style-context.d.ts +14 -4
- package/dist/src/planner/rules/shared/index-style-context.d.ts.map +1 -1
- package/dist/src/planner/rules/shared/index-style-context.js +14 -4
- package/dist/src/planner/rules/shared/index-style-context.js.map +1 -1
- package/dist/src/runtime/emit/alter-table.d.ts.map +1 -1
- package/dist/src/runtime/emit/alter-table.js +212 -155
- package/dist/src/runtime/emit/alter-table.js.map +1 -1
- package/dist/src/runtime/emit/assertion-drop-guard.d.ts +26 -12
- package/dist/src/runtime/emit/assertion-drop-guard.d.ts.map +1 -1
- package/dist/src/runtime/emit/assertion-drop-guard.js +45 -26
- package/dist/src/runtime/emit/assertion-drop-guard.js.map +1 -1
- package/dist/src/runtime/emit/assertion-rename-helpers.d.ts +6 -6
- package/dist/src/runtime/emit/assertion-rename-helpers.d.ts.map +1 -1
- package/dist/src/runtime/emit/assertion-rename-helpers.js +18 -20
- package/dist/src/runtime/emit/assertion-rename-helpers.js.map +1 -1
- package/dist/src/runtime/emit/binary.d.ts.map +1 -1
- package/dist/src/runtime/emit/binary.js +12 -10
- package/dist/src/runtime/emit/binary.js.map +1 -1
- package/dist/src/runtime/emit/column-rename-cascade.d.ts +84 -0
- package/dist/src/runtime/emit/column-rename-cascade.d.ts.map +1 -0
- package/dist/src/runtime/emit/column-rename-cascade.js +134 -0
- package/dist/src/runtime/emit/column-rename-cascade.js.map +1 -0
- package/dist/src/runtime/emit/drop-column-guards.d.ts +82 -53
- package/dist/src/runtime/emit/drop-column-guards.d.ts.map +1 -1
- package/dist/src/runtime/emit/drop-column-guards.js +155 -90
- package/dist/src/runtime/emit/drop-column-guards.js.map +1 -1
- package/dist/src/runtime/emit/drop-table.d.ts.map +1 -1
- package/dist/src/runtime/emit/drop-table.js +5 -0
- package/dist/src/runtime/emit/drop-table.js.map +1 -1
- package/dist/src/runtime/emit/drop-view.d.ts.map +1 -1
- package/dist/src/runtime/emit/drop-view.js +5 -0
- package/dist/src/runtime/emit/drop-view.js.map +1 -1
- package/dist/src/runtime/emit/expression-drop-guard.d.ts +57 -0
- package/dist/src/runtime/emit/expression-drop-guard.d.ts.map +1 -0
- package/dist/src/runtime/emit/expression-drop-guard.js +82 -0
- package/dist/src/runtime/emit/expression-drop-guard.js.map +1 -0
- package/dist/src/runtime/emit/materialized-view-helpers.d.ts +26 -9
- package/dist/src/runtime/emit/materialized-view-helpers.d.ts.map +1 -1
- package/dist/src/runtime/emit/materialized-view-helpers.js +37 -17
- package/dist/src/runtime/emit/materialized-view-helpers.js.map +1 -1
- package/dist/src/runtime/emit/materialized-view.d.ts.map +1 -1
- package/dist/src/runtime/emit/materialized-view.js +3 -0
- package/dist/src/runtime/emit/materialized-view.js.map +1 -1
- package/dist/src/runtime/emit/remote-query.d.ts.map +1 -1
- package/dist/src/runtime/emit/remote-query.js +8 -3
- package/dist/src/runtime/emit/remote-query.js.map +1 -1
- package/dist/src/runtime/emit/scan.d.ts.map +1 -1
- package/dist/src/runtime/emit/scan.js +4 -1
- package/dist/src/runtime/emit/scan.js.map +1 -1
- package/dist/src/runtime/emit/schema-declarative.js +2 -2
- package/dist/src/runtime/emit/schema-declarative.js.map +1 -1
- package/dist/src/runtime/parallel-driver.d.ts +4 -3
- package/dist/src/runtime/parallel-driver.d.ts.map +1 -1
- package/dist/src/runtime/parallel-driver.js +8 -3
- package/dist/src/runtime/parallel-driver.js.map +1 -1
- package/dist/src/runtime/types.d.ts +10 -0
- package/dist/src/runtime/types.d.ts.map +1 -1
- package/dist/src/runtime/types.js.map +1 -1
- package/dist/src/runtime/utils.d.ts.map +1 -1
- package/dist/src/runtime/utils.js +11 -0
- package/dist/src/runtime/utils.js.map +1 -1
- package/dist/src/schema/assertion.d.ts +58 -0
- package/dist/src/schema/assertion.d.ts.map +1 -1
- package/dist/src/schema/assertion.js +78 -0
- package/dist/src/schema/assertion.js.map +1 -1
- package/dist/src/schema/catalog-persistability.d.ts +11 -3
- package/dist/src/schema/catalog-persistability.d.ts.map +1 -1
- package/dist/src/schema/catalog-persistability.js +48 -29
- package/dist/src/schema/catalog-persistability.js.map +1 -1
- package/dist/src/schema/catalog.d.ts +22 -0
- package/dist/src/schema/catalog.d.ts.map +1 -1
- package/dist/src/schema/catalog.js +4 -1
- package/dist/src/schema/catalog.js.map +1 -1
- package/dist/src/schema/column-republication.d.ts +126 -0
- package/dist/src/schema/column-republication.d.ts.map +1 -0
- package/dist/src/schema/column-republication.js +121 -0
- package/dist/src/schema/column-republication.js.map +1 -0
- package/dist/src/schema/column-source-resolver.d.ts +29 -6
- package/dist/src/schema/column-source-resolver.d.ts.map +1 -1
- package/dist/src/schema/column-source-resolver.js +78 -9
- package/dist/src/schema/column-source-resolver.js.map +1 -1
- package/dist/src/schema/expression-dependents.d.ts +160 -0
- package/dist/src/schema/expression-dependents.d.ts.map +1 -0
- package/dist/src/schema/expression-dependents.js +228 -0
- package/dist/src/schema/expression-dependents.js.map +1 -0
- package/dist/src/schema/object-dependency-closure.d.ts +127 -0
- package/dist/src/schema/object-dependency-closure.d.ts.map +1 -0
- package/dist/src/schema/object-dependency-closure.js +117 -0
- package/dist/src/schema/object-dependency-closure.js.map +1 -0
- package/dist/src/schema/object-ref-resolver.d.ts +83 -0
- package/dist/src/schema/object-ref-resolver.d.ts.map +1 -0
- package/dist/src/schema/object-ref-resolver.js +135 -0
- package/dist/src/schema/object-ref-resolver.js.map +1 -0
- package/dist/src/schema/rename/column-rename.d.ts +228 -0
- package/dist/src/schema/rename/column-rename.d.ts.map +1 -0
- package/dist/src/schema/rename/column-rename.js +1225 -0
- package/dist/src/schema/rename/column-rename.js.map +1 -0
- package/dist/src/schema/rename/self-qualifier-strip.d.ts +29 -0
- package/dist/src/schema/rename/self-qualifier-strip.d.ts.map +1 -0
- package/dist/src/schema/rename/self-qualifier-strip.js +267 -0
- package/dist/src/schema/rename/self-qualifier-strip.js.map +1 -0
- package/dist/src/schema/rename/shared.d.ts +108 -0
- package/dist/src/schema/rename/shared.d.ts.map +1 -0
- package/dist/src/schema/rename/shared.js +49 -0
- package/dist/src/schema/rename/shared.js.map +1 -0
- package/dist/src/schema/rename/table-rename.d.ts +263 -0
- package/dist/src/schema/rename/table-rename.d.ts.map +1 -0
- package/dist/src/schema/rename/table-rename.js +860 -0
- package/dist/src/schema/rename/table-rename.js.map +1 -0
- package/dist/src/schema/rename-rewriter.d.ts +18 -278
- package/dist/src/schema/rename-rewriter.d.ts.map +1 -1
- package/dist/src/schema/rename-rewriter.js +17 -1506
- package/dist/src/schema/rename-rewriter.js.map +1 -1
- package/dist/src/schema/schema-differ.d.ts.map +1 -1
- package/dist/src/schema/schema-differ.js +228 -21
- package/dist/src/schema/schema-differ.js.map +1 -1
- package/dist/src/types/builtin-types.d.ts.map +1 -1
- package/dist/src/types/builtin-types.js +12 -28
- package/dist/src/types/builtin-types.js.map +1 -1
- package/dist/src/types/cast-semantics.d.ts +7 -5
- package/dist/src/types/cast-semantics.d.ts.map +1 -1
- package/dist/src/types/cast-semantics.js +20 -9
- package/dist/src/types/cast-semantics.js.map +1 -1
- package/dist/src/types/index.d.ts +1 -1
- package/dist/src/types/index.d.ts.map +1 -1
- package/dist/src/types/index.js +1 -1
- package/dist/src/types/index.js.map +1 -1
- package/dist/src/types/registry.d.ts.map +1 -1
- package/dist/src/types/registry.js +2 -1
- package/dist/src/types/registry.js.map +1 -1
- package/dist/src/types/temporal-types.d.ts +11 -0
- package/dist/src/types/temporal-types.d.ts.map +1 -1
- package/dist/src/types/temporal-types.js +82 -0
- package/dist/src/types/temporal-types.js.map +1 -1
- package/dist/src/util/abort-signal.d.ts +25 -0
- package/dist/src/util/abort-signal.d.ts.map +1 -0
- package/dist/src/util/abort-signal.js +40 -0
- package/dist/src/util/abort-signal.js.map +1 -0
- package/dist/src/util/affinity.d.ts +2 -1
- package/dist/src/util/affinity.d.ts.map +1 -1
- package/dist/src/util/affinity.js +16 -5
- package/dist/src/util/affinity.js.map +1 -1
- package/dist/src/util/ast-spine-clone.d.ts +2 -2
- package/dist/src/util/ast-spine-clone.js +2 -2
- package/dist/src/util/value-text.d.ts +48 -0
- package/dist/src/util/value-text.d.ts.map +1 -0
- package/dist/src/util/value-text.js +35 -0
- package/dist/src/util/value-text.js.map +1 -0
- package/dist/src/vtab/concurrency.d.ts +15 -0
- package/dist/src/vtab/concurrency.d.ts.map +1 -1
- package/dist/src/vtab/concurrency.js +17 -0
- package/dist/src/vtab/concurrency.js.map +1 -1
- package/dist/src/vtab/memory/layer/base.d.ts +10 -0
- package/dist/src/vtab/memory/layer/base.d.ts.map +1 -1
- package/dist/src/vtab/memory/layer/base.js +10 -0
- package/dist/src/vtab/memory/layer/base.js.map +1 -1
- package/dist/src/vtab/memory/layer/interface.d.ts +24 -0
- package/dist/src/vtab/memory/layer/interface.d.ts.map +1 -1
- package/dist/src/vtab/memory/layer/manager.d.ts +21 -3
- package/dist/src/vtab/memory/layer/manager.d.ts.map +1 -1
- package/dist/src/vtab/memory/layer/manager.js +118 -93
- package/dist/src/vtab/memory/layer/manager.js.map +1 -1
- package/dist/src/vtab/memory/layer/transaction.d.ts +11 -0
- package/dist/src/vtab/memory/layer/transaction.d.ts.map +1 -1
- package/dist/src/vtab/memory/layer/transaction.js +19 -0
- package/dist/src/vtab/memory/layer/transaction.js.map +1 -1
- package/dist/src/vtab/memory/module.d.ts +41 -0
- package/dist/src/vtab/memory/module.d.ts.map +1 -1
- package/dist/src/vtab/memory/module.js +41 -0
- package/dist/src/vtab/memory/module.js.map +1 -1
- package/dist/src/vtab/memory/table.d.ts +12 -1
- package/dist/src/vtab/memory/table.d.ts.map +1 -1
- package/dist/src/vtab/memory/table.js +12 -1
- package/dist/src/vtab/memory/table.js.map +1 -1
- package/dist/src/vtab/module.d.ts +33 -0
- package/dist/src/vtab/module.d.ts.map +1 -1
- package/dist/src/vtab/test-support/commit-stall.d.ts +53 -0
- package/dist/src/vtab/test-support/commit-stall.d.ts.map +1 -0
- package/dist/src/vtab/test-support/commit-stall.js +73 -0
- package/dist/src/vtab/test-support/commit-stall.js.map +1 -0
- package/dist/src/vtab/test-support/committed-read-conformance.d.ts +96 -0
- package/dist/src/vtab/test-support/committed-read-conformance.d.ts.map +1 -0
- package/dist/src/vtab/test-support/committed-read-conformance.js +364 -0
- package/dist/src/vtab/test-support/committed-read-conformance.js.map +1 -0
- package/package.json +3 -3
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import type { Database } from '../core/database.js';
|
|
2
2
|
import type * as AST from '../parser/ast.js';
|
|
3
3
|
import type { CatalogObjectKind } from '../vtab/module.js';
|
|
4
|
-
import type { Schema } from './schema.js';
|
|
5
4
|
import type { TableSchema } from './table.js';
|
|
6
5
|
import type { ViewSchema } from './view.js';
|
|
7
6
|
/**
|
|
@@ -31,6 +30,15 @@ export declare function assertCatalogObjectPersistable(db: Database, kind: Catal
|
|
|
31
30
|
* {@link import('./rename-rewriter.js').renameColumnInAst} already have.
|
|
32
31
|
*/
|
|
33
32
|
export type BodyRewrite = (ast: AST.QueryExpr) => boolean;
|
|
33
|
+
/**
|
|
34
|
+
* A {@link BodyRewrite} factory bound to the home schema of the body it will be handed.
|
|
35
|
+
* The pre-flight walks dependents living in every schema, and an unqualified name in a
|
|
36
|
+
* stored body resolves under ITS OWN home schema path — so the caller supplies one
|
|
37
|
+
* rewrite per body owner rather than one for the whole statement. The factory must draw
|
|
38
|
+
* every resolver from the statement's single pre-mutation catalog snapshot (see
|
|
39
|
+
* {@link import('./object-ref-resolver.js').snapshotObjectRefResolvers}).
|
|
40
|
+
*/
|
|
41
|
+
export type BodyRewriteFor = (homeSchemaName: string) => BodyRewrite;
|
|
34
42
|
/**
|
|
35
43
|
* A rewrite of a dependent TABLE's schema, returning a NEW record when anything changed
|
|
36
44
|
* and the SAME reference when nothing did — the shape `rewriteTableForTableRename` /
|
|
@@ -39,7 +47,7 @@ export type BodyRewrite = (ast: AST.QueryExpr) => boolean;
|
|
|
39
47
|
export type TableRewrite = (table: TableSchema) => TableSchema;
|
|
40
48
|
/**
|
|
41
49
|
* Pre-flight gate for `ALTER TABLE … RENAME [COLUMN]`: computes what the rename would
|
|
42
|
-
* make of every dependent catalog entry — view / materialized-view bodies via `
|
|
50
|
+
* make of every dependent catalog entry — view / materialized-view bodies via `rewriteFor`,
|
|
43
51
|
* plain table records via `rewriteTable` — and vetoes each PROSPECTIVE object through
|
|
44
52
|
* {@link assertCatalogObjectPersistable}, so a rename that would leave a persisted
|
|
45
53
|
* dependent unwritable fails the statement instead of succeeding and losing (or silently
|
|
@@ -57,5 +65,5 @@ export type TableRewrite = (table: TableSchema) => TableSchema;
|
|
|
57
65
|
* prospective render needs. Dependents the rewrite does not touch render identically to
|
|
58
66
|
* what is already persisted and are skipped.
|
|
59
67
|
*/
|
|
60
|
-
export declare function assertRenameDependentsPersistable(db: Database,
|
|
68
|
+
export declare function assertRenameDependentsPersistable(db: Database, rewriteFor: BodyRewriteFor, rewriteTable: TableRewrite): void;
|
|
61
69
|
//# sourceMappingURL=catalog-persistability.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"catalog-persistability.d.ts","sourceRoot":"","sources":["../../../src/schema/catalog-persistability.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,KAAK,KAAK,GAAG,MAAM,kBAAkB,CAAC;AAE7C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAE3D,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"catalog-persistability.d.ts","sourceRoot":"","sources":["../../../src/schema/catalog-persistability.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,KAAK,KAAK,GAAG,MAAM,kBAAkB,CAAC;AAE7C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAE3D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAE5C;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,8BAA8B,CAC7C,EAAE,EAAE,QAAQ,EACZ,IAAI,EAAE,iBAAiB,EACvB,MAAM,EAAE,UAAU,GAAG,WAAW,GAC9B,IAAI,CAIN;AAED;;;;;GAKG;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,SAAS,KAAK,OAAO,CAAC;AAE1D;;;;;;;GAOG;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,cAAc,EAAE,MAAM,KAAK,WAAW,CAAC;AAErE;;;;GAIG;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,KAAK,EAAE,WAAW,KAAK,WAAW,CAAC;AAE/D;;;;;;;;;;;;;;;;;;;GAmBG;AAqBH,wBAAgB,iCAAiC,CAChD,EAAE,EAAE,QAAQ,EACZ,UAAU,EAAE,cAAc,EAC1B,YAAY,EAAE,YAAY,GACxB,IAAI,CAIN"}
|
|
@@ -26,7 +26,7 @@ export function assertCatalogObjectPersistable(db, kind, object) {
|
|
|
26
26
|
}
|
|
27
27
|
/**
|
|
28
28
|
* Pre-flight gate for `ALTER TABLE … RENAME [COLUMN]`: computes what the rename would
|
|
29
|
-
* make of every dependent catalog entry — view / materialized-view bodies via `
|
|
29
|
+
* make of every dependent catalog entry — view / materialized-view bodies via `rewriteFor`,
|
|
30
30
|
* plain table records via `rewriteTable` — and vetoes each PROSPECTIVE object through
|
|
31
31
|
* {@link assertCatalogObjectPersistable}, so a rename that would leave a persisted
|
|
32
32
|
* dependent unwritable fails the statement instead of succeeding and losing (or silently
|
|
@@ -44,43 +44,61 @@ export function assertCatalogObjectPersistable(db, kind, object) {
|
|
|
44
44
|
* prospective render needs. Dependents the rewrite does not touch render identically to
|
|
45
45
|
* what is already persisted and are skipped.
|
|
46
46
|
*/
|
|
47
|
-
// NOTE: clones and re-renders the body of every view and maintained table
|
|
48
|
-
//
|
|
49
|
-
//
|
|
50
|
-
//
|
|
47
|
+
// NOTE: clones and re-renders the body of every view and maintained table, and the
|
|
48
|
+
// rewritable ASTs of every table, in EVERY schema, on every `ALTER … RENAME` — and the
|
|
49
|
+
// propagation that follows renders each changed one again. DDL is rare and the ASTs are
|
|
50
|
+
// small, so this is not worth caching today; if a schema-heavy workload ever shows up
|
|
51
51
|
// hot here, gate the clone on a cheap dry-run name scan (or thread the prospective object
|
|
52
52
|
// through to the propagation instead of rebuilding it). Costs nothing at all when no
|
|
53
53
|
// module can veto (the early return below) — a memory-only database never pays it.
|
|
54
|
-
|
|
54
|
+
//
|
|
55
|
+
// NOTE: round-1-only by design. The column-rename propagation is a CASCADE (a view whose
|
|
56
|
+
// PUBLISHED name shifts re-runs the propagation with the view as the target — see
|
|
57
|
+
// runtime/emit/column-rename-cascade.ts), but this probe vets only the direct rewrites of
|
|
58
|
+
// the renamed table's round. Simulating the whole cascade here would mean running the
|
|
59
|
+
// fixpoint twice or vetoing after the catalog swap — the latter inventing a partial-rename
|
|
60
|
+
// failure mode the engine does not have. And it is unnecessary: the only thing a module
|
|
61
|
+
// refuses is an unencodable name / literal, and every cascade round introduces the SAME
|
|
62
|
+
// `newCol` string the statement already vets (this probe on any round-1 body it changes,
|
|
63
|
+
// and the module's own alterTable/renameColumn guard on the renamed table itself), so a
|
|
64
|
+
// cascaded body can only be unpersistable for a reason that predates the statement.
|
|
65
|
+
// Revisit if the veto hook ever grows a check that depends on the body as a whole rather
|
|
66
|
+
// than on the names introduced.
|
|
67
|
+
export function assertRenameDependentsPersistable(db, rewriteFor, rewriteTable) {
|
|
55
68
|
if (!anyModuleCanVeto(db))
|
|
56
69
|
return;
|
|
57
|
-
assertRenameDependentViewsPersistable(db,
|
|
70
|
+
assertRenameDependentViewsPersistable(db, rewriteFor);
|
|
58
71
|
assertRenameDependentTablesPersistable(db, rewriteTable);
|
|
59
72
|
}
|
|
60
73
|
/**
|
|
61
74
|
* The view / materialized-view arm of {@link assertRenameDependentsPersistable}.
|
|
62
75
|
*
|
|
63
|
-
*
|
|
64
|
-
* loops
|
|
65
|
-
*
|
|
76
|
+
* Walks EVERY schema, exactly like the dependent-table arm below and for the same reason:
|
|
77
|
+
* the propagation's view / MV loops walk every schema too (see `propagateTableRename`), so
|
|
78
|
+
* a view or materialized view in another schema over the renamed object IS rewritten and
|
|
79
|
+
* must be vetted. `rewriteFor` is asked for a rewrite bound to each body's OWN home schema,
|
|
80
|
+
* because that is the path its unqualified names resolve under.
|
|
66
81
|
*/
|
|
67
|
-
function assertRenameDependentViewsPersistable(db,
|
|
68
|
-
for (const
|
|
69
|
-
const
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
82
|
+
function assertRenameDependentViewsPersistable(db, rewriteFor) {
|
|
83
|
+
for (const schema of db.schemaManager._getAllSchemas()) {
|
|
84
|
+
const rewrite = rewriteFor(schema.name);
|
|
85
|
+
for (const view of Array.from(schema.getAllViews())) {
|
|
86
|
+
const selectAst = spineCloneAst(view.selectAst);
|
|
87
|
+
if (!rewrite(selectAst))
|
|
88
|
+
continue;
|
|
89
|
+
assertCatalogObjectPersistable(db, 'view', { ...view, selectAst });
|
|
90
|
+
}
|
|
91
|
+
for (const table of Array.from(schema.getAllTables())) {
|
|
92
|
+
if (!isMaintainedTable(table))
|
|
93
|
+
continue;
|
|
94
|
+
const selectAst = spineCloneAst(table.derivation.selectAst);
|
|
95
|
+
if (!rewrite(selectAst))
|
|
96
|
+
continue;
|
|
97
|
+
assertCatalogObjectPersistable(db, 'materializedView', {
|
|
98
|
+
...table,
|
|
99
|
+
derivation: { ...table.derivation, selectAst },
|
|
100
|
+
});
|
|
101
|
+
}
|
|
84
102
|
}
|
|
85
103
|
}
|
|
86
104
|
/**
|
|
@@ -91,8 +109,9 @@ function assertRenameDependentViewsPersistable(db, schema, rewrite) {
|
|
|
91
109
|
*
|
|
92
110
|
* Walks EVERY schema, not just the renamed object's own, because the propagation's table
|
|
93
111
|
* loop does (`propagateTableRename` iterates `_getAllSchemas()`) — a cross-schema foreign
|
|
94
|
-
* key is rewritten and so must be vetted.
|
|
95
|
-
*
|
|
112
|
+
* key is rewritten and so must be vetted. Same scope as the view / MV arm above; the one
|
|
113
|
+
* structural difference is that a table record needs no per-home-schema rewrite factory
|
|
114
|
+
* (`rewriteTableForTableRename` derives its own resolver from `table.schemaName`).
|
|
96
115
|
*
|
|
97
116
|
* The renamed table itself is deliberately left in the scan rather than special-cased. It
|
|
98
117
|
* is probed under its OLD name with any self-references rewritten to the NEW one (table
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"catalog-persistability.js","sourceRoot":"","sources":["../../../src/schema/catalog-persistability.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAE3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"catalog-persistability.js","sourceRoot":"","sources":["../../../src/schema/catalog-persistability.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAE3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAIpD;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,8BAA8B,CAC7C,EAAY,EACZ,IAAuB,EACvB,MAAgC;IAEhC,KAAK,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,EAAE,CAAC;QACxD,MAAM,CAAC,8BAA8B,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IAC3D,CAAC;AACF,CAAC;AA2BD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,mFAAmF;AACnF,uFAAuF;AACvF,wFAAwF;AACxF,sFAAsF;AACtF,0FAA0F;AAC1F,qFAAqF;AACrF,mFAAmF;AACnF,EAAE;AACF,yFAAyF;AACzF,kFAAkF;AAClF,0FAA0F;AAC1F,sFAAsF;AACtF,2FAA2F;AAC3F,wFAAwF;AACxF,wFAAwF;AACxF,yFAAyF;AACzF,wFAAwF;AACxF,oFAAoF;AACpF,yFAAyF;AACzF,gCAAgC;AAChC,MAAM,UAAU,iCAAiC,CAChD,EAAY,EACZ,UAA0B,EAC1B,YAA0B;IAE1B,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAAE,OAAO;IAClC,qCAAqC,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;IACtD,sCAAsC,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC;AAC1D,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,qCAAqC,CAAC,EAAY,EAAE,UAA0B;IACtF,KAAK,MAAM,MAAM,IAAI,EAAE,CAAC,aAAa,CAAC,cAAc,EAAE,EAAE,CAAC;QACxD,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACxC,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;YACrD,MAAM,SAAS,GAAG,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAChD,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;gBAAE,SAAS;YAClC,8BAA8B,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;QACpE,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,EAAE,CAAC;YACvD,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC;gBAAE,SAAS;YACxC,MAAM,SAAS,GAAG,aAAa,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;YAC5D,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;gBAAE,SAAS;YAClC,8BAA8B,CAAC,EAAE,EAAE,kBAAkB,EAAE;gBACtD,GAAG,KAAK;gBACR,UAAU,EAAE,EAAE,GAAG,KAAK,CAAC,UAAU,EAAE,SAAS,EAAE;aAC9C,CAAC,CAAC;QACJ,CAAC;IACF,CAAC;AACF,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,SAAS,sCAAsC,CAAC,EAAY,EAAE,YAA0B;IACvF,KAAK,MAAM,MAAM,IAAI,EAAE,CAAC,aAAa,CAAC,cAAc,EAAE,EAAE,CAAC;QACxD,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,EAAE,CAAC;YACvD,MAAM,KAAK,GAAG,wBAAwB,CAAC,KAAK,CAAC,CAAC;YAC9C,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;YACtC,IAAI,SAAS,KAAK,KAAK;gBAAE,SAAS,CAAC,wBAAwB;YAC3D,8BAA8B,CAAC,EAAE,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;QACxD,CAAC;IACF,CAAC;AACF,CAAC;AAED;;;;;;;;;;;GAWG;AACH,6FAA6F;AAC7F,8FAA8F;AAC9F,8FAA8F;AAC9F,8FAA8F;AAC9F,+FAA+F;AAC/F,8DAA8D;AAC9D,SAAS,wBAAwB,CAAC,KAAkB;IACnD,OAAO;QACN,GAAG,KAAK;QACR,gBAAgB,EAAE,KAAK,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,aAAa,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC7F,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,CACjC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,SAAS,EAAE,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;QAC3E,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YAChC,IAAI,CAAC,GAAG,CAAC,YAAY,IAAI,CAAC,GAAG,CAAC,aAAa;gBAAE,OAAO,GAAG,CAAC;YACxD,OAAO;gBACN,GAAG,GAAG;gBACN,YAAY,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY;gBACnF,aAAa,EAAE,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,aAAa;aACvF,CAAC;QACH,CAAC,CAAC;KACF,CAAC;AACH,CAAC;AAED;;6EAE6E;AAC7E,SAAS,gBAAgB,CAAC,EAAY;IACrC,KAAK,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,EAAE,CAAC;QACxD,IAAI,MAAM,CAAC,8BAA8B;YAAE,OAAO,IAAI,CAAC;IACxD,CAAC;IACD,OAAO,KAAK,CAAC;AACd,CAAC"}
|
|
@@ -63,6 +63,11 @@ export interface CatalogTable {
|
|
|
63
63
|
backingModuleName?: string;
|
|
64
64
|
/** Backing-module args; recorded only when non-empty. */
|
|
65
65
|
backingModuleArgs?: Readonly<Record<string, SqlValue>>;
|
|
66
|
+
/**
|
|
67
|
+
* The live derivation body AST, for the differ's rename-artifact-tolerant
|
|
68
|
+
* hash re-compare (see `CatalogView.select`). Read-only to consumers.
|
|
69
|
+
*/
|
|
70
|
+
select?: AST.QueryExpr;
|
|
66
71
|
};
|
|
67
72
|
}
|
|
68
73
|
export interface CatalogView {
|
|
@@ -80,6 +85,16 @@ export interface CatalogView {
|
|
|
80
85
|
*/
|
|
81
86
|
definition: string;
|
|
82
87
|
tags?: Readonly<Record<string, SqlValue>>;
|
|
88
|
+
/**
|
|
89
|
+
* The live body AST behind `definition`. The differ needs it for the
|
|
90
|
+
* rename-artifact-tolerant compare (`absorbRenameArtifacts`): the live
|
|
91
|
+
* rename propagation can write an engine-authored schema qualifier or FROM
|
|
92
|
+
* alias into a stored body, and only a structural walk against the declared
|
|
93
|
+
* AST can tell those artifacts from a real edit. Optional so hand-built
|
|
94
|
+
* catalogs without it simply skip that tolerance (strict compare). Treated
|
|
95
|
+
* as read-only by every consumer — it is the live schema's AST, not a copy.
|
|
96
|
+
*/
|
|
97
|
+
select?: AST.QueryExpr;
|
|
83
98
|
}
|
|
84
99
|
export interface CatalogIndex {
|
|
85
100
|
name: string;
|
|
@@ -121,6 +136,13 @@ export interface CatalogAssertion {
|
|
|
121
136
|
* `CatalogView.definition` / `CatalogIndex.definition`.
|
|
122
137
|
*/
|
|
123
138
|
definition: string;
|
|
139
|
+
/**
|
|
140
|
+
* The live CHECK expression AST behind `definition`, for the differ's
|
|
141
|
+
* rename-artifact-tolerant compare (see `CatalogView.select`). Absent for
|
|
142
|
+
* the hypothetical violationSql-only reconstruction path. Read-only to
|
|
143
|
+
* consumers.
|
|
144
|
+
*/
|
|
145
|
+
check?: AST.Expression;
|
|
124
146
|
}
|
|
125
147
|
/**
|
|
126
148
|
* Collects current schema state from the database into a catalog representation
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../../../src/schema/catalog.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,KAAK,EAAE,WAAW,EAAe,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAMtG,OAAO,KAAK,KAAK,GAAG,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,KAAK,QAAQ,EAAc,MAAM,oBAAoB,CAAC;AAM/D;;GAEG;AACH,MAAM,WAAW,aAAa;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,UAAU,EAAE,gBAAgB,EAAE,CAAC;CAC/B;AAED,MAAM,WAAW,YAAY;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,KAAK,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,OAAO,CAAC;QACjB,UAAU,EAAE,OAAO,CAAC;QACpB,YAAY,EAAE,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC;QACpC,uEAAuE;QACvE,SAAS,EAAE,MAAM,CAAC;QAClB,IAAI,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;KAC1C,CAAC,CAAC;IACH,UAAU,EAAE,KAAK,CAAC;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IACzD,oFAAoF;IACpF,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,IAAI,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC1C;;;;;;;;OAQG;IACH,gBAAgB,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACzG;;;;;;;;;;OAUG;IACH,UAAU,CAAC,EAAE;QACZ,QAAQ,EAAE,MAAM,CAAC;QACjB,yEAAyE;QACzE,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,yDAAyD;QACzD,iBAAiB,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../../../src/schema/catalog.ts"],"names":[],"mappings":"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"}
|
|
@@ -212,6 +212,7 @@ function maintainedDescriptor(table) {
|
|
|
212
212
|
bodyHash: table.derivation.bodyHash,
|
|
213
213
|
backingModuleName: backing.storedModuleName,
|
|
214
214
|
backingModuleArgs: backing.storedModuleArgs,
|
|
215
|
+
select: table.derivation.selectAst,
|
|
215
216
|
};
|
|
216
217
|
}
|
|
217
218
|
function viewSchemaToCatalog(viewSchema) {
|
|
@@ -220,6 +221,7 @@ function viewSchemaToCatalog(viewSchema) {
|
|
|
220
221
|
ddl: viewSchema.sql,
|
|
221
222
|
definition: viewDefinitionToCanonicalString(viewSchema.columns, viewSchema.selectAst),
|
|
222
223
|
tags: viewSchema.tags,
|
|
224
|
+
select: viewSchema.selectAst,
|
|
223
225
|
};
|
|
224
226
|
}
|
|
225
227
|
/**
|
|
@@ -582,7 +584,8 @@ function assertionSchemaToCatalog(assertionSchema) {
|
|
|
582
584
|
return {
|
|
583
585
|
name: assertionSchema.name,
|
|
584
586
|
ddl: `CREATE ASSERTION ${qualifiedName} CHECK (${checkSql})`,
|
|
585
|
-
definition: checkSql
|
|
587
|
+
definition: checkSql,
|
|
588
|
+
check: assertionSchema.checkExpression,
|
|
586
589
|
};
|
|
587
590
|
}
|
|
588
591
|
/**
|
|
@@ -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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"}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import type { Database } from '../core/database.js';
|
|
2
|
+
import type { ObjectRefResolvers } from './object-ref-resolver.js';
|
|
3
|
+
import type { ResolveColumnInSource } from './rename-rewriter.js';
|
|
4
|
+
/**
|
|
5
|
+
* Column REPUBLICATION: which views / materialized views expose a table's
|
|
6
|
+
* column as one of their own output columns — a bare passthrough projection
|
|
7
|
+
* (`select x from t`), or a `*` / `t.*` whose frame binds the table.
|
|
8
|
+
*
|
|
9
|
+
* Two verbs consume the same lineage, which is why it lives here in `schema/`
|
|
10
|
+
* rather than inside either verb's emitter:
|
|
11
|
+
*
|
|
12
|
+
* - `ALTER TABLE … RENAME COLUMN` re-targets its propagation on every
|
|
13
|
+
* republisher, breadth-first, because rewriting a body shifts the name that
|
|
14
|
+
* body PUBLISHES and its readers then need the same rename with the view as
|
|
15
|
+
* the target ({@link scanShiftedPublishers}, driven by
|
|
16
|
+
* `runtime/emit/column-rename-cascade.ts`).
|
|
17
|
+
* - `ALTER TABLE … DROP COLUMN` refuses when a live rule (CHECK / DEFAULT /
|
|
18
|
+
* generated body / assertion) reads the column, and a rule can read it
|
|
19
|
+
* THROUGH a republisher without any body in the chain spelling the column's
|
|
20
|
+
* name (`create view v as select * from t` + a rule reading `v.x`). The
|
|
21
|
+
* drop guards therefore probe each reached body against every republication
|
|
22
|
+
* target ({@link collectColumnRepublication}), not against the base table
|
|
23
|
+
* alone — restoring the invariant that the drop refuses exactly the
|
|
24
|
+
* references a rename would have rewritten.
|
|
25
|
+
*/
|
|
26
|
+
/** One round's rename target: the object whose published column shifts old → new. */
|
|
27
|
+
export interface ColumnRenameCascadeTarget {
|
|
28
|
+
/** Canonical `<schema>.<name>` key of the target (see {@link objectRefKey}). */
|
|
29
|
+
targetKey: string;
|
|
30
|
+
/** The target's bare name — what unqualified references in dependent bodies spell. */
|
|
31
|
+
tableName: string;
|
|
32
|
+
}
|
|
33
|
+
/** Visited-set key for one (target, column) pair of a cascade / fixpoint round. */
|
|
34
|
+
export declare const visitKeyOf: (target: ColumnRenameCascadeTarget, oldColLower: string) => string;
|
|
35
|
+
export interface ShiftScanOpts {
|
|
36
|
+
/**
|
|
37
|
+
* Probe a spine clone with the round's rewrite applied first — the read-only
|
|
38
|
+
* pre-flight, whose bodies have not been rewritten yet. The live driver's
|
|
39
|
+
* scan runs after the round's in-place rewrites and reads the live ASTs.
|
|
40
|
+
*/
|
|
41
|
+
probeOnClone: boolean;
|
|
42
|
+
/** MVs whose published names cannot shift (pre-existing staleness — the
|
|
43
|
+
* backing columns are not renamed for those). */
|
|
44
|
+
isMvExcluded: (mv: {
|
|
45
|
+
schemaName: string;
|
|
46
|
+
name: string;
|
|
47
|
+
derivation: {
|
|
48
|
+
stale?: boolean;
|
|
49
|
+
};
|
|
50
|
+
}) => boolean;
|
|
51
|
+
/** Called once per dependent whose published names the target's rename shifts. */
|
|
52
|
+
onShifted: (dependent: ColumnRenameCascadeTarget) => void;
|
|
53
|
+
/** Pre-flight only: a shifted dependent ALSO already publishes `newCol`. */
|
|
54
|
+
onCollision?: (kind: 'view' | 'materialized view', schemaName: string, name: string) => void;
|
|
55
|
+
/**
|
|
56
|
+
* Called for a view / MV with an EXPLICIT column list whose body republishes
|
|
57
|
+
* the column. Such an object never shifts a published name (the list pins
|
|
58
|
+
* them — why the rename skips it), but a column DROP changes the arity its
|
|
59
|
+
* `*` produces and breaks the object outright. Only the drop's fixpoint
|
|
60
|
+
* passes this; when absent the object is skipped without paying the probe,
|
|
61
|
+
* exactly as the cascade always has.
|
|
62
|
+
*/
|
|
63
|
+
onListedShifted?: (kind: 'view' | 'materialized view', schemaName: string, name: string) => void;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* One round's dependent scan, shared by the rename cascade (pre-flight and
|
|
67
|
+
* live driver) and the drop fixpoint: every schema's plain views and
|
|
68
|
+
* maintained tables. An explicit column list pins the published names (the
|
|
69
|
+
* same guard `cte.columns` is inside the CTE exposure analysis), so a listed
|
|
70
|
+
* object is never a shift target — it is reported through
|
|
71
|
+
* {@link ShiftScanOpts.onListedShifted} instead, when that arm is wired.
|
|
72
|
+
*/
|
|
73
|
+
export declare function scanShiftedPublishers(db: Database, target: ColumnRenameCascadeTarget, oldCol: string, newCol: string, resolvers: ObjectRefResolvers, resolveColumnInSource: ResolveColumnInSource, opts: ShiftScanOpts): void;
|
|
74
|
+
/** A listed view / MV a column drop would break outright — see {@link ColumnRepublication.brokenListed}. */
|
|
75
|
+
export interface BrokenListedRepublisher {
|
|
76
|
+
/** Canonical `<schema>.<name>` key, for `ObjectReach.namerOf`. */
|
|
77
|
+
key: string;
|
|
78
|
+
/** Error-message spelling: `view 'v'` / `materialized view 'm'`. */
|
|
79
|
+
describe: string;
|
|
80
|
+
}
|
|
81
|
+
/** What {@link collectColumnRepublication} returns — the drop guards' lineage answer. */
|
|
82
|
+
export interface ColumnRepublication {
|
|
83
|
+
/**
|
|
84
|
+
* The seed plus every view / MV that republishes the column, transitively,
|
|
85
|
+
* breadth-first — the SEED FIRST, so a guard sweeping targets in order
|
|
86
|
+
* reports base-table matches with the message spelling it always has.
|
|
87
|
+
*/
|
|
88
|
+
targets: ReadonlyArray<ColumnRenameCascadeTarget>;
|
|
89
|
+
/**
|
|
90
|
+
* Views / MVs with an EXPLICIT column list whose body republishes the
|
|
91
|
+
* column. These are NOT targets — a pinned list publishes no shifted name —
|
|
92
|
+
* but dropping the column changes the arity their `*` produces and breaks
|
|
93
|
+
* the object outright, so a rule whose reach names one at all must refuse.
|
|
94
|
+
*/
|
|
95
|
+
brokenListed: ReadonlyArray<BrokenListedRepublisher>;
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Read-only republication fixpoint for `ALTER TABLE … DROP COLUMN`: the same
|
|
99
|
+
* breadth-first walk the rename cascade's pre-flight runs
|
|
100
|
+
* (`assertColumnRenameCascadePublishable`), minus its collision arm, plus the
|
|
101
|
+
* listed-object arm above.
|
|
102
|
+
*
|
|
103
|
+
* Nothing is renamed here, so each round probes with a SENTINEL new name
|
|
104
|
+
* ({@link PROBE_COLUMN_NAME} — the same trick `columnReferencedInAst` uses):
|
|
105
|
+
* `probeOnClone` applies the sentinel rename to a spine clone and asks
|
|
106
|
+
* `bodyExposesRenamedColumn` against it, mutating nothing. Downstream rounds
|
|
107
|
+
* keep asking about `columnName` unchanged — a republisher exposes the column
|
|
108
|
+
* under its own name, which is what its readers spell.
|
|
109
|
+
*
|
|
110
|
+
* The pristine catalog gives the same answers the cascade's live rounds would,
|
|
111
|
+
* for the pre-flight's own reason: a round only rewrites references binding
|
|
112
|
+
* ITS OWN target, which no other round's exposure question consults.
|
|
113
|
+
*
|
|
114
|
+
* MATERIALIZED VIEWS are treated exactly like views — `isMvExcluded` never
|
|
115
|
+
* fires — deliberately CONSERVATIVE: an MV's backing columns survive the drop,
|
|
116
|
+
* so a rule reading the column through the MV would in fact keep working
|
|
117
|
+
* (against frozen contents, with the MV marked stale and its next
|
|
118
|
+
* `refresh materialized view` failing). Refusing anyway keeps one rule for
|
|
119
|
+
* both object kinds and matches what the named-projection spelling already
|
|
120
|
+
* does (pinned by 41.10.2 §27) and what `DROP TABLE` does for the same object.
|
|
121
|
+
* The cascade's stale-MV exclusion is rename-specific (a pre-stale MV's
|
|
122
|
+
* backing columns are not renamed) and has no drop analogue, so staleness is
|
|
123
|
+
* not consulted at all.
|
|
124
|
+
*/
|
|
125
|
+
export declare function collectColumnRepublication(db: Database, seed: ColumnRenameCascadeTarget, columnName: string, resolvers: ObjectRefResolvers, resolveColumnInSource: ResolveColumnInSource): ColumnRepublication;
|
|
126
|
+
//# sourceMappingURL=column-republication.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"column-republication.d.ts","sourceRoot":"","sources":["../../../src/schema/column-republication.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAQnE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAGlE;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,qFAAqF;AACrF,MAAM,WAAW,yBAAyB;IACzC,gFAAgF;IAChF,SAAS,EAAE,MAAM,CAAC;IAClB,sFAAsF;IACtF,SAAS,EAAE,MAAM,CAAC;CAClB;AAED,mFAAmF;AACnF,eAAO,MAAM,UAAU,GAAI,QAAQ,yBAAyB,EAAE,aAAa,MAAM,KAAG,MAC/C,CAAC;AAEtC,MAAM,WAAW,aAAa;IAC7B;;;;OAIG;IACH,YAAY,EAAE,OAAO,CAAC;IACtB;sDACkD;IAClD,YAAY,EAAE,CAAC,EAAE,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE;YAAE,KAAK,CAAC,EAAE,OAAO,CAAA;SAAE,CAAA;KAAE,KAAK,OAAO,CAAC;IACrG,kFAAkF;IAClF,SAAS,EAAE,CAAC,SAAS,EAAE,yBAAyB,KAAK,IAAI,CAAC;IAC1D,4EAA4E;IAC5E,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,mBAAmB,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7F;;;;;;;OAOG;IACH,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,mBAAmB,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACjG;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACpC,EAAE,EAAE,QAAQ,EACZ,MAAM,EAAE,yBAAyB,EACjC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,kBAAkB,EAC7B,qBAAqB,EAAE,qBAAqB,EAC5C,IAAI,EAAE,aAAa,GACjB,IAAI,CA2CN;AAED,4GAA4G;AAC5G,MAAM,WAAW,uBAAuB;IACvC,kEAAkE;IAClE,GAAG,EAAE,MAAM,CAAC;IACZ,oEAAoE;IACpE,QAAQ,EAAE,MAAM,CAAC;CACjB;AAED,yFAAyF;AACzF,MAAM,WAAW,mBAAmB;IACnC;;;;OAIG;IACH,OAAO,EAAE,aAAa,CAAC,yBAAyB,CAAC,CAAC;IAClD;;;;;OAKG;IACH,YAAY,EAAE,aAAa,CAAC,uBAAuB,CAAC,CAAC;CACrD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,0BAA0B,CACzC,EAAE,EAAE,QAAQ,EACZ,IAAI,EAAE,yBAAyB,EAC/B,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,kBAAkB,EAC7B,qBAAqB,EAAE,qBAAqB,GAC1C,mBAAmB,CA4BrB"}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import { isMaintainedTable } from './derivation.js';
|
|
2
|
+
import { PROBE_COLUMN_NAME, bodyExposesRenamedColumn, bodyPublishesColumnNamed, objectRefKey, renameColumnInAst, } from './rename-rewriter.js';
|
|
3
|
+
import { spineCloneAst } from '../util/ast-spine-clone.js';
|
|
4
|
+
/** Visited-set key for one (target, column) pair of a cascade / fixpoint round. */
|
|
5
|
+
export const visitKeyOf = (target, oldColLower) => `${target.targetKey}:${oldColLower}`;
|
|
6
|
+
/**
|
|
7
|
+
* One round's dependent scan, shared by the rename cascade (pre-flight and
|
|
8
|
+
* live driver) and the drop fixpoint: every schema's plain views and
|
|
9
|
+
* maintained tables. An explicit column list pins the published names (the
|
|
10
|
+
* same guard `cte.columns` is inside the CTE exposure analysis), so a listed
|
|
11
|
+
* object is never a shift target — it is reported through
|
|
12
|
+
* {@link ShiftScanOpts.onListedShifted} instead, when that arm is wired.
|
|
13
|
+
*/
|
|
14
|
+
export function scanShiftedPublishers(db, target, oldCol, newCol, resolvers, resolveColumnInSource, opts) {
|
|
15
|
+
for (const schema of db.schemaManager._getAllSchemas()) {
|
|
16
|
+
const resolve = resolvers.forHomeSchema(schema.name);
|
|
17
|
+
const shifted = (body) => {
|
|
18
|
+
let probe = body;
|
|
19
|
+
if (opts.probeOnClone) {
|
|
20
|
+
probe = spineCloneAst(body);
|
|
21
|
+
// Row-image mode 'none': a view / MV body is a relation with no written
|
|
22
|
+
// row (its `with inverse` / `with defaults` subtrees self-suppress).
|
|
23
|
+
renameColumnInAst(probe, target.tableName, oldCol, newCol, resolve, target.targetKey, 'none', resolveColumnInSource);
|
|
24
|
+
}
|
|
25
|
+
return bodyExposesRenamedColumn(probe, target.tableName, oldCol, newCol, resolve, target.targetKey, resolveColumnInSource);
|
|
26
|
+
};
|
|
27
|
+
for (const view of Array.from(schema.getAllViews())) {
|
|
28
|
+
if (view.columns && view.columns.length > 0) {
|
|
29
|
+
if (opts.onListedShifted && shifted(view.selectAst)) {
|
|
30
|
+
opts.onListedShifted('view', schema.name, view.name);
|
|
31
|
+
}
|
|
32
|
+
continue;
|
|
33
|
+
}
|
|
34
|
+
if (!shifted(view.selectAst))
|
|
35
|
+
continue;
|
|
36
|
+
if (opts.onCollision && bodyPublishesColumnNamed(view.selectAst, newCol, resolve, resolveColumnInSource)) {
|
|
37
|
+
opts.onCollision('view', schema.name, view.name);
|
|
38
|
+
}
|
|
39
|
+
opts.onShifted({ targetKey: objectRefKey(schema.name, view.name), tableName: view.name });
|
|
40
|
+
}
|
|
41
|
+
for (const table of Array.from(schema.getAllTables())) {
|
|
42
|
+
if (!isMaintainedTable(table))
|
|
43
|
+
continue;
|
|
44
|
+
if (opts.isMvExcluded(table))
|
|
45
|
+
continue;
|
|
46
|
+
const d = table.derivation;
|
|
47
|
+
if (d.columns && d.columns.length > 0) {
|
|
48
|
+
if (opts.onListedShifted && shifted(d.selectAst)) {
|
|
49
|
+
opts.onListedShifted('materialized view', schema.name, table.name);
|
|
50
|
+
}
|
|
51
|
+
continue;
|
|
52
|
+
}
|
|
53
|
+
if (!shifted(d.selectAst))
|
|
54
|
+
continue;
|
|
55
|
+
if (opts.onCollision && bodyPublishesColumnNamed(d.selectAst, newCol, resolve, resolveColumnInSource)) {
|
|
56
|
+
opts.onCollision('materialized view', schema.name, table.name);
|
|
57
|
+
}
|
|
58
|
+
opts.onShifted({ targetKey: objectRefKey(schema.name, table.name), tableName: table.name });
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Read-only republication fixpoint for `ALTER TABLE … DROP COLUMN`: the same
|
|
64
|
+
* breadth-first walk the rename cascade's pre-flight runs
|
|
65
|
+
* (`assertColumnRenameCascadePublishable`), minus its collision arm, plus the
|
|
66
|
+
* listed-object arm above.
|
|
67
|
+
*
|
|
68
|
+
* Nothing is renamed here, so each round probes with a SENTINEL new name
|
|
69
|
+
* ({@link PROBE_COLUMN_NAME} — the same trick `columnReferencedInAst` uses):
|
|
70
|
+
* `probeOnClone` applies the sentinel rename to a spine clone and asks
|
|
71
|
+
* `bodyExposesRenamedColumn` against it, mutating nothing. Downstream rounds
|
|
72
|
+
* keep asking about `columnName` unchanged — a republisher exposes the column
|
|
73
|
+
* under its own name, which is what its readers spell.
|
|
74
|
+
*
|
|
75
|
+
* The pristine catalog gives the same answers the cascade's live rounds would,
|
|
76
|
+
* for the pre-flight's own reason: a round only rewrites references binding
|
|
77
|
+
* ITS OWN target, which no other round's exposure question consults.
|
|
78
|
+
*
|
|
79
|
+
* MATERIALIZED VIEWS are treated exactly like views — `isMvExcluded` never
|
|
80
|
+
* fires — deliberately CONSERVATIVE: an MV's backing columns survive the drop,
|
|
81
|
+
* so a rule reading the column through the MV would in fact keep working
|
|
82
|
+
* (against frozen contents, with the MV marked stale and its next
|
|
83
|
+
* `refresh materialized view` failing). Refusing anyway keeps one rule for
|
|
84
|
+
* both object kinds and matches what the named-projection spelling already
|
|
85
|
+
* does (pinned by 41.10.2 §27) and what `DROP TABLE` does for the same object.
|
|
86
|
+
* The cascade's stale-MV exclusion is rename-specific (a pre-stale MV's
|
|
87
|
+
* backing columns are not renamed) and has no drop analogue, so staleness is
|
|
88
|
+
* not consulted at all.
|
|
89
|
+
*/
|
|
90
|
+
export function collectColumnRepublication(db, seed, columnName, resolvers, resolveColumnInSource) {
|
|
91
|
+
const colLower = columnName.toLowerCase();
|
|
92
|
+
const targets = [seed];
|
|
93
|
+
const brokenListed = [];
|
|
94
|
+
const flaggedListed = new Set();
|
|
95
|
+
const visited = new Set([visitKeyOf(seed, colLower)]);
|
|
96
|
+
const queue = [seed];
|
|
97
|
+
while (queue.length > 0) {
|
|
98
|
+
const target = queue.shift();
|
|
99
|
+
scanShiftedPublishers(db, target, columnName, PROBE_COLUMN_NAME, resolvers, resolveColumnInSource, {
|
|
100
|
+
probeOnClone: true,
|
|
101
|
+
isMvExcluded: () => false,
|
|
102
|
+
onShifted: dependent => {
|
|
103
|
+
const key = visitKeyOf(dependent, colLower);
|
|
104
|
+
if (visited.has(key))
|
|
105
|
+
return;
|
|
106
|
+
visited.add(key);
|
|
107
|
+
targets.push(dependent);
|
|
108
|
+
queue.push(dependent);
|
|
109
|
+
},
|
|
110
|
+
onListedShifted: (kind, schemaName, name) => {
|
|
111
|
+
const key = objectRefKey(schemaName, name);
|
|
112
|
+
if (flaggedListed.has(key))
|
|
113
|
+
return;
|
|
114
|
+
flaggedListed.add(key);
|
|
115
|
+
brokenListed.push({ key, describe: `${kind} '${name}'` });
|
|
116
|
+
},
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
return { targets, brokenListed };
|
|
120
|
+
}
|
|
121
|
+
//# sourceMappingURL=column-republication.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"column-republication.js","sourceRoot":"","sources":["../../../src/schema/column-republication.ts"],"names":[],"mappings":"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"}
|