@quereus/quereus 4.6.0 → 4.7.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/README.md +2 -2
- package/dist/src/common/errors.d.ts +17 -0
- package/dist/src/common/errors.d.ts.map +1 -1
- package/dist/src/common/errors.js +21 -0
- package/dist/src/common/errors.js.map +1 -1
- package/dist/src/core/database-assertions.d.ts +4 -3
- package/dist/src/core/database-assertions.d.ts.map +1 -1
- package/dist/src/core/database-assertions.js +44 -14
- package/dist/src/core/database-assertions.js.map +1 -1
- package/dist/src/core/database-events.d.ts +62 -0
- package/dist/src/core/database-events.d.ts.map +1 -1
- package/dist/src/core/database-events.js +88 -2
- package/dist/src/core/database-events.js.map +1 -1
- package/dist/src/core/database-internal.d.ts +5 -2
- package/dist/src/core/database-internal.d.ts.map +1 -1
- package/dist/src/core/database-materialized-views-plan-builders.d.ts.map +1 -1
- package/dist/src/core/database-materialized-views-plan-builders.js +4 -2
- package/dist/src/core/database-materialized-views-plan-builders.js.map +1 -1
- package/dist/src/core/database-materialized-views-plans.d.ts +12 -2
- package/dist/src/core/database-materialized-views-plans.d.ts.map +1 -1
- package/dist/src/core/database-materialized-views.d.ts +46 -0
- package/dist/src/core/database-materialized-views.d.ts.map +1 -1
- package/dist/src/core/database-materialized-views.js +75 -4
- package/dist/src/core/database-materialized-views.js.map +1 -1
- package/dist/src/core/database.d.ts +9 -1
- package/dist/src/core/database.d.ts.map +1 -1
- package/dist/src/core/database.js +36 -10
- package/dist/src/core/database.js.map +1 -1
- package/dist/src/core/derived-row-validator.d.ts.map +1 -1
- package/dist/src/core/derived-row-validator.js +7 -1
- package/dist/src/core/derived-row-validator.js.map +1 -1
- package/dist/src/core/statement.d.ts.map +1 -1
- package/dist/src/core/statement.js +15 -5
- package/dist/src/core/statement.js.map +1 -1
- package/dist/src/emit/ast-stringify.d.ts +18 -2
- package/dist/src/emit/ast-stringify.d.ts.map +1 -1
- package/dist/src/emit/ast-stringify.js +22 -4
- package/dist/src/emit/ast-stringify.js.map +1 -1
- package/dist/src/func/builtins/explain.d.ts.map +1 -1
- package/dist/src/func/builtins/explain.js +19 -5
- package/dist/src/func/builtins/explain.js.map +1 -1
- package/dist/src/func/builtins/scalar.d.ts.map +1 -1
- package/dist/src/func/builtins/scalar.js +24 -20
- package/dist/src/func/builtins/scalar.js.map +1 -1
- package/dist/src/func/builtins/schema.d.ts.map +1 -1
- package/dist/src/func/builtins/schema.js +32 -5
- package/dist/src/func/builtins/schema.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 +4 -4
- package/dist/src/index.js.map +1 -1
- package/dist/src/parser/ast.d.ts +58 -1
- package/dist/src/parser/ast.d.ts.map +1 -1
- package/dist/src/parser/parser.js +1 -1
- package/dist/src/parser/parser.js.map +1 -1
- package/dist/src/parser/utils.d.ts +13 -1
- package/dist/src/parser/utils.d.ts.map +1 -1
- package/dist/src/parser/utils.js +14 -0
- package/dist/src/parser/utils.js.map +1 -1
- package/dist/src/planner/analysis/assertion-classifier.d.ts.map +1 -1
- package/dist/src/planner/analysis/assertion-classifier.js +7 -2
- package/dist/src/planner/analysis/assertion-classifier.js.map +1 -1
- package/dist/src/planner/analysis/assertion-hoist-cache.d.ts.map +1 -1
- package/dist/src/planner/analysis/assertion-hoist-cache.js +5 -0
- package/dist/src/planner/analysis/assertion-hoist-cache.js.map +1 -1
- package/dist/src/planner/analysis/change-scope.d.ts +11 -3
- package/dist/src/planner/analysis/change-scope.d.ts.map +1 -1
- package/dist/src/planner/analysis/change-scope.js +5 -4
- package/dist/src/planner/analysis/change-scope.js.map +1 -1
- package/dist/src/planner/analysis/coverage-prover.d.ts.map +1 -1
- package/dist/src/planner/analysis/coverage-prover.js +13 -5
- package/dist/src/planner/analysis/coverage-prover.js.map +1 -1
- package/dist/src/planner/analysis/equi-correlation.d.ts +6 -1
- package/dist/src/planner/analysis/equi-correlation.d.ts.map +1 -1
- package/dist/src/planner/analysis/equi-correlation.js +8 -1
- package/dist/src/planner/analysis/equi-correlation.js.map +1 -1
- package/dist/src/planner/analysis/predicate-dependencies.d.ts +34 -0
- package/dist/src/planner/analysis/predicate-dependencies.d.ts.map +1 -0
- package/dist/src/planner/analysis/predicate-dependencies.js +60 -0
- package/dist/src/planner/analysis/predicate-dependencies.js.map +1 -0
- package/dist/src/planner/analysis/query-rewrite-matcher.d.ts +1 -1
- package/dist/src/planner/analysis/query-rewrite-matcher.d.ts.map +1 -1
- package/dist/src/planner/analysis/query-rewrite-matcher.js +0 -26
- package/dist/src/planner/analysis/query-rewrite-matcher.js.map +1 -1
- package/dist/src/planner/building/alter-table.d.ts.map +1 -1
- package/dist/src/planner/building/alter-table.js +53 -17
- package/dist/src/planner/building/alter-table.js.map +1 -1
- package/dist/src/planner/building/constraint-builder.d.ts.map +1 -1
- package/dist/src/planner/building/constraint-builder.js +9 -5
- package/dist/src/planner/building/constraint-builder.js.map +1 -1
- package/dist/src/planner/building/create-assertion.d.ts.map +1 -1
- package/dist/src/planner/building/create-assertion.js +72 -1
- package/dist/src/planner/building/create-assertion.js.map +1 -1
- package/dist/src/planner/building/create-view.d.ts +6 -1
- package/dist/src/planner/building/create-view.d.ts.map +1 -1
- package/dist/src/planner/building/create-view.js +12 -3
- package/dist/src/planner/building/create-view.js.map +1 -1
- package/dist/src/planner/building/ddl.d.ts.map +1 -1
- package/dist/src/planner/building/ddl.js +6 -2
- package/dist/src/planner/building/ddl.js.map +1 -1
- package/dist/src/planner/building/delete.d.ts.map +1 -1
- package/dist/src/planner/building/delete.js +23 -10
- package/dist/src/planner/building/delete.js.map +1 -1
- package/dist/src/planner/building/dml-target.d.ts.map +1 -1
- package/dist/src/planner/building/dml-target.js +4 -0
- package/dist/src/planner/building/dml-target.js.map +1 -1
- package/dist/src/planner/building/drop-assertion.d.ts.map +1 -1
- package/dist/src/planner/building/drop-assertion.js +3 -1
- package/dist/src/planner/building/drop-assertion.js.map +1 -1
- package/dist/src/planner/building/foreign-key-builder.d.ts.map +1 -1
- package/dist/src/planner/building/foreign-key-builder.js +7 -5
- package/dist/src/planner/building/foreign-key-builder.js.map +1 -1
- package/dist/src/planner/building/function-call.d.ts +35 -0
- package/dist/src/planner/building/function-call.d.ts.map +1 -1
- package/dist/src/planner/building/function-call.js +53 -40
- package/dist/src/planner/building/function-call.js.map +1 -1
- package/dist/src/planner/building/insert.d.ts.map +1 -1
- package/dist/src/planner/building/insert.js +185 -48
- package/dist/src/planner/building/insert.js.map +1 -1
- package/dist/src/planner/building/materialized-view.d.ts.map +1 -1
- package/dist/src/planner/building/materialized-view.js +3 -1
- package/dist/src/planner/building/materialized-view.js.map +1 -1
- package/dist/src/planner/building/schema-authored-context.d.ts +69 -0
- package/dist/src/planner/building/schema-authored-context.d.ts.map +1 -0
- package/dist/src/planner/building/schema-authored-context.js +75 -0
- package/dist/src/planner/building/schema-authored-context.js.map +1 -0
- package/dist/src/planner/building/schema-resolution.d.ts.map +1 -1
- package/dist/src/planner/building/schema-resolution.js +7 -4
- package/dist/src/planner/building/schema-resolution.js.map +1 -1
- package/dist/src/planner/building/select-aggregates.d.ts +187 -2
- package/dist/src/planner/building/select-aggregates.d.ts.map +1 -1
- package/dist/src/planner/building/select-aggregates.js +414 -81
- package/dist/src/planner/building/select-aggregates.js.map +1 -1
- package/dist/src/planner/building/select-compound.js +2 -2
- package/dist/src/planner/building/select-compound.js.map +1 -1
- package/dist/src/planner/building/select-context.d.ts +91 -0
- package/dist/src/planner/building/select-context.d.ts.map +1 -1
- package/dist/src/planner/building/select-context.js +113 -0
- package/dist/src/planner/building/select-context.js.map +1 -1
- package/dist/src/planner/building/select-modifiers.d.ts +10 -3
- package/dist/src/planner/building/select-modifiers.d.ts.map +1 -1
- package/dist/src/planner/building/select-modifiers.js +29 -8
- package/dist/src/planner/building/select-modifiers.js.map +1 -1
- package/dist/src/planner/building/select-ordinal.d.ts +64 -19
- package/dist/src/planner/building/select-ordinal.d.ts.map +1 -1
- package/dist/src/planner/building/select-ordinal.js +79 -30
- package/dist/src/planner/building/select-ordinal.js.map +1 -1
- package/dist/src/planner/building/select-projections.d.ts +1 -1
- package/dist/src/planner/building/select-projections.d.ts.map +1 -1
- package/dist/src/planner/building/select-projections.js +18 -11
- package/dist/src/planner/building/select-projections.js.map +1 -1
- package/dist/src/planner/building/select-window.d.ts +13 -3
- package/dist/src/planner/building/select-window.d.ts.map +1 -1
- package/dist/src/planner/building/select-window.js +142 -37
- package/dist/src/planner/building/select-window.js.map +1 -1
- package/dist/src/planner/building/select.d.ts.map +1 -1
- package/dist/src/planner/building/select.js +129 -59
- package/dist/src/planner/building/select.js.map +1 -1
- package/dist/src/planner/building/update.d.ts.map +1 -1
- package/dist/src/planner/building/update.js +27 -13
- package/dist/src/planner/building/update.js.map +1 -1
- package/dist/src/planner/building/view-mutation-builder.d.ts +1 -1
- package/dist/src/planner/building/view-mutation-builder.d.ts.map +1 -1
- package/dist/src/planner/building/view-mutation-builder.js +102 -8
- package/dist/src/planner/building/view-mutation-builder.js.map +1 -1
- package/dist/src/planner/building/with.d.ts.map +1 -1
- package/dist/src/planner/building/with.js +34 -4
- package/dist/src/planner/building/with.js.map +1 -1
- package/dist/src/planner/cache/correlation-detector.d.ts +15 -0
- package/dist/src/planner/cache/correlation-detector.d.ts.map +1 -1
- package/dist/src/planner/cache/correlation-detector.js +26 -0
- package/dist/src/planner/cache/correlation-detector.js.map +1 -1
- package/dist/src/planner/cache/materialization-advisory.d.ts +7 -0
- package/dist/src/planner/cache/materialization-advisory.d.ts.map +1 -1
- package/dist/src/planner/cache/materialization-advisory.js +12 -3
- package/dist/src/planner/cache/materialization-advisory.js.map +1 -1
- package/dist/src/planner/framework/characteristics.d.ts +9 -0
- package/dist/src/planner/framework/characteristics.d.ts.map +1 -1
- package/dist/src/planner/framework/characteristics.js.map +1 -1
- package/dist/src/planner/framework/pass.d.ts +2 -0
- package/dist/src/planner/framework/pass.d.ts.map +1 -1
- package/dist/src/planner/framework/pass.js +15 -0
- package/dist/src/planner/framework/pass.js.map +1 -1
- package/dist/src/planner/mutation/backward-body.d.ts.map +1 -1
- package/dist/src/planner/mutation/backward-body.js +4 -1
- package/dist/src/planner/mutation/backward-body.js.map +1 -1
- package/dist/src/planner/mutation/body-context.d.ts +23 -0
- package/dist/src/planner/mutation/body-context.d.ts.map +1 -0
- package/dist/src/planner/mutation/body-context.js +26 -0
- package/dist/src/planner/mutation/body-context.js.map +1 -0
- package/dist/src/planner/mutation/cte-flatten.js +15 -2
- package/dist/src/planner/mutation/cte-flatten.js.map +1 -1
- package/dist/src/planner/mutation/decomposition.d.ts +8 -0
- package/dist/src/planner/mutation/decomposition.d.ts.map +1 -1
- package/dist/src/planner/mutation/decomposition.js +8 -3
- package/dist/src/planner/mutation/decomposition.js.map +1 -1
- package/dist/src/planner/mutation/lens-enforcement.js +1 -1
- package/dist/src/planner/mutation/multi-source.d.ts +7 -0
- package/dist/src/planner/mutation/multi-source.d.ts.map +1 -1
- package/dist/src/planner/mutation/multi-source.js +5 -0
- package/dist/src/planner/mutation/multi-source.js.map +1 -1
- package/dist/src/planner/mutation/mutation-diagnostic.d.ts +1 -1
- package/dist/src/planner/mutation/mutation-diagnostic.d.ts.map +1 -1
- package/dist/src/planner/mutation/mutation-diagnostic.js.map +1 -1
- package/dist/src/planner/mutation/scope-transform.d.ts +32 -0
- package/dist/src/planner/mutation/scope-transform.d.ts.map +1 -1
- package/dist/src/planner/mutation/scope-transform.js +181 -33
- package/dist/src/planner/mutation/scope-transform.js.map +1 -1
- package/dist/src/planner/mutation/set-op.d.ts.map +1 -1
- package/dist/src/planner/mutation/set-op.js +66 -16
- package/dist/src/planner/mutation/set-op.js.map +1 -1
- package/dist/src/planner/mutation/single-source.d.ts.map +1 -1
- package/dist/src/planner/mutation/single-source.js +100 -24
- package/dist/src/planner/mutation/single-source.js.map +1 -1
- package/dist/src/planner/nodes/add-constraint-node.d.ts +15 -1
- package/dist/src/planner/nodes/add-constraint-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/add-constraint-node.js +10 -1
- package/dist/src/planner/nodes/add-constraint-node.js.map +1 -1
- package/dist/src/planner/nodes/aggregate-node.d.ts +14 -5
- package/dist/src/planner/nodes/aggregate-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/aggregate-node.js +28 -21
- package/dist/src/planner/nodes/aggregate-node.js.map +1 -1
- package/dist/src/planner/nodes/alter-table-node.d.ts +27 -2
- package/dist/src/planner/nodes/alter-table-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/alter-table-node.js +49 -2
- package/dist/src/planner/nodes/alter-table-node.js.map +1 -1
- package/dist/src/planner/nodes/constraint-check-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/constraint-check-node.js +17 -19
- package/dist/src/planner/nodes/constraint-check-node.js.map +1 -1
- package/dist/src/planner/nodes/create-assertion-node.d.ts +2 -1
- package/dist/src/planner/nodes/create-assertion-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/create-assertion-node.js +5 -2
- package/dist/src/planner/nodes/create-assertion-node.js.map +1 -1
- package/dist/src/planner/nodes/cte-node.d.ts +19 -9
- package/dist/src/planner/nodes/cte-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/cte-node.js +25 -9
- package/dist/src/planner/nodes/cte-node.js.map +1 -1
- package/dist/src/planner/nodes/delete-node.d.ts +20 -2
- package/dist/src/planner/nodes/delete-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/delete-node.js +11 -2
- package/dist/src/planner/nodes/delete-node.js.map +1 -1
- package/dist/src/planner/nodes/dml-executor-node.d.ts +58 -1
- package/dist/src/planner/nodes/dml-executor-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/dml-executor-node.js +107 -15
- package/dist/src/planner/nodes/dml-executor-node.js.map +1 -1
- package/dist/src/planner/nodes/drop-assertion-node.d.ts +2 -1
- package/dist/src/planner/nodes/drop-assertion-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/drop-assertion-node.js +5 -2
- package/dist/src/planner/nodes/drop-assertion-node.js.map +1 -1
- package/dist/src/planner/nodes/filter.d.ts.map +1 -1
- package/dist/src/planner/nodes/filter.js +12 -6
- package/dist/src/planner/nodes/filter.js.map +1 -1
- package/dist/src/planner/nodes/hash-aggregate.d.ts +0 -5
- package/dist/src/planner/nodes/hash-aggregate.d.ts.map +1 -1
- package/dist/src/planner/nodes/hash-aggregate.js +17 -20
- package/dist/src/planner/nodes/hash-aggregate.js.map +1 -1
- package/dist/src/planner/nodes/insert-node.d.ts +19 -2
- package/dist/src/planner/nodes/insert-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/insert-node.js +10 -2
- package/dist/src/planner/nodes/insert-node.js.map +1 -1
- package/dist/src/planner/nodes/key-set-semi-join-node.d.ts +42 -10
- package/dist/src/planner/nodes/key-set-semi-join-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/key-set-semi-join-node.js +85 -16
- package/dist/src/planner/nodes/key-set-semi-join-node.js.map +1 -1
- package/dist/src/planner/nodes/lens-auxiliary-access-node.d.ts +5 -0
- package/dist/src/planner/nodes/lens-auxiliary-access-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/lens-auxiliary-access-node.js.map +1 -1
- package/dist/src/planner/nodes/plan-node.d.ts +5 -0
- package/dist/src/planner/nodes/plan-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/plan-node.js +12 -0
- package/dist/src/planner/nodes/plan-node.js.map +1 -1
- package/dist/src/planner/nodes/project-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/project-node.js +16 -35
- package/dist/src/planner/nodes/project-node.js.map +1 -1
- package/dist/src/planner/nodes/retrieve-node.d.ts +16 -2
- package/dist/src/planner/nodes/retrieve-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/retrieve-node.js +8 -1
- package/dist/src/planner/nodes/retrieve-node.js.map +1 -1
- package/dist/src/planner/nodes/returning-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/returning-node.js +13 -32
- package/dist/src/planner/nodes/returning-node.js.map +1 -1
- package/dist/src/planner/nodes/stream-aggregate.d.ts +0 -5
- package/dist/src/planner/nodes/stream-aggregate.d.ts.map +1 -1
- package/dist/src/planner/nodes/stream-aggregate.js +18 -24
- package/dist/src/planner/nodes/stream-aggregate.js.map +1 -1
- package/dist/src/planner/nodes/table-access-nodes.d.ts +89 -1
- package/dist/src/planner/nodes/table-access-nodes.d.ts.map +1 -1
- package/dist/src/planner/nodes/table-access-nodes.js +64 -2
- package/dist/src/planner/nodes/table-access-nodes.js.map +1 -1
- package/dist/src/planner/nodes/update-node.d.ts +19 -2
- package/dist/src/planner/nodes/update-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/update-node.js +10 -2
- package/dist/src/planner/nodes/update-node.js.map +1 -1
- package/dist/src/planner/optimizer.d.ts +18 -0
- package/dist/src/planner/optimizer.d.ts.map +1 -1
- package/dist/src/planner/optimizer.js +59 -10
- package/dist/src/planner/optimizer.js.map +1 -1
- package/dist/src/planner/planning-context.d.ts +24 -0
- package/dist/src/planner/planning-context.d.ts.map +1 -1
- package/dist/src/planner/planning-context.js.map +1 -1
- package/dist/src/planner/rules/access/rule-key-set-seek.d.ts +78 -20
- package/dist/src/planner/rules/access/rule-key-set-seek.d.ts.map +1 -1
- package/dist/src/planner/rules/access/rule-key-set-seek.js +297 -71
- package/dist/src/planner/rules/access/rule-key-set-seek.js.map +1 -1
- package/dist/src/planner/rules/access/rule-monotonic-range-access.d.ts.map +1 -1
- package/dist/src/planner/rules/access/rule-monotonic-range-access.js +2 -2
- package/dist/src/planner/rules/access/rule-monotonic-range-access.js.map +1 -1
- package/dist/src/planner/rules/access/rule-select-access-path.d.ts +11 -1
- package/dist/src/planner/rules/access/rule-select-access-path.d.ts.map +1 -1
- package/dist/src/planner/rules/access/rule-select-access-path.js +46 -2
- package/dist/src/planner/rules/access/rule-select-access-path.js.map +1 -1
- package/dist/src/planner/rules/aggregate/rule-groupby-fd-simplification.d.ts +7 -4
- package/dist/src/planner/rules/aggregate/rule-groupby-fd-simplification.d.ts.map +1 -1
- package/dist/src/planner/rules/aggregate/rule-groupby-fd-simplification.js +39 -5
- package/dist/src/planner/rules/aggregate/rule-groupby-fd-simplification.js.map +1 -1
- package/dist/src/planner/rules/cache/rule-cte-optimization.d.ts.map +1 -1
- package/dist/src/planner/rules/cache/rule-cte-optimization.js +6 -2
- package/dist/src/planner/rules/cache/rule-cte-optimization.js.map +1 -1
- package/dist/src/planner/rules/cache/rule-materialized-view-rewrite.js +10 -3
- package/dist/src/planner/rules/cache/rule-materialized-view-rewrite.js.map +1 -1
- package/dist/src/planner/rules/join/index-nested-loop.d.ts.map +1 -1
- package/dist/src/planner/rules/join/index-nested-loop.js +13 -7
- package/dist/src/planner/rules/join/index-nested-loop.js.map +1 -1
- package/dist/src/planner/rules/join/rule-fanout-lookup-join.d.ts +4 -0
- package/dist/src/planner/rules/join/rule-fanout-lookup-join.d.ts.map +1 -1
- package/dist/src/planner/rules/join/rule-fanout-lookup-join.js +50 -15
- package/dist/src/planner/rules/join/rule-fanout-lookup-join.js.map +1 -1
- package/dist/src/planner/rules/join/rule-join-elimination.d.ts +6 -0
- package/dist/src/planner/rules/join/rule-join-elimination.d.ts.map +1 -1
- package/dist/src/planner/rules/join/rule-join-elimination.js +25 -9
- package/dist/src/planner/rules/join/rule-join-elimination.js.map +1 -1
- package/dist/src/planner/rules/join/rule-join-key-inference.d.ts +7 -0
- package/dist/src/planner/rules/join/rule-join-key-inference.d.ts.map +1 -1
- package/dist/src/planner/rules/join/rule-join-key-inference.js +23 -11
- package/dist/src/planner/rules/join/rule-join-key-inference.js.map +1 -1
- package/dist/src/planner/rules/join/rule-join-physical-selection.d.ts +2 -2
- package/dist/src/planner/rules/join/rule-join-physical-selection.d.ts.map +1 -1
- package/dist/src/planner/rules/join/rule-join-physical-selection.js +46 -16
- package/dist/src/planner/rules/join/rule-join-physical-selection.js.map +1 -1
- package/dist/src/planner/rules/join/rule-monotonic-merge-join.d.ts +2 -0
- package/dist/src/planner/rules/join/rule-monotonic-merge-join.d.ts.map +1 -1
- package/dist/src/planner/rules/join/rule-monotonic-merge-join.js +14 -0
- package/dist/src/planner/rules/join/rule-monotonic-merge-join.js.map +1 -1
- package/dist/src/planner/rules/predicate/rule-aggregate-predicate-pushdown.d.ts +2 -2
- package/dist/src/planner/rules/predicate/rule-aggregate-predicate-pushdown.d.ts.map +1 -1
- package/dist/src/planner/rules/predicate/rule-aggregate-predicate-pushdown.js +19 -22
- package/dist/src/planner/rules/predicate/rule-aggregate-predicate-pushdown.js.map +1 -1
- package/dist/src/planner/rules/predicate/rule-filter-selectivity.d.ts +33 -19
- package/dist/src/planner/rules/predicate/rule-filter-selectivity.d.ts.map +1 -1
- package/dist/src/planner/rules/predicate/rule-filter-selectivity.js +37 -18
- package/dist/src/planner/rules/predicate/rule-filter-selectivity.js.map +1 -1
- package/dist/src/planner/rules/predicate/rule-join-predicate-pushdown.d.ts +6 -3
- package/dist/src/planner/rules/predicate/rule-join-predicate-pushdown.d.ts.map +1 -1
- package/dist/src/planner/rules/predicate/rule-join-predicate-pushdown.js +6 -3
- package/dist/src/planner/rules/predicate/rule-join-predicate-pushdown.js.map +1 -1
- package/dist/src/planner/rules/predicate/rule-predicate-pushdown.d.ts.map +1 -1
- package/dist/src/planner/rules/predicate/rule-predicate-pushdown.js +11 -21
- package/dist/src/planner/rules/predicate/rule-predicate-pushdown.js.map +1 -1
- package/dist/src/planner/rules/shared/access-leaf.d.ts +16 -3
- package/dist/src/planner/rules/shared/access-leaf.d.ts.map +1 -1
- package/dist/src/planner/rules/shared/access-leaf.js +21 -5
- package/dist/src/planner/rules/shared/access-leaf.js.map +1 -1
- package/dist/src/planner/rules/subquery/rule-anti-join-fk-empty.js +1 -1
- package/dist/src/planner/rules/subquery/rule-anti-join-fk-empty.js.map +1 -1
- package/dist/src/planner/rules/subquery/rule-semi-join-fk-trivial.js +1 -1
- package/dist/src/planner/rules/subquery/rule-semi-join-fk-trivial.js.map +1 -1
- package/dist/src/planner/stored-body-context.d.ts +57 -0
- package/dist/src/planner/stored-body-context.d.ts.map +1 -0
- package/dist/src/planner/stored-body-context.js +64 -0
- package/dist/src/planner/stored-body-context.js.map +1 -0
- package/dist/src/planner/util/ind-utils.d.ts +28 -20
- package/dist/src/planner/util/ind-utils.d.ts.map +1 -1
- package/dist/src/planner/util/ind-utils.js +36 -27
- package/dist/src/planner/util/ind-utils.js.map +1 -1
- package/dist/src/planner/util/key-utils.d.ts +19 -4
- package/dist/src/planner/util/key-utils.d.ts.map +1 -1
- package/dist/src/planner/util/key-utils.js +23 -7
- package/dist/src/planner/util/key-utils.js.map +1 -1
- package/dist/src/planner/util/output-names.d.ts +12 -0
- package/dist/src/planner/util/output-names.d.ts.map +1 -0
- package/dist/src/planner/util/output-names.js +20 -0
- package/dist/src/planner/util/output-names.js.map +1 -0
- package/dist/src/planner/util/row-estimates.d.ts +11 -0
- package/dist/src/planner/util/row-estimates.d.ts.map +1 -1
- package/dist/src/planner/util/row-estimates.js +28 -0
- package/dist/src/planner/util/row-estimates.js.map +1 -1
- package/dist/src/runtime/deferred-constraint-queue.d.ts.map +1 -1
- package/dist/src/runtime/deferred-constraint-queue.js +3 -2
- package/dist/src/runtime/deferred-constraint-queue.js.map +1 -1
- package/dist/src/runtime/emit/add-constraint.d.ts.map +1 -1
- package/dist/src/runtime/emit/add-constraint.js +22 -6
- package/dist/src/runtime/emit/add-constraint.js.map +1 -1
- package/dist/src/runtime/emit/alter-schema-event.d.ts +59 -4
- package/dist/src/runtime/emit/alter-schema-event.d.ts.map +1 -1
- package/dist/src/runtime/emit/alter-schema-event.js +63 -4
- package/dist/src/runtime/emit/alter-schema-event.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 -92
- package/dist/src/runtime/emit/alter-table.js.map +1 -1
- package/dist/src/runtime/emit/analyze.d.ts.map +1 -1
- package/dist/src/runtime/emit/analyze.js +15 -4
- package/dist/src/runtime/emit/analyze.js.map +1 -1
- package/dist/src/runtime/emit/assertion-drop-guard.d.ts +37 -0
- package/dist/src/runtime/emit/assertion-drop-guard.d.ts.map +1 -0
- package/dist/src/runtime/emit/assertion-drop-guard.js +59 -0
- package/dist/src/runtime/emit/assertion-drop-guard.js.map +1 -0
- package/dist/src/runtime/emit/assertion-rename-helpers.d.ts +33 -0
- package/dist/src/runtime/emit/assertion-rename-helpers.d.ts.map +1 -0
- package/dist/src/runtime/emit/assertion-rename-helpers.js +124 -0
- package/dist/src/runtime/emit/assertion-rename-helpers.js.map +1 -0
- package/dist/src/runtime/emit/constraint-check.d.ts.map +1 -1
- package/dist/src/runtime/emit/constraint-check.js +10 -227
- package/dist/src/runtime/emit/constraint-check.js.map +1 -1
- package/dist/src/runtime/emit/create-assertion.d.ts.map +1 -1
- package/dist/src/runtime/emit/create-assertion.js +31 -14
- package/dist/src/runtime/emit/create-assertion.js.map +1 -1
- package/dist/src/runtime/emit/cte.d.ts.map +1 -1
- package/dist/src/runtime/emit/cte.js +11 -6
- package/dist/src/runtime/emit/cte.js.map +1 -1
- package/dist/src/runtime/emit/dml-executor.d.ts.map +1 -1
- package/dist/src/runtime/emit/dml-executor.js +169 -1
- package/dist/src/runtime/emit/dml-executor.js.map +1 -1
- package/dist/src/runtime/emit/drop-assertion.js +8 -8
- package/dist/src/runtime/emit/drop-assertion.js.map +1 -1
- package/dist/src/runtime/emit/drop-column-guards.d.ts +151 -0
- package/dist/src/runtime/emit/drop-column-guards.d.ts.map +1 -0
- package/dist/src/runtime/emit/drop-column-guards.js +230 -0
- package/dist/src/runtime/emit/drop-column-guards.js.map +1 -0
- package/dist/src/runtime/emit/drop-table.d.ts.map +1 -1
- package/dist/src/runtime/emit/drop-table.js +6 -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 +4 -0
- package/dist/src/runtime/emit/drop-view.js.map +1 -1
- package/dist/src/runtime/emit/key-set-semi-join.d.ts.map +1 -1
- package/dist/src/runtime/emit/key-set-semi-join.js +5 -3
- package/dist/src/runtime/emit/key-set-semi-join.js.map +1 -1
- package/dist/src/runtime/emit/materialized-view-helpers.d.ts +4 -4
- package/dist/src/runtime/emit/materialized-view-helpers.d.ts.map +1 -1
- package/dist/src/runtime/emit/materialized-view-helpers.js +34 -22
- 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 +7 -2
- package/dist/src/runtime/emit/materialized-view.js.map +1 -1
- package/dist/src/runtime/emit/recursive-cte.d.ts.map +1 -1
- package/dist/src/runtime/emit/recursive-cte.js +4 -5
- package/dist/src/runtime/emit/recursive-cte.js.map +1 -1
- package/dist/src/runtime/emit/update.d.ts.map +1 -1
- package/dist/src/runtime/emit/update.js +18 -6
- package/dist/src/runtime/emit/update.js.map +1 -1
- package/dist/src/runtime/row-constraints.d.ts +85 -0
- package/dist/src/runtime/row-constraints.d.ts.map +1 -0
- package/dist/src/runtime/row-constraints.js +239 -0
- package/dist/src/runtime/row-constraints.js.map +1 -0
- package/dist/src/runtime/types.d.ts +8 -11
- package/dist/src/runtime/types.d.ts.map +1 -1
- package/dist/src/runtime/types.js.map +1 -1
- package/dist/src/schema/assertion.d.ts +14 -1
- package/dist/src/schema/assertion.d.ts.map +1 -1
- package/dist/src/schema/assertion.js +14 -1
- package/dist/src/schema/assertion.js.map +1 -1
- package/dist/src/schema/catalog-persistability.js +19 -3
- package/dist/src/schema/catalog-persistability.js.map +1 -1
- package/dist/src/schema/catalog.d.ts +6 -0
- package/dist/src/schema/catalog.d.ts.map +1 -1
- package/dist/src/schema/catalog.js +26 -36
- package/dist/src/schema/catalog.js.map +1 -1
- package/dist/src/schema/column-source-resolver.d.ts +18 -0
- package/dist/src/schema/column-source-resolver.d.ts.map +1 -0
- package/dist/src/schema/column-source-resolver.js +22 -0
- package/dist/src/schema/column-source-resolver.js.map +1 -0
- package/dist/src/schema/constraint-builder.d.ts.map +1 -1
- package/dist/src/schema/constraint-builder.js +7 -1
- package/dist/src/schema/constraint-builder.js.map +1 -1
- package/dist/src/schema/ddl-generator.js +8 -0
- package/dist/src/schema/ddl-generator.js.map +1 -1
- package/dist/src/schema/lens-compiler.d.ts.map +1 -1
- package/dist/src/schema/lens-compiler.js +203 -51
- package/dist/src/schema/lens-compiler.js.map +1 -1
- package/dist/src/schema/lens-prover.d.ts +2 -3
- package/dist/src/schema/lens-prover.d.ts.map +1 -1
- package/dist/src/schema/lens-prover.js +19 -11
- package/dist/src/schema/lens-prover.js.map +1 -1
- package/dist/src/schema/manager.d.ts +30 -12
- package/dist/src/schema/manager.d.ts.map +1 -1
- package/dist/src/schema/manager.js +49 -17
- package/dist/src/schema/manager.js.map +1 -1
- package/dist/src/schema/rename-rewriter.d.ts +142 -0
- package/dist/src/schema/rename-rewriter.d.ts.map +1 -1
- package/dist/src/schema/rename-rewriter.js +254 -9
- package/dist/src/schema/rename-rewriter.js.map +1 -1
- package/dist/src/schema/reserved-tags.d.ts +1 -1
- package/dist/src/schema/reserved-tags.d.ts.map +1 -1
- package/dist/src/schema/reserved-tags.js +4 -3
- package/dist/src/schema/reserved-tags.js.map +1 -1
- package/dist/src/schema/schema-differ.d.ts +16 -0
- package/dist/src/schema/schema-differ.d.ts.map +1 -1
- package/dist/src/schema/schema-differ.js +122 -11
- package/dist/src/schema/schema-differ.js.map +1 -1
- package/dist/src/schema/view.d.ts +11 -0
- package/dist/src/schema/view.d.ts.map +1 -1
- package/dist/src/schema/view.js +12 -0
- package/dist/src/schema/view.js.map +1 -1
- package/dist/src/types/builtin-types.d.ts +38 -0
- package/dist/src/types/builtin-types.d.ts.map +1 -1
- package/dist/src/types/builtin-types.js +77 -26
- package/dist/src/types/builtin-types.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/util/{working-table-iterable.d.ts → array-row-iterable.d.ts} +6 -6
- package/dist/src/util/array-row-iterable.d.ts.map +1 -0
- package/dist/src/util/{working-table-iterable.js → array-row-iterable.js} +6 -6
- package/dist/src/util/array-row-iterable.js.map +1 -0
- package/dist/src/vtab/events.d.ts +3 -0
- package/dist/src/vtab/events.d.ts.map +1 -1
- package/dist/src/vtab/events.js.map +1 -1
- package/dist/src/vtab/manifest.d.ts +15 -0
- package/dist/src/vtab/manifest.d.ts.map +1 -1
- package/dist/src/vtab/memory/layer/manager.d.ts.map +1 -1
- package/dist/src/vtab/memory/layer/manager.js +3 -69
- package/dist/src/vtab/memory/layer/manager.js.map +1 -1
- package/dist/src/vtab/memory/module.d.ts +16 -1
- package/dist/src/vtab/memory/module.d.ts.map +1 -1
- package/dist/src/vtab/memory/module.js +62 -2
- package/dist/src/vtab/memory/module.js.map +1 -1
- package/dist/src/vtab/module.d.ts +26 -2
- package/dist/src/vtab/module.d.ts.map +1 -1
- package/dist/src/vtab/table.d.ts +8 -1
- package/dist/src/vtab/table.d.ts.map +1 -1
- package/dist/src/vtab/table.js.map +1 -1
- package/package.json +3 -3
- package/dist/src/util/working-table-iterable.d.ts.map +0 -1
- package/dist/src/util/working-table-iterable.js.map +0 -1
|
@@ -14,6 +14,9 @@ import { validateAndParse } from '../../types/validation.js';
|
|
|
14
14
|
import { withAsyncRowContext } from '../context-helpers.js';
|
|
15
15
|
import { executeForeignKeyActionsAndLens, assertTransitiveRestrictsForParentMutation, createParentRestrictBatch, accumulateParentRestrictKeys, flushParentRestrictBatch } from '../foreign-key-actions.js';
|
|
16
16
|
import { getBatchableRestrictFks } from '../../planner/building/foreign-key-builder.js';
|
|
17
|
+
import { composeCombinedDescriptor } from '../descriptor-helpers.js';
|
|
18
|
+
import { RowOpFlag } from '../../schema/table.js';
|
|
19
|
+
import { buildConstraintMetadata, evaluateRowConstraints, } from '../row-constraints.js';
|
|
17
20
|
import { poisonResidualDeltaAccumulations } from '../../core/database-materialized-views-apply.js';
|
|
18
21
|
/**
|
|
19
22
|
* Module-scope counter producing unique statement-savepoint names across
|
|
@@ -294,18 +297,41 @@ export function emitDmlExecutor(plan, ctx) {
|
|
|
294
297
|
if (clause.action === 'update' && clause.assignments) {
|
|
295
298
|
runtime.assignmentIndices = new Map();
|
|
296
299
|
runtime.assignmentCoercions = new Map();
|
|
300
|
+
// Split the map into the user's SET targets and the appended
|
|
301
|
+
// generated-column recomputes — the latter run as a second pass.
|
|
302
|
+
const generatedColumns = new Set(clause.generatedAssignmentColumns ?? []);
|
|
303
|
+
const generatedEvaluatorIndices = new Map();
|
|
297
304
|
for (const [colIndex, valueNode] of clause.assignments) {
|
|
298
305
|
const evaluatorIndex = upsertEvaluatorInstructions.length;
|
|
299
306
|
const instruction = emitCallFromPlan(valueNode, ctx);
|
|
300
307
|
upsertEvaluatorInstructions.push(instruction);
|
|
301
|
-
|
|
308
|
+
if (generatedColumns.has(colIndex)) {
|
|
309
|
+
generatedEvaluatorIndices.set(colIndex, evaluatorIndex);
|
|
310
|
+
}
|
|
311
|
+
else {
|
|
312
|
+
runtime.assignmentIndices.set(colIndex, evaluatorIndex);
|
|
313
|
+
}
|
|
302
314
|
// Same static-type rule as emitUpdate: convert only when the
|
|
303
315
|
// assignment expression's type is not the column's declared type.
|
|
316
|
+
// Applies to a generated value too — it is written to the same cell.
|
|
304
317
|
const column = tableSchema.columns[colIndex];
|
|
305
318
|
if (valueNode.getType().logicalType !== column.logicalType) {
|
|
306
319
|
runtime.assignmentCoercions.set(colIndex, column);
|
|
307
320
|
}
|
|
308
321
|
}
|
|
322
|
+
// Keep topological order (drive off the plan's list, not map order).
|
|
323
|
+
if (generatedEvaluatorIndices.size > 0) {
|
|
324
|
+
runtime.generatedAssignments = clause.generatedAssignmentColumns
|
|
325
|
+
.filter(colIndex => generatedEvaluatorIndices.has(colIndex))
|
|
326
|
+
.map(colIndex => ({ colIndex, evaluatorIndex: generatedEvaluatorIndices.get(colIndex) }));
|
|
327
|
+
// Sparse array indexed by attribute id — `slice` preserves the holes.
|
|
328
|
+
// Missing it would make the runtime skip the recompute SILENTLY, so
|
|
329
|
+
// treat it as the plan-shape violation it is rather than degrading.
|
|
330
|
+
if (!clause.existingRowDescriptor) {
|
|
331
|
+
throw new QuereusError(`UPSERT DO UPDATE on '${tableSchema.name}' has generated-column recomputes but no existing-row descriptor`, StatusCode.INTERNAL);
|
|
332
|
+
}
|
|
333
|
+
runtime.generatedRowDescriptor = clause.existingRowDescriptor.slice();
|
|
334
|
+
}
|
|
309
335
|
}
|
|
310
336
|
if (clause.whereCondition) {
|
|
311
337
|
runtime.whereIndex = upsertEvaluatorInstructions.length;
|
|
@@ -315,6 +341,39 @@ export function emitDmlExecutor(plan, ctx) {
|
|
|
315
341
|
return runtime;
|
|
316
342
|
});
|
|
317
343
|
}
|
|
344
|
+
// The DO UPDATE arm's validation evaluators are appended to the SAME array the
|
|
345
|
+
// clause's own evaluators use: runInsert already slices everything after the
|
|
346
|
+
// context evaluators into `upsertEvaluators`, so neither the params layout nor
|
|
347
|
+
// the `run` signature changes.
|
|
348
|
+
const upsertValidation = plan.upsertUpdateValidation;
|
|
349
|
+
let upsertValidationRuntime;
|
|
350
|
+
if (upsertValidation) {
|
|
351
|
+
const checkStart = upsertEvaluatorInstructions.length;
|
|
352
|
+
const checkInstructions = upsertValidation.checks.map(check => emitCallFromPlan(check.expression, ctx));
|
|
353
|
+
upsertEvaluatorInstructions.push(...checkInstructions);
|
|
354
|
+
const defaultStart = upsertEvaluatorInstructions.length;
|
|
355
|
+
const defaultInstructions = upsertValidation.notNullDefaults.map(d => emitCallFromPlan(d.defaultNode, ctx));
|
|
356
|
+
upsertEvaluatorInstructions.push(...defaultInstructions);
|
|
357
|
+
upsertValidationRuntime = {
|
|
358
|
+
scope: { operation: RowOpFlag.UPDATE, hasNewSection: true },
|
|
359
|
+
metadata: buildConstraintMetadata(upsertValidation.checks, tableSchema, upsertValidation.flatRowDescriptor, plan.contextDescriptor, checkInstructions.map(instruction => instruction.run)),
|
|
360
|
+
checkStart,
|
|
361
|
+
checkCount: checkInstructions.length,
|
|
362
|
+
notNullDefaults: upsertValidation.notNullDefaults.map((d, i) => ({
|
|
363
|
+
columnIndex: d.columnIndex,
|
|
364
|
+
evaluatorIndex: defaultStart + i,
|
|
365
|
+
// Same static-type rule as everywhere else a DEFAULT is substituted after
|
|
366
|
+
// the emitters' conversion pass — see NotNullDefaultRuntime.coerceColumn.
|
|
367
|
+
coerceColumn: d.defaultNode.getType().logicalType !== tableSchema.columns[d.columnIndex].logicalType
|
|
368
|
+
? tableSchema.columns[d.columnIndex]
|
|
369
|
+
: undefined,
|
|
370
|
+
})),
|
|
371
|
+
flatDescriptor: upsertValidation.flatRowDescriptor,
|
|
372
|
+
combinedDescriptor: plan.contextDescriptor
|
|
373
|
+
? composeCombinedDescriptor(plan.contextDescriptor, upsertValidation.flatRowDescriptor)
|
|
374
|
+
: undefined,
|
|
375
|
+
};
|
|
376
|
+
}
|
|
318
377
|
// --- Operation-specific run generators ------------------------------------
|
|
319
378
|
/**
|
|
320
379
|
* Match an UPSERT clause against a unique constraint violation.
|
|
@@ -359,6 +418,57 @@ export function emitDmlExecutor(plan, ctx) {
|
|
|
359
418
|
}
|
|
360
419
|
return undefined;
|
|
361
420
|
}
|
|
421
|
+
/**
|
|
422
|
+
* Run the DO UPDATE arm's UPDATE-shaped validation against the row the arm has
|
|
423
|
+
* composed, exactly as the equivalent plain `UPDATE` would be validated:
|
|
424
|
+
* OLD = the conflicting stored row, NEW = the composed row.
|
|
425
|
+
*
|
|
426
|
+
* Returns false when a per-constraint IGNORE says to skip the row silently;
|
|
427
|
+
* otherwise true, having written any REPLACE DEFAULT substitution back into
|
|
428
|
+
* `updatedRow` in place (that substituted row is what gets stored). A violation
|
|
429
|
+
* under any other conflict action throws, which propagates out of
|
|
430
|
+
* `processInsertRow` into `runWithStatementSavepoints` and rolls the statement
|
|
431
|
+
* savepoint back — so a multi-row INSERT stays all-or-nothing.
|
|
432
|
+
*
|
|
433
|
+
* A no-op when the plan carries no validation (a DO NOTHING-only statement, or a
|
|
434
|
+
* plain INSERT).
|
|
435
|
+
*/
|
|
436
|
+
async function validateUpsertUpdatedRow(rctx, existingRow, updatedRow, contextRow, upsertEvaluators) {
|
|
437
|
+
const validation = upsertValidationRuntime;
|
|
438
|
+
if (!validation)
|
|
439
|
+
return true;
|
|
440
|
+
const flatRow = [...existingRow, ...updatedRow];
|
|
441
|
+
// The check expressions read the row through a lazy getter, so a REPLACE NOT
|
|
442
|
+
// NULL DEFAULT substitution mid-evaluation is visible to the CHECK / FK pass
|
|
443
|
+
// that follows it — same contract as emitConstraintCheck.
|
|
444
|
+
let visibleRow = flatRow;
|
|
445
|
+
const checkEvaluators = upsertEvaluators.slice(validation.checkStart, validation.checkStart + validation.checkCount);
|
|
446
|
+
const notNullDefaults = validation.notNullDefaults.map(d => ({
|
|
447
|
+
columnIndex: d.columnIndex,
|
|
448
|
+
evaluator: upsertEvaluators[d.evaluatorIndex],
|
|
449
|
+
coerceColumn: d.coerceColumn,
|
|
450
|
+
}));
|
|
451
|
+
const useContext = contextRow !== undefined && validation.combinedDescriptor !== undefined;
|
|
452
|
+
const descriptor = useContext ? validation.combinedDescriptor : validation.flatDescriptor;
|
|
453
|
+
const result = await withAsyncRowContext(rctx, descriptor, () => useContext ? [...contextRow, ...visibleRow] : visibleRow, () => evaluateRowConstraints(rctx, validation.scope, tableSchema, flatRow, validation.metadata, checkEvaluators,
|
|
454
|
+
// NOTE: `plan.onConflict` is undefined on every path reachable today —
|
|
455
|
+
// the parser rejects `insert or ... on conflict ...` outright and no
|
|
456
|
+
// synthesized statement sets both — so this is behaviorally identical to
|
|
457
|
+
// passing undefined. Threaded anyway so the arm stays honest if that
|
|
458
|
+
// guard is ever relaxed; do not read it as live behavior.
|
|
459
|
+
plan.onConflict, notNullDefaults, contextRow, row => { visibleRow = row; }));
|
|
460
|
+
if (result.skip)
|
|
461
|
+
return false;
|
|
462
|
+
if (result.replacedRow) {
|
|
463
|
+
// REPLACE substituted a NOT NULL column's DEFAULT — copy the substituted NEW
|
|
464
|
+
// section back over the row that is about to be stored.
|
|
465
|
+
const numCols = tableSchema.columns.length;
|
|
466
|
+
for (let i = 0; i < numCols; i++) {
|
|
467
|
+
updatedRow[i] = result.replacedRow[numCols + i];
|
|
468
|
+
}
|
|
469
|
+
}
|
|
470
|
+
return true;
|
|
471
|
+
}
|
|
362
472
|
/**
|
|
363
473
|
* Execute the DO UPDATE path for an UPSERT clause.
|
|
364
474
|
* Returns the updated row or undefined if WHERE condition fails.
|
|
@@ -399,6 +509,64 @@ export function emitDmlExecutor(plan, ctx) {
|
|
|
399
509
|
updatedRow[colIndex] = value;
|
|
400
510
|
}
|
|
401
511
|
}
|
|
512
|
+
// Phase 2: recompute the generated columns against the row as composed above,
|
|
513
|
+
// which now holds the CONVERTED user assignments — a generated column derives
|
|
514
|
+
// from what will be STORED, not from the raw assignment. It cannot run in the
|
|
515
|
+
// pass above: there the existing-row attributes still resolve to PRE-update
|
|
516
|
+
// values. Here they are re-bound — through a descriptor object of their own, see
|
|
517
|
+
// {@link RuntimeUpsertClause.generatedRowDescriptor} — to the live `updatedRow`,
|
|
518
|
+
// which each iteration writes back into, so a generated-from-generated column
|
|
519
|
+
// reads the value its dependency just produced.
|
|
520
|
+
//
|
|
521
|
+
// `await` each evaluator: deterministic does not imply synchronous — a generated
|
|
522
|
+
// expression may embed a scalar subquery, whose evaluator returns a Promise (see
|
|
523
|
+
// the same note in emitUpdate's phase 2).
|
|
524
|
+
//
|
|
525
|
+
// NOTE: each value is converted before the next generated column reads it, whereas
|
|
526
|
+
// emitUpdate converts the whole row once after its phase-2 loop. The two agree
|
|
527
|
+
// unless a generated column reads another whose expression type differs from its
|
|
528
|
+
// declared type; if such a divergence is ever observed, make emitUpdate convert
|
|
529
|
+
// per-column too (this order is the correct one — a dependent should see the
|
|
530
|
+
// stored form).
|
|
531
|
+
if (clause.generatedAssignments && clause.generatedRowDescriptor) {
|
|
532
|
+
await withAsyncRowContext(rctx, clause.generatedRowDescriptor, () => updatedRow, async () => {
|
|
533
|
+
for (const { colIndex, evaluatorIndex } of clause.generatedAssignments) {
|
|
534
|
+
let value = await upsertEvaluators[evaluatorIndex](rctx);
|
|
535
|
+
const coerceColumn = clause.assignmentCoercions?.get(colIndex);
|
|
536
|
+
if (coerceColumn) {
|
|
537
|
+
value = validateAndParse(value, coerceColumn.logicalType, coerceColumn.name);
|
|
538
|
+
}
|
|
539
|
+
updatedRow[colIndex] = value;
|
|
540
|
+
}
|
|
541
|
+
});
|
|
542
|
+
}
|
|
543
|
+
// UPDATE-shaped validation of the composed row. It runs HERE — after the
|
|
544
|
+
// generated-column recompute, before anything is written — because this is the
|
|
545
|
+
// first point at which the row that will actually be stored exists.
|
|
546
|
+
//
|
|
547
|
+
// NOTE: the statement's INSERT-shaped ConstraintCheckNode has already run on the
|
|
548
|
+
// PROPOSED row, before the conflict was known (matching SQLite). One consequence:
|
|
549
|
+
// an auto-deferred (subquery-bearing) INSERT-shaped CHECK was queued against that
|
|
550
|
+
// proposed row and is evaluated at COMMIT, so it can abort the transaction over a
|
|
551
|
+
// row that was never stored. That is the deferred twin of the immediate behavior
|
|
552
|
+
// and is consistent with it — out of scope here.
|
|
553
|
+
if (!await validateUpsertUpdatedRow(rctx, existingRow, updatedRow, contextRow, upsertEvaluators)) {
|
|
554
|
+
return undefined;
|
|
555
|
+
}
|
|
556
|
+
// Parent-side RESTRICT enforcement for the referenced-column changes this arm
|
|
557
|
+
// makes. Mirrors runUpdate's non-batched branch and must sit BEFORE vtab.update
|
|
558
|
+
// for the same reason documented there: on a rowid-mode backend a post-mutation
|
|
559
|
+
// OLD-value scan dereferences through the just-mutated parent and finds nothing.
|
|
560
|
+
// runInsert owns no ParentRestrictBatch, so this is always the per-row pre-walk.
|
|
561
|
+
//
|
|
562
|
+
// NOTE: this pre-walk is the arm's ONLY parent-side RESTRICT enforcement whenever
|
|
563
|
+
// the table clears the batchability gate — buildUpsertUpdateValidation drops the
|
|
564
|
+
// plan-time `not exists` probes there, matching buildUpdateStmt, so both spellings
|
|
565
|
+
// report the same message. The arm still never gets the end-of-statement batched
|
|
566
|
+
// probe a plain UPDATE can, paying one probe per conflicting row instead. Fine at
|
|
567
|
+
// current scale; if bulk upsert against a heavily-referenced parent ever shows up
|
|
568
|
+
// as slow, give runInsert a ParentRestrictBatch the way runUpdate has one.
|
|
569
|
+
await assertTransitiveRestrictsForParentMutation(rctx.db, tableSchema, 'update', existingRow, updatedRow, plan.lensRouted);
|
|
402
570
|
// Extract the primary key from existing row
|
|
403
571
|
const keyValues = pkColumnIndicesInSchema.map(idx => existingRow[idx]);
|
|
404
572
|
// Perform the UPDATE operation. `preCoerced`: the row is composed of
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dml-executor.js","sourceRoot":"","sources":["../../../../src/runtime/emit/dml-executor.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dml-executor.js","sourceRoot":"","sources":["../../../../src/runtime/emit/dml-executor.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,28 +8,28 @@ export function emitDropAssertion(plan, _ctx) {
|
|
|
8
8
|
// Ensure we're in a transaction before DDL (lazy/JIT transaction start)
|
|
9
9
|
await rctx.db._ensureTransaction();
|
|
10
10
|
const schemaManager = rctx.db.schemaManager;
|
|
11
|
-
const schema = schemaManager.
|
|
12
|
-
const existing = schema
|
|
11
|
+
const schema = schemaManager.getSchema(plan.schemaName);
|
|
12
|
+
const existing = schema?.getAssertion(plan.name);
|
|
13
13
|
if (!existing) {
|
|
14
14
|
if (plan.ifExists) {
|
|
15
|
-
log('Assertion %s not found, but IF EXISTS specified', plan.name);
|
|
15
|
+
log('Assertion %s.%s not found, but IF EXISTS specified', plan.schemaName, plan.name);
|
|
16
16
|
return null;
|
|
17
17
|
}
|
|
18
|
-
throw new QuereusError(`Assertion ${plan.name} not found`, StatusCode.NOTFOUND);
|
|
18
|
+
throw new QuereusError(`Assertion ${plan.name} not found in schema ${plan.schemaName}`, StatusCode.NOTFOUND);
|
|
19
19
|
}
|
|
20
|
-
const removed = schemaManager.removeAssertion(
|
|
20
|
+
const removed = schemaManager.removeAssertion(plan.schemaName, plan.name);
|
|
21
21
|
if (!removed && !plan.ifExists) {
|
|
22
22
|
throw new QuereusError(`Failed to remove assertion ${plan.name}`, StatusCode.INTERNAL);
|
|
23
23
|
}
|
|
24
24
|
// Invalidate cached plan for this assertion
|
|
25
|
-
rctx.db.invalidateAssertionCache(plan.name);
|
|
26
|
-
log('Dropped assertion %s', plan.name);
|
|
25
|
+
rctx.db.invalidateAssertionCache(plan.schemaName, plan.name);
|
|
26
|
+
log('Dropped assertion %s.%s', plan.schemaName, plan.name);
|
|
27
27
|
return null;
|
|
28
28
|
}
|
|
29
29
|
return {
|
|
30
30
|
params: [],
|
|
31
31
|
run: asRun(run),
|
|
32
|
-
note: `dropAssertion(${plan.name})`
|
|
32
|
+
note: `dropAssertion(${plan.schemaName}.${plan.name})`
|
|
33
33
|
};
|
|
34
34
|
}
|
|
35
35
|
//# sourceMappingURL=drop-assertion.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"drop-assertion.js","sourceRoot":"","sources":["../../../../src/runtime/emit/drop-assertion.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEpC,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAY,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtD,MAAM,GAAG,GAAG,YAAY,CAAC,6BAA6B,CAAC,CAAC;AAExD,MAAM,UAAU,iBAAiB,CAAC,IAAuB,EAAE,IAAqB;IAE/E,KAAK,UAAU,GAAG,CAAC,IAAoB;QACtC,wEAAwE;QACxE,MAAM,IAAI,CAAC,EAAE,CAAC,kBAAkB,EAAE,CAAC;QAEnC,MAAM,aAAa,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC;QAC5C,MAAM,MAAM,GAAG,aAAa,CAAC,
|
|
1
|
+
{"version":3,"file":"drop-assertion.js","sourceRoot":"","sources":["../../../../src/runtime/emit/drop-assertion.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEpC,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAY,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtD,MAAM,GAAG,GAAG,YAAY,CAAC,6BAA6B,CAAC,CAAC;AAExD,MAAM,UAAU,iBAAiB,CAAC,IAAuB,EAAE,IAAqB;IAE/E,KAAK,UAAU,GAAG,CAAC,IAAoB;QACtC,wEAAwE;QACxE,MAAM,IAAI,CAAC,EAAE,CAAC,kBAAkB,EAAE,CAAC;QAEnC,MAAM,aAAa,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC;QAC5C,MAAM,MAAM,GAAG,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAExD,MAAM,QAAQ,GAAG,MAAM,EAAE,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACf,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACnB,GAAG,CAAC,oDAAoD,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;gBACtF,OAAO,IAAI,CAAC;YACb,CAAC;YACD,MAAM,IAAI,YAAY,CACrB,aAAa,IAAI,CAAC,IAAI,wBAAwB,IAAI,CAAC,UAAU,EAAE,EAC/D,UAAU,CAAC,QAAQ,CACnB,CAAC;QACH,CAAC;QAED,MAAM,OAAO,GAAG,aAAa,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1E,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChC,MAAM,IAAI,YAAY,CACrB,8BAA8B,IAAI,CAAC,IAAI,EAAE,EACzC,UAAU,CAAC,QAAQ,CACnB,CAAC;QACH,CAAC;QAED,4CAA4C;QAC5C,IAAI,CAAC,EAAE,CAAC,wBAAwB,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAE7D,GAAG,CAAC,yBAAyB,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3D,OAAO,IAAI,CAAC;IACb,CAAC;IAED,OAAO;QACN,MAAM,EAAE,EAAE;QACV,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC;QACf,IAAI,EAAE,iBAAiB,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,IAAI,GAAG;KACtD,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
import type { Database } from '../../core/database.js';
|
|
2
|
+
import type { TableSchema } from '../../schema/table.js';
|
|
3
|
+
/**
|
|
4
|
+
* The `ALTER TABLE … DROP COLUMN` guards over dependents that `runDropColumn` does not
|
|
5
|
+
* otherwise see: the DEFAULT of another column on the table itself, a CHECK constraint on
|
|
6
|
+
* the table itself, an assertion whose CHECK body names the column, and a foreign key in
|
|
7
|
+
* *another* table pointing **at** the column.
|
|
8
|
+
*
|
|
9
|
+
* Whether a dependent is removed with the column or blocks the drop turns on two
|
|
10
|
+
* questions: is it defined by a *column set* or by an *expression*, and does it live on
|
|
11
|
+
* the altered table or somewhere else?
|
|
12
|
+
*
|
|
13
|
+
* - **Structural** dependents **of the altered table** (a UNIQUE over the dropped column,
|
|
14
|
+
* the table's own FK using it as a child column) are defined by a *column set*. Losing
|
|
15
|
+
* a column makes them a different constraint, not a narrower one, so both vtab modules
|
|
16
|
+
* **remove them with the column**.
|
|
17
|
+
* - **Expression** dependents (a generated column's expression, a partial index's
|
|
18
|
+
* `WHERE`, and — here — a column DEFAULT, a CHECK expression and an assertion body) are
|
|
19
|
+
* arbitrary user-authored logic with no narrowed form at all. The only choices are
|
|
20
|
+
* delete-it-silently and refuse, and the engine **refuses**, `StatusCode.CONSTRAINT`.
|
|
21
|
+
* - **Dependents living in another table** — here, a foreign key whose *parent* column is
|
|
22
|
+
* the one being dropped — refuse regardless of shape. Removing one would silently
|
|
23
|
+
* weaken a constraint on a table the user did not name in the statement.
|
|
24
|
+
*
|
|
25
|
+
* Refuse is right for all four guards here because it is what the two expression guards
|
|
26
|
+
* already inside `runDropColumn` do (so the function gains no second policy), it is
|
|
27
|
+
* SQLite's position for the whole family, and — for the assertion arm —
|
|
28
|
+
* `assertNoAssertionDependsOn` already chose refuse for the *table* verb over the same
|
|
29
|
+
* assertion. Cascading here would make `drop table f` and `alter table f drop column x`
|
|
30
|
+
* disagree about the same object.
|
|
31
|
+
*
|
|
32
|
+
* Known cost, accepted: an **unnamed** table-level CHECK cannot be dropped
|
|
33
|
+
* (`DROP CONSTRAINT` resolves by name only), so refusing leaves such a column
|
|
34
|
+
* undroppable short of rebuilding the table — again SQLite's position. The refusal
|
|
35
|
+
* message quotes the constraint's expression so the user can at least see what is in
|
|
36
|
+
* the way.
|
|
37
|
+
*
|
|
38
|
+
* All four guards must run **before** `requireVtabModule` / `module.alterTable`, so a
|
|
39
|
+
* refused statement never reaches a persisting module and the table is left untouched
|
|
40
|
+
* rather than reverted.
|
|
41
|
+
*/
|
|
42
|
+
/**
|
|
43
|
+
* Refuses the drop when the DEFAULT of some OTHER column on `tableSchema` names the column.
|
|
44
|
+
*
|
|
45
|
+
* A default is evaluated against the row being written, so it names its siblings through
|
|
46
|
+
* the row-image qualifier — `b integer default (new.a + 1)`. Dropping `a` leaves that
|
|
47
|
+
* default uncompilable and the table unable to accept any new row at all, with an error
|
|
48
|
+
* naming a column the user deliberately removed. Refusing keeps the failure attached to
|
|
49
|
+
* the statement that caused it.
|
|
50
|
+
*
|
|
51
|
+
* Decided by {@link columnReferencedInCheckExpression}, the same seeded probe the CHECK
|
|
52
|
+
* guard below uses, and for the same two reasons: the seed owns the `new.` / `old.`
|
|
53
|
+
* row-image namespace a default is written in, and it is scope-**aware**, so a default
|
|
54
|
+
* whose subquery reads a like-named column on another table
|
|
55
|
+
* (`default ((select min(v) from u))`) does not false-refuse dropping this table's own `v`.
|
|
56
|
+
* Sharing the probe with the rename walk is what makes "the drop refuses exactly the
|
|
57
|
+
* references a rename would have rewritten" true — the same equivalence the CHECK guard
|
|
58
|
+
* rests on, case folding (`NEW.A`) and the `"new"`-named-table shadowing edge included.
|
|
59
|
+
*
|
|
60
|
+
* The dropped column's **own** default is skipped: it goes away with the column, so a
|
|
61
|
+
* self-naming default (`a integer default (new.a)`) is not something the drop orphans.
|
|
62
|
+
*
|
|
63
|
+
* The generated-column half of this pair is NOT here — `runDropColumn` already refuses off
|
|
64
|
+
* `generatedColumnDependencies`, the resolved column-index map `extractGeneratedColumnDependencies`
|
|
65
|
+
* builds. Two mechanisms for one policy, but the existing one predates this guard and its map
|
|
66
|
+
* is load-bearing elsewhere (evaluation order), so it stays where it is.
|
|
67
|
+
*/
|
|
68
|
+
export declare function assertNoColumnDefaultNamesColumn(db: Database, tableSchema: TableSchema, columnName: string): void;
|
|
69
|
+
/**
|
|
70
|
+
* Refuses the drop when one of `tableSchema`'s own CHECK constraints names the column.
|
|
71
|
+
*
|
|
72
|
+
* "Names" is decided by {@link columnReferencedInCheckExpression} — a real rename to a
|
|
73
|
+
* sentinel over a throwaway clone of the body — so the guard refuses exactly the
|
|
74
|
+
* references `ALTER TABLE … RENAME COLUMN` would have rewritten, and the two
|
|
75
|
+
* definitions cannot drift. That scope-awareness is load-bearing rather than
|
|
76
|
+
* decorative: a CHECK may contain a subquery, so a depth-blind name match (what the
|
|
77
|
+
* partial-index guard next door can afford, its predicates admitting no subqueries)
|
|
78
|
+
* would false-refuse `check ((select min(v) from u) >= 0)` when dropping this table's
|
|
79
|
+
* own `v`.
|
|
80
|
+
*
|
|
81
|
+
* Only the constraints on `tableSchema.checkConstraints` at drop time are probed —
|
|
82
|
+
* the user's declared set. Lens- and FK-synthesized entries are attached to a write
|
|
83
|
+
* plan's constraint list, not to the catalog entry this reads.
|
|
84
|
+
*
|
|
85
|
+
* A CHECK naming the column through the row-image qualifiers — `check (new.a > 0)`,
|
|
86
|
+
* `check on delete (old.a > 0)` — refuses the drop just like the unqualified spelling:
|
|
87
|
+
* the same walk owns that namespace, shadowing edge included, so a CHECK whose subquery
|
|
88
|
+
* reads a real table named `"new"` still does not block dropping this table's own
|
|
89
|
+
* like-named column.
|
|
90
|
+
*/
|
|
91
|
+
export declare function assertNoCheckConstraintNamesColumn(db: Database, tableSchema: TableSchema, columnName: string): void;
|
|
92
|
+
/**
|
|
93
|
+
* Refuses the drop when a live assertion's CHECK body names the column.
|
|
94
|
+
*
|
|
95
|
+
* Blast radius is why this one is worth a guard at all: `AssertionEvaluator`
|
|
96
|
+
* recompiles **every** live assertion on any commit that touched any table, so a
|
|
97
|
+
* single body left naming a dropped column makes every write to the whole database
|
|
98
|
+
* fail — including writes to tables that have nothing to do with the altered one.
|
|
99
|
+
*
|
|
100
|
+
* The walk is the unseeded {@link columnReferencedInAst}: an assertion body names its
|
|
101
|
+
* tables explicitly in its own FROM clauses, so there is no implicit binding to seed
|
|
102
|
+
* (unlike a CHECK). A body that names the table but not the column — `select *`
|
|
103
|
+
* included — is not a reference and does not block the drop.
|
|
104
|
+
*
|
|
105
|
+
* Scope is the altered table's OWN schema, matching `assertNoAssertionDependsOn` and
|
|
106
|
+
* `propagateColumnRenameToAssertions`, and carrying the same documented gap: an
|
|
107
|
+
* assertion living in schema A that names `B.t` explicitly is not caught. Tracked by
|
|
108
|
+
* `bug-rename-not-propagated-across-schemas`.
|
|
109
|
+
*/
|
|
110
|
+
export declare function assertNoAssertionNamesColumn(db: Database, tableSchema: TableSchema, columnName: string): void;
|
|
111
|
+
/**
|
|
112
|
+
* Refuses the drop when some foreign key — in any schema, this table's own included —
|
|
113
|
+
* names the column among its **parent** columns.
|
|
114
|
+
*
|
|
115
|
+
* A foreign key stores its parent columns as *names* (`referencedColumnNames`) and
|
|
116
|
+
* re-resolves them against the parent's current shape on every write
|
|
117
|
+
* (`resolveReferencedColumns`, `schema/table.ts`). Dropping a named parent column therefore does not
|
|
118
|
+
* break the altered table at all — it makes the *referencing* table unwritable, with an
|
|
119
|
+
* error naming a column the user deliberately removed somewhere else. Refusing is the
|
|
120
|
+
* only way that failure stays attached to the statement that caused it.
|
|
121
|
+
*
|
|
122
|
+
* The refusal is **not** gated on `pragma foreign_keys`. The pragma decides whether the
|
|
123
|
+
* DML builders emit FK checks, so with it off the breakage is merely latent: the schema
|
|
124
|
+
* is still wrong and turning the pragma on later bricks the child table. The guards
|
|
125
|
+
* already in `runDropColumn` are likewise unconditional.
|
|
126
|
+
*
|
|
127
|
+
* Discovery goes through {@link SchemaManager.getReferencingForeignKeys} — the cached
|
|
128
|
+
* reverse index keyed by referenced `schema.table` that `DROP TABLE`'s parent-side guard
|
|
129
|
+
* already uses — rather than a fresh walk of every foreign key in every schema. Its key
|
|
130
|
+
* is `fk.referencedSchema ?? childTable.schemaName`, and `referencedSchema` is populated
|
|
131
|
+
* at build time from the declaration (`constraint-builder.ts`: `fk.schema ?? childSchemaName`),
|
|
132
|
+
* so the bucket a key lands in is the same parent
|
|
133
|
+
* `planner/building/foreign-key-builder.ts` resolves at enforcement time. That identity is
|
|
134
|
+
* what makes "the guard refuses exactly the drops enforcement would have choked on" true.
|
|
135
|
+
* An unqualified reference binds to the **child's own schema**, not through the session
|
|
136
|
+
* search path — a cross-schema key must qualify its parent (`references main.p(c)`) or it
|
|
137
|
+
* resolves to no parent at all.
|
|
138
|
+
*
|
|
139
|
+
* Two keys are skipped, both deliberately:
|
|
140
|
+
*
|
|
141
|
+
* - One with **no `referencedColumnNames`** (`references Parent` with no column list)
|
|
142
|
+
* falls back to the parent's primary key, which no name resolution can miss and which
|
|
143
|
+
* `runDropColumn` already refuses to drop. Not an oversight — there is no name here for
|
|
144
|
+
* this drop to invalidate.
|
|
145
|
+
* - A **self-referencing key that this same drop removes** — one on the altered table whose
|
|
146
|
+
* *child* columns include the dropped column (`x integer references t(x)`). The module
|
|
147
|
+
* removes the whole key as part of the drop, so nothing is left pointing at the missing
|
|
148
|
+
* name. Refusing there would turn away a legal drop.
|
|
149
|
+
*/
|
|
150
|
+
export declare function assertNoForeignKeyReferencesColumn(db: Database, tableSchema: TableSchema, columnName: string): void;
|
|
151
|
+
//# sourceMappingURL=drop-column-guards.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"drop-column-guards.d.ts","sourceRoot":"","sources":["../../../../src/runtime/emit/drop-column-guards.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAGvD,OAAO,KAAK,EAAE,WAAW,EAA8B,MAAM,uBAAuB,CAAC;AAKrF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,gCAAgC,CAC/C,EAAE,EAAE,QAAQ,EACZ,WAAW,EAAE,WAAW,EACxB,UAAU,EAAE,MAAM,GAChB,IAAI,CAaN;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,kCAAkC,CACjD,EAAE,EAAE,QAAQ,EACZ,WAAW,EAAE,WAAW,EACxB,UAAU,EAAE,MAAM,GAChB,IAAI,CAgBN;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,4BAA4B,CAC3C,EAAE,EAAE,QAAQ,EACZ,WAAW,EAAE,WAAW,EACxB,UAAU,EAAE,MAAM,GAChB,IAAI,CAgBN;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,wBAAgB,kCAAkC,CACjD,EAAE,EAAE,QAAQ,EACZ,WAAW,EAAE,WAAW,EACxB,UAAU,EAAE,MAAM,GAChB,IAAI,CAcN"}
|