@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
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { isViewSchema } from '../../schema/view.js';
|
|
2
|
+
import { storedBodyContext } from '../stored-body-context.js';
|
|
1
3
|
/**
|
|
2
4
|
* The one scope-aware column-substitution primitive the view-mutation backward
|
|
3
5
|
* path shares (`docs/vu-operators.md` § Selection).
|
|
@@ -156,6 +158,55 @@ export function mapQueryExprUniform(query, substitute) {
|
|
|
156
158
|
// (no substitution threading; the view-mutation descent rejects DML subqueries).
|
|
157
159
|
return cloneDmlStmt(query);
|
|
158
160
|
}
|
|
161
|
+
/**
|
|
162
|
+
* Deep-clone `query`, applying `stamp` to every **nested** sub-select root — the
|
|
163
|
+
* stored-fragment marker walker.
|
|
164
|
+
*
|
|
165
|
+
* A write through a view is *lowered* into a base-table INSERT/UPDATE/DELETE, and
|
|
166
|
+
* definition-derived fragments (the view's own `where`, each view column's base-term
|
|
167
|
+
* expression, its `with inverse` / `with defaults` clauses) are copied into that
|
|
168
|
+
* lowered statement, which is then planned on the CALLER's context. A plain column
|
|
169
|
+
* reference survives that move because the lowering rewrote it to a resolved base
|
|
170
|
+
* column, but a sub-select's `from` names ride through verbatim. `buildViewMutation`
|
|
171
|
+
* therefore stamps each such sub-select with the body's whole naming environment
|
|
172
|
+
* ({@link AST.StoredBodyEnv}, on {@link AST.SelectStmt.storedBodyEnv}) so
|
|
173
|
+
* `buildSelectStmt` re-enters it when it meets one: the view's home schema, the body's
|
|
174
|
+
* declared `with schema` path, and the body's own leading `with` clause — each of which
|
|
175
|
+
* lives on the body's TOP-LEVEL select, which is never itself one of the copied pieces.
|
|
176
|
+
*
|
|
177
|
+
* The **top-level root is deliberately NOT stamped** — it is the body itself, planned
|
|
178
|
+
* under `bodyPlanningContext` → `storedBodyContext`, which already IS that
|
|
179
|
+
* environment. Compound / union legs ARE treated as nested: harmless (the marker is
|
|
180
|
+
* a no-op under that same context) and it is what lets a set-operation spine's
|
|
181
|
+
* per-branch synthetic view-likes inherit the marker.
|
|
182
|
+
*
|
|
183
|
+
* No substitution is threaded — this is a pure clone plus the stamp. Marking a CLONE
|
|
184
|
+
* is required: the schema's stored `selectAst` must never be mutated.
|
|
185
|
+
*
|
|
186
|
+
* NOTE: a `with` clause's CTE bodies are cloned unstamped (via {@link cloneWithClause}),
|
|
187
|
+
* and that stays correct with the carry above: a definition's own sub-selects are built by
|
|
188
|
+
* `buildStoredBodyCTEs` on the home context already, exactly as on the read path, so
|
|
189
|
+
* stamping them would be redundant — and stamping the *carried* clause's members would make
|
|
190
|
+
* the marker self-referential.
|
|
191
|
+
*/
|
|
192
|
+
export function mapNestedSelects(query, stamp) {
|
|
193
|
+
const descend = (q) => {
|
|
194
|
+
const mapped = mapNestedSelects(q, stamp);
|
|
195
|
+
return mapped.type === 'select' ? stamp(mapped) : mapped;
|
|
196
|
+
};
|
|
197
|
+
const onExpr = (e) => transformExpr(e, () => undefined, descend);
|
|
198
|
+
// `onExpr` is passed as `onMetaExpr` too, so the descent reaches a sub-select inside a
|
|
199
|
+
// `with inverse` put expression or a `with defaults (col = (select …))` value — both of
|
|
200
|
+
// which the lowering copies into the base INSERT/UPDATE (`rewriteAuthoredViewInsert` /
|
|
201
|
+
// `collectAppendedDefaults` in `single-source.ts`). The default `cloneExpr` would not:
|
|
202
|
+
// its subquery descent is hard-wired to `cloneQueryExpr`.
|
|
203
|
+
if (query.type === 'select')
|
|
204
|
+
return rebuildSelect(query, onExpr, descend, descend, onExpr);
|
|
205
|
+
if (query.type === 'values')
|
|
206
|
+
return { ...query, values: query.values.map(row => row.map(onExpr)) };
|
|
207
|
+
// A DML … RETURNING body is rejected as a view body at create time — pure clone.
|
|
208
|
+
return cloneDmlStmt(query);
|
|
209
|
+
}
|
|
159
210
|
/**
|
|
160
211
|
* Structurally rebuild a `SelectStmt`, applying `onExpr` to every scalar
|
|
161
212
|
* expression in the select's OWN scope (projections, `where`, `groupBy`,
|
|
@@ -165,17 +216,21 @@ export function mapQueryExprUniform(query, substitute) {
|
|
|
165
216
|
* select, not to this select's FROM). The `with` clause is cloned without
|
|
166
217
|
* substitution — a CTE body cannot correlate to the enclosing query, so it needs
|
|
167
218
|
* no rewrite, only severed sharing (see {@link cloneWithClause}).
|
|
219
|
+
*
|
|
220
|
+
* `onMetaExpr` handles the two **write-through metadata** clauses — a result
|
|
221
|
+
* column's `with inverse` and the select's `with defaults` — which default to a
|
|
222
|
+
* pure {@link cloneExpr} (no substitution: their refs are `new.`-qualified
|
|
223
|
+
* written-row reads, not live scalars of the read query). A caller that needs its
|
|
224
|
+
* *subquery descent* to reach inside them — but still no substitution — passes its
|
|
225
|
+
* own no-substitution clone here; see {@link mapNestedSelects}.
|
|
168
226
|
*/
|
|
169
|
-
function rebuildSelect(sel, onExpr, onNested, onLeg) {
|
|
227
|
+
function rebuildSelect(sel, onExpr, onNested, onLeg, onMetaExpr = cloneExpr) {
|
|
170
228
|
return {
|
|
171
229
|
...sel,
|
|
172
230
|
withClause: cloneWithClause(sel.withClause),
|
|
173
|
-
// A `with inverse` clause is write-through metadata, not a live scalar of the
|
|
174
|
-
// read query — pure-clone it (severs sharing for in-place rewriters) without
|
|
175
|
-
// threading the substitution (its refs are `new.`-qualified written-row reads).
|
|
176
231
|
columns: sel.columns.map(rc => rc.type === 'all'
|
|
177
232
|
? { ...rc }
|
|
178
|
-
: { ...rc, expr: onExpr(rc.expr), inverse: cloneInverseClause(rc.inverse) }),
|
|
233
|
+
: { ...rc, expr: onExpr(rc.expr), inverse: cloneInverseClause(rc.inverse, onMetaExpr) }),
|
|
179
234
|
from: sel.from?.map(fc => rebuildFrom(fc, onExpr, onNested)),
|
|
180
235
|
where: sel.where ? onExpr(sel.where) : undefined,
|
|
181
236
|
groupBy: sel.groupBy ? sel.groupBy.map(onExpr) : undefined,
|
|
@@ -183,11 +238,7 @@ function rebuildSelect(sel, onExpr, onNested, onLeg) {
|
|
|
183
238
|
orderBy: sel.orderBy ? sel.orderBy.map(ob => ({ ...ob, expr: onExpr(ob.expr) })) : undefined,
|
|
184
239
|
limit: sel.limit ? onExpr(sel.limit) : undefined,
|
|
185
240
|
offset: sel.offset ? onExpr(sel.offset) : undefined,
|
|
186
|
-
|
|
187
|
-
// read query — pure-clone it (severs sharing for the in-place rename
|
|
188
|
-
// rewriters that descend `select.defaults`) without threading the substitution,
|
|
189
|
-
// exactly like the sibling `with inverse` clause above.
|
|
190
|
-
defaults: cloneDefaultsClause(sel.defaults),
|
|
241
|
+
defaults: cloneDefaultsClause(sel.defaults, onMetaExpr),
|
|
191
242
|
compound: sel.compound ? { ...sel.compound, select: onLeg(sel.compound.select) } : undefined,
|
|
192
243
|
union: sel.union ? onLeg(sel.union) : undefined,
|
|
193
244
|
};
|
|
@@ -244,14 +295,20 @@ function cloneResultColumns(columns) {
|
|
|
244
295
|
? { ...rc }
|
|
245
296
|
: { ...rc, expr: cloneExpr(rc.expr), inverse: cloneInverseClause(rc.inverse) });
|
|
246
297
|
}
|
|
247
|
-
/**
|
|
248
|
-
|
|
249
|
-
|
|
298
|
+
/**
|
|
299
|
+
* Structural clone of a result column's `with inverse` assignment list. `onExpr`
|
|
300
|
+
* defaults to the plain {@link cloneExpr} (whose subquery descent is hard-wired to
|
|
301
|
+
* {@link cloneQueryExpr}); {@link rebuildSelect} threads its `onMetaExpr` here so a
|
|
302
|
+
* caller whose descent must reach a sub-select nested inside an authored-inverse put
|
|
303
|
+
* expression can supply its own.
|
|
304
|
+
*/
|
|
305
|
+
function cloneInverseClause(inverse, onExpr = cloneExpr) {
|
|
306
|
+
return inverse?.map(a => ({ ...a, expr: onExpr(a.expr) }));
|
|
250
307
|
}
|
|
251
308
|
/** Structural clone of a select's `with defaults` assignment list (mirrors
|
|
252
|
-
* {@link cloneInverseClause}). */
|
|
253
|
-
function cloneDefaultsClause(defaults) {
|
|
254
|
-
return defaults?.map(d => ({ ...d, expr:
|
|
309
|
+
* {@link cloneInverseClause}, `onExpr` included). */
|
|
310
|
+
function cloneDefaultsClause(defaults, onExpr = cloneExpr) {
|
|
311
|
+
return defaults?.map(d => ({ ...d, expr: onExpr(d.expr) }));
|
|
255
312
|
}
|
|
256
313
|
/** Structural clone of mutation-context assignments. */
|
|
257
314
|
function cloneContextValues(values) {
|
|
@@ -356,19 +413,41 @@ function fromSourceColumnNames(ctx, fc) {
|
|
|
356
413
|
return null;
|
|
357
414
|
}
|
|
358
415
|
}
|
|
359
|
-
/**
|
|
360
|
-
*
|
|
361
|
-
*
|
|
416
|
+
/**
|
|
417
|
+
* Lowercased column names of a base table / view / MV named in a FROM, or `null`.
|
|
418
|
+
* A maintained table (materialized view) resolves through the table branch —
|
|
419
|
+
* its registered columns ARE the authoritative output names.
|
|
420
|
+
*
|
|
421
|
+
* The lookup MUST be the path-aware {@link import('../../schema/manager.js').SchemaManager.findSchemaItem},
|
|
422
|
+
* because this analysis and the plan that executes have to agree on WHICH object a FROM
|
|
423
|
+
* name denotes: `buildSelectStmt`'s FROM branch resolves it through `findSchemaItem` /
|
|
424
|
+
* `findTable` against `ctx.schemaPath`. A fixed-schema `getTable` / `getView` would read a
|
|
425
|
+
* different table's column list — or none — for any source reached through the path, and
|
|
426
|
+
* that disagreement is not conservative (docs/view-updateability.md § Schema resolution
|
|
427
|
+
* during write-through). `ctx` must therefore already BE the environment the fragment
|
|
428
|
+
* resolves on — see {@link fromResolutionContext}.
|
|
429
|
+
*
|
|
430
|
+
* `findSchemaItem` walks one path entry at a time, checking that schema's tables AND
|
|
431
|
+
* views together. Tables and views share one namespace per schema (CREATE rejects a
|
|
432
|
+
* cross-kind name collision), so at most one can match per entry and the old
|
|
433
|
+
* table-then-view preference is preserved by construction.
|
|
434
|
+
*
|
|
435
|
+
* NOTE: the `committed.` pseudo-schema (`from committed.t`, the pre-statement snapshot
|
|
436
|
+
* of `t`) is not intercepted here the way `resolveTableSchema` intercepts it at plan
|
|
437
|
+
* time, so such a source resolves to nothing and conservatively taints the scope. That
|
|
438
|
+
* is a real gap between this analysis and the plan, but it is unreachable unless someone
|
|
439
|
+
* writes through a view whose subquery names a `committed.`-qualified source; if that
|
|
440
|
+
* ever becomes reachable, strip the pseudo-schema here the way plan time does.
|
|
441
|
+
*/
|
|
362
442
|
function tableSourceColumnNames(ctx, src) {
|
|
363
443
|
const schemaName = src.table.schema;
|
|
364
|
-
const
|
|
365
|
-
if (
|
|
366
|
-
return new Set(
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
: projectionOutputNames(view.selectAst);
|
|
444
|
+
const item = ctx.schemaManager.findSchemaItem(src.table.name, schemaName, ctx.schemaPath);
|
|
445
|
+
if (item && !isViewSchema(item))
|
|
446
|
+
return new Set(item.columns.map(c => c.name.toLowerCase()));
|
|
447
|
+
if (item) {
|
|
448
|
+
return item.columns && item.columns.length > 0
|
|
449
|
+
? new Set(item.columns.map(c => c.toLowerCase()))
|
|
450
|
+
: projectionOutputNames(item.selectAst);
|
|
372
451
|
}
|
|
373
452
|
// A CTE / context-backed source (a sibling CTE, or an injected eager-capture relation
|
|
374
453
|
// keyed under the CTE name) — never schema-qualified, so only an unqualified name can
|
|
@@ -378,8 +457,13 @@ function tableSourceColumnNames(ctx, src) {
|
|
|
378
457
|
// resolve `t`'s bare columns as local instead of rejecting them as
|
|
379
458
|
// unprovable-correlation (docs/vu-operators.md § Common Table Expressions). A
|
|
380
459
|
// schema object of the same name was already resolved above, so this only fires for a
|
|
381
|
-
// genuine context-backed name. `buildFrom`
|
|
382
|
-
// `cteNodes` lookup
|
|
460
|
+
// genuine context-backed name. `buildFrom` agrees on the QUALIFIER dimension — it also
|
|
461
|
+
// skips its `cteNodes` lookup for a schema-qualified name — so a qualified source is
|
|
462
|
+
// never shadowed here or there. The two do NOT agree on PRECEDENCE: this function tries
|
|
463
|
+
// `findSchemaItem` first and falls back to `cteNodes`, whereas `buildFrom` checks
|
|
464
|
+
// `cteNodes` first, so a bare name matching BOTH a CTE and a real table gets the table's
|
|
465
|
+
// columns here and the CTE's relation at plan time. Tracked separately as
|
|
466
|
+
// `bug-cte-shadow-precedence-scope-transform`.
|
|
383
467
|
if (!schemaName && ctx.cteNodes) {
|
|
384
468
|
const cteNode = ctx.cteNodes.get(src.table.name.toLowerCase());
|
|
385
469
|
if (cteNode)
|
|
@@ -407,6 +491,60 @@ function projectionOutputNames(query) {
|
|
|
407
491
|
}
|
|
408
492
|
return names;
|
|
409
493
|
}
|
|
494
|
+
/**
|
|
495
|
+
* The context a select's OWN FROM names resolve on — the analysis-time twin of the
|
|
496
|
+
* environment entry `buildSelectStmt` performs before it plans a FROM clause.
|
|
497
|
+
*
|
|
498
|
+
* The descent is entered on the CALLER's planning context, which is right for the user's
|
|
499
|
+
* own clauses but wrong for a fragment copied out of the view's definition: that
|
|
500
|
+
* fragment's `from` names must resolve on the VIEW's environment. `buildViewMutation`
|
|
501
|
+
* (`building/view-mutation-builder.ts`) stamps every nested sub-select of the stored body
|
|
502
|
+
* with {@link AST.StoredBodyEnv} before this analysis runs, so the environment is already
|
|
503
|
+
* on the node — this only re-enters it, in the same order and with the same precedence
|
|
504
|
+
* `buildSelectStmt` uses at plan time:
|
|
505
|
+
*
|
|
506
|
+
* 1. {@link storedBodyContext} on the view's home schema (its home schema path);
|
|
507
|
+
* 2. the body's DECLARED `with schema` path, when it has one, overriding 1;
|
|
508
|
+
* 3. the fragment's OWN `with schema` clause (`SelectStmt.schemaPath`), outranking both.
|
|
509
|
+
*
|
|
510
|
+
* Steps 1-2 are exactly `enterStoredBodyEnv` (`building/select-context.ts`) minus its
|
|
511
|
+
* CTE-namespace replacement — this analysis has no plan nodes to build a CTE namespace
|
|
512
|
+
* from — and step 3 is `buildSelectStmt`'s own `stmt.schemaPath` override. **The two
|
|
513
|
+
* halves must change together**: if the plan-time order in `buildSelectStmt` /
|
|
514
|
+
* `enterStoredBodyEnv` ever changes, change it here too, or the analysis and the plan
|
|
515
|
+
* resolve the same name to different objects again.
|
|
516
|
+
*
|
|
517
|
+
* The `ctx.storedBodyOf !== env.homeSchema` at-home guard is `enterStoredBodyEnv`'s,
|
|
518
|
+
* for the same reason: it keeps the marker inert while the body ITSELF is being
|
|
519
|
+
* analysed under a context that already IS the home environment.
|
|
520
|
+
*
|
|
521
|
+
* Re-derived per select — `mapNestedSelects` stamps EVERY nested sub-select of the body,
|
|
522
|
+
* including FROM `subquerySource` members — but derived FROM the enclosing select's
|
|
523
|
+
* environment rather than the descent's entry context, so an enclosing `with schema`
|
|
524
|
+
* clause is inherited the way `buildSelectStmt` passes its context down. The at-home
|
|
525
|
+
* guard makes the inherited stamp a no-op once the swap has happened, exactly as
|
|
526
|
+
* `enterStoredBodyEnv` goes inert inside an already-swapped fragment.
|
|
527
|
+
*
|
|
528
|
+
* NOTE: `storedBodyContext` clears `cteNodes`, so a stamped fragment naming a
|
|
529
|
+
* BODY-LOCAL CTE resolves to nothing and taints its scope. Not a regression (before,
|
|
530
|
+
* such a name missed the fixed-schema lookup and fell through to the caller's
|
|
531
|
+
* `cteNodes`, which holds no body-local definitions either) and nothing currently
|
|
532
|
+
* reaches it. If it ever does, resolve those names off `StoredBodyEnv.withClause` —
|
|
533
|
+
* a CTE's columns are derivable from its declared column list or
|
|
534
|
+
* {@link projectionOutputNames}.
|
|
535
|
+
*/
|
|
536
|
+
function fromResolutionContext(ctx, sel) {
|
|
537
|
+
const env = sel.storedBodyEnv;
|
|
538
|
+
let out = ctx;
|
|
539
|
+
if (env && ctx.storedBodyOf !== env.homeSchema) {
|
|
540
|
+
out = storedBodyContext(ctx, env.homeSchema);
|
|
541
|
+
if (env.schemaPath)
|
|
542
|
+
out = { ...out, schemaPath: env.schemaPath };
|
|
543
|
+
}
|
|
544
|
+
if (sel.schemaPath)
|
|
545
|
+
out = { ...out, schemaPath: sel.schemaPath };
|
|
546
|
+
return out;
|
|
547
|
+
}
|
|
410
548
|
const NO_SHADOW = new Set();
|
|
411
549
|
/**
|
|
412
550
|
* Scope-aware substitution over an expression, entered at the outermost scope
|
|
@@ -445,7 +583,15 @@ export function transformScopedQuery(ctx, scope, query, shadowed, tainted, alias
|
|
|
445
583
|
scope.rejectDmlSubquery();
|
|
446
584
|
}
|
|
447
585
|
const sel = query;
|
|
448
|
-
|
|
586
|
+
// This select's own FROM names resolve on THIS select's environment — the caller's
|
|
587
|
+
// for a user clause, the view's home environment for a fragment copied out of the
|
|
588
|
+
// stored body (see {@link fromResolutionContext}). That environment is threaded into
|
|
589
|
+
// the nested / leg descents too, exactly as `buildSelectStmt` passes its own
|
|
590
|
+
// `contextWithSchemaPath` down: a sub-select nested inside a `select … with schema`
|
|
591
|
+
// inherits the enclosing clause's path. Only the FROM lookup consumes it; everything
|
|
592
|
+
// else below is scope bookkeeping over names already resolved.
|
|
593
|
+
const fromCtx = fromResolutionContext(ctx, sel);
|
|
594
|
+
const local = collectFromColumnNames(fromCtx, sel.from);
|
|
449
595
|
let innerShadow;
|
|
450
596
|
let scopeTainted;
|
|
451
597
|
if (local === null) {
|
|
@@ -470,11 +616,13 @@ export function transformScopedQuery(ctx, scope, query, shadowed, tainted, alias
|
|
|
470
616
|
const substitute = scope.makeSubstitute(innerShadow, scopeTainted, innerAliasShadow);
|
|
471
617
|
// A subquery nested inside this select's clauses / FROM sees this select's FROM,
|
|
472
618
|
// so it inherits `innerShadow` / `scopeTainted` / `innerAliasShadow`.
|
|
473
|
-
const onNested = (q) => transformScopedQuery(
|
|
619
|
+
const onNested = (q) => transformScopedQuery(fromCtx, scope, q, innerShadow, scopeTainted, innerAliasShadow);
|
|
474
620
|
// A compound / union leg is a SIBLING select correlating to the SAME outer scope
|
|
475
621
|
// as this one — it does NOT see this select's FROM, so it keeps the incoming
|
|
476
|
-
// `shadowed` / `tainted` / `aliasShadowed`.
|
|
477
|
-
|
|
622
|
+
// `shadowed` / `tainted` / `aliasShadowed`. It does share this select's naming
|
|
623
|
+
// ENVIRONMENT though (`buildCompoundSelect` builds every leg on the enclosing
|
|
624
|
+
// select's context, and the parser suppresses a leg's own `with schema` clause).
|
|
625
|
+
const onLeg = (q) => transformScopedQuery(fromCtx, scope, q, shadowed, tainted, aliasShadowed);
|
|
478
626
|
const onExpr = (e) => transformExpr(e, substitute, onNested);
|
|
479
627
|
return rebuildSelect(sel, onExpr, onNested, onLeg);
|
|
480
628
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scope-transform.js","sourceRoot":"","sources":["../../../../src/planner/mutation/scope-transform.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"scope-transform.js","sourceRoot":"","sources":["../../../../src/planner/mutation/scope-transform.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"set-op.d.ts","sourceRoot":"","sources":["../../../../src/planner/mutation/set-op.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,GAAG,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAgB9D,OAAO,EAAa,KAAK,MAAM,EAAE,KAAK,eAAe,EAAE,KAAK,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACpG,OAAO,EAAiM,KAAK,qBAAqB,EAAyB,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"set-op.d.ts","sourceRoot":"","sources":["../../../../src/planner/mutation/set-op.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,GAAG,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAgB9D,OAAO,EAAa,KAAK,MAAM,EAAE,KAAK,eAAe,EAAE,KAAK,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACpG,OAAO,EAAiM,KAAK,qBAAqB,EAAyB,MAAM,mBAAmB,CAAC;AAKrR;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6FG;AAEH;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,GAAG,CAAC,SAAS,GAAG,OAAO,CAMvE;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,GAAG,CAAC,SAAS,GAAG,OAAO,CAGvE;AA0ED;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,GAAG,CAAC,SAAS,GAAG,OAAO,CAIxE;AAOD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,eAAe,EAAE,IAAI,EAAE,eAAe,GAAG,OAAO,CAmB5F;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,GAAG,CAAC,SAAS,GAAG,MAAM,EAAE,CAYzE;AAyFD;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,aAAa;IAC7B,wFAAwF;IACxF,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAC/B,mFAAmF;IACnF,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,UAAU,CAAC;CAC9B;AAED;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;IAC3B,QAAQ,CAAC,OAAO,CAAC,EAAE,qBAAqB,CAAC;IACzC;;;;;;;;;OASG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,qBAAqB,EAAE,CAAC;IAClD;;;;;;;;;OASG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,aAAa,EAAE,CAAC;CAC1C;AAED,iHAAiH;AACjH,wBAAgB,eAAe,CAAC,GAAG,EAAE,eAAe,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE,eAAe,GAAG,cAAc,CAOjH;AA+qCD;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CAAC,SAAS,EAAE,GAAG,CAAC,SAAS,GAAG,OAAO,CAI7E;AAED;;;;;;GAMG;AACH,wBAAgB,gCAAgC,CAAC,SAAS,EAAE,GAAG,CAAC,SAAS,GAAG,MAAM,EAAE,CAcnF;AAmCD,yGAAyG;AACzG,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,eAAe,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE,eAAe,GAAG,cAAc,CAOzH"}
|
|
@@ -12,6 +12,7 @@ import { raiseMutationDiagnostic } from './mutation-diagnostic.js';
|
|
|
12
12
|
import { propagate } from './propagate.js';
|
|
13
13
|
import { MS_UPDATE_KEYS_CTE, isJoinBody, isInnerJoinBody, analyzeJoinView, analyzeMultiSourceInsert, decomposeUpdate, decomposeDelete, buildMultiSourceKeyCapture, capturedSideIndices, withKeyCapture } from './multi-source.js';
|
|
14
14
|
import { cloneExpr, transformExpr } from './scope-transform.js';
|
|
15
|
+
import { bodyPlanningContext } from './body-context.js';
|
|
15
16
|
import { unwrapPassthroughSubquery } from '../util/set-op-wrapper.js';
|
|
16
17
|
/**
|
|
17
18
|
* Set-operation membership-column write decomposition — the **first set-op view
|
|
@@ -375,7 +376,9 @@ function analyzeSetOpView(ctx, view) {
|
|
|
375
376
|
const flags = compound.existence.map(e => ({ name: e.name, side: e.branch }));
|
|
376
377
|
// Plan the body ONCE: its root attributes are the view output columns (data columns
|
|
377
378
|
// then the appended membership flags — `set-op-membership-read`'s combinator surface).
|
|
378
|
-
|
|
379
|
+
// A STORED body plans on its own home-schema path (`bodyPlanningContext`); an
|
|
380
|
+
// ephemeral CTE / inline-subquery target keeps the caller's `ctx`.
|
|
381
|
+
const root = buildSelectStmt(bodyPlanningContext(ctx, view), sel);
|
|
379
382
|
if (!isRelationalNode(root)) {
|
|
380
383
|
raiseMutationDiagnostic({
|
|
381
384
|
reason: 'no-base-lineage',
|
|
@@ -424,8 +427,8 @@ function analyzeSetOpView(ctx, view) {
|
|
|
424
427
|
viewColScope.registerSymbol(attr.name.toLowerCase(), (exp, s) => new ColumnReferenceNode(s, exp, attr.type, attr.id, i));
|
|
425
428
|
});
|
|
426
429
|
const branches = [
|
|
427
|
-
buildBranch(view, 'left', leftBranchSelect(sel), dataColCount, flags),
|
|
428
|
-
buildBranch(view, 'right', rightBranchSelect(view, compound.select), dataColCount, flags),
|
|
430
|
+
buildBranch(view, 'left', leftBranchSelect(sel), dataColCount, flags, sel.schemaPath),
|
|
431
|
+
buildBranch(view, 'right', rightBranchSelect(view, compound.select), dataColCount, flags, sel.schemaPath),
|
|
429
432
|
];
|
|
430
433
|
return { op: compound.op, root: relRoot, viewColScope, viewColNames, viewColTypes, dataColCount, dataColNames, surfacedInnerFlagNames, flags, branches };
|
|
431
434
|
}
|
|
@@ -458,8 +461,8 @@ function analyzeSetOpBranches(view, branchView, dataColCount) {
|
|
|
458
461
|
const compound = sel.compound;
|
|
459
462
|
const innerFlags = (compound.existence ?? []).map(e => ({ name: e.name, side: e.branch }));
|
|
460
463
|
return [
|
|
461
|
-
buildBranch(view, 'left', leftBranchSelect(sel), dataColCount, innerFlags),
|
|
462
|
-
buildBranch(view, 'right', rightBranchSelect(view, compound.select), dataColCount, innerFlags),
|
|
464
|
+
buildBranch(view, 'left', leftBranchSelect(sel), dataColCount, innerFlags, sel.schemaPath),
|
|
465
|
+
buildBranch(view, 'right', rightBranchSelect(view, compound.select), dataColCount, innerFlags, sel.schemaPath),
|
|
463
466
|
];
|
|
464
467
|
}
|
|
465
468
|
/** The left operand's SELECT — the compound statement stripped of its outer modifiers. */
|
|
@@ -486,6 +489,20 @@ function unwrapBranchSelect(branchSelect) {
|
|
|
486
489
|
const inner = unwrapPassthroughSubquery(branchSelect);
|
|
487
490
|
return inner && inner.type === 'select' ? inner : branchSelect;
|
|
488
491
|
}
|
|
492
|
+
/**
|
|
493
|
+
* Stamp the compound's declared `with schema` path onto a leg that has none of its own. The
|
|
494
|
+
* parser binds a trailing `with schema` clause to the WHOLE compound but attaches it only to
|
|
495
|
+
* the leading leg's statement node (`isCompoundSubquery` suppression in `parser/parser.ts`), so
|
|
496
|
+
* every other leg's body would otherwise plan on the view's plain home path instead of the
|
|
497
|
+
* declared one (`bug-setop-right-leg-write-drops-declared-schema-path`). Identity when
|
|
498
|
+
* `declaredPath` is `undefined` (no `with schema` clause on the definition) or `sel` already
|
|
499
|
+
* carries its own path (a nested sub-compound's own clause always wins for its own legs).
|
|
500
|
+
*/
|
|
501
|
+
function withDeclaredPath(sel, declaredPath) {
|
|
502
|
+
if (!declaredPath || sel.schemaPath)
|
|
503
|
+
return sel;
|
|
504
|
+
return { ...sel, schemaPath: declaredPath };
|
|
505
|
+
}
|
|
489
506
|
/**
|
|
490
507
|
* The **left-most leaf** SELECT of a (possibly nested, possibly wrapped) operand — the leg whose
|
|
491
508
|
* projection positionally aligns to the set operation's data columns (a `SetOperationNode`
|
|
@@ -515,13 +532,21 @@ function rightBranchSelect(view, right) {
|
|
|
515
532
|
const { orderBy: _o, limit: _l, offset: _f, ...core } = right;
|
|
516
533
|
return core;
|
|
517
534
|
}
|
|
518
|
-
/**
|
|
519
|
-
|
|
535
|
+
/**
|
|
536
|
+
* Build one recursively-writable branch view-like from an operand SELECT. `declaredPath`, when
|
|
537
|
+
* given, is the compound's declared `with schema` path — stamped onto the branch body via
|
|
538
|
+
* {@link withDeclaredPath} when the body has no path of its own, so a non-leading leg (which
|
|
539
|
+
* never carries the clause; the parser attaches it only to the leading leg's statement node)
|
|
540
|
+
* still plans against the definition's declared schemas rather than the view's plain home path.
|
|
541
|
+
*/
|
|
542
|
+
function buildBranch(view, side, branchSelect, dataColCount, flags, declaredPath) {
|
|
520
543
|
// Unwrap a parenthesized LEFT compound operand's `select * from (<compound>)` wrapper to its
|
|
521
544
|
// inner compound, so a wrapped left operand is a first-class subtree operand (its data cols,
|
|
522
545
|
// `isNested`, and recursion all derive from the inner) — `set-op-leftwrap-write`. A no-op on a
|
|
523
|
-
// direct operand.
|
|
524
|
-
|
|
546
|
+
// direct operand. Then stamp the compound's declared `with schema` path onto it when it has
|
|
547
|
+
// none of its own — the leading leg's body keeps its path by parser accident, every other
|
|
548
|
+
// leg's does not (`withDeclaredPath`).
|
|
549
|
+
const effectiveSelect = withDeclaredPath(unwrapBranchSelect(branchSelect), declaredPath);
|
|
525
550
|
// A subtree operand carries its own (non-diff) compound; its fan-out recurses to leaves.
|
|
526
551
|
const isNested = !!effectiveSelect.compound && effectiveSelect.compound.op !== 'diff';
|
|
527
552
|
// A non-nested **multi-source (INNER join) leg** is now writable for UPDATE / DELETE
|
|
@@ -555,6 +580,11 @@ function buildBranch(view, side, branchSelect, dataColCount, flags) {
|
|
|
555
580
|
name: `__setop_${side}`,
|
|
556
581
|
schemaName: view.schemaName,
|
|
557
582
|
selectAst: effectiveSelect,
|
|
583
|
+
// Carry the target's ephemeral flag: a branch of an ephemeral CTE / inline-subquery
|
|
584
|
+
// target is still part of the caller's statement, so its body must keep the caller's
|
|
585
|
+
// schema path. Without this the branch would re-acquire the home path in
|
|
586
|
+
// `bodyPlanningContext` off the (cosmetic) inherited `schemaName`.
|
|
587
|
+
...(view.ephemeral ? { ephemeral: true } : {}),
|
|
558
588
|
};
|
|
559
589
|
const flag = flags.find(f => f.side === side);
|
|
560
590
|
return { side, view: branchView, dataColNames, isNested, isMultiSource, ...(flag ? { flag } : {}) };
|
|
@@ -1309,6 +1339,10 @@ function isWritableLeafLeg(leaf) {
|
|
|
1309
1339
|
* - a **union-like** (`union` / `unionAll`) chain of any depth → N flat legs;
|
|
1310
1340
|
* - a **binary** `intersect` / `except` (a single depth-1 compound) → 2 legs;
|
|
1311
1341
|
* - anything else (a deep / mixed intersect/except chain) → `null` (kept on the existing reject).
|
|
1342
|
+
*
|
|
1343
|
+
* Each leg is stamped with the compound's declared `with schema` path when it has none of its
|
|
1344
|
+
* own (`withDeclaredPath`) — same rationale as {@link buildBranch}: the parser binds a trailing
|
|
1345
|
+
* `with schema` clause to the whole compound but attaches it only to the leading leg.
|
|
1312
1346
|
*/
|
|
1313
1347
|
function flaglessShape(sel) {
|
|
1314
1348
|
if (!sel.compound || sel.compound.op === 'diff')
|
|
@@ -1318,15 +1352,19 @@ function flaglessShape(sel) {
|
|
|
1318
1352
|
const topOp = sel.compound.op;
|
|
1319
1353
|
const legs = [];
|
|
1320
1354
|
let cur = sel;
|
|
1355
|
+
// The compound's declared `with schema` path, carried forward to every leg that doesn't
|
|
1356
|
+
// carry its own (`withDeclaredPath`) — the parser attaches the clause to the leading leg's
|
|
1357
|
+
// statement node only, so legs 2..n would otherwise plan on the view's plain home path.
|
|
1358
|
+
let declared = sel.schemaPath;
|
|
1321
1359
|
for (;;) {
|
|
1322
|
-
const leftLeg = unwrapBranchSelect(leftBranchSelect(cur));
|
|
1360
|
+
const leftLeg = withDeclaredPath(unwrapBranchSelect(leftBranchSelect(cur)), declared);
|
|
1323
1361
|
if (!isWritableLeafLeg(leftLeg))
|
|
1324
1362
|
return null;
|
|
1325
1363
|
legs.push(leftLeg);
|
|
1326
1364
|
const right = cur.compound.select;
|
|
1327
1365
|
if (right.type !== 'select')
|
|
1328
1366
|
return null;
|
|
1329
|
-
const rightEff = unwrapBranchSelect(stripLegModifiers(right));
|
|
1367
|
+
const rightEff = withDeclaredPath(unwrapBranchSelect(stripLegModifiers(right)), declared);
|
|
1330
1368
|
if (!rightEff.compound) {
|
|
1331
1369
|
if (!isWritableLeafLeg(rightEff))
|
|
1332
1370
|
return null;
|
|
@@ -1347,6 +1385,9 @@ function flaglessShape(sel) {
|
|
|
1347
1385
|
return null;
|
|
1348
1386
|
if (rightEff.compound.existence && rightEff.compound.existence.length > 0)
|
|
1349
1387
|
return null;
|
|
1388
|
+
// A parenthesized sub-compound's own declared path (already preserved by
|
|
1389
|
+
// `withDeclaredPath` above) wins for its own legs as the chain continues.
|
|
1390
|
+
declared = rightEff.schemaPath ?? declared;
|
|
1350
1391
|
cur = rightEff;
|
|
1351
1392
|
}
|
|
1352
1393
|
}
|
|
@@ -1409,8 +1450,9 @@ function analyzeFlaglessSetOpView(ctx, view) {
|
|
|
1409
1450
|
raiseMutationDiagnostic({ reason: 'unsupported-set-op', table: view.name, message: `cannot write through view '${view.name}': not a flag-less predicate-honest writable set-operation body` });
|
|
1410
1451
|
}
|
|
1411
1452
|
// Plan the body ONCE: a flag-less body has no flag columns, so the root attributes ARE
|
|
1412
|
-
// the view's data columns (positionally aligned to every leg's projection).
|
|
1413
|
-
|
|
1453
|
+
// the view's data columns (positionally aligned to every leg's projection). A STORED
|
|
1454
|
+
// body plans on its own home-schema path (`bodyPlanningContext`).
|
|
1455
|
+
const root = buildSelectStmt(bodyPlanningContext(ctx, view), sel);
|
|
1414
1456
|
if (!isRelationalNode(root)) {
|
|
1415
1457
|
raiseMutationDiagnostic({ reason: 'no-base-lineage', table: view.name, message: `cannot write through view '${view.name}': the set-operation body did not produce a relation` });
|
|
1416
1458
|
}
|
|
@@ -1465,7 +1507,14 @@ function buildFlaglessLeg(ctx, view, legSel, index, dataColNames) {
|
|
|
1465
1507
|
type: 'column', expr: rc.expr, alias: dataColNames[i],
|
|
1466
1508
|
}));
|
|
1467
1509
|
const effectiveSelect = { ...legSel, columns: aliasedColumns };
|
|
1468
|
-
|
|
1510
|
+
// `ephemeral` rides along for the same reason as the flagged branch views above: a branch
|
|
1511
|
+
// of an ephemeral target keeps the caller's schema path, not the home path. Defensive here
|
|
1512
|
+
// — unlike the membership dispatch, the flag-less dispatch in `view-mutation-builder.ts` is
|
|
1513
|
+
// itself `!view.ephemeral`-gated, so no ephemeral target reaches this builder today.
|
|
1514
|
+
const branchView = {
|
|
1515
|
+
name: `__setop_leg${index}`, schemaName: view.schemaName, selectAst: effectiveSelect,
|
|
1516
|
+
...(view.ephemeral ? { ephemeral: true } : {}),
|
|
1517
|
+
};
|
|
1469
1518
|
// A flag-less join leg is always an INNER join here: `isWritableLeafLeg` (the recognizer
|
|
1470
1519
|
// `flaglessShape` gated on) admits only single-source or INNER-join legs, so an outer / cross
|
|
1471
1520
|
// leg never reaches this builder (the body falls out of the flag-less route).
|
|
@@ -1475,8 +1524,9 @@ function buildFlaglessLeg(ctx, view, legSel, index, dataColNames) {
|
|
|
1475
1524
|
// Plan the leg body for the oracle: its output attributes carry the σ-forwarded constant
|
|
1476
1525
|
// bindings / domains (the pre-existing half — a `where color='red'` over a `color`-projecting
|
|
1477
1526
|
// leg forwards `∅ → color='red'` to the output column). The synthesized discriminator
|
|
1478
|
-
// bindings (Option B) close the projected-literal gap.
|
|
1479
|
-
|
|
1527
|
+
// bindings (Option B) close the projected-literal gap. The leg is part of the same stored
|
|
1528
|
+
// body, so it plans on the same home-schema path (`bodyPlanningContext`).
|
|
1529
|
+
const planned = buildSelectStmt(bodyPlanningContext(ctx, view), effectiveSelect);
|
|
1480
1530
|
if (!isRelationalNode(planned)) {
|
|
1481
1531
|
raiseMutationDiagnostic({ reason: 'no-base-lineage', table: view.name, message: `cannot write through view '${view.name}': a leg did not produce a relation` });
|
|
1482
1532
|
}
|