@quereus/quereus 4.6.0 → 4.8.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/common/types.d.ts +19 -0
- package/dist/src/common/types.d.ts.map +1 -1
- package/dist/src/common/types.js.map +1 -1
- package/dist/src/core/database-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 +48 -2
- package/dist/src/core/database.d.ts.map +1 -1
- package/dist/src/core/database.js +222 -11
- 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 +101 -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 +9 -5
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +7 -5
- 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/remote-query.d.ts.map +1 -1
- package/dist/src/runtime/emit/remote-query.js +8 -3
- package/dist/src/runtime/emit/remote-query.js.map +1 -1
- package/dist/src/runtime/emit/scan.d.ts.map +1 -1
- package/dist/src/runtime/emit/scan.js +4 -1
- package/dist/src/runtime/emit/scan.js.map +1 -1
- package/dist/src/runtime/emit/schema-declarative.js +2 -2
- package/dist/src/runtime/emit/schema-declarative.js.map +1 -1
- package/dist/src/runtime/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/parallel-driver.d.ts +4 -3
- package/dist/src/runtime/parallel-driver.d.ts.map +1 -1
- package/dist/src/runtime/parallel-driver.js +8 -3
- package/dist/src/runtime/parallel-driver.js.map +1 -1
- package/dist/src/runtime/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 +18 -11
- package/dist/src/runtime/types.d.ts.map +1 -1
- package/dist/src/runtime/types.js.map +1 -1
- package/dist/src/runtime/utils.d.ts.map +1 -1
- package/dist/src/runtime/utils.js +11 -0
- package/dist/src/runtime/utils.js.map +1 -1
- package/dist/src/schema/assertion.d.ts +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/abort-signal.d.ts +25 -0
- package/dist/src/util/abort-signal.d.ts.map +1 -0
- package/dist/src/util/abort-signal.js +40 -0
- package/dist/src/util/abort-signal.js.map +1 -0
- package/dist/src/util/{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/concurrency.d.ts +15 -0
- package/dist/src/vtab/concurrency.d.ts.map +1 -1
- package/dist/src/vtab/concurrency.js +17 -0
- package/dist/src/vtab/concurrency.js.map +1 -1
- package/dist/src/vtab/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/base.d.ts +10 -0
- package/dist/src/vtab/memory/layer/base.d.ts.map +1 -1
- package/dist/src/vtab/memory/layer/base.js +10 -0
- package/dist/src/vtab/memory/layer/base.js.map +1 -1
- package/dist/src/vtab/memory/layer/interface.d.ts +24 -0
- package/dist/src/vtab/memory/layer/interface.d.ts.map +1 -1
- package/dist/src/vtab/memory/layer/manager.d.ts +21 -3
- package/dist/src/vtab/memory/layer/manager.d.ts.map +1 -1
- package/dist/src/vtab/memory/layer/manager.js +107 -157
- package/dist/src/vtab/memory/layer/manager.js.map +1 -1
- package/dist/src/vtab/memory/layer/transaction.d.ts +11 -0
- package/dist/src/vtab/memory/layer/transaction.d.ts.map +1 -1
- package/dist/src/vtab/memory/layer/transaction.js +19 -0
- package/dist/src/vtab/memory/layer/transaction.js.map +1 -1
- package/dist/src/vtab/memory/module.d.ts +57 -1
- package/dist/src/vtab/memory/module.d.ts.map +1 -1
- package/dist/src/vtab/memory/module.js +103 -2
- package/dist/src/vtab/memory/module.js.map +1 -1
- package/dist/src/vtab/memory/table.d.ts +12 -1
- package/dist/src/vtab/memory/table.d.ts.map +1 -1
- package/dist/src/vtab/memory/table.js +12 -1
- package/dist/src/vtab/memory/table.js.map +1 -1
- package/dist/src/vtab/module.d.ts +59 -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/dist/src/vtab/test-support/commit-stall.d.ts +53 -0
- package/dist/src/vtab/test-support/commit-stall.d.ts.map +1 -0
- package/dist/src/vtab/test-support/commit-stall.js +73 -0
- package/dist/src/vtab/test-support/commit-stall.js.map +1 -0
- package/dist/src/vtab/test-support/committed-read-conformance.d.ts +96 -0
- package/dist/src/vtab/test-support/committed-read-conformance.d.ts.map +1 -0
- package/dist/src/vtab/test-support/committed-read-conformance.js +364 -0
- package/dist/src/vtab/test-support/committed-read-conformance.js.map +1 -0
- package/package.json +3 -3
- package/dist/src/util/working-table-iterable.d.ts.map +0 -1
- package/dist/src/util/working-table-iterable.js.map +0 -1
|
@@ -5,7 +5,6 @@ import { StatusCode } from '../../common/types.js';
|
|
|
5
5
|
import { buildSelectStmt, buildValuesStmt } from './select.js';
|
|
6
6
|
import { buildUpdateStmt } from './update.js';
|
|
7
7
|
import { buildDeleteStmt } from './delete.js';
|
|
8
|
-
import { buildWithClause } from './with.js';
|
|
9
8
|
import { buildWithContext } from './select-context.js';
|
|
10
9
|
import { resolveCteTarget, contextForCteTarget } from './dml-target.js';
|
|
11
10
|
import { PlanNode } from '../nodes/plan-node.js';
|
|
@@ -24,12 +23,14 @@ import { ProjectNode } from '../nodes/project-node.js';
|
|
|
24
23
|
import { buildOldNewRowDescriptors } from '../../util/row-descriptor.js';
|
|
25
24
|
import { DmlExecutorNode } from '../nodes/dml-executor-node.js';
|
|
26
25
|
import { buildConstraintChecks, buildNotNullDefaults } from './constraint-builder.js';
|
|
27
|
-
import { buildChildSideFKChecks } from './foreign-key-builder.js';
|
|
26
|
+
import { buildChildSideFKChecks, buildParentSideFKChecks, getBatchableRestrictFks } from './foreign-key-builder.js';
|
|
27
|
+
import { schemaAuthoredContext } from './schema-authored-context.js';
|
|
28
28
|
import { validateDeterministicDefault, validateDeterministicGenerated } from '../validation/determinism-validator.js';
|
|
29
29
|
import { validateReturningQualifiers } from '../validation/returning-qualifier-validator.js';
|
|
30
30
|
import { isCommittedSchemaRef } from './schema-resolution.js';
|
|
31
31
|
import { buildViewMutation } from './view-mutation-builder.js';
|
|
32
32
|
import { isMaintainedTable, maintainedTableViewLike } from '../../schema/derivation.js';
|
|
33
|
+
import { isViewSchema } from '../../schema/view.js';
|
|
33
34
|
import { validateReservedTags } from '../../schema/reserved-tags.js';
|
|
34
35
|
import { raiseStmtTagDiagnostics } from './tag-diagnostics.js';
|
|
35
36
|
/**
|
|
@@ -238,6 +239,98 @@ function resolveConflictTargetEnforcement(tableSchema, conflictTargetIndices) {
|
|
|
238
239
|
// Defensive fallback: the columns' declared collations.
|
|
239
240
|
return { collations: conflictTargetIndices.map(idx => tableSchema.columns[idx].collation) };
|
|
240
241
|
}
|
|
242
|
+
/**
|
|
243
|
+
* Register the conflicting row's columns on `scope`, under both the bare name and
|
|
244
|
+
* the `<table>.<name>` qualified form. Shared by the DO UPDATE SET scope (where
|
|
245
|
+
* unqualified names mean the existing row) and the generated-column recompute
|
|
246
|
+
* scope, which sees the same attributes but none of the `new.` / `excluded.` ones.
|
|
247
|
+
*/
|
|
248
|
+
function registerExistingRowColumns(scope, tableSchema, existingAttributes) {
|
|
249
|
+
existingAttributes.forEach((attr, columnIndex) => {
|
|
250
|
+
const col = tableSchema.columns[columnIndex];
|
|
251
|
+
const register = (symbol) => scope.registerSymbol(symbol, (exp, s) => new ColumnReferenceNode(s, exp, attr.type, attr.id, columnIndex));
|
|
252
|
+
register(col.name.toLowerCase());
|
|
253
|
+
register(`${tableSchema.name.toLowerCase()}.${col.name.toLowerCase()}`);
|
|
254
|
+
});
|
|
255
|
+
return scope;
|
|
256
|
+
}
|
|
257
|
+
/**
|
|
258
|
+
* Append one implicit assignment per generated column to a DO UPDATE clause's
|
|
259
|
+
* assignment map, in topological order so a generated column referencing another
|
|
260
|
+
* sees the freshly-computed value when the runtime evaluates them in turn against
|
|
261
|
+
* the composed row. Returns the appended column indices, in that same order.
|
|
262
|
+
*
|
|
263
|
+
* A generated column can never collide with a user target (the SET loop rejects
|
|
264
|
+
* those), so appending into the same map is safe and keeps the node's child walk
|
|
265
|
+
* order-preserving.
|
|
266
|
+
*
|
|
267
|
+
* The expressions get their OWN scope over the existing-row attributes rather than
|
|
268
|
+
* reusing the SET scope: schema-authored SQL must not be able to bind the
|
|
269
|
+
* statement's `new.` / `excluded.` symbols. Wrapped in `schemaAuthoredContext` for
|
|
270
|
+
* the same reason `building/update.ts` wraps its recompute — the table's own DDL
|
|
271
|
+
* resolves bare relation names in its own schema and cannot see the writing
|
|
272
|
+
* statement's CTEs.
|
|
273
|
+
*/
|
|
274
|
+
function appendGeneratedRecomputes(ctx, tableSchema, existingAttributes, assignments) {
|
|
275
|
+
const generatedCtx = schemaAuthoredContext({ ...ctx, scope: registerExistingRowColumns(new RegisteredScope(ctx.scope), tableSchema, existingAttributes) }, tableSchema.schemaName);
|
|
276
|
+
const generatedAssignmentColumns = [];
|
|
277
|
+
for (const colIndex of tableSchema.generatedColumnTopoOrder ?? []) {
|
|
278
|
+
const col = tableSchema.columns[colIndex];
|
|
279
|
+
if (!col.generated || !col.generatedExpr)
|
|
280
|
+
continue;
|
|
281
|
+
const genNode = buildExpression(generatedCtx, col.generatedExpr);
|
|
282
|
+
if (!ctx.db.options.getBooleanOption('nondeterministic_schema')) {
|
|
283
|
+
validateDeterministicGenerated(genNode, col.name, tableSchema.name);
|
|
284
|
+
}
|
|
285
|
+
assignments.set(colIndex, genNode);
|
|
286
|
+
generatedAssignmentColumns.push(colIndex);
|
|
287
|
+
}
|
|
288
|
+
return generatedAssignmentColumns;
|
|
289
|
+
}
|
|
290
|
+
/**
|
|
291
|
+
* Build the UPDATE-shaped row validation an INSERT's `on conflict … do update` arm
|
|
292
|
+
* runs against the row it composes — see {@link UpsertUpdateValidation}.
|
|
293
|
+
*
|
|
294
|
+
* This is deliberately the same construction `buildUpdateStmt` performs for a plain
|
|
295
|
+
* `UPDATE` of the same table: fresh OLD/NEW attributes (OLD is a real stored row here,
|
|
296
|
+
* unlike the INSERT path where OLD is all NULL), UPDATE-scoped CHECKs, both FK sides,
|
|
297
|
+
* and the NOT NULL DEFAULT evaluators. The statement's own `contextAttributes` are
|
|
298
|
+
* reused so a CHECK referencing a mutation-context variable binds the attribute ids
|
|
299
|
+
* the executor already evaluates.
|
|
300
|
+
*/
|
|
301
|
+
function buildUpsertUpdateValidation(ctx, schemaAuthoredCtx, tableReference, contextAttributes, lensRouted) {
|
|
302
|
+
const tableSchema = tableReference.tableSchema;
|
|
303
|
+
const oldAttributes = tableSchema.columns.map((col) => ({
|
|
304
|
+
id: PlanNode.nextAttrId(),
|
|
305
|
+
name: col.name,
|
|
306
|
+
type: columnSchemaToScalarType(col),
|
|
307
|
+
sourceRelation: `OLD.${tableSchema.name}`
|
|
308
|
+
}));
|
|
309
|
+
const newAttributes = tableSchema.columns.map((col) => ({
|
|
310
|
+
id: PlanNode.nextAttrId(),
|
|
311
|
+
name: col.name,
|
|
312
|
+
type: columnSchemaToScalarType(col),
|
|
313
|
+
sourceRelation: `NEW.${tableSchema.name}`
|
|
314
|
+
}));
|
|
315
|
+
const { flatRowDescriptor } = buildOldNewRowDescriptors(oldAttributes, newAttributes);
|
|
316
|
+
const checks = buildConstraintChecks(schemaAuthoredCtx, tableSchema, RowOpFlag.UPDATE, oldAttributes, newAttributes, flatRowDescriptor, contextAttributes);
|
|
317
|
+
if (ctx.db.options.getBooleanOption('foreign_keys')) {
|
|
318
|
+
checks.push(...buildChildSideFKChecks(schemaAuthoredCtx, tableSchema, RowOpFlag.UPDATE, oldAttributes, newAttributes, contextAttributes));
|
|
319
|
+
// Parent-side: gated exactly as buildUpdateStmt gates it, so the two spellings
|
|
320
|
+
// of the same write report a RESTRICT breach with the SAME message. Dropping the
|
|
321
|
+
// plan-time `not exists` probe here loses no enforcement: `executeUpsertUpdate`
|
|
322
|
+
// always runs `assertTransitiveRestrictsForParentMutation` before `vtab.update`,
|
|
323
|
+
// which covers every inbound RESTRICT FK this would have (plus transitively
|
|
324
|
+
// cascaded ones). `runInsert` owns no ParentRestrictBatch, so unlike `runUpdate`
|
|
325
|
+
// the admitted case is enforced by that per-row pre-walk rather than one
|
|
326
|
+
// end-of-statement probe — same verdict, same message, no batching.
|
|
327
|
+
if (getBatchableRestrictFks(ctx.schemaManager, tableSchema, 'update', undefined, lensRouted) === undefined) {
|
|
328
|
+
checks.push(...buildParentSideFKChecks(schemaAuthoredCtx, tableSchema, RowOpFlag.UPDATE, oldAttributes, newAttributes, contextAttributes));
|
|
329
|
+
}
|
|
330
|
+
}
|
|
331
|
+
const notNullDefaults = buildNotNullDefaults(schemaAuthoredCtx, tableSchema, newAttributes, contextAttributes);
|
|
332
|
+
return { checks, flatRowDescriptor, notNullDefaults };
|
|
333
|
+
}
|
|
241
334
|
/**
|
|
242
335
|
* Builds UPSERT clause plans from AST UPSERT clauses.
|
|
243
336
|
*
|
|
@@ -293,16 +386,7 @@ function buildUpsertClausePlans(ctx, upsertClauses, tableSchema, newAttributes)
|
|
|
293
386
|
// Create scope for UPSERT SET expressions:
|
|
294
387
|
// - NEW.* and excluded.* reference proposed insert values
|
|
295
388
|
// - Unqualified names reference existing row values
|
|
296
|
-
const upsertScope = new RegisteredScope(ctx.scope);
|
|
297
|
-
// Register existing row columns (unqualified column names default to existing values)
|
|
298
|
-
existingAttributes.forEach((attr, columnIndex) => {
|
|
299
|
-
const col = tableSchema.columns[columnIndex];
|
|
300
|
-
// Unqualified column name -> existing row value
|
|
301
|
-
upsertScope.registerSymbol(col.name.toLowerCase(), (exp, s) => new ColumnReferenceNode(s, exp, attr.type, attr.id, columnIndex));
|
|
302
|
-
// Table-qualified form (table.column) -> existing row value
|
|
303
|
-
const tblQualified = `${tableSchema.name.toLowerCase()}.${col.name.toLowerCase()}`;
|
|
304
|
-
upsertScope.registerSymbol(tblQualified, (exp, s) => new ColumnReferenceNode(s, exp, attr.type, attr.id, columnIndex));
|
|
305
|
-
});
|
|
389
|
+
const upsertScope = registerExistingRowColumns(new RegisteredScope(ctx.scope), tableSchema, existingAttributes);
|
|
306
390
|
// Register NEW.* references (proposed insert values)
|
|
307
391
|
newAttributes.forEach((attr, columnIndex) => {
|
|
308
392
|
const col = tableSchema.columns[columnIndex];
|
|
@@ -331,10 +415,18 @@ function buildUpsertClausePlans(ctx, upsertClauses, tableSchema, newAttributes)
|
|
|
331
415
|
if (colIndex === -1) {
|
|
332
416
|
throw new QuereusError(`Column '${assign.column}' not found in table '${tableSchema.name}' for DO UPDATE SET`, StatusCode.ERROR);
|
|
333
417
|
}
|
|
418
|
+
// Reject SET on generated columns, exactly as `building/update.ts` does —
|
|
419
|
+
// this path never routes through `buildUpdateStmt`, so it needs its own
|
|
420
|
+
// copy of the rule. Raised BEFORE the value expression is built so the
|
|
421
|
+
// diagnostic does not depend on that expression resolving.
|
|
422
|
+
if (tableSchema.columns[colIndex].generated) {
|
|
423
|
+
throw new QuereusError(`Cannot UPDATE generated column '${assign.column}'`, StatusCode.ERROR);
|
|
424
|
+
}
|
|
334
425
|
const valueNode = buildExpression(upsertCtx, assign.value);
|
|
335
426
|
assignments.set(colIndex, valueNode);
|
|
336
427
|
}
|
|
337
428
|
}
|
|
429
|
+
const generatedAssignmentColumns = appendGeneratedRecomputes(ctx, tableSchema, existingAttributes, assignments);
|
|
338
430
|
// Build WHERE condition if present
|
|
339
431
|
let whereCondition;
|
|
340
432
|
if (clause.where) {
|
|
@@ -345,6 +437,7 @@ function buildUpsertClausePlans(ctx, upsertClauses, tableSchema, newAttributes)
|
|
|
345
437
|
conflictTargetCollations: enforcement?.collations,
|
|
346
438
|
action: 'update',
|
|
347
439
|
assignments,
|
|
440
|
+
generatedAssignmentColumns: generatedAssignmentColumns.length > 0 ? generatedAssignmentColumns : undefined,
|
|
348
441
|
whereCondition,
|
|
349
442
|
newRowDescriptor,
|
|
350
443
|
existingRowDescriptor,
|
|
@@ -407,6 +500,32 @@ defaultRowContextScope) {
|
|
|
407
500
|
if (isCommittedSchemaRef(stmt.table.schema)) {
|
|
408
501
|
throw new QuereusError(`Cannot modify committed-state table 'committed.${stmt.table.name}'`, StatusCode.ERROR);
|
|
409
502
|
}
|
|
503
|
+
// Thread the statement's own leading WITH clause into the planning context ONCE, here,
|
|
504
|
+
// and build every user-authored clause below against it — matching buildUpdateStmt /
|
|
505
|
+
// buildDeleteStmt. `buildWithContext` seeds its map from `ctx.cteNodes` and merges
|
|
506
|
+
// `stmt.withClause` on top, so an own-clause name shadows an inherited one while the
|
|
507
|
+
// definitions this INSERT inherited from an enclosing statement stay visible. Routing
|
|
508
|
+
// the definitions through the CONTEXT rather than `buildSelectStmt`'s explicit
|
|
509
|
+
// `parentCTEs` argument is deliberate: that argument is precisely what leaks a
|
|
510
|
+
// caller's namespace past `storedBodyContext`'s clearing on the stored-body
|
|
511
|
+
// write-through path (see select-context.ts). A WITH-less insert with no parent CTEs
|
|
512
|
+
// gets the context back unchanged (no overhead).
|
|
513
|
+
//
|
|
514
|
+
// SCHEMA-authored expressions are deliberately NOT built on this context — column
|
|
515
|
+
// defaults, generated columns, CHECK constraints and FK checks are built on the
|
|
516
|
+
// `schemaAuthoredContext`-derived contexts below, which clear the CTE namespace
|
|
517
|
+
// outright (this statement's own definitions AND the ones it inherited), so a
|
|
518
|
+
// `default (select … from c)` written in the table's DDL cannot bind a caller's
|
|
519
|
+
// statement-level `c`.
|
|
520
|
+
//
|
|
521
|
+
// NOTE: this sits ABOVE the view / MV dispatch, so on a view target the clause is built
|
|
522
|
+
// here and then AGAIN when `buildViewMutation` re-plans the statement through this same
|
|
523
|
+
// builder (`buildWithClause` does not memoize). One node set ends up unreferenced —
|
|
524
|
+
// wasted planning work, not a behavior change, and a DML-bodied definition still
|
|
525
|
+
// executes exactly once (pinned in test/logic/13.6-cte-dml-runs-once.sqllogic).
|
|
526
|
+
// `buildUpdateStmt` has the same ordering. If view write-through planning cost ever
|
|
527
|
+
// shows up, memoize the clause per (context, withClause) rather than re-ordering.
|
|
528
|
+
const { contextWithCTEs } = buildWithContext(contextWithSchemaPath, stmt);
|
|
410
529
|
// CTE-name target: a leading `with t as (…) insert into t …` writes through the
|
|
411
530
|
// CTE body via the ephemeral view-like substrate — the same predicate-driven
|
|
412
531
|
// updateability framework a named view uses — and SHADOWS any same-named schema
|
|
@@ -415,9 +534,8 @@ defaultRowContextScope) {
|
|
|
415
534
|
// `recursive-cte` reason. The statement's CTEs are threaded into the planning
|
|
416
535
|
// context so a sibling-CTE read in the source resolves. See docs/vu-operators.md
|
|
417
536
|
// § Common Table Expressions.
|
|
418
|
-
const cteTarget = resolveCteTarget(
|
|
537
|
+
const cteTarget = resolveCteTarget(contextWithCTEs, stmt.table, stmt.withClause);
|
|
419
538
|
if (cteTarget) {
|
|
420
|
-
const { contextWithCTEs } = buildWithContext(contextWithSchemaPath, stmt);
|
|
421
539
|
return buildViewMutation(contextForCteTarget(contextWithCTEs, stmt.withClause, cteTarget.name), cteTarget, { op: 'insert', stmt });
|
|
422
540
|
}
|
|
423
541
|
// View- or materialized-view-mediated insert: if the target names an (updateable)
|
|
@@ -430,25 +548,26 @@ defaultRowContextScope) {
|
|
|
430
548
|
// Dispatch order is load-bearing: a maintained table (derivation-bearing)
|
|
431
549
|
// must hit the view-mutation rewrite, never the direct table write — its
|
|
432
550
|
// contents are derived and only the source may be user-written.
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
551
|
+
// An unqualified target resolves through the schema search path, exactly as an
|
|
552
|
+
// unqualified read does (see `SchemaManager.findSchemaItem`).
|
|
553
|
+
const insertTarget = ctx.schemaManager.findSchemaItem(stmt.table.name, stmt.table.schema, contextWithSchemaPath.schemaPath);
|
|
554
|
+
const insertView = isViewSchema(insertTarget) ? insertTarget
|
|
555
|
+
: (isMaintainedTable(insertTarget) ? maintainedTableViewLike(insertTarget) : undefined);
|
|
436
556
|
if (insertView) {
|
|
437
557
|
// Route through the view-mutation substrate: decompose to base op(s) and
|
|
438
558
|
// re-plan each through the base-table builder, wrapped in a ViewMutationNode.
|
|
439
559
|
// Single-source = one base op (byte-identical to the retired rewrite).
|
|
440
|
-
return buildViewMutation(
|
|
560
|
+
return buildViewMutation(contextWithCTEs, insertView, { op: 'insert', stmt });
|
|
441
561
|
}
|
|
442
|
-
const tableRetrieve = buildTableReference({ type: 'table', table: stmt.table },
|
|
562
|
+
const tableRetrieve = buildTableReference({ type: 'table', table: stmt.table }, contextWithCTEs);
|
|
443
563
|
const tableReference = tableRetrieve.tableRef; // Extract the actual TableReferenceNode
|
|
444
|
-
// Backstop on the RESOLVED table: the dispatch above
|
|
445
|
-
//
|
|
446
|
-
//
|
|
447
|
-
//
|
|
448
|
-
// view-mutation rewrite.
|
|
564
|
+
// Backstop on the RESOLVED table: the dispatch above and buildTableReference
|
|
565
|
+
// walk the same path today, so this should be unreachable — but they are two
|
|
566
|
+
// resolvers, and a direct write to a maintained table would corrupt derived
|
|
567
|
+
// contents. Keep the belt: route any that slips through to the same rewrite.
|
|
449
568
|
const insertResolved = tableReference.tableSchema;
|
|
450
569
|
if (isMaintainedTable(insertResolved)) {
|
|
451
|
-
return buildViewMutation(
|
|
570
|
+
return buildViewMutation(contextWithCTEs, maintainedTableViewLike(insertResolved), { op: 'insert', stmt });
|
|
452
571
|
}
|
|
453
572
|
// Process mutation context assignments if present
|
|
454
573
|
const mutationContextValues = new Map();
|
|
@@ -473,7 +592,7 @@ defaultRowContextScope) {
|
|
|
473
592
|
// threads a produced-row NEW context, parent on it so context variables still
|
|
474
593
|
// shadow the envelope's `new.<col>` (WITH CONTEXT precedence), while an envelope
|
|
475
594
|
// column the member does not carry stays resolvable below.
|
|
476
|
-
contextScope = new RegisteredScope(defaultRowContextScope ??
|
|
595
|
+
contextScope = new RegisteredScope(defaultRowContextScope ?? contextWithCTEs.scope);
|
|
477
596
|
// Register mutation context variables in the scope (before evaluating expressions)
|
|
478
597
|
contextAttributes.forEach((attr, index) => {
|
|
479
598
|
const contextVar = tableReference.tableSchema.mutationContext[index];
|
|
@@ -483,7 +602,7 @@ defaultRowContextScope) {
|
|
|
483
602
|
contextScope.registerSymbol(`context.${varNameLower}`, (exp, s) => new ColumnReferenceNode(s, exp, attr.type, attr.id, index));
|
|
484
603
|
});
|
|
485
604
|
// Build context value expressions using the context scope
|
|
486
|
-
const contextWithScope = { ...
|
|
605
|
+
const contextWithScope = { ...contextWithCTEs, scope: contextScope };
|
|
487
606
|
stmt.contextValues.forEach((assignment) => {
|
|
488
607
|
const valueExpr = buildExpression(contextWithScope, assignment.value);
|
|
489
608
|
mutationContextValues.set(assignment.name, valueExpr);
|
|
@@ -527,12 +646,10 @@ defaultRowContextScope) {
|
|
|
527
646
|
}
|
|
528
647
|
// Build the INSERT source — a unified QueryExpr (SELECT/VALUES/DML w/ RETURNING).
|
|
529
648
|
// Each branch produces a relational plan that the row-expansion projection
|
|
530
|
-
// then aligns to the target table columns.
|
|
531
|
-
//
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
parentCtes = buildWithClause(contextWithSchemaPath, stmt.withClause);
|
|
535
|
-
}
|
|
649
|
+
// then aligns to the target table columns. Every branch builds on
|
|
650
|
+
// `contextWithCTEs`, so the statement's CTEs (its own and any inherited) are
|
|
651
|
+
// visible to a SELECT source, to a scalar subquery inside a VALUES row, and to a
|
|
652
|
+
// nested DML source alike.
|
|
536
653
|
let sourceNode;
|
|
537
654
|
if (preBuiltSource) {
|
|
538
655
|
// Multi-source view-insert decomposition: the source is a projection over the
|
|
@@ -545,7 +662,7 @@ defaultRowContextScope) {
|
|
|
545
662
|
case 'values': {
|
|
546
663
|
// Bare VALUES — no source-side column type-check; the row-expansion
|
|
547
664
|
// projection handles column-count and per-column type coercion.
|
|
548
|
-
sourceNode = buildValuesStmt(
|
|
665
|
+
sourceNode = buildValuesStmt(contextWithCTEs, stmt.source);
|
|
549
666
|
const sourceCols = sourceNode.getType().columns;
|
|
550
667
|
if (sourceCols.length !== targetColumns.length) {
|
|
551
668
|
throw new QuereusError(`Column count mismatch in VALUES clause. Expected ${targetColumns.length} columns, got ${sourceCols.length}.`, StatusCode.ERROR, undefined, stmt.loc?.start.line, stmt.loc?.start.column);
|
|
@@ -553,7 +670,7 @@ defaultRowContextScope) {
|
|
|
553
670
|
break;
|
|
554
671
|
}
|
|
555
672
|
case 'select': {
|
|
556
|
-
const selectPlan = buildSelectStmt(
|
|
673
|
+
const selectPlan = buildSelectStmt(contextWithCTEs, stmt.source);
|
|
557
674
|
if (selectPlan.getType().typeClass !== 'relation') {
|
|
558
675
|
throw new QuereusError('SELECT statement in INSERT did not produce a relational plan.', StatusCode.INTERNAL, undefined, stmt.loc?.start.line, stmt.loc?.start.column);
|
|
559
676
|
}
|
|
@@ -566,23 +683,30 @@ defaultRowContextScope) {
|
|
|
566
683
|
// consumed by the outer INSERT. The inner is built through its
|
|
567
684
|
// standard builder; the outer's row-expansion projection aligns the
|
|
568
685
|
// RETURNING columns to the outer target columns.
|
|
569
|
-
sourceNode = buildInsertStmt(
|
|
686
|
+
sourceNode = buildInsertStmt(contextWithCTEs, stmt.source);
|
|
570
687
|
checkColumnsAssignable(sourceNode.getType().columns, targetColumns, stmt);
|
|
571
688
|
break;
|
|
572
689
|
}
|
|
573
690
|
case 'update': {
|
|
574
|
-
sourceNode = buildUpdateStmt(
|
|
691
|
+
sourceNode = buildUpdateStmt(contextWithCTEs, stmt.source);
|
|
575
692
|
checkColumnsAssignable(sourceNode.getType().columns, targetColumns, stmt);
|
|
576
693
|
break;
|
|
577
694
|
}
|
|
578
695
|
case 'delete': {
|
|
579
|
-
sourceNode = buildDeleteStmt(
|
|
696
|
+
sourceNode = buildDeleteStmt(contextWithCTEs, stmt.source);
|
|
580
697
|
checkColumnsAssignable(sourceNode.getType().columns, targetColumns, stmt);
|
|
581
698
|
break;
|
|
582
699
|
}
|
|
583
700
|
}
|
|
701
|
+
// The context for the table's OWN schema-authored SQL (column defaults, generated
|
|
702
|
+
// columns, CHECK constraints, FK probes). Derived once here rather than per call
|
|
703
|
+
// site: it clears the CTE namespace so none of that SQL can bind a statement's common
|
|
704
|
+
// table expressions, and narrows the schema path to the target's own schema so every
|
|
705
|
+
// kind resolves bare relation names identically — the statement's `with schema` path
|
|
706
|
+
// is deliberately irrelevant to all of them.
|
|
707
|
+
const schemaAuthoredCtx = schemaAuthoredContext(ctx, tableReference.tableSchema.schemaName);
|
|
584
708
|
// ORTHOGONAL ROW EXPANSION: Apply uniform row expansion to map any source to table structure with defaults
|
|
585
|
-
const expandedSourceNode = createRowExpansionProjection(
|
|
709
|
+
const expandedSourceNode = createRowExpansionProjection(schemaAuthoredCtx, sourceNode, targetColumns, tableReference, contextScope, defaultRowContextScope);
|
|
586
710
|
// Update targetColumns to reflect all table columns since we've expanded the source
|
|
587
711
|
const finalTargetColumns = tableReference.tableSchema.columns.map(col => columnSchemaToDef(col.name, col));
|
|
588
712
|
// Create OLD/NEW attributes for INSERT (OLD = all NULL, NEW = actual values)
|
|
@@ -608,28 +732,41 @@ defaultRowContextScope) {
|
|
|
608
732
|
});
|
|
609
733
|
}
|
|
610
734
|
// Build constraint checks at plan time
|
|
611
|
-
const constraintChecks = buildConstraintChecks(
|
|
735
|
+
const constraintChecks = buildConstraintChecks(schemaAuthoredCtx, tableReference.tableSchema, RowOpFlag.INSERT, oldAttributes, newAttributes, flatRowDescriptor, contextAttributes, extraConstraints);
|
|
612
736
|
// Build FK constraint checks if foreign_keys pragma is enabled
|
|
613
737
|
if (ctx.db.options.getBooleanOption('foreign_keys')) {
|
|
614
|
-
const fkChecks = buildChildSideFKChecks(
|
|
738
|
+
const fkChecks = buildChildSideFKChecks(schemaAuthoredCtx, tableReference.tableSchema, RowOpFlag.INSERT, oldAttributes, newAttributes, contextAttributes);
|
|
615
739
|
constraintChecks.push(...fkChecks);
|
|
616
740
|
}
|
|
617
741
|
// Pre-build DEFAULT evaluators for NOT NULL columns. Used by REPLACE to
|
|
618
742
|
// substitute the default when the user supplied NULL.
|
|
619
|
-
const notNullDefaults = buildNotNullDefaults(
|
|
743
|
+
const notNullDefaults = buildNotNullDefaults(schemaAuthoredCtx, tableReference.tableSchema, newAttributes, contextAttributes, defaultRowContextScope);
|
|
620
744
|
const insertNode = new InsertNode(ctx.scope, tableReference, finalTargetColumns, expandedSourceNode, flatRowDescriptor, mutationContextValues.size > 0 ? mutationContextValues : undefined, contextAttributes.length > 0 ? contextAttributes : undefined, contextDescriptor);
|
|
621
745
|
const constraintCheckNode = new ConstraintCheckNode(ctx.scope, insertNode, tableReference, RowOpFlag.INSERT, oldRowDescriptor, newRowDescriptor, flatRowDescriptor, constraintChecks, mutationContextValues.size > 0 ? mutationContextValues : undefined, contextAttributes.length > 0 ? contextAttributes : undefined, contextDescriptor, stmt.onConflict, notNullDefaults.length > 0 ? notNullDefaults : undefined);
|
|
622
746
|
// Build UPSERT clause plans if present
|
|
623
747
|
let upsertClausePlans;
|
|
624
748
|
if (stmt.upsertClauses && stmt.upsertClauses.length > 0) {
|
|
625
|
-
|
|
749
|
+
// User-authored clause: built on the CTE-aware context so a `do update set
|
|
750
|
+
// w = (select … from c)` / `where (select … from c)` resolves the statement's
|
|
751
|
+
// CTEs, and so a `with schema` path reaches those subqueries.
|
|
752
|
+
upsertClausePlans = buildUpsertClausePlans(contextWithCTEs, stmt.upsertClauses, tableReference.tableSchema, newAttributes);
|
|
626
753
|
}
|
|
754
|
+
// UPDATE-shaped validation for the `on conflict … do update` arm. The arm composes
|
|
755
|
+
// the row it writes inside the DML executor and calls vtab.update directly, so that
|
|
756
|
+
// row never passes through the INSERT-shaped ConstraintCheckNode above. Build here
|
|
757
|
+
// exactly what buildUpdateStmt would build for the equivalent plain UPDATE, so the
|
|
758
|
+
// two spellings of the same write are refused (or accepted) identically.
|
|
759
|
+
const upsertUpdateValidation = upsertClausePlans?.some(clause => clause.action === 'update')
|
|
760
|
+
? buildUpsertUpdateValidation(ctx, schemaAuthoredCtx, tableReference, contextAttributes, lensRouted)
|
|
761
|
+
: undefined;
|
|
627
762
|
// Add DML executor node to perform the actual database insert operations
|
|
628
|
-
const dmlExecutorNode = new DmlExecutorNode(ctx.scope, constraintCheckNode, tableReference, 'insert', stmt.onConflict, mutationContextValues.size > 0 ? mutationContextValues : undefined, contextAttributes.length > 0 ? contextAttributes : undefined, contextDescriptor, upsertClausePlans, lensRouted);
|
|
763
|
+
const dmlExecutorNode = new DmlExecutorNode(ctx.scope, constraintCheckNode, tableReference, 'insert', stmt.onConflict, mutationContextValues.size > 0 ? mutationContextValues : undefined, contextAttributes.length > 0 ? contextAttributes : undefined, contextDescriptor, upsertClausePlans, lensRouted, upsertUpdateValidation);
|
|
629
764
|
const resultNode = dmlExecutorNode;
|
|
630
765
|
if (stmt.returning && stmt.returning.length > 0) {
|
|
631
|
-
// Create returning scope with OLD/NEW attribute access
|
|
632
|
-
|
|
766
|
+
// Create returning scope with OLD/NEW attribute access. Parented on the CTE-aware
|
|
767
|
+
// context's scope and built against that context, so a RETURNING subquery sees the
|
|
768
|
+
// statement's CTEs and its `with schema` path — matching buildUpdateStmt.
|
|
769
|
+
const returningScope = new RegisteredScope(contextWithCTEs.scope);
|
|
633
770
|
// Register OLD.* symbols (always NULL for INSERT)
|
|
634
771
|
oldAttributes.forEach((attr, columnIndex) => {
|
|
635
772
|
const tableColumn = tableReference.tableSchema.columns[columnIndex];
|
|
@@ -653,7 +790,7 @@ defaultRowContextScope) {
|
|
|
653
790
|
if (rc.type === 'all') {
|
|
654
791
|
// INSERT has no alias (only inline-subquery targets do, and those route
|
|
655
792
|
// through the view path); the star inherits NEW via the returning scope.
|
|
656
|
-
returningProjections.push(...expandReturningStar(
|
|
793
|
+
returningProjections.push(...expandReturningStar(contextWithCTEs, rc, returningScope, tableReference.tableSchema, undefined));
|
|
657
794
|
continue;
|
|
658
795
|
}
|
|
659
796
|
// Infer alias from column name if not explicitly provided.
|
|
@@ -669,7 +806,7 @@ defaultRowContextScope) {
|
|
|
669
806
|
// OLD-in-INSERT guard fires before any "column not found" error.
|
|
670
807
|
validateReturningQualifiers(rc.expr, 'INSERT');
|
|
671
808
|
returningProjections.push({
|
|
672
|
-
node: buildExpression({ ...
|
|
809
|
+
node: buildExpression({ ...contextWithCTEs, scope: returningScope }, rc.expr),
|
|
673
810
|
alias: alias
|
|
674
811
|
});
|
|
675
812
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"insert.js","sourceRoot":"","sources":["../../../../src/planner/building/insert.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"insert.js","sourceRoot":"","sources":["../../../../src/planner/building/insert.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"materialized-view.d.ts","sourceRoot":"","sources":["../../../../src/planner/building/materialized-view.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,GAAG,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EACN,0BAA0B,EAC1B,2BAA2B,EAC3B,wBAAwB,EACxB,MAAM,qCAAqC,CAAC;AAO7C;;;;;;GAMG;AACH,wBAAgB,+BAA+B,CAAC,GAAG,EAAE,eAAe,EAAE,IAAI,EAAE,GAAG,CAAC,0BAA0B,GAAG,0BAA0B,
|
|
1
|
+
{"version":3,"file":"materialized-view.d.ts","sourceRoot":"","sources":["../../../../src/planner/building/materialized-view.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,GAAG,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EACN,0BAA0B,EAC1B,2BAA2B,EAC3B,wBAAwB,EACxB,MAAM,qCAAqC,CAAC;AAO7C;;;;;;GAMG;AACH,wBAAgB,+BAA+B,CAAC,GAAG,EAAE,eAAe,EAAE,IAAI,EAAE,GAAG,CAAC,0BAA0B,GAAG,0BAA0B,CA+DtI;AAED,wDAAwD;AACxD,wBAAgB,gCAAgC,CAAC,GAAG,EAAE,eAAe,EAAE,IAAI,EAAE,GAAG,CAAC,2BAA2B,GAAG,2BAA2B,CAIzI;AAED,qDAAqD;AACrD,wBAAgB,6BAA6B,CAAC,GAAG,EAAE,eAAe,EAAE,IAAI,EAAE,GAAG,CAAC,QAAQ,GAAG,wBAAwB,CAIhH"}
|
|
@@ -27,7 +27,9 @@ export function buildCreateMaterializedViewStmt(ctx, stmt) {
|
|
|
27
27
|
}
|
|
28
28
|
// Validate the body: planViewBody rejects DML bodies and yields the body's
|
|
29
29
|
// relational shape. Always run it so a DML body is rejected at plan time.
|
|
30
|
-
|
|
30
|
+
// The body plans under the MV's home-schema path so its unqualified source
|
|
31
|
+
// names resolve next to the MV, not against the creating statement's path.
|
|
32
|
+
const planned = planViewBody(ctx, viewName, stmt.select, schemaName);
|
|
31
33
|
if (stmt.columns && stmt.columns.length > 0) {
|
|
32
34
|
const bodyArity = planned.getAttributes().length;
|
|
33
35
|
if (stmt.columns.length !== bodyArity) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"materialized-view.js","sourceRoot":"","sources":["../../../../src/planner/building/materialized-view.ts"],"names":[],"mappings":"AAEA,OAAO,EACN,0BAA0B,EAC1B,2BAA2B,EAC3B,wBAAwB,GACxB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAE9D;;;;;;GAMG;AACH,MAAM,UAAU,+BAA+B,CAAC,GAAoB,EAAE,IAAoC;IACzG,+EAA+E;IAC/E,wEAAwE;IACxE,MAAM,EAAE,GAAG,GAAG,CAAC,EAAE,CAAC,aAAa,CAAC;IAChC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,oBAAoB,EAAE,CAAC;IAC3G,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IAEhC,MAAM,OAAO,GAAG,sBAAsB,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IACzE,MAAM,UAAU,GAAG,GAAG,CAAC,EAAE,CAAC,aAAa,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACtE,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC;QACzB,MAAM,IAAI,YAAY,CACrB,kCAAkC,OAAO,CAAC,UAAU,GAAG,EACvD,UAAU,CAAC,KAAK,EAChB,SAAS,EACT,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,EACzB,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,CAC3B,CAAC;IACH,CAAC;IACD,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;QACvC,MAAM,IAAI,YAAY,CACrB,WAAW,OAAO,CAAC,UAAU,qGAAqG,EAClI,UAAU,CAAC,WAAW,EACtB,SAAS,EACT,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,EACzB,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,CAC3B,CAAC;IACH,CAAC;IAED,2EAA2E;IAC3E,0EAA0E;IAC1E,MAAM,OAAO,GAAG,YAAY,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"materialized-view.js","sourceRoot":"","sources":["../../../../src/planner/building/materialized-view.ts"],"names":[],"mappings":"AAEA,OAAO,EACN,0BAA0B,EAC1B,2BAA2B,EAC3B,wBAAwB,GACxB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAE9D;;;;;;GAMG;AACH,MAAM,UAAU,+BAA+B,CAAC,GAAoB,EAAE,IAAoC;IACzG,+EAA+E;IAC/E,wEAAwE;IACxE,MAAM,EAAE,GAAG,GAAG,CAAC,EAAE,CAAC,aAAa,CAAC;IAChC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,oBAAoB,EAAE,CAAC;IAC3G,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IAEhC,MAAM,OAAO,GAAG,sBAAsB,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IACzE,MAAM,UAAU,GAAG,GAAG,CAAC,EAAE,CAAC,aAAa,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACtE,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC;QACzB,MAAM,IAAI,YAAY,CACrB,kCAAkC,OAAO,CAAC,UAAU,GAAG,EACvD,UAAU,CAAC,KAAK,EAChB,SAAS,EACT,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,EACzB,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,CAC3B,CAAC;IACH,CAAC;IACD,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;QACvC,MAAM,IAAI,YAAY,CACrB,WAAW,OAAO,CAAC,UAAU,qGAAqG,EAClI,UAAU,CAAC,WAAW,EACtB,SAAS,EACT,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,EACzB,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,CAC3B,CAAC;IACH,CAAC;IAED,2EAA2E;IAC3E,0EAA0E;IAC1E,2EAA2E;IAC3E,2EAA2E;IAC3E,MAAM,OAAO,GAAG,YAAY,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAErE,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7C,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,MAAM,CAAC;QACjD,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YACvC,MAAM,IAAI,YAAY,CACrB,sBAAsB,QAAQ,SAAS,IAAI,CAAC,OAAO,CAAC,MAAM,uCAAuC,SAAS,EAAE,EAC5G,UAAU,CAAC,KAAK,CAChB,CAAC;QACH,CAAC;IACF,CAAC;IAED,8EAA8E;IAC9E,8EAA8E;IAC9E,iFAAiF;IACjF,0EAA0E;IAC1E,oEAAoE;IACpE,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAEzC,OAAO,IAAI,0BAA0B,CACpC,GAAG,CAAC,KAAK,EACT,QAAQ,EACR,UAAU,EACV,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,MAAM,EACX,OAAO,EACP,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,EACvD,OAAO,CAAC,gBAAgB,EACxB,OAAO,CAAC,gBAAgB,CACxB,CAAC;AACH,CAAC;AAED,wDAAwD;AACxD,MAAM,UAAU,gCAAgC,CAAC,GAAoB,EAAE,IAAqC;IAC3G,MAAM,EAAE,GAAG,GAAG,CAAC,EAAE,CAAC,aAAa,CAAC;IAChC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,oBAAoB,EAAE,CAAC;IAC3G,OAAO,IAAI,2BAA2B,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;AAC/E,CAAC;AAED,qDAAqD;AACrD,MAAM,UAAU,6BAA6B,CAAC,GAAoB,EAAE,IAAkB;IACrF,MAAM,EAAE,GAAG,GAAG,CAAC,EAAE,CAAC,aAAa,CAAC;IAChC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,oBAAoB,EAAE,CAAC;IAC3G,OAAO,IAAI,wBAAwB,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC3F,CAAC"}
|