@quereus/quereus 4.8.0 → 4.10.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/core/database.d.ts +6 -0
- package/dist/src/core/database.d.ts.map +1 -1
- package/dist/src/core/database.js +45 -5
- 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 +74 -15
- 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 +88 -35
- 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/explain.d.ts.map +1 -1
- package/dist/src/func/builtins/explain.js +9 -2
- package/dist/src/func/builtins/explain.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/scalar.d.ts.map +1 -1
- package/dist/src/func/builtins/scalar.js +4 -2
- package/dist/src/func/builtins/scalar.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/func/registration.d.ts +6 -0
- package/dist/src/func/registration.d.ts.map +1 -1
- package/dist/src/func/registration.js +1 -0
- package/dist/src/func/registration.js.map +1 -1
- package/dist/src/index.d.ts +7 -3
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +21 -2
- 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/nodes/scalar.d.ts.map +1 -1
- package/dist/src/planner/nodes/scalar.js +13 -1
- package/dist/src/planner/nodes/scalar.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/emission-context.d.ts +14 -1
- package/dist/src/runtime/emission-context.d.ts.map +1 -1
- package/dist/src/runtime/emission-context.js +17 -5
- package/dist/src/runtime/emission-context.js.map +1 -1
- package/dist/src/runtime/emit/aggregate-setup.d.ts +44 -8
- package/dist/src/runtime/emit/aggregate-setup.d.ts.map +1 -1
- package/dist/src/runtime/emit/aggregate-setup.js +79 -15
- package/dist/src/runtime/emit/aggregate-setup.js.map +1 -1
- package/dist/src/runtime/emit/aggregate.d.ts.map +1 -1
- package/dist/src/runtime/emit/aggregate.js +21 -106
- package/dist/src/runtime/emit/aggregate.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/asof-scan.js +1 -1
- package/dist/src/runtime/emit/asof-scan.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/between.d.ts +2 -0
- package/dist/src/runtime/emit/between.d.ts.map +1 -1
- package/dist/src/runtime/emit/between.js +7 -8
- package/dist/src/runtime/emit/between.js.map +1 -1
- package/dist/src/runtime/emit/binary.d.ts +27 -5
- package/dist/src/runtime/emit/binary.d.ts.map +1 -1
- package/dist/src/runtime/emit/binary.js +278 -187
- package/dist/src/runtime/emit/binary.js.map +1 -1
- package/dist/src/runtime/emit/case.d.ts +34 -0
- package/dist/src/runtime/emit/case.d.ts.map +1 -1
- package/dist/src/runtime/emit/case.js +18 -11
- package/dist/src/runtime/emit/case.js.map +1 -1
- package/dist/src/runtime/emit/cast.d.ts +2 -0
- package/dist/src/runtime/emit/cast.d.ts.map +1 -1
- package/dist/src/runtime/emit/cast.js +7 -5
- package/dist/src/runtime/emit/cast.js.map +1 -1
- package/dist/src/runtime/emit/column-reference.d.ts +3 -1
- package/dist/src/runtime/emit/column-reference.d.ts.map +1 -1
- package/dist/src/runtime/emit/column-reference.js +6 -2
- package/dist/src/runtime/emit/column-reference.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/dml-executor.d.ts.map +1 -1
- package/dist/src/runtime/emit/dml-executor.js +21 -0
- package/dist/src/runtime/emit/dml-executor.js.map +1 -1
- 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/filter.d.ts +1 -1
- package/dist/src/runtime/emit/filter.js +1 -1
- package/dist/src/runtime/emit/hash-aggregate.d.ts.map +1 -1
- package/dist/src/runtime/emit/hash-aggregate.js +18 -88
- package/dist/src/runtime/emit/hash-aggregate.js.map +1 -1
- package/dist/src/runtime/emit/literal.d.ts +14 -1
- package/dist/src/runtime/emit/literal.d.ts.map +1 -1
- package/dist/src/runtime/emit/literal.js +33 -7
- package/dist/src/runtime/emit/literal.js.map +1 -1
- package/dist/src/runtime/emit/materialized-view-helpers.d.ts +33 -10
- package/dist/src/runtime/emit/materialized-view-helpers.d.ts.map +1 -1
- package/dist/src/runtime/emit/materialized-view-helpers.js +158 -49
- 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/parameter.d.ts +3 -1
- package/dist/src/runtime/emit/parameter.d.ts.map +1 -1
- package/dist/src/runtime/emit/parameter.js +7 -2
- package/dist/src/runtime/emit/parameter.js.map +1 -1
- package/dist/src/runtime/emit/scalar-function.d.ts +29 -1
- package/dist/src/runtime/emit/scalar-function.d.ts.map +1 -1
- package/dist/src/runtime/emit/scalar-function.js +66 -16
- package/dist/src/runtime/emit/scalar-function.js.map +1 -1
- package/dist/src/runtime/emit/scalar-op.d.ts +63 -0
- package/dist/src/runtime/emit/scalar-op.d.ts.map +1 -0
- package/dist/src/runtime/emit/scalar-op.js +37 -0
- package/dist/src/runtime/emit/scalar-op.js.map +1 -0
- package/dist/src/runtime/emit/scan.d.ts.map +1 -1
- package/dist/src/runtime/emit/scan.js +19 -1
- package/dist/src/runtime/emit/scan.js.map +1 -1
- package/dist/src/runtime/emit/temporal-arithmetic.d.ts +18 -8
- package/dist/src/runtime/emit/temporal-arithmetic.d.ts.map +1 -1
- package/dist/src/runtime/emit/temporal-arithmetic.js +29 -311
- package/dist/src/runtime/emit/temporal-arithmetic.js.map +1 -1
- package/dist/src/runtime/emit/unary.d.ts +2 -0
- package/dist/src/runtime/emit/unary.d.ts.map +1 -1
- package/dist/src/runtime/emit/unary.js +125 -53
- package/dist/src/runtime/emit/unary.js.map +1 -1
- package/dist/src/runtime/emitters.d.ts +22 -0
- package/dist/src/runtime/emitters.d.ts.map +1 -1
- package/dist/src/runtime/emitters.js +29 -0
- package/dist/src/runtime/emitters.js.map +1 -1
- package/dist/src/runtime/scalar-fusion.d.ts +47 -0
- package/dist/src/runtime/scalar-fusion.d.ts.map +1 -0
- package/dist/src/runtime/scalar-fusion.js +275 -0
- package/dist/src/runtime/scalar-fusion.js.map +1 -0
- package/dist/src/runtime/strict-flags.d.ts +9 -0
- package/dist/src/runtime/strict-flags.d.ts.map +1 -1
- package/dist/src/runtime/strict-flags.js +9 -0
- package/dist/src/runtime/strict-flags.js.map +1 -1
- package/dist/src/runtime/strict-fork.js +2 -2
- package/dist/src/runtime/strict-fork.js.map +1 -1
- package/dist/src/runtime/strict-representation.d.ts +78 -0
- package/dist/src/runtime/strict-representation.d.ts.map +1 -0
- package/dist/src/runtime/strict-representation.js +159 -0
- package/dist/src/runtime/strict-representation.js.map +1 -0
- 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/function.d.ts +15 -0
- package/dist/src/schema/function.d.ts.map +1 -1
- package/dist/src/schema/function.js.map +1 -1
- 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 +29 -36
- 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-ops.d.ts +119 -0
- package/dist/src/types/temporal-ops.d.ts.map +1 -0
- package/dist/src/types/temporal-ops.js +348 -0
- package/dist/src/types/temporal-ops.js.map +1 -0
- 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 +87 -0
- package/dist/src/types/temporal-types.js.map +1 -1
- 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/coercion.d.ts +22 -7
- package/dist/src/util/coercion.d.ts.map +1 -1
- package/dist/src/util/coercion.js +28 -15
- package/dist/src/util/coercion.js.map +1 -1
- package/dist/src/util/comparison.d.ts +25 -0
- package/dist/src/util/comparison.d.ts.map +1 -1
- package/dist/src/util/comparison.js +25 -0
- package/dist/src/util/comparison.js.map +1 -1
- package/dist/src/util/key-tuple-codec.d.ts +12 -3
- package/dist/src/util/key-tuple-codec.d.ts.map +1 -1
- package/dist/src/util/key-tuple-codec.js.map +1 -1
- package/dist/src/util/numeric-canonical.d.ts +26 -0
- package/dist/src/util/numeric-canonical.d.ts.map +1 -0
- package/dist/src/util/numeric-canonical.js +66 -0
- package/dist/src/util/numeric-canonical.js.map +1 -0
- 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/memory/layer/manager.d.ts.map +1 -1
- package/dist/src/vtab/memory/layer/manager.js +14 -5
- package/dist/src/vtab/memory/layer/manager.js.map +1 -1
- package/dist/src/vtab/module.d.ts +25 -0
- package/dist/src/vtab/module.d.ts.map +1 -1
- package/package.json +4 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"column-rename.js","sourceRoot":"","sources":["../../../../src/schema/rename/column-rename.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type * as AST from '../../parser/ast.js';
|
|
2
|
+
import { type ResolveColumnInSource } from './shared.js';
|
|
3
|
+
/**
|
|
4
|
+
* Strip table-qualified self-references in a CHECK expression down to the
|
|
5
|
+
* unqualified form: `check (t.qty > 0)` (or `main.t.qty`) becomes
|
|
6
|
+
* `check (qty > 0)` so the constraint planner's row-context scope — which
|
|
7
|
+
* registers bare / `NEW.` / `OLD.` column names only — can resolve it.
|
|
8
|
+
*
|
|
9
|
+
* Deliberately NOT done by seeding `<table>.<col>` keys into the constraint
|
|
10
|
+
* scope: that scope is an ancestor of every subquery planned inside the
|
|
11
|
+
* CHECK, and a join peer's parent-chain fallback (`MultiScope` first-match
|
|
12
|
+
* on qualified names) would resolve an inner relation's qualified columns
|
|
13
|
+
* against the outer row context (observed with lens view expansions).
|
|
14
|
+
*
|
|
15
|
+
* The walk mirrors SQL shadowing rules: a qualifier rebound by an inner
|
|
16
|
+
* FROM (same table re-selected, an alias, or a CTE) is left untouched. A
|
|
17
|
+
* self-qualified ref inside a subquery is stripped only when no
|
|
18
|
+
* intervening FROM frame could capture the resulting unqualified name —
|
|
19
|
+
* real-table sources are asked via `resolveColumnInSource`; subquery /
|
|
20
|
+
* function / CTE sources are unanalyzable and conservatively block the
|
|
21
|
+
* strip (the ref then stays qualified and fails to resolve exactly as it
|
|
22
|
+
* did before this rewrite existed). CTE and derived-table bodies cannot
|
|
23
|
+
* correlate to the constraint row, so stripping is suppressed inside them.
|
|
24
|
+
*
|
|
25
|
+
* Mutates `expr` in place (callers pass a clone of the stored constraint
|
|
26
|
+
* AST) and returns whether anything was rewritten.
|
|
27
|
+
*/
|
|
28
|
+
export declare function stripSelfQualifierInCheckExpression(expr: AST.AstNode | undefined, tableName: string, defaultSchemaName: string, resolveColumnInSource: ResolveColumnInSource): boolean;
|
|
29
|
+
//# sourceMappingURL=self-qualifier-strip.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"self-qualifier-strip.d.ts","sourceRoot":"","sources":["../../../../src/schema/rename/self-qualifier-strip.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,GAAG,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAM,KAAK,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAsC7D;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,mCAAmC,CAClD,IAAI,EAAE,GAAG,CAAC,OAAO,GAAG,SAAS,EAC7B,SAAS,EAAE,MAAM,EACjB,iBAAiB,EAAE,MAAM,EACzB,qBAAqB,EAAE,qBAAqB,GAC1C,OAAO,CAkBT"}
|
|
@@ -0,0 +1,267 @@
|
|
|
1
|
+
import { eq } from './shared.js';
|
|
2
|
+
/**
|
|
3
|
+
* Strip table-qualified self-references in a CHECK expression down to the
|
|
4
|
+
* unqualified form: `check (t.qty > 0)` (or `main.t.qty`) becomes
|
|
5
|
+
* `check (qty > 0)` so the constraint planner's row-context scope — which
|
|
6
|
+
* registers bare / `NEW.` / `OLD.` column names only — can resolve it.
|
|
7
|
+
*
|
|
8
|
+
* Deliberately NOT done by seeding `<table>.<col>` keys into the constraint
|
|
9
|
+
* scope: that scope is an ancestor of every subquery planned inside the
|
|
10
|
+
* CHECK, and a join peer's parent-chain fallback (`MultiScope` first-match
|
|
11
|
+
* on qualified names) would resolve an inner relation's qualified columns
|
|
12
|
+
* against the outer row context (observed with lens view expansions).
|
|
13
|
+
*
|
|
14
|
+
* The walk mirrors SQL shadowing rules: a qualifier rebound by an inner
|
|
15
|
+
* FROM (same table re-selected, an alias, or a CTE) is left untouched. A
|
|
16
|
+
* self-qualified ref inside a subquery is stripped only when no
|
|
17
|
+
* intervening FROM frame could capture the resulting unqualified name —
|
|
18
|
+
* real-table sources are asked via `resolveColumnInSource`; subquery /
|
|
19
|
+
* function / CTE sources are unanalyzable and conservatively block the
|
|
20
|
+
* strip (the ref then stays qualified and fails to resolve exactly as it
|
|
21
|
+
* did before this rewrite existed). CTE and derived-table bodies cannot
|
|
22
|
+
* correlate to the constraint row, so stripping is suppressed inside them.
|
|
23
|
+
*
|
|
24
|
+
* Mutates `expr` in place (callers pass a clone of the stored constraint
|
|
25
|
+
* AST) and returns whether anything was rewritten.
|
|
26
|
+
*/
|
|
27
|
+
export function stripSelfQualifierInCheckExpression(expr, tableName, defaultSchemaName, resolveColumnInSource) {
|
|
28
|
+
if (!expr)
|
|
29
|
+
return false;
|
|
30
|
+
const state = {
|
|
31
|
+
tableName: tableName.toLowerCase(),
|
|
32
|
+
defaultSchema: defaultSchemaName.toLowerCase(),
|
|
33
|
+
resolve: resolveColumnInSource,
|
|
34
|
+
stack: [],
|
|
35
|
+
changed: false,
|
|
36
|
+
};
|
|
37
|
+
const seed = emptyStripFrame();
|
|
38
|
+
seed.bound.add(state.tableName);
|
|
39
|
+
state.stack.push(seed);
|
|
40
|
+
try {
|
|
41
|
+
visitStrip(expr, state);
|
|
42
|
+
}
|
|
43
|
+
finally {
|
|
44
|
+
state.stack.pop();
|
|
45
|
+
}
|
|
46
|
+
return state.changed;
|
|
47
|
+
}
|
|
48
|
+
function emptyStripFrame() {
|
|
49
|
+
return { bound: new Set(), realSources: [], hasOpaque: false, cteNames: new Set() };
|
|
50
|
+
}
|
|
51
|
+
function isStripCteName(state, name) {
|
|
52
|
+
for (const frame of state.stack) {
|
|
53
|
+
if (frame.cteNames.has(name))
|
|
54
|
+
return true;
|
|
55
|
+
}
|
|
56
|
+
return false;
|
|
57
|
+
}
|
|
58
|
+
function collectStripBindings(item, state, frame) {
|
|
59
|
+
switch (item.type) {
|
|
60
|
+
case 'table': {
|
|
61
|
+
const ts = item;
|
|
62
|
+
const name = ts.table.name.toLowerCase();
|
|
63
|
+
frame.bound.add(ts.alias ? ts.alias.toLowerCase() : name);
|
|
64
|
+
if (ts.table.schema === undefined && isStripCteName(state, name)) {
|
|
65
|
+
// CTE source — column set not analyzed.
|
|
66
|
+
frame.hasOpaque = true;
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
frame.realSources.push({ schema: (ts.table.schema ?? state.defaultSchema).toLowerCase(), name });
|
|
70
|
+
}
|
|
71
|
+
break;
|
|
72
|
+
}
|
|
73
|
+
case 'join': {
|
|
74
|
+
const join = item;
|
|
75
|
+
collectStripBindings(join.left, state, frame);
|
|
76
|
+
collectStripBindings(join.right, state, frame);
|
|
77
|
+
break;
|
|
78
|
+
}
|
|
79
|
+
case 'subquerySource': {
|
|
80
|
+
frame.bound.add(item.alias.toLowerCase());
|
|
81
|
+
frame.hasOpaque = true;
|
|
82
|
+
break;
|
|
83
|
+
}
|
|
84
|
+
case 'functionSource': {
|
|
85
|
+
const fs = item;
|
|
86
|
+
if (fs.alias)
|
|
87
|
+
frame.bound.add(fs.alias.toLowerCase());
|
|
88
|
+
frame.hasOpaque = true;
|
|
89
|
+
break;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
/** Visit a node in a context where stripping must not occur (CTE / derived-table bodies). */
|
|
94
|
+
function visitStripBarrier(node, state) {
|
|
95
|
+
const barrier = emptyStripFrame();
|
|
96
|
+
barrier.hasOpaque = true;
|
|
97
|
+
state.stack.push(barrier);
|
|
98
|
+
try {
|
|
99
|
+
visitStrip(node, state);
|
|
100
|
+
}
|
|
101
|
+
finally {
|
|
102
|
+
state.stack.pop();
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
function visitStrip(node, state) {
|
|
106
|
+
if (!node)
|
|
107
|
+
return;
|
|
108
|
+
switch (node.type) {
|
|
109
|
+
case 'select': {
|
|
110
|
+
const stmt = node;
|
|
111
|
+
const withFrame = emptyStripFrame();
|
|
112
|
+
state.stack.push(withFrame);
|
|
113
|
+
try {
|
|
114
|
+
for (const cte of stmt.withClause?.ctes ?? []) {
|
|
115
|
+
// A CTE body cannot correlate to the constraint row — no stripping inside.
|
|
116
|
+
visitStripBarrier(cte.query, state);
|
|
117
|
+
withFrame.cteNames.add(cte.name.toLowerCase());
|
|
118
|
+
}
|
|
119
|
+
const frame = buildStripFrame(stmt.from, state);
|
|
120
|
+
state.stack.push(frame);
|
|
121
|
+
try {
|
|
122
|
+
(stmt.columns ?? []).forEach(c => {
|
|
123
|
+
if (c.type === 'column')
|
|
124
|
+
visitStrip(c.expr, state);
|
|
125
|
+
});
|
|
126
|
+
(stmt.from ?? []).forEach(f => visitStrip(f, state));
|
|
127
|
+
visitStrip(stmt.where, state);
|
|
128
|
+
(stmt.groupBy ?? []).forEach(g => visitStrip(g, state));
|
|
129
|
+
visitStrip(stmt.having, state);
|
|
130
|
+
(stmt.orderBy ?? []).forEach(o => visitStrip(o.expr, state));
|
|
131
|
+
visitStrip(stmt.limit, state);
|
|
132
|
+
visitStrip(stmt.offset, state);
|
|
133
|
+
visitStrip(stmt.union, state);
|
|
134
|
+
if (stmt.compound)
|
|
135
|
+
visitStrip(stmt.compound.select, state);
|
|
136
|
+
}
|
|
137
|
+
finally {
|
|
138
|
+
state.stack.pop();
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
finally {
|
|
142
|
+
state.stack.pop();
|
|
143
|
+
}
|
|
144
|
+
break;
|
|
145
|
+
}
|
|
146
|
+
case 'values': {
|
|
147
|
+
node.values.forEach(row => row.forEach(v => visitStrip(v, state)));
|
|
148
|
+
break;
|
|
149
|
+
}
|
|
150
|
+
case 'join': {
|
|
151
|
+
const join = node;
|
|
152
|
+
visitStrip(join.left, state);
|
|
153
|
+
visitStrip(join.right, state);
|
|
154
|
+
visitStrip(join.condition, state);
|
|
155
|
+
break;
|
|
156
|
+
}
|
|
157
|
+
case 'functionSource': {
|
|
158
|
+
node.args.forEach(a => visitStrip(a, state));
|
|
159
|
+
break;
|
|
160
|
+
}
|
|
161
|
+
case 'subquerySource': {
|
|
162
|
+
// A derived table cannot correlate to the constraint row — no stripping inside.
|
|
163
|
+
visitStripBarrier(node.subquery, state);
|
|
164
|
+
break;
|
|
165
|
+
}
|
|
166
|
+
case 'binary': {
|
|
167
|
+
const e = node;
|
|
168
|
+
visitStrip(e.left, state);
|
|
169
|
+
visitStrip(e.right, state);
|
|
170
|
+
break;
|
|
171
|
+
}
|
|
172
|
+
case 'unary':
|
|
173
|
+
case 'cast':
|
|
174
|
+
case 'collate':
|
|
175
|
+
visitStrip(node.expr, state);
|
|
176
|
+
break;
|
|
177
|
+
case 'function':
|
|
178
|
+
node.args.forEach(a => visitStrip(a, state));
|
|
179
|
+
break;
|
|
180
|
+
case 'subquery':
|
|
181
|
+
visitStrip(node.query, state);
|
|
182
|
+
break;
|
|
183
|
+
case 'windowFunction': {
|
|
184
|
+
const wf = node;
|
|
185
|
+
visitStrip(wf.function, state);
|
|
186
|
+
visitStrip(wf.window, state);
|
|
187
|
+
break;
|
|
188
|
+
}
|
|
189
|
+
case 'windowDefinition': {
|
|
190
|
+
const wd = node;
|
|
191
|
+
(wd.partitionBy ?? []).forEach(p => visitStrip(p, state));
|
|
192
|
+
(wd.orderBy ?? []).forEach(o => visitStrip(o.expr, state));
|
|
193
|
+
break;
|
|
194
|
+
}
|
|
195
|
+
case 'case': {
|
|
196
|
+
const ce = node;
|
|
197
|
+
visitStrip(ce.baseExpr, state);
|
|
198
|
+
ce.whenThenClauses.forEach(wt => {
|
|
199
|
+
visitStrip(wt.when, state);
|
|
200
|
+
visitStrip(wt.then, state);
|
|
201
|
+
});
|
|
202
|
+
visitStrip(ce.elseExpr, state);
|
|
203
|
+
break;
|
|
204
|
+
}
|
|
205
|
+
case 'in': {
|
|
206
|
+
const ie = node;
|
|
207
|
+
visitStrip(ie.expr, state);
|
|
208
|
+
(ie.values ?? []).forEach(v => visitStrip(v, state));
|
|
209
|
+
visitStrip(ie.subquery, state);
|
|
210
|
+
break;
|
|
211
|
+
}
|
|
212
|
+
case 'exists':
|
|
213
|
+
visitStrip(node.subquery, state);
|
|
214
|
+
break;
|
|
215
|
+
case 'between': {
|
|
216
|
+
const be = node;
|
|
217
|
+
visitStrip(be.expr, state);
|
|
218
|
+
visitStrip(be.lower, state);
|
|
219
|
+
visitStrip(be.upper, state);
|
|
220
|
+
break;
|
|
221
|
+
}
|
|
222
|
+
case 'column': {
|
|
223
|
+
stripColumnQualifier(node, state);
|
|
224
|
+
break;
|
|
225
|
+
}
|
|
226
|
+
default:
|
|
227
|
+
break;
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
function buildStripFrame(from, state) {
|
|
231
|
+
const frame = emptyStripFrame();
|
|
232
|
+
(from ?? []).forEach(item => collectStripBindings(item, state, frame));
|
|
233
|
+
return frame;
|
|
234
|
+
}
|
|
235
|
+
function stripColumnQualifier(col, state) {
|
|
236
|
+
if (!col.table)
|
|
237
|
+
return;
|
|
238
|
+
const qualifier = col.table.toLowerCase();
|
|
239
|
+
// Innermost-first: a qualifier rebound by any inner FROM resolves there.
|
|
240
|
+
for (let i = state.stack.length - 1; i >= 1; i--) {
|
|
241
|
+
if (state.stack[i].bound.has(qualifier))
|
|
242
|
+
return;
|
|
243
|
+
}
|
|
244
|
+
if (qualifier !== state.tableName)
|
|
245
|
+
return;
|
|
246
|
+
// A qualified self-reference must name the OWNING table's schema exactly —
|
|
247
|
+
// `defaultSchema` here is the CHECK's owning schema (the caller passes
|
|
248
|
+
// `tableSchema.schemaName`), so no path resolution applies: `main.t.qty` in
|
|
249
|
+
// a CHECK on `temp.t` is not a self-reference.
|
|
250
|
+
if (!(col.schema === undefined || eq(col.schema, state.defaultSchema)))
|
|
251
|
+
return;
|
|
252
|
+
// Strip only when no intervening frame could capture the unqualified name.
|
|
253
|
+
const colLower = col.name.toLowerCase();
|
|
254
|
+
for (let i = 1; i < state.stack.length; i++) {
|
|
255
|
+
const frame = state.stack[i];
|
|
256
|
+
if (frame.hasOpaque)
|
|
257
|
+
return;
|
|
258
|
+
for (const src of frame.realSources) {
|
|
259
|
+
if (state.resolve(src.schema, src.name, colLower))
|
|
260
|
+
return;
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
col.table = undefined;
|
|
264
|
+
col.schema = undefined;
|
|
265
|
+
state.changed = true;
|
|
266
|
+
}
|
|
267
|
+
//# sourceMappingURL=self-qualifier-strip.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"self-qualifier-strip.js","sourceRoot":"","sources":["../../../../src/schema/rename/self-qualifier-strip.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import type * as AST from '../../parser/ast.js';
|
|
2
|
+
/**
|
|
3
|
+
* Vocabulary shared by the three rename/strip walkers in this directory
|
|
4
|
+
* (table rename, column rename, self-qualifier strip): case-insensitive name
|
|
5
|
+
* comparison, planner-parity object-reference resolution (the
|
|
6
|
+
* {@link ResolveObjectRef} callback and its canonical key), the
|
|
7
|
+
* column-resolver callback type, and the collection-rewrite helper their
|
|
8
|
+
* entry points are built on.
|
|
9
|
+
*/
|
|
10
|
+
export declare const eq: (a: string | undefined, b: string | undefined) => boolean;
|
|
11
|
+
/**
|
|
12
|
+
* Resolves a table / view / materialized-view reference as written in a stored
|
|
13
|
+
* body to its canonical `<schema>.<name>` key (both lowercase) — the same
|
|
14
|
+
* answer the planner would give for that body, i.e. against the owning
|
|
15
|
+
* object's home schema path, NOT against whatever single "default schema" a
|
|
16
|
+
* caller happens to hold. `undefined` only when the resolver cannot be
|
|
17
|
+
* consulted at all; a name that resolves nowhere still yields a stable key
|
|
18
|
+
* (the home schema's) so probe and rewrite stay total.
|
|
19
|
+
*
|
|
20
|
+
* The catalog-backed builder lives in `schema/object-ref-resolver.ts`
|
|
21
|
+
* (`buildObjectRefResolver` / `snapshotObjectRefResolvers`), next to
|
|
22
|
+
* `buildColumnSourceResolver` and for the same reason: the walkers here stay
|
|
23
|
+
* free of catalog imports. {@link singleSchemaObjectRefResolver} below covers
|
|
24
|
+
* the contexts that have no catalog (the schema differ's declared world).
|
|
25
|
+
*/
|
|
26
|
+
export type ResolveObjectRef = (schema: string | undefined, name: string) => string | undefined;
|
|
27
|
+
/** The canonical object key {@link ResolveObjectRef} deals in: `<schema>.<name>`, both lowercase. */
|
|
28
|
+
export declare const objectRefKey: (schemaName: string, objectName: string) => string;
|
|
29
|
+
/**
|
|
30
|
+
* The `<schema>` half of a key {@link objectRefKey} built, given the object name
|
|
31
|
+
* it was built from (already lowercase). Split by the KNOWN name's length rather
|
|
32
|
+
* than by a separator scan, because a schema name may itself contain a dot. Kept
|
|
33
|
+
* here next to `objectRefKey` so the key format is known in exactly one file.
|
|
34
|
+
*/
|
|
35
|
+
export declare const objectRefKeySchema: (key: string, objectNameLower: string) => string;
|
|
36
|
+
/**
|
|
37
|
+
* {@link ResolveObjectRef} for a world where every unqualified name belongs to
|
|
38
|
+
* exactly one schema: the schema differ's declared catalog (single-schema by
|
|
39
|
+
* construction) and any other context with no live catalog to consult. A
|
|
40
|
+
* qualified name means what it says; an unqualified one keys under
|
|
41
|
+
* `schemaName`. This intentionally reproduces what the old
|
|
42
|
+
* `schemaMatches(nodeSchema, defaultSchema)` equality decided, so the differ's
|
|
43
|
+
* inverse reconcile keeps parity with the store-module forward rewrites (whose
|
|
44
|
+
* catalog-backed resolver gives the same answers for a single-schema catalog).
|
|
45
|
+
*/
|
|
46
|
+
export declare function singleSchemaObjectRefResolver(schemaName: string): ResolveObjectRef;
|
|
47
|
+
/**
|
|
48
|
+
* The object being renamed, as one required argument to the table-rename
|
|
49
|
+
* rewrite entry points — bundled rather than positional so no caller can
|
|
50
|
+
* supply the match-time resolution without also answering how the reference
|
|
51
|
+
* will resolve AFTER the rename lands. That second answer is what enforces the
|
|
52
|
+
* rewrite's post-condition: a rewritten reference must still resolve to the
|
|
53
|
+
* renamed object under the walked body's home schema path, or the rewrite adds
|
|
54
|
+
* a schema qualifier (see `renameTableInAst`).
|
|
55
|
+
*
|
|
56
|
+
* Both resolvers must be bound to the WALKED BODY's home schema. The
|
|
57
|
+
* catalog-backed factory is
|
|
58
|
+
* {@link import('../object-ref-resolver.js').tableRenameTargetsFor}; a
|
|
59
|
+
* single-schema world ({@link singleSchemaObjectRefResolver}) passes the same
|
|
60
|
+
* function for both fields, because a bare new name there always resolves back
|
|
61
|
+
* to the one schema and no qualification can ever fire.
|
|
62
|
+
*/
|
|
63
|
+
export interface TableRenameTarget {
|
|
64
|
+
oldName: string;
|
|
65
|
+
newName: string;
|
|
66
|
+
/** Schema owning the renamed object. The match key is `objectRefKey(schemaName, oldName)`. */
|
|
67
|
+
schemaName: string;
|
|
68
|
+
/** Resolution as the bodies planned it — the pre-mutation snapshot. */
|
|
69
|
+
resolve: ResolveObjectRef;
|
|
70
|
+
/** Resolution as it will be after the rename lands. */
|
|
71
|
+
resolveAfter: ResolveObjectRef;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* What a bare, unbound `new.` / `old.` column qualifier names AT THIS POINT in a
|
|
75
|
+
* rename walk. Three-valued because the domain is: the walk's own target's row
|
|
76
|
+
* image, some OTHER relation's row image, or no written-row context at all.
|
|
77
|
+
* `new` and `old` are not reserved words in this parser (`create table "new"` is
|
|
78
|
+
* legal), so the mode is what disambiguates the two spellings — and it is a
|
|
79
|
+
* property of the POSITION in the tree, not of the walk's entry point: a
|
|
80
|
+
* `with inverse` expression forces `'foreign'` over its subtree regardless of
|
|
81
|
+
* the ambient mode (see `visitColumnRename`'s select arm).
|
|
82
|
+
*/
|
|
83
|
+
export type RowImageContext =
|
|
84
|
+
/** No written-row context here — `new.x` is an ordinary table reference. */
|
|
85
|
+
'none'
|
|
86
|
+
/** Written-row context whose image IS the walk's target table — match it. */
|
|
87
|
+
| 'own'
|
|
88
|
+
/** Written-row context whose image belongs to another relation — ignore it. */
|
|
89
|
+
| 'foreign';
|
|
90
|
+
/**
|
|
91
|
+
* Returns whether the named source table has a column matching the renamed
|
|
92
|
+
* column's old name. Implementation looks up the table in the catalog;
|
|
93
|
+
* `schemaName` is the lowercase schema name (already resolved to the
|
|
94
|
+
* default schema when the AST qualifier was undefined). Used by the scope
|
|
95
|
+
* walk to decide whether an inner FROM frame captures an unqualified column
|
|
96
|
+
* ref before the walk reaches an outer binding to the renamed table.
|
|
97
|
+
*/
|
|
98
|
+
export type ResolveColumnInSource = (schemaName: string, tableName: string, columnName: string) => boolean;
|
|
99
|
+
/**
|
|
100
|
+
* Apply an in-place expression rewrite across a schema-object collection,
|
|
101
|
+
* skipping items whose expression is absent. Returns whether any item changed.
|
|
102
|
+
*
|
|
103
|
+
* Backs the `rename{Column,Table}In{IndexPredicates,CheckConstraints,ColumnExpressions}`
|
|
104
|
+
* entry points, which differ only in which field they pluck and which walker they
|
|
105
|
+
* run.
|
|
106
|
+
*/
|
|
107
|
+
export declare function rewriteEach<T>(items: ReadonlyArray<T> | undefined, pick: (item: T) => AST.Expression | undefined, rewrite: (expr: AST.Expression) => boolean): boolean;
|
|
108
|
+
//# sourceMappingURL=shared.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../../src/schema/rename/shared.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,GAAG,MAAM,qBAAqB,CAAC;AAEhD;;;;;;;GAOG;AAEH,eAAO,MAAM,EAAE,GAAI,GAAG,MAAM,GAAG,SAAS,EAAE,GAAG,MAAM,GAAG,SAAS,KAAG,OACd,CAAC;AAErD;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;AAEhG,qGAAqG;AACrG,eAAO,MAAM,YAAY,GAAI,YAAY,MAAM,EAAE,YAAY,MAAM,KAAG,MACZ,CAAC;AAE3D;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,GAAI,KAAK,MAAM,EAAE,iBAAiB,MAAM,KAAG,MACpB,CAAC;AAEvD;;;;;;;;;GASG;AACH,wBAAgB,6BAA6B,CAAC,UAAU,EAAE,MAAM,GAAG,gBAAgB,CAElF;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,iBAAiB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,8FAA8F;IAC9F,UAAU,EAAE,MAAM,CAAC;IACnB,uEAAuE;IACvE,OAAO,EAAE,gBAAgB,CAAC;IAC1B,uDAAuD;IACvD,YAAY,EAAE,gBAAgB,CAAC;CAC/B;AAED;;;;;;;;;GASG;AACH,MAAM,MAAM,eAAe;AAC1B,4EAA4E;AAC1E,MAAM;AACR,6EAA6E;GAC3E,KAAK;AACP,+EAA+E;GAC7E,SAAS,CAAC;AAEb;;;;;;;GAOG;AACH,MAAM,MAAM,qBAAqB,GAAG,CACnC,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,KACd,OAAO,CAAC;AAEb;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAC5B,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,SAAS,EACnC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,GAAG,CAAC,UAAU,GAAG,SAAS,EAC7C,OAAO,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,UAAU,KAAK,OAAO,GACxC,OAAO,CAOT"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Vocabulary shared by the three rename/strip walkers in this directory
|
|
3
|
+
* (table rename, column rename, self-qualifier strip): case-insensitive name
|
|
4
|
+
* comparison, planner-parity object-reference resolution (the
|
|
5
|
+
* {@link ResolveObjectRef} callback and its canonical key), the
|
|
6
|
+
* column-resolver callback type, and the collection-rewrite helper their
|
|
7
|
+
* entry points are built on.
|
|
8
|
+
*/
|
|
9
|
+
export const eq = (a, b) => (a ?? '').toLowerCase() === (b ?? '').toLowerCase();
|
|
10
|
+
/** The canonical object key {@link ResolveObjectRef} deals in: `<schema>.<name>`, both lowercase. */
|
|
11
|
+
export const objectRefKey = (schemaName, objectName) => `${schemaName.toLowerCase()}.${objectName.toLowerCase()}`;
|
|
12
|
+
/**
|
|
13
|
+
* The `<schema>` half of a key {@link objectRefKey} built, given the object name
|
|
14
|
+
* it was built from (already lowercase). Split by the KNOWN name's length rather
|
|
15
|
+
* than by a separator scan, because a schema name may itself contain a dot. Kept
|
|
16
|
+
* here next to `objectRefKey` so the key format is known in exactly one file.
|
|
17
|
+
*/
|
|
18
|
+
export const objectRefKeySchema = (key, objectNameLower) => key.slice(0, key.length - objectNameLower.length - 1);
|
|
19
|
+
/**
|
|
20
|
+
* {@link ResolveObjectRef} for a world where every unqualified name belongs to
|
|
21
|
+
* exactly one schema: the schema differ's declared catalog (single-schema by
|
|
22
|
+
* construction) and any other context with no live catalog to consult. A
|
|
23
|
+
* qualified name means what it says; an unqualified one keys under
|
|
24
|
+
* `schemaName`. This intentionally reproduces what the old
|
|
25
|
+
* `schemaMatches(nodeSchema, defaultSchema)` equality decided, so the differ's
|
|
26
|
+
* inverse reconcile keeps parity with the store-module forward rewrites (whose
|
|
27
|
+
* catalog-backed resolver gives the same answers for a single-schema catalog).
|
|
28
|
+
*/
|
|
29
|
+
export function singleSchemaObjectRefResolver(schemaName) {
|
|
30
|
+
return (schema, name) => objectRefKey(schema ?? schemaName, name);
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Apply an in-place expression rewrite across a schema-object collection,
|
|
34
|
+
* skipping items whose expression is absent. Returns whether any item changed.
|
|
35
|
+
*
|
|
36
|
+
* Backs the `rename{Column,Table}In{IndexPredicates,CheckConstraints,ColumnExpressions}`
|
|
37
|
+
* entry points, which differ only in which field they pluck and which walker they
|
|
38
|
+
* run.
|
|
39
|
+
*/
|
|
40
|
+
export function rewriteEach(items, pick, rewrite) {
|
|
41
|
+
let changed = false;
|
|
42
|
+
for (const item of items ?? []) {
|
|
43
|
+
const expr = pick(item);
|
|
44
|
+
if (expr && rewrite(expr))
|
|
45
|
+
changed = true;
|
|
46
|
+
}
|
|
47
|
+
return changed;
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=shared.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../../src/schema/rename/shared.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AAEH,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAqB,EAAE,CAAqB,EAAW,EAAE,CAC3E,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;AAmBrD,qGAAqG;AACrG,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,UAAkB,EAAE,UAAkB,EAAU,EAAE,CAC9E,GAAG,UAAU,CAAC,WAAW,EAAE,IAAI,UAAU,CAAC,WAAW,EAAE,EAAE,CAAC;AAE3D;;;;;GAKG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,GAAW,EAAE,eAAuB,EAAU,EAAE,CAClF,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,GAAG,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAEvD;;;;;;;;;GASG;AACH,MAAM,UAAU,6BAA6B,CAAC,UAAkB;IAC/D,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,IAAI,UAAU,EAAE,IAAI,CAAC,CAAC;AACnE,CAAC;AA6DD;;;;;;;GAOG;AACH,MAAM,UAAU,WAAW,CAC1B,KAAmC,EACnC,IAA6C,EAC7C,OAA0C;IAE1C,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,KAAK,MAAM,IAAI,IAAI,KAAK,IAAI,EAAE,EAAE,CAAC;QAChC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;QACxB,IAAI,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;YAAE,OAAO,GAAG,IAAI,CAAC;IAC3C,CAAC;IACD,OAAO,OAAO,CAAC;AAChB,CAAC"}
|