@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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ddl-generator.js","sourceRoot":"","sources":["../../../src/schema/ddl-generator.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ddl-generator.js","sourceRoot":"","sources":["../../../src/schema/ddl-generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lens-compiler.d.ts","sourceRoot":"","sources":["../../../src/schema/lens-compiler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAA0B,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AAEtE,OAAO,KAAK,KAAK,GAAG,MAAM,kBAAkB,CAAC;AAS7C,OAAO,EAAoC,KAAK,gBAAgB,EAAkD,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"lens-compiler.d.ts","sourceRoot":"","sources":["../../../src/schema/lens-compiler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAA0B,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AAEtE,OAAO,KAAK,KAAK,GAAG,MAAM,kBAAkB,CAAC;AAS7C,OAAO,EAAoC,KAAK,gBAAgB,EAAkD,MAAM,kBAAkB,CAAC;AAW3I;;;;;;;;;;;;;GAaG;AAEH;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAClC,EAAE,EAAE,QAAQ,EACZ,cAAc,EAAE,GAAG,CAAC,iBAAiB,EACrC,iBAAiB,EAAE,MAAM,GACvB,gBAAgB,CA+NlB;AAySD;;;;GAIG;AACH,wBAAgB,0BAA0B,CACzC,cAAc,EAAE,GAAG,CAAC,iBAAiB,EACrC,iBAAiB,EAAE,MAAM,GACvB,IAAI,CA+BN;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAChC,aAAa,EAAE,aAAa,EAC5B,iBAAiB,EAAE,MAAM,GACvB;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAyBxC;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,kBAAkB,CACjC,YAAY,EAAE,WAAW,EACzB,iBAAiB,EAAE,MAAM,EACzB,WAAW,EAAE,MAAM,EACnB,eAAe,EAAE,MAAM,GACrB,GAAG,CAAC,UAAU,CAuChB"}
|
|
@@ -10,6 +10,7 @@ import { proveLens, collectColumnRefNames } from './lens-prover.js';
|
|
|
10
10
|
import { applyAckGovernance, resolveEscalationPolicy } from './lens-ack.js';
|
|
11
11
|
import { createLogger } from '../common/logger.js';
|
|
12
12
|
import { addInd, MAX_INDS_PER_NODE } from '../planner/util/fd-utils.js';
|
|
13
|
+
import { spineCloneAst } from '../util/ast-spine-clone.js';
|
|
13
14
|
const log = createLogger('schema:lens-compiler');
|
|
14
15
|
/**
|
|
15
16
|
* Lens compiler — the `apply schema X` step for a **logical** schema.
|
|
@@ -311,7 +312,11 @@ function requiredBasisColumnsOf(table) {
|
|
|
311
312
|
* its member, mapped to that logical column.
|
|
312
313
|
*/
|
|
313
314
|
function deriveRelationBacking(body, provenance, basis, schemaManager) {
|
|
314
|
-
|
|
315
|
+
// The compiled body is fully qualified (see `qualifyBasisSources`), so a bare
|
|
316
|
+
// name surviving in it is a CTE reference or unresolvable — never a basis
|
|
317
|
+
// table. Carry the shadow set so neither pass claims a CTE as basis backing.
|
|
318
|
+
const cteNames = collectCteNames(body);
|
|
319
|
+
const { sources } = collectOverrideSources(body.from, basis.schemaName, schemaManager, cteNames);
|
|
315
320
|
const byRef = new Map();
|
|
316
321
|
for (const s of sources)
|
|
317
322
|
byRef.set(s.refName.toLowerCase(), s);
|
|
@@ -351,7 +356,7 @@ function deriveRelationBacking(body, provenance, basis, schemaManager) {
|
|
|
351
356
|
add(src, colExpr.name, provenance[i].logicalColumn);
|
|
352
357
|
}
|
|
353
358
|
// 2. Shared join keys — thread each equated key column to a projected logical column.
|
|
354
|
-
for (const cls of collectJoinKeyEquivalences(body.from, basis.schemaName, schemaManager)) {
|
|
359
|
+
for (const cls of collectJoinKeyEquivalences(body.from, basis.schemaName, schemaManager, cteNames)) {
|
|
355
360
|
let logical;
|
|
356
361
|
for (const m of cls) {
|
|
357
362
|
const proj = projected.find(p => sourceRelKey(p.src) === sourceRelKey(m.src)
|
|
@@ -374,7 +379,7 @@ function deriveRelationBacking(body, provenance, basis, schemaManager) {
|
|
|
374
379
|
* subtree sources; each `on a.x = b.y` conjunct contributes that pair. Overlapping
|
|
375
380
|
* classes are harmless — threading dedups per relation.
|
|
376
381
|
*/
|
|
377
|
-
function collectJoinKeyEquivalences(from, basisSchemaName, schemaManager) {
|
|
382
|
+
function collectJoinKeyEquivalences(from, basisSchemaName, schemaManager, cteNames) {
|
|
378
383
|
const classes = [];
|
|
379
384
|
if (!from)
|
|
380
385
|
return classes;
|
|
@@ -382,8 +387,7 @@ function collectJoinKeyEquivalences(from, basisSchemaName, schemaManager) {
|
|
|
382
387
|
const out = [];
|
|
383
388
|
const walk = (n) => {
|
|
384
389
|
if (n.type === 'table') {
|
|
385
|
-
const
|
|
386
|
-
const tbl = schemaManager.getSchema(schemaName)?.getTable(n.table.name);
|
|
390
|
+
const tbl = resolveBasisTableSource(n, basisSchemaName, schemaManager, cteNames);
|
|
387
391
|
if (tbl)
|
|
388
392
|
out.push({ table: tbl, refName: n.alias ?? tbl.name });
|
|
389
393
|
}
|
|
@@ -1025,14 +1029,19 @@ function indexOverrides(lensDecl, declaredSchema, logicalSchemaName) {
|
|
|
1025
1029
|
function compileOverrideBody(logicalTable, logicalSchemaName, basisSchemaName, schemaManager, override, advertisement) {
|
|
1026
1030
|
const select = override.select;
|
|
1027
1031
|
const logicalName = logicalTable.name;
|
|
1032
|
+
// Names a CTE declares anywhere in the body shadow same-named basis relations:
|
|
1033
|
+
// they are neither collectable as basis sources (their columns are the CTE's,
|
|
1034
|
+
// not the basis table's, so `*` expansion and gap-fill must not use them) nor
|
|
1035
|
+
// qualifiable with the basis schema.
|
|
1036
|
+
const cteNames = collectCteNames(select);
|
|
1028
1037
|
// Every FROM source the override names must live in the declared basis — an
|
|
1029
1038
|
// override referencing a *different* existing schema (e.g. `Z.Foo` while the
|
|
1030
1039
|
// lens is `over Y`) would silently re-anchor the body to Z (docs/lens.md § D4).
|
|
1031
|
-
validateOverrideBasisSources(select, basisSchemaName, logicalSchemaName, logicalName);
|
|
1040
|
+
validateOverrideBasisSources(select, basisSchemaName, schemaManager, cteNames, logicalSchemaName, logicalName);
|
|
1032
1041
|
// Resolve FROM-source basis tables once — used for both `*` expansion and
|
|
1033
|
-
// gap-fill. Opaque sources (subquery / function /
|
|
1034
|
-
// tracked so a gap that
|
|
1035
|
-
const { sources, hasOpaqueSource } = collectOverrideSources(select.from, basisSchemaName, schemaManager);
|
|
1042
|
+
// gap-fill. Opaque sources (subquery / function / CTE / basis view — anything
|
|
1043
|
+
// exposing no column list) are tracked so a gap that needs one errors precisely.
|
|
1044
|
+
const { sources, hasOpaqueSource } = collectOverrideSources(select.from, basisSchemaName, schemaManager, cteNames);
|
|
1036
1045
|
const qualify = sources.length > 1;
|
|
1037
1046
|
// Advertisement-driven gap-fill needs to map an advertised member relationId to
|
|
1038
1047
|
// its reference name (alias / table name) in the override's FROM. A member the
|
|
@@ -1132,19 +1141,146 @@ function compileOverrideBody(logicalTable, logicalSchemaName, basisSchemaName, s
|
|
|
1132
1141
|
}
|
|
1133
1142
|
// Preserve every non-projection clause of the override (where/group/having/
|
|
1134
1143
|
// order/limit/distinct/with — the filter shape, etc.); replace only the
|
|
1135
|
-
// projection with the composed logical-column list
|
|
1136
|
-
|
|
1144
|
+
// projection with the composed logical-column list, then pin each bare basis
|
|
1145
|
+
// source to the basis schema so the stored body resolves the same way for
|
|
1146
|
+
// every consumer (read / prover / explain), not just for this compiler.
|
|
1147
|
+
const body = qualifyBasisSources({ ...select, columns: composed }, basisSchemaName, schemaManager, cteNames);
|
|
1137
1148
|
return { body, provenance, effectiveColumns };
|
|
1138
1149
|
}
|
|
1150
|
+
/**
|
|
1151
|
+
* Reflectively visits every plain-object node reachable from `root`, in no
|
|
1152
|
+
* particular order. Descent is *not* gated on a `type` discriminant: some
|
|
1153
|
+
* containers that hold nested SELECTs are plain wrappers without one — notably
|
|
1154
|
+
* `compound` (`{ op, select }`) and `orderBy` clauses — so a type-gated walk
|
|
1155
|
+
* would skip everything nested under them. Arrays are transparent (their
|
|
1156
|
+
* elements are visited, the array itself is not).
|
|
1157
|
+
*
|
|
1158
|
+
* Anything with a non-plain prototype (`Uint8Array`, a Promise
|
|
1159
|
+
* {@link AST.LiteralExpr} value, any class instance) is a leaf and is neither
|
|
1160
|
+
* visited nor descended into — the same boundary {@link spineCloneAst} draws.
|
|
1161
|
+
*/
|
|
1162
|
+
function forEachAstNode(root, visit) {
|
|
1163
|
+
const stack = [root];
|
|
1164
|
+
while (stack.length > 0) {
|
|
1165
|
+
const node = stack.pop();
|
|
1166
|
+
if (!node || typeof node !== 'object')
|
|
1167
|
+
continue;
|
|
1168
|
+
if (!Array.isArray(node)) {
|
|
1169
|
+
const proto = Object.getPrototypeOf(node);
|
|
1170
|
+
if (proto !== Object.prototype && proto !== null)
|
|
1171
|
+
continue;
|
|
1172
|
+
visit(node);
|
|
1173
|
+
}
|
|
1174
|
+
for (const value of Object.values(node)) {
|
|
1175
|
+
if (value && typeof value === 'object')
|
|
1176
|
+
stack.push(value);
|
|
1177
|
+
}
|
|
1178
|
+
}
|
|
1179
|
+
}
|
|
1180
|
+
/**
|
|
1181
|
+
* Every CTE name declared anywhere in an override body, lowercased — the set of
|
|
1182
|
+
* bare FROM names that must NOT be read as basis tables (a CTE shadows a
|
|
1183
|
+
* same-named basis relation, per SQL scoping).
|
|
1184
|
+
*
|
|
1185
|
+
* NOTE: this is one flat set over the whole body, not per-scope frames as
|
|
1186
|
+
* `schema/rename-rewriter.ts` maintains. A name declared as a CTE in *any*
|
|
1187
|
+
* nested scope therefore disables basis-qualification and basis-source
|
|
1188
|
+
* collection for that name in *all* scopes, including scopes where it really is
|
|
1189
|
+
* the basis table. That direction is safe — such a reference keeps today's
|
|
1190
|
+
* behavior (unqualified, hence unresolved at read time, hence a loud error)
|
|
1191
|
+
* rather than risking a silently wrong bind. If a real body ever needs the same
|
|
1192
|
+
* name to mean a CTE in one scope and the basis table in another, replace this
|
|
1193
|
+
* with the per-scope frames `rename-rewriter.ts` already models.
|
|
1194
|
+
*/
|
|
1195
|
+
function collectCteNames(select) {
|
|
1196
|
+
const names = new Set();
|
|
1197
|
+
forEachAstNode(select, node => {
|
|
1198
|
+
if (node.type === 'commonTableExpr')
|
|
1199
|
+
names.add(node.name.toLowerCase());
|
|
1200
|
+
});
|
|
1201
|
+
return names;
|
|
1202
|
+
}
|
|
1203
|
+
/**
|
|
1204
|
+
* Rewrites every bare FROM `table` reference that resolves in the declared basis
|
|
1205
|
+
* so it carries the basis schema qualifier explicitly.
|
|
1206
|
+
*
|
|
1207
|
+
* The compiler resolves an unqualified override source against the basis
|
|
1208
|
+
* (docs/lens.md § Body-shape restrictions), but the *stored* body used to keep
|
|
1209
|
+
* the authored FROM verbatim — so nothing recorded which schema the bare name
|
|
1210
|
+
* meant, and each downstream consumer re-resolved it its own way: the read path
|
|
1211
|
+
* plans the body under the **logical** schema's home path, while the prover and
|
|
1212
|
+
* `explain` round-trip it through SQL text with no path context at all. None of
|
|
1213
|
+
* those knows the basis, so an unqualified source either failed to resolve or
|
|
1214
|
+
* (with a same-named `main` table in the way) silently bound the wrong relation.
|
|
1215
|
+
* Qualifying here makes the stored body self-describing, so every consumer
|
|
1216
|
+
* agrees by construction — and matches `compileDefaultBody` /
|
|
1217
|
+
* `compileDecompositionBody`, which already emit fully-qualified references.
|
|
1218
|
+
*
|
|
1219
|
+
* A bare name is left exactly as authored when a CTE shadows it (see
|
|
1220
|
+
* {@link collectCteNames}); one the basis does not have never reaches this pass,
|
|
1221
|
+
* having already been rejected by {@link validateOverrideBasisSources}.
|
|
1222
|
+
*
|
|
1223
|
+
* The input AST is never mutated: `select` here is the authored
|
|
1224
|
+
* `override.select`, which is also stored as the slot's override *and* lives in
|
|
1225
|
+
* the declared-lens AST held by the catalog, so an in-place edit would rewrite
|
|
1226
|
+
* the user's own declaration (and perturb DDL round-trip / declarative
|
|
1227
|
+
* equivalence). A rewrite therefore works on a spine clone; when there is
|
|
1228
|
+
* nothing to rewrite the input is returned untouched.
|
|
1229
|
+
*/
|
|
1230
|
+
function qualifyBasisSources(select, basisSchemaName, schemaManager, cteNames) {
|
|
1231
|
+
const basis = schemaManager.getSchema(basisSchemaName);
|
|
1232
|
+
if (!basis)
|
|
1233
|
+
return select;
|
|
1234
|
+
const needsQualifier = (node) => {
|
|
1235
|
+
if (node.type !== 'table')
|
|
1236
|
+
return false;
|
|
1237
|
+
const src = node;
|
|
1238
|
+
if (src.table.schema !== undefined)
|
|
1239
|
+
return false;
|
|
1240
|
+
if (cteNames.has(src.table.name.toLowerCase()))
|
|
1241
|
+
return false;
|
|
1242
|
+
return basisHasRelation(basis, src.table.name);
|
|
1243
|
+
};
|
|
1244
|
+
let found = false;
|
|
1245
|
+
forEachAstNode(select, node => { if (needsQualifier(node))
|
|
1246
|
+
found = true; });
|
|
1247
|
+
// NOTE: this early return leaves the compiled body sharing FROM/where subtrees
|
|
1248
|
+
// with the authored declaration AST (as it always did), while the rewrite path
|
|
1249
|
+
// below hands back a fully detached clone — so body↔declaration aliasing is
|
|
1250
|
+
// asymmetric. Harmless while nothing mutates a compiled body in place; if an
|
|
1251
|
+
// in-place AST rewriter (`schema/rename-rewriter.ts`) is ever pointed at one,
|
|
1252
|
+
// clone unconditionally here instead of chasing the difference.
|
|
1253
|
+
if (!found)
|
|
1254
|
+
return select;
|
|
1255
|
+
const clone = spineCloneAst(select);
|
|
1256
|
+
forEachAstNode(clone, node => {
|
|
1257
|
+
if (needsQualifier(node))
|
|
1258
|
+
node.table.schema = basisSchemaName;
|
|
1259
|
+
});
|
|
1260
|
+
return clone;
|
|
1261
|
+
}
|
|
1262
|
+
/**
|
|
1263
|
+
* Resolves one FROM `table` node to its basis table, or undefined when it is not
|
|
1264
|
+
* an introspectable basis relation. A bare name a CTE declares is *not* a basis
|
|
1265
|
+
* table — resolving it as one would attribute the CTE's rows (and columns) to a
|
|
1266
|
+
* basis relation the body never reads. Narrower than {@link basisHasRelation}: a
|
|
1267
|
+
* basis *view* is a legal source but exposes no column list, so it resolves to
|
|
1268
|
+
* undefined here and the caller treats it as opaque.
|
|
1269
|
+
*/
|
|
1270
|
+
function resolveBasisTableSource(node, basisSchemaName, schemaManager, cteNames) {
|
|
1271
|
+
if (node.table.schema === undefined && cteNames.has(node.table.name.toLowerCase()))
|
|
1272
|
+
return undefined;
|
|
1273
|
+
const schemaName = node.table.schema ?? basisSchemaName;
|
|
1274
|
+
return schemaManager.getSchema(schemaName)?.getTable(node.table.name);
|
|
1275
|
+
}
|
|
1139
1276
|
/** Walks an override's FROM tree, collecting introspectable basis-table sources. */
|
|
1140
|
-
function collectOverrideSources(from, basisSchemaName, schemaManager) {
|
|
1277
|
+
function collectOverrideSources(from, basisSchemaName, schemaManager, cteNames) {
|
|
1141
1278
|
const sources = [];
|
|
1142
1279
|
let hasOpaqueSource = false;
|
|
1143
1280
|
const walk = (node) => {
|
|
1144
1281
|
switch (node.type) {
|
|
1145
1282
|
case 'table': {
|
|
1146
|
-
const
|
|
1147
|
-
const tbl = schemaManager.getSchema(schemaName)?.getTable(node.table.name);
|
|
1283
|
+
const tbl = resolveBasisTableSource(node, basisSchemaName, schemaManager, cteNames);
|
|
1148
1284
|
if (!tbl) {
|
|
1149
1285
|
hasOpaqueSource = true;
|
|
1150
1286
|
return;
|
|
@@ -1170,49 +1306,65 @@ function collectOverrideSources(from, basisSchemaName, schemaManager) {
|
|
|
1170
1306
|
}
|
|
1171
1307
|
/**
|
|
1172
1308
|
* Validates that every `table` source reachable from an override's body resolves
|
|
1173
|
-
* to the declared basis schema
|
|
1174
|
-
* schema would otherwise bind there silently (re-anchoring the lens off its
|
|
1175
|
-
* `over Y` basis); reject it at deploy time. Unqualified tables default to the
|
|
1176
|
-
* basis and are fine; tables qualified with the basis name are fine.
|
|
1309
|
+
* to the declared basis schema — in both directions an override could escape it:
|
|
1177
1310
|
*
|
|
1178
|
-
*
|
|
1179
|
-
*
|
|
1180
|
-
*
|
|
1181
|
-
*
|
|
1182
|
-
*
|
|
1183
|
-
*
|
|
1184
|
-
*
|
|
1185
|
-
*
|
|
1311
|
+
* 1. **Qualified with another schema** (`Z.Foo` while the lens is `over Y`) would
|
|
1312
|
+
* bind there silently, re-anchoring the lens off its basis.
|
|
1313
|
+
* 2. **Bare and absent from the basis.** A bare name is the basis or a CTE and
|
|
1314
|
+
* nothing else (docs/lens.md § Body-shape restrictions). One that is neither
|
|
1315
|
+
* has no basis qualifier to pin ({@link qualifyBasisSources} leaves it alone),
|
|
1316
|
+
* so it falls through to the *default* schema path at read time — binding a
|
|
1317
|
+
* same-named `main` relation, which is the same silent re-anchor as (1) minus
|
|
1318
|
+
* the qualifier that would have made it visible. Rejecting it here reports the
|
|
1319
|
+
* escape at deploy, naming the relation, instead of at read (or not at all).
|
|
1186
1320
|
*
|
|
1187
|
-
*
|
|
1188
|
-
*
|
|
1189
|
-
*
|
|
1190
|
-
*
|
|
1191
|
-
*
|
|
1192
|
-
*
|
|
1193
|
-
*
|
|
1321
|
+
* A basis *view* counts as a basis relation for this check and for qualification,
|
|
1322
|
+
* though not as an introspectable source: `*` expansion and gap-fill still treat
|
|
1323
|
+
* it as opaque (see {@link resolveBasisTableSource}).
|
|
1324
|
+
*
|
|
1325
|
+
* The walk ({@link forEachAstNode}) is reflective over the entire override
|
|
1326
|
+
* `select` AST, so it descends into subquery-source FROM trees, function-source
|
|
1327
|
+
* argument subqueries, `with` CTE bodies, compound (`union`/`intersect`/…) legs,
|
|
1328
|
+
* and scalar/`where`/`in`/`exists` subqueries — an escaping source in any of
|
|
1329
|
+
* those nested positions is flagged too, not only top-level `table`/`join`
|
|
1330
|
+
* sources. Function (TVF) sources are not `table` nodes and resolve through the
|
|
1331
|
+
* function registry rather than the schema path, so they are out of scope here.
|
|
1332
|
+
*
|
|
1333
|
+
* Runs on the **authored** select, before {@link qualifyBasisSources} rewrites
|
|
1334
|
+
* bare basis names — the qualifier that pass adds is the basis one, so ordering
|
|
1335
|
+
* does not change the verdict either way.
|
|
1194
1336
|
*/
|
|
1195
|
-
function validateOverrideBasisSources(select, basisSchemaName, logicalSchemaName, logicalName) {
|
|
1337
|
+
function validateOverrideBasisSources(select, basisSchemaName, schemaManager, cteNames, logicalSchemaName, logicalName) {
|
|
1196
1338
|
const lowerBasis = basisSchemaName.toLowerCase();
|
|
1197
|
-
const
|
|
1198
|
-
|
|
1199
|
-
|
|
1200
|
-
|
|
1201
|
-
|
|
1202
|
-
if (node.type
|
|
1203
|
-
|
|
1204
|
-
|
|
1205
|
-
|
|
1206
|
-
|
|
1339
|
+
const basis = schemaManager.getSchema(basisSchemaName);
|
|
1340
|
+
const fail = (message) => {
|
|
1341
|
+
throw new QuereusError(`lens: override for logical table '${logicalSchemaName}.${logicalName}' ${message} (the lens is declared 'over ${basisSchemaName}'); an override's FROM may only reference the declared basis`, StatusCode.ERROR);
|
|
1342
|
+
};
|
|
1343
|
+
forEachAstNode(select, node => {
|
|
1344
|
+
if (node.type !== 'table')
|
|
1345
|
+
return;
|
|
1346
|
+
const { table } = node;
|
|
1347
|
+
if (table.schema !== undefined) {
|
|
1348
|
+
if (table.schema.toLowerCase() !== lowerBasis) {
|
|
1349
|
+
fail(`references basis relation '${table.schema}.${table.name}' outside the declared basis '${basisSchemaName}'`);
|
|
1207
1350
|
}
|
|
1351
|
+
return;
|
|
1208
1352
|
}
|
|
1209
|
-
|
|
1210
|
-
|
|
1211
|
-
|
|
1212
|
-
|
|
1213
|
-
stack.push(value);
|
|
1353
|
+
if (cteNames.has(table.name.toLowerCase()))
|
|
1354
|
+
return;
|
|
1355
|
+
if (basis && !basisHasRelation(basis, table.name)) {
|
|
1356
|
+
fail(`references relation '${table.name}', which the declared basis '${basisSchemaName}' does not have — an unqualified FROM source names a basis table or view, or a CTE of the same body`);
|
|
1214
1357
|
}
|
|
1215
|
-
}
|
|
1358
|
+
});
|
|
1359
|
+
}
|
|
1360
|
+
/**
|
|
1361
|
+
* Whether the basis schema holds a relation of this name. Broader than
|
|
1362
|
+
* {@link resolveBasisTableSource}: a *view* is a legitimate basis source to
|
|
1363
|
+
* reference (and to qualify) even though it exposes no {@link TableSchema} for
|
|
1364
|
+
* `*` expansion / gap-fill to read columns from.
|
|
1365
|
+
*/
|
|
1366
|
+
function basisHasRelation(basis, name) {
|
|
1367
|
+
return basis.getTable(name) !== undefined || basis.getView(name) !== undefined;
|
|
1216
1368
|
}
|
|
1217
1369
|
/** Output name a result column contributes: its alias, or the bare column name. */
|
|
1218
1370
|
function deriveColumnOutputName(col) {
|
|
@@ -1583,7 +1735,7 @@ function validateOverrideAdvertisementConflict(ad, override, basisSchemaName, sc
|
|
|
1583
1735
|
if (!storage)
|
|
1584
1736
|
return;
|
|
1585
1737
|
const memberRelations = new Set(storage.members.map(m => `${(m.relation.schema || basisSchemaName).toLowerCase()}.${m.relation.table.toLowerCase()}`));
|
|
1586
|
-
const { sources } = collectOverrideSources(override.select.from, basisSchemaName, schemaManager);
|
|
1738
|
+
const { sources } = collectOverrideSources(override.select.from, basisSchemaName, schemaManager, collectCteNames(override.select));
|
|
1587
1739
|
for (const src of sources) {
|
|
1588
1740
|
const key = `${src.table.schemaName.toLowerCase()}.${src.table.name.toLowerCase()}`;
|
|
1589
1741
|
if (!memberRelations.has(key)) {
|