@quereus/quereus 4.5.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 +5 -4
- 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 +161 -1
- package/dist/src/core/database-events.d.ts.map +1 -1
- package/dist/src/core/database-events.js +307 -5
- 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 +33 -4
- 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-transaction.d.ts +9 -0
- package/dist/src/core/database-transaction.d.ts.map +1 -1
- package/dist/src/core/database-transaction.js +9 -0
- package/dist/src/core/database-transaction.js.map +1 -1
- package/dist/src/core/database.d.ts +16 -2
- package/dist/src/core/database.d.ts.map +1 -1
- package/dist/src/core/database.js +56 -15
- 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/aggregate.js +11 -11
- package/dist/src/func/builtins/aggregate.js.map +1 -1
- package/dist/src/func/builtins/builtin-window-functions.d.ts.map +1 -1
- package/dist/src/func/builtins/builtin-window-functions.js +15 -85
- package/dist/src/func/builtins/builtin-window-functions.js.map +1 -1
- package/dist/src/func/builtins/conversion.d.ts.map +1 -1
- package/dist/src/func/builtins/conversion.js +10 -9
- package/dist/src/func/builtins/conversion.js.map +1 -1
- package/dist/src/func/builtins/datetime.d.ts.map +1 -1
- package/dist/src/func/builtins/datetime.js +28 -10
- package/dist/src/func/builtins/datetime.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/json.d.ts.map +1 -1
- package/dist/src/func/builtins/json.js +23 -17
- package/dist/src/func/builtins/json.js.map +1 -1
- package/dist/src/func/builtins/mutation.js +2 -2
- package/dist/src/func/builtins/mutation.js.map +1 -1
- package/dist/src/func/builtins/return-types.d.ts +327 -0
- package/dist/src/func/builtins/return-types.d.ts.map +1 -0
- package/dist/src/func/builtins/return-types.js +43 -0
- package/dist/src/func/builtins/return-types.js.map +1 -0
- package/dist/src/func/builtins/scalar.d.ts.map +1 -1
- package/dist/src/func/builtins/scalar.js +150 -79
- 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 +43 -8
- package/dist/src/func/builtins/schema.js.map +1 -1
- package/dist/src/func/builtins/string.d.ts.map +1 -1
- package/dist/src/func/builtins/string.js +4 -2
- package/dist/src/func/builtins/string.js.map +1 -1
- package/dist/src/func/builtins/timespan.d.ts +3 -0
- package/dist/src/func/builtins/timespan.d.ts.map +1 -1
- package/dist/src/func/builtins/timespan.js +15 -11
- package/dist/src/func/builtins/timespan.js.map +1 -1
- package/dist/src/func/registration.d.ts +35 -1
- package/dist/src/func/registration.d.ts.map +1 -1
- package/dist/src/func/registration.js +235 -41
- package/dist/src/func/registration.js.map +1 -1
- package/dist/src/index.d.ts +14 -7
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +15 -6
- 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.d.ts +46 -0
- package/dist/src/parser/parser.d.ts.map +1 -1
- package/dist/src/parser/parser.js +161 -45
- 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/check-extraction.d.ts.map +1 -1
- package/dist/src/planner/analysis/check-extraction.js +37 -4
- package/dist/src/planner/analysis/check-extraction.js.map +1 -1
- package/dist/src/planner/analysis/comparison-collation.d.ts +20 -22
- package/dist/src/planner/analysis/comparison-collation.d.ts.map +1 -1
- package/dist/src/planner/analysis/comparison-collation.js +29 -26
- package/dist/src/planner/analysis/comparison-collation.js.map +1 -1
- package/dist/src/planner/analysis/constraint-extractor.d.ts +0 -7
- package/dist/src/planner/analysis/constraint-extractor.d.ts.map +1 -1
- package/dist/src/planner/analysis/constraint-extractor.js +59 -59
- package/dist/src/planner/analysis/constraint-extractor.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 +117 -43
- package/dist/src/planner/building/alter-table.js.map +1 -1
- package/dist/src/planner/building/coercion.d.ts +21 -45
- package/dist/src/planner/building/coercion.d.ts.map +1 -1
- package/dist/src/planner/building/coercion.js +42 -91
- package/dist/src/planner/building/coercion.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/expression.d.ts +17 -0
- package/dist/src/planner/building/expression.d.ts.map +1 -1
- package/dist/src/planner/building/expression.js +28 -17
- package/dist/src/planner/building/expression.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 +60 -42
- 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 +188 -3
- package/dist/src/planner/building/select-aggregates.d.ts.map +1 -1
- package/dist/src/planner/building/select-aggregates.js +449 -65
- 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 +98 -0
- package/dist/src/planner/building/select-context.d.ts.map +1 -1
- package/dist/src/planner/building/select-context.js +120 -37
- 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 +37 -1
- package/dist/src/planner/building/select.d.ts.map +1 -1
- package/dist/src/planner/building/select.js +240 -109
- 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/cost/conjunct-cost.d.ts +40 -0
- package/dist/src/planner/cost/conjunct-cost.d.ts.map +1 -1
- package/dist/src/planner/cost/conjunct-cost.js +45 -0
- package/dist/src/planner/cost/conjunct-cost.js.map +1 -1
- package/dist/src/planner/cost/index.d.ts +10 -0
- package/dist/src/planner/cost/index.d.ts.map +1 -1
- package/dist/src/planner/cost/index.js +15 -0
- package/dist/src/planner/cost/index.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 +15 -0
- package/dist/src/planner/nodes/aggregate-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/aggregate-node.js +32 -17
- package/dist/src/planner/nodes/aggregate-node.js.map +1 -1
- package/dist/src/planner/nodes/alias-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/alias-node.js +2 -1
- package/dist/src/planner/nodes/alias-node.js.map +1 -1
- package/dist/src/planner/nodes/alter-table-node.d.ts +51 -10
- 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/asof-scan-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/asof-scan-node.js +4 -1
- package/dist/src/planner/nodes/asof-scan-node.js.map +1 -1
- package/dist/src/planner/nodes/asserted-keys-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/asserted-keys-node.js +2 -1
- package/dist/src/planner/nodes/asserted-keys-node.js.map +1 -1
- package/dist/src/planner/nodes/bloom-join-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/bloom-join-node.js +8 -3
- package/dist/src/planner/nodes/bloom-join-node.js.map +1 -1
- package/dist/src/planner/nodes/cache-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/cache-node.js +2 -1
- package/dist/src/planner/nodes/cache-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/distinct-node.d.ts +6 -0
- package/dist/src/planner/nodes/distinct-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/distinct-node.js +10 -2
- package/dist/src/planner/nodes/distinct-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/eager-prefetch-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/eager-prefetch-node.js +2 -1
- package/dist/src/planner/nodes/eager-prefetch-node.js.map +1 -1
- package/dist/src/planner/nodes/fanout-lookup-join-node.d.ts +5 -0
- package/dist/src/planner/nodes/fanout-lookup-join-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/fanout-lookup-join-node.js +13 -6
- package/dist/src/planner/nodes/fanout-lookup-join-node.js.map +1 -1
- package/dist/src/planner/nodes/filter.d.ts.map +1 -1
- package/dist/src/planner/nodes/filter.js +18 -5
- package/dist/src/planner/nodes/filter.js.map +1 -1
- package/dist/src/planner/nodes/hash-aggregate.d.ts +1 -0
- package/dist/src/planner/nodes/hash-aggregate.d.ts.map +1 -1
- package/dist/src/planner/nodes/hash-aggregate.js +21 -16
- 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/join-node.d.ts +20 -1
- package/dist/src/planner/nodes/join-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/join-node.js +30 -9
- package/dist/src/planner/nodes/join-node.js.map +1 -1
- package/dist/src/planner/nodes/join-utils.d.ts +21 -0
- package/dist/src/planner/nodes/join-utils.d.ts.map +1 -1
- package/dist/src/planner/nodes/join-utils.js +26 -0
- package/dist/src/planner/nodes/join-utils.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 +90 -17
- 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 +2 -1
- package/dist/src/planner/nodes/lens-auxiliary-access-node.js.map +1 -1
- package/dist/src/planner/nodes/limit-offset.d.ts +6 -0
- package/dist/src/planner/nodes/limit-offset.d.ts.map +1 -1
- package/dist/src/planner/nodes/limit-offset.js +10 -2
- package/dist/src/planner/nodes/limit-offset.js.map +1 -1
- package/dist/src/planner/nodes/merge-join-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/merge-join-node.js +8 -3
- package/dist/src/planner/nodes/merge-join-node.js.map +1 -1
- package/dist/src/planner/nodes/ordinal-slice-node.d.ts +5 -0
- package/dist/src/planner/nodes/ordinal-slice-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/ordinal-slice-node.js +9 -2
- package/dist/src/planner/nodes/ordinal-slice-node.js.map +1 -1
- package/dist/src/planner/nodes/plan-node.d.ts +29 -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 +18 -36
- package/dist/src/planner/nodes/project-node.js.map +1 -1
- package/dist/src/planner/nodes/reference.d.ts.map +1 -1
- package/dist/src/planner/nodes/reference.js +3 -2
- package/dist/src/planner/nodes/reference.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 +10 -2
- 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/scalar.d.ts.map +1 -1
- package/dist/src/planner/nodes/scalar.js +5 -18
- package/dist/src/planner/nodes/scalar.js.map +1 -1
- package/dist/src/planner/nodes/sort.d.ts.map +1 -1
- package/dist/src/planner/nodes/sort.js +3 -1
- package/dist/src/planner/nodes/sort.js.map +1 -1
- package/dist/src/planner/nodes/stream-aggregate.d.ts +1 -0
- package/dist/src/planner/nodes/stream-aggregate.d.ts.map +1 -1
- package/dist/src/planner/nodes/stream-aggregate.js +22 -20
- 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 +69 -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/nodes/window-function.d.ts.map +1 -1
- package/dist/src/planner/nodes/window-function.js +8 -0
- package/dist/src/planner/nodes/window-function.js.map +1 -1
- package/dist/src/planner/nodes/window-node.d.ts +1 -1
- package/dist/src/planner/nodes/window-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/window-node.js +3 -1
- package/dist/src/planner/nodes/window-node.js.map +1 -1
- package/dist/src/planner/optimizer.d.ts +27 -1
- package/dist/src/planner/optimizer.d.ts.map +1 -1
- package/dist/src/planner/optimizer.js +130 -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 +296 -135
- 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 +30 -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 +70 -5
- 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 +15 -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/cache/rule-nested-loop-right-cache.d.ts.map +1 -1
- package/dist/src/planner/rules/cache/rule-nested-loop-right-cache.js +6 -4
- package/dist/src/planner/rules/cache/rule-nested-loop-right-cache.js.map +1 -1
- package/dist/src/planner/rules/join/equi-pair-extractor.d.ts +5 -31
- package/dist/src/planner/rules/join/equi-pair-extractor.d.ts.map +1 -1
- package/dist/src/planner/rules/join/equi-pair-extractor.js +4 -44
- package/dist/src/planner/rules/join/equi-pair-extractor.js.map +1 -1
- package/dist/src/planner/rules/join/index-nested-loop.d.ts +49 -0
- package/dist/src/planner/rules/join/index-nested-loop.d.ts.map +1 -0
- package/dist/src/planner/rules/join/index-nested-loop.js +291 -0
- package/dist/src/planner/rules/join/index-nested-loop.js.map +1 -0
- package/dist/src/planner/rules/join/rule-fanout-batched-outer.js +8 -8
- 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 +10 -4
- 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 +115 -29
- 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 +18 -4
- 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-conjunct-ordering.d.ts +21 -8
- package/dist/src/planner/rules/predicate/rule-filter-conjunct-ordering.d.ts.map +1 -1
- package/dist/src/planner/rules/predicate/rule-filter-conjunct-ordering.js +70 -14
- package/dist/src/planner/rules/predicate/rule-filter-conjunct-ordering.js.map +1 -1
- package/dist/src/planner/rules/predicate/rule-filter-selectivity.d.ts +56 -17
- package/dist/src/planner/rules/predicate/rule-filter-selectivity.d.ts.map +1 -1
- package/dist/src/planner/rules/predicate/rule-filter-selectivity.js +103 -154
- 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 +76 -0
- package/dist/src/planner/rules/predicate/rule-join-predicate-pushdown.d.ts.map +1 -0
- package/dist/src/planner/rules/predicate/rule-join-predicate-pushdown.js +208 -0
- package/dist/src/planner/rules/predicate/rule-join-predicate-pushdown.js.map +1 -0
- package/dist/src/planner/rules/predicate/rule-predicate-inference-equivalence.d.ts +14 -11
- package/dist/src/planner/rules/predicate/rule-predicate-inference-equivalence.d.ts.map +1 -1
- package/dist/src/planner/rules/predicate/rule-predicate-inference-equivalence.js +21 -85
- package/dist/src/planner/rules/predicate/rule-predicate-inference-equivalence.js.map +1 -1
- package/dist/src/planner/rules/predicate/rule-predicate-pushdown.d.ts +7 -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 +18 -22
- package/dist/src/planner/rules/predicate/rule-predicate-pushdown.js.map +1 -1
- package/dist/src/planner/rules/shared/access-leaf.d.ts +52 -0
- package/dist/src/planner/rules/shared/access-leaf.d.ts.map +1 -0
- package/dist/src/planner/rules/shared/access-leaf.js +95 -0
- package/dist/src/planner/rules/shared/access-leaf.js.map +1 -0
- package/dist/src/planner/rules/subquery/rule-anti-join-fk-empty.d.ts.map +1 -1
- package/dist/src/planner/rules/subquery/rule-anti-join-fk-empty.js +17 -7
- 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.d.ts +3 -1
- package/dist/src/planner/rules/subquery/rule-semi-join-fk-trivial.d.ts.map +1 -1
- package/dist/src/planner/rules/subquery/rule-semi-join-fk-trivial.js +26 -9
- package/dist/src/planner/rules/subquery/rule-semi-join-fk-trivial.js.map +1 -1
- package/dist/src/planner/rules/subquery/rule-subquery-decorrelation.d.ts.map +1 -1
- package/dist/src/planner/rules/subquery/rule-subquery-decorrelation.js +69 -11
- package/dist/src/planner/rules/subquery/rule-subquery-decorrelation.js.map +1 -1
- package/dist/src/planner/rules/window/rule-monotonic-window.d.ts +17 -7
- package/dist/src/planner/rules/window/rule-monotonic-window.d.ts.map +1 -1
- package/dist/src/planner/rules/window/rule-monotonic-window.js +124 -87
- package/dist/src/planner/rules/window/rule-monotonic-window.js.map +1 -1
- package/dist/src/planner/scopes/aliased.d.ts.map +1 -1
- package/dist/src/planner/scopes/aliased.js +6 -0
- package/dist/src/planner/scopes/aliased.js.map +1 -1
- package/dist/src/planner/stats/catalog-stats.d.ts +44 -13
- package/dist/src/planner/stats/catalog-stats.d.ts.map +1 -1
- package/dist/src/planner/stats/catalog-stats.js +137 -61
- package/dist/src/planner/stats/catalog-stats.js.map +1 -1
- package/dist/src/planner/stats/conjunct-selectivity.d.ts +48 -0
- package/dist/src/planner/stats/conjunct-selectivity.d.ts.map +1 -0
- package/dist/src/planner/stats/conjunct-selectivity.js +168 -0
- package/dist/src/planner/stats/conjunct-selectivity.js.map +1 -0
- package/dist/src/planner/stats/index.d.ts +22 -3
- package/dist/src/planner/stats/index.d.ts.map +1 -1
- package/dist/src/planner/stats/index.js.map +1 -1
- package/dist/src/planner/stats/table-cardinality.d.ts +28 -0
- package/dist/src/planner/stats/table-cardinality.d.ts.map +1 -0
- package/dist/src/planner/stats/table-cardinality.js +29 -0
- package/dist/src/planner/stats/table-cardinality.js.map +1 -0
- 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/column-origins.d.ts +29 -8
- package/dist/src/planner/util/column-origins.d.ts.map +1 -1
- package/dist/src/planner/util/column-origins.js +74 -14
- package/dist/src/planner/util/column-origins.js.map +1 -1
- package/dist/src/planner/util/fd-utils.d.ts +32 -8
- package/dist/src/planner/util/fd-utils.d.ts.map +1 -1
- package/dist/src/planner/util/fd-utils.js +46 -9
- package/dist/src/planner/util/fd-utils.js.map +1 -1
- package/dist/src/planner/util/ind-utils.d.ts +66 -19
- package/dist/src/planner/util/ind-utils.d.ts.map +1 -1
- package/dist/src/planner/util/ind-utils.js +91 -21
- package/dist/src/planner/util/ind-utils.js.map +1 -1
- package/dist/src/planner/util/key-utils.d.ts +36 -3
- package/dist/src/planner/util/key-utils.d.ts.map +1 -1
- package/dist/src/planner/util/key-utils.js +57 -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 +39 -0
- package/dist/src/planner/util/row-estimates.d.ts.map +1 -0
- package/dist/src/planner/util/row-estimates.js +68 -0
- package/dist/src/planner/util/row-estimates.js.map +1 -0
- package/dist/src/planner/util/row-population.d.ts +42 -0
- package/dist/src/planner/util/row-population.d.ts.map +1 -0
- package/dist/src/planner/util/row-population.js +71 -0
- package/dist/src/planner/util/row-population.js.map +1 -0
- 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 +60 -6
- package/dist/src/runtime/emit/add-constraint.js.map +1 -1
- package/dist/src/runtime/emit/aggregate.d.ts.map +1 -1
- package/dist/src/runtime/emit/aggregate.js +4 -4
- package/dist/src/runtime/emit/aggregate.js.map +1 -1
- package/dist/src/runtime/emit/alter-schema-event.d.ts +97 -0
- package/dist/src/runtime/emit/alter-schema-event.d.ts.map +1 -0
- package/dist/src/runtime/emit/alter-schema-event.js +87 -0
- package/dist/src/runtime/emit/alter-schema-event.js.map +1 -0
- package/dist/src/runtime/emit/alter-table.d.ts.map +1 -1
- package/dist/src/runtime/emit/alter-table.js +582 -236
- 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 +50 -7
- 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/cast.d.ts.map +1 -1
- package/dist/src/runtime/emit/cast.js +4 -19
- package/dist/src/runtime/emit/cast.js.map +1 -1
- 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 +233 -28
- 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-index.d.ts.map +1 -1
- package/dist/src/runtime/emit/drop-index.js +4 -3
- package/dist/src/runtime/emit/drop-index.js.map +1 -1
- 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/hash-aggregate.d.ts.map +1 -1
- package/dist/src/runtime/emit/hash-aggregate.js +2 -2
- package/dist/src/runtime/emit/hash-aggregate.js.map +1 -1
- package/dist/src/runtime/emit/join.d.ts.map +1 -1
- package/dist/src/runtime/emit/join.js +8 -67
- package/dist/src/runtime/emit/join.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 +11 -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/operand-comparator.d.ts +30 -0
- package/dist/src/runtime/emit/operand-comparator.d.ts.map +1 -1
- package/dist/src/runtime/emit/operand-comparator.js +34 -0
- package/dist/src/runtime/emit/operand-comparator.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/schema-declarative.d.ts.map +1 -1
- package/dist/src/runtime/emit/schema-declarative.js +30 -0
- package/dist/src/runtime/emit/schema-declarative.js.map +1 -1
- package/dist/src/runtime/emit/subquery.d.ts.map +1 -1
- package/dist/src/runtime/emit/subquery.js +153 -52
- package/dist/src/runtime/emit/subquery.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/emit/window.js +36 -23
- package/dist/src/runtime/emit/window.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.d.ts +19 -16
- package/dist/src/schema/catalog-persistability.d.ts.map +1 -1
- package/dist/src/schema/catalog-persistability.js +92 -20
- package/dist/src/schema/catalog-persistability.js.map +1 -1
- package/dist/src/schema/catalog.d.ts +73 -2
- package/dist/src/schema/catalog.d.ts.map +1 -1
- package/dist/src/schema/catalog.js +220 -39
- 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/column.d.ts +26 -3
- package/dist/src/schema/column.d.ts.map +1 -1
- package/dist/src/schema/column.js.map +1 -1
- 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.d.ts.map +1 -1
- package/dist/src/schema/ddl-generator.js +27 -6
- package/dist/src/schema/ddl-generator.js.map +1 -1
- package/dist/src/schema/function.d.ts +32 -1
- package/dist/src/schema/function.d.ts.map +1 -1
- package/dist/src/schema/function.js +10 -2
- package/dist/src/schema/function.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 +115 -20
- package/dist/src/schema/manager.d.ts.map +1 -1
- package/dist/src/schema/manager.js +202 -70
- 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 +225 -38
- package/dist/src/schema/schema-differ.js.map +1 -1
- package/dist/src/schema/table.d.ts +149 -1
- package/dist/src/schema/table.d.ts.map +1 -1
- package/dist/src/schema/table.js +248 -1
- package/dist/src/schema/table.js.map +1 -1
- package/dist/src/schema/unique-enforcement.d.ts +5 -3
- package/dist/src/schema/unique-enforcement.d.ts.map +1 -1
- package/dist/src/schema/unique-enforcement.js +5 -3
- package/dist/src/schema/unique-enforcement.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 +54 -0
- package/dist/src/types/builtin-types.d.ts.map +1 -1
- package/dist/src/types/builtin-types.js +123 -34
- package/dist/src/types/builtin-types.js.map +1 -1
- package/dist/src/types/cast-semantics.d.ts +42 -0
- package/dist/src/types/cast-semantics.d.ts.map +1 -1
- package/dist/src/types/cast-semantics.js +64 -0
- package/dist/src/types/cast-semantics.js.map +1 -1
- package/dist/src/types/comparison-coercion.d.ts +101 -0
- package/dist/src/types/comparison-coercion.d.ts.map +1 -0
- package/dist/src/types/comparison-coercion.js +162 -0
- package/dist/src/types/comparison-coercion.js.map +1 -0
- package/dist/src/types/index.d.ts +2 -2
- package/dist/src/types/index.d.ts.map +1 -1
- package/dist/src/types/index.js +2 -2
- package/dist/src/types/index.js.map +1 -1
- package/dist/src/types/logical-type.d.ts +7 -0
- package/dist/src/types/logical-type.d.ts.map +1 -1
- package/dist/src/types/logical-type.js.map +1 -1
- package/dist/src/types/validation.d.ts +56 -0
- package/dist/src/types/validation.d.ts.map +1 -1
- package/dist/src/types/validation.js +68 -0
- package/dist/src/types/validation.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/util/coercion.d.ts +8 -0
- package/dist/src/util/coercion.d.ts.map +1 -1
- package/dist/src/util/coercion.js +8 -0
- package/dist/src/util/coercion.js.map +1 -1
- package/dist/src/util/comparison.d.ts +16 -3
- package/dist/src/util/comparison.d.ts.map +1 -1
- package/dist/src/util/comparison.js +21 -5
- package/dist/src/util/comparison.js.map +1 -1
- package/dist/src/util/key-serializer.d.ts +46 -0
- package/dist/src/util/key-serializer.d.ts.map +1 -1
- package/dist/src/util/key-serializer.js +47 -0
- package/dist/src/util/key-serializer.js.map +1 -1
- package/dist/src/util/value-set.d.ts +21 -0
- package/dist/src/util/value-set.d.ts.map +1 -0
- package/dist/src/util/value-set.js +22 -0
- package/dist/src/util/value-set.js.map +1 -0
- package/dist/src/vtab/capabilities.d.ts +1 -1
- package/dist/src/vtab/events.d.ts +8 -1
- 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/alter-column.d.ts +147 -0
- package/dist/src/vtab/memory/layer/alter-column.d.ts.map +1 -0
- package/dist/src/vtab/memory/layer/alter-column.js +214 -0
- package/dist/src/vtab/memory/layer/alter-column.js.map +1 -0
- package/dist/src/vtab/memory/layer/base.d.ts.map +1 -1
- package/dist/src/vtab/memory/layer/base.js +4 -3
- package/dist/src/vtab/memory/layer/base.js.map +1 -1
- package/dist/src/vtab/memory/layer/interface.d.ts +2 -2
- package/dist/src/vtab/memory/layer/interface.d.ts.map +1 -1
- package/dist/src/vtab/memory/layer/manager.d.ts +176 -25
- package/dist/src/vtab/memory/layer/manager.d.ts.map +1 -1
- package/dist/src/vtab/memory/layer/manager.js +569 -558
- package/dist/src/vtab/memory/layer/manager.js.map +1 -1
- package/dist/src/vtab/memory/layer/scan-layer.d.ts.map +1 -1
- package/dist/src/vtab/memory/layer/scan-layer.js +32 -5
- package/dist/src/vtab/memory/layer/scan-layer.js.map +1 -1
- package/dist/src/vtab/memory/layer/transaction.d.ts +101 -15
- package/dist/src/vtab/memory/layer/transaction.d.ts.map +1 -1
- package/dist/src/vtab/memory/layer/transaction.js +133 -45
- package/dist/src/vtab/memory/layer/transaction.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 +64 -3
- package/dist/src/vtab/memory/module.js.map +1 -1
- package/dist/src/vtab/memory/table.d.ts.map +1 -1
- package/dist/src/vtab/memory/table.js +11 -6
- package/dist/src/vtab/memory/table.js.map +1 -1
- package/dist/src/vtab/module.d.ts +77 -23
- package/dist/src/vtab/module.d.ts.map +1 -1
- package/dist/src/vtab/table.d.ts +9 -2
- package/dist/src/vtab/table.d.ts.map +1 -1
- package/dist/src/vtab/table.js +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,11 +1,7 @@
|
|
|
1
1
|
import { asRun } from '../types.js';
|
|
2
2
|
import { emitCallFromPlan, emitPlanNode } from '../emitters.js';
|
|
3
3
|
import { createLogger } from '../../common/logger.js';
|
|
4
|
-
import { BINARY_COLLATION } from '../../util/comparison.js';
|
|
5
4
|
import { buildRowDescriptor } from '../../util/row-descriptor.js';
|
|
6
|
-
import { effectiveCollationOfTypes } from '../../planner/analysis/comparison-collation.js';
|
|
7
|
-
import { makeOperandComparator } from './operand-comparator.js';
|
|
8
|
-
import { ANY_TYPE } from '../../types/builtin-types.js';
|
|
9
5
|
import { createRowSlot } from '../context-helpers.js';
|
|
10
6
|
import { joinOutputRow } from './join-output.js';
|
|
11
7
|
import { resolveMaybe } from '../async-util.js';
|
|
@@ -28,25 +24,9 @@ export function emitLoopJoin(plan, ctx) {
|
|
|
28
24
|
const leftRowDescriptor = buildRowDescriptor(leftAttributes);
|
|
29
25
|
const rightAttributes = plan.right.getAttributes();
|
|
30
26
|
const rightRowDescriptor = buildRowDescriptor(rightAttributes);
|
|
31
|
-
//
|
|
32
|
-
//
|
|
33
|
-
//
|
|
34
|
-
// spelled-out `l.k = r.k` regardless of side order — and its comparator through
|
|
35
|
-
// `makeOperandComparator`, the one copy of the routing rule `emitComparisonOp`
|
|
36
|
-
// uses, so the two also agree on declared-type semantics (see
|
|
37
|
-
// {@link evaluateUsingCondition}).
|
|
38
|
-
const usingResolved = plan.usingColumns?.map(columnName => {
|
|
39
|
-
const lowerName = columnName.toLowerCase();
|
|
40
|
-
const leftIndex = leftAttributes.findIndex(attr => attr.name.toLowerCase() === lowerName);
|
|
41
|
-
const rightIndex = rightAttributes.findIndex(attr => attr.name.toLowerCase() === lowerName);
|
|
42
|
-
const leftType = leftAttributes[leftIndex]?.type;
|
|
43
|
-
const rightType = rightAttributes[rightIndex]?.type;
|
|
44
|
-
const collationFunc = leftType && rightType
|
|
45
|
-
? ctx.resolveCollation(effectiveCollationOfTypes(leftType, rightType))
|
|
46
|
-
: BINARY_COLLATION;
|
|
47
|
-
const compare = makeOperandComparator(leftType?.logicalType ?? ANY_TYPE, rightType?.logicalType ?? ANY_TYPE, collationFunc);
|
|
48
|
-
return { leftIndex, rightIndex, compare };
|
|
49
|
-
});
|
|
27
|
+
// USING needs no handling here: `buildUsingCondition` desugars `using (k)` into
|
|
28
|
+
// the equivalent `l.k = r.k` ON condition at build time, so a USING join reaches
|
|
29
|
+
// this emitter with `plan.condition` set like any other predicated join.
|
|
50
30
|
// Existence (`exists … as`) flags appended after both sides. The flag is the
|
|
51
31
|
// ACTUAL match bit the outer-join null-extension already computes (NOT a
|
|
52
32
|
// re-evaluation of the ON predicate, which would be unsound on a null-extended
|
|
@@ -84,18 +64,15 @@ export function emitLoopJoin(plan, ctx) {
|
|
|
84
64
|
const rightSlot = createRowSlot(rctx, rightRowDescriptor);
|
|
85
65
|
// The condition-met decision, shared by both loop shapes. Evaluated against
|
|
86
66
|
// the runtime context after BOTH slots are set, so it is agnostic to which
|
|
87
|
-
// side drives the iteration: callback (ON
|
|
88
|
-
// a bare join with no predicate).
|
|
67
|
+
// side drives the iteration: callback (ON, including a desugared USING) or
|
|
68
|
+
// unconditional (cross, or a bare join with no predicate).
|
|
89
69
|
// Returns `MaybePromise<boolean>` (not always a promise): the ON sub-program
|
|
90
70
|
// almost always completes synchronously, so callers branch on the result and
|
|
91
71
|
// only `await` on the rare async path. See resolveMaybe in runtime/async-util.ts.
|
|
92
|
-
const conditionMet = (
|
|
72
|
+
const conditionMet = () => {
|
|
93
73
|
if (conditionCallback) {
|
|
94
74
|
return resolveMaybe(conditionCallback(rctx), (v) => !!v);
|
|
95
75
|
}
|
|
96
|
-
if (usingResolved) {
|
|
97
|
-
return evaluateUsingCondition(leftRow, rightRow, usingResolved);
|
|
98
|
-
}
|
|
99
76
|
return true;
|
|
100
77
|
};
|
|
101
78
|
// Left-driven loop: inner / left / cross / semi / anti. Stream the left side
|
|
@@ -106,7 +83,7 @@ export function emitLoopJoin(plan, ctx) {
|
|
|
106
83
|
let matched = false;
|
|
107
84
|
for await (const rightRow of rightCallback(rctx)) {
|
|
108
85
|
rightSlot.set(rightRow);
|
|
109
|
-
const leftMet = conditionMet(
|
|
86
|
+
const leftMet = conditionMet();
|
|
110
87
|
if (leftMet instanceof Promise ? await leftMet : leftMet) {
|
|
111
88
|
matched = true;
|
|
112
89
|
if (isSemiOrAnti) {
|
|
@@ -151,7 +128,7 @@ export function emitLoopJoin(plan, ctx) {
|
|
|
151
128
|
for (let i = 0; i < leftRows.length; i++) {
|
|
152
129
|
const leftRow = leftRows[i];
|
|
153
130
|
leftSlot.set(leftRow);
|
|
154
|
-
const rightMet = conditionMet(
|
|
131
|
+
const rightMet = conditionMet();
|
|
155
132
|
if (rightMet instanceof Promise ? await rightMet : rightMet) {
|
|
156
133
|
rightMatched = true;
|
|
157
134
|
if (leftMatched)
|
|
@@ -206,40 +183,4 @@ export function emitLoopJoin(plan, ctx) {
|
|
|
206
183
|
note: `${plan.joinType} join (nested loop)`
|
|
207
184
|
};
|
|
208
185
|
}
|
|
209
|
-
/**
|
|
210
|
-
* Evaluates a USING condition from pre-resolved column indices and comparators.
|
|
211
|
-
* All index lookups, collation resolution and comparator routing happen at emit time.
|
|
212
|
-
*
|
|
213
|
-
* `using (k)` means exactly `l.k = r.k`, so each column compares through
|
|
214
|
-
* {@link makeOperandComparator} — the one copy of the routing rule
|
|
215
|
-
* `emitComparisonOp` uses. A USING column pairing a semantic-ordering type with a
|
|
216
|
-
* plain one (TIMESPAN `d` against TEXT `d`) therefore takes the same runtime
|
|
217
|
-
* duration check `=` takes and reports 'PT1H' ≡ 'PT60M'; a same-type pair takes the
|
|
218
|
-
* type's own compare. A NULL on either side fails the column outright, mirroring
|
|
219
|
-
* `emitComparisonOp`'s `v1 === null || v2 === null ⇒ null` guard: `l.k = r.k` is
|
|
220
|
-
* UNKNOWN, not true, when both are NULL. The comparators themselves rank NULL/NULL as
|
|
221
|
-
* equal (they are ordering functions, where NULL is a value), so the guard belongs
|
|
222
|
-
* here — without it a nested-loop USING join emits rows the hash-keyed path and the
|
|
223
|
-
* spelled-out ON form both drop.
|
|
224
|
-
*
|
|
225
|
-
* NOTE: USING skips the plan-time cross-type coercion `=` gets, so a JSON column
|
|
226
|
-
* paired with a TEXT one still compares as OBJECT-vs-TEXT storage classes and never
|
|
227
|
-
* matches. Tracked as `bug-using-join-skips-cross-type-coercion`.
|
|
228
|
-
*/
|
|
229
|
-
function evaluateUsingCondition(leftRow, rightRow, resolved) {
|
|
230
|
-
for (const { leftIndex, rightIndex, compare } of resolved) {
|
|
231
|
-
if (leftIndex === -1 || rightIndex === -1) {
|
|
232
|
-
return false;
|
|
233
|
-
}
|
|
234
|
-
const leftValue = leftRow[leftIndex];
|
|
235
|
-
const rightValue = rightRow[rightIndex];
|
|
236
|
-
if (leftValue === null || rightValue === null) {
|
|
237
|
-
return false;
|
|
238
|
-
}
|
|
239
|
-
if (compare(leftValue, rightValue) !== 0) {
|
|
240
|
-
return false;
|
|
241
|
-
}
|
|
242
|
-
}
|
|
243
|
-
return true;
|
|
244
|
-
}
|
|
245
186
|
//# sourceMappingURL=join.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"join.js","sourceRoot":"","sources":["../../../../src/runtime/emit/join.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAGhE,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"join.js","sourceRoot":"","sources":["../../../../src/runtime/emit/join.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"key-set-semi-join.d.ts","sourceRoot":"","sources":["../../../../src/runtime/emit/key-set-semi-join.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,+CAA+C,CAAC;AACxG,OAAO,KAAK,EAAE,WAAW,EAAkB,MAAM,aAAa,CAAC;AAI/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAO,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAK3D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAc5D;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAC7B,IAAI,EAAE,UAAU,EAChB,QAAQ,EAAE,cAAc,EACxB,IAAI,EAAE,SAAS,QAAQ,EAAE,GACvB,UAAU,
|
|
1
|
+
{"version":3,"file":"key-set-semi-join.d.ts","sourceRoot":"","sources":["../../../../src/runtime/emit/key-set-semi-join.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,+CAA+C,CAAC;AACxG,OAAO,KAAK,EAAE,WAAW,EAAkB,MAAM,aAAa,CAAC;AAI/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAO,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAK3D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAc5D;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAC7B,IAAI,EAAE,UAAU,EAChB,QAAQ,EAAE,cAAc,EACxB,IAAI,EAAE,SAAS,QAAQ,EAAE,GACvB,UAAU,CA4BZ;AAED;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,kBAAkB,EAAE,GAAG,EAAE,eAAe,GAAG,WAAW,CA6G9F"}
|
|
@@ -39,9 +39,11 @@ export function stampMultiSeek(base, pushdown, keys) {
|
|
|
39
39
|
aConstraint: constraints.map(c => c.constraint),
|
|
40
40
|
aConstraintUsage: constraints.map(c => ({ argvIndex: c.argvIndex, omit: true })),
|
|
41
41
|
estimatedRows: BigInt(keys.length),
|
|
42
|
-
//
|
|
43
|
-
//
|
|
44
|
-
//
|
|
42
|
+
// The multi-seek is not an ordering plan, so report false — matching the
|
|
43
|
+
// literal-IN arm's shape. This is a plan-shape field no module runtime
|
|
44
|
+
// reads (direction rides `idxStr` / `accessPath`), so clearing it does
|
|
45
|
+
// not disturb the walk order the node may be claiming above: the seek
|
|
46
|
+
// emits in the scanned structure's key order either way.
|
|
45
47
|
orderByConsumed: false,
|
|
46
48
|
},
|
|
47
49
|
};
|
|
@@ -72,6 +74,12 @@ export function emitKeySetSemiJoin(plan, ctx) {
|
|
|
72
74
|
// Seek keys are sorted under the INDEX's leading-key-column collation so the
|
|
73
75
|
// stamped multi-seek arrives in index-key order — required by the isolation
|
|
74
76
|
// overlay's ascending-merge assumption and what makes emission deterministic.
|
|
77
|
+
// NOTE: both memory-table branches (scan-layer.ts) and the persistent store
|
|
78
|
+
// (store-table-scan.ts) now also sort a multiSeek's keys into index order
|
|
79
|
+
// themselves (fix/bug-isolation-multiseek-merge-order), so this sort is
|
|
80
|
+
// redundant against those backends today. It is NOT dead: it is the only sort
|
|
81
|
+
// for a backend that does not, and dropping it would silently reintroduce an
|
|
82
|
+
// ordering dependency on backend internals. Keep it.
|
|
75
83
|
const seekCollation = ctx.resolveCollation(normalizeCollationName(plan.pushdown.accessPath.index.keyColumns[0].collation ?? 'BINARY'));
|
|
76
84
|
const seekSign = plan.pushdown.seekDescending ? -1 : 1;
|
|
77
85
|
const stateByCtx = new WeakMap();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"key-set-semi-join.js","sourceRoot":"","sources":["../../../../src/runtime/emit/key-set-semi-join.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAGxC,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAErE,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AACxF,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtD,MAAM,GAAG,GAAG,YAAY,CAAC,gCAAgC,CAAC,CAAC;AAS3D;;;;;;;;;;GAUG;AACH,MAAM,UAAU,cAAc,CAC7B,IAAgB,EAChB,QAAwB,EACxB,IAAyB;IAEzB,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QACxC,UAAU,EAAE,EAAE,OAAO,EAAE,QAAQ,CAAC,eAAe,EAAE,EAAE,EAAE,iBAAiB,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;QACzF,SAAS,EAAE,CAAC,GAAG,CAAC;KAChB,CAAC,CAAC,CAAC;IACJ,MAAM,MAAM,GAAG,YAAY,CAAC,cAAc,CAAC,QAAQ,CAAC,SAAS,EAAE,WAAW,EACzE,IAAI,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/C,OAAO;QACN,GAAG,IAAI;QACP,MAAM;QACN,WAAW;QACX,IAAI,EAAE,IAAI;QACV,UAAU,EAAE,QAAQ,CAAC,UAAU;QAC/B,eAAe,EAAE;YAChB,GAAG,IAAI,CAAC,eAAe;YACvB,MAAM;YACN,WAAW,EAAE,WAAW,CAAC,MAAM;YAC/B,WAAW,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC;YAC/C,gBAAgB,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YAChF,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;YAClC,
|
|
1
|
+
{"version":3,"file":"key-set-semi-join.js","sourceRoot":"","sources":["../../../../src/runtime/emit/key-set-semi-join.ts"],"names":[],"mappings":"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"}
|
|
@@ -82,7 +82,7 @@ export interface BackingShape {
|
|
|
82
82
|
* until Phase 2). Re-planning here is cheap relative to materialization and keeps
|
|
83
83
|
* the create/refresh emitters free of optimizer plumbing.
|
|
84
84
|
*/
|
|
85
|
-
export declare function deriveBackingShape(db: Database, bodySql: string, explicitColumns: ReadonlyArray<string> | undefined): BackingShape;
|
|
85
|
+
export declare function deriveBackingShape(db: Database, schemaName: string, bodySql: string, explicitColumns: ReadonlyArray<string> | undefined): BackingShape;
|
|
86
86
|
/**
|
|
87
87
|
* Computes the backing table's *physical* primary key. When the body carries an
|
|
88
88
|
* `order by`, the ordering columns lead the key so the btree clusters (and scans)
|
|
@@ -111,7 +111,7 @@ export declare function buildBackingTableSchema(db: Database, schemaName: string
|
|
|
111
111
|
tags?: Readonly<Record<string, SqlValue>>): TableSchema;
|
|
112
112
|
/** Runs the body to completion and returns its rows (raw `Row` arrays). Uses the
|
|
113
113
|
* no-transaction-management primitive — the caller is already inside DDL execution. */
|
|
114
|
-
export declare function collectBodyRows(db: Database, bodySql: string): Promise<Row[]>;
|
|
114
|
+
export declare function collectBodyRows(db: Database, schemaName: string, bodySql: string): Promise<Row[]>;
|
|
115
115
|
/**
|
|
116
116
|
* Everything needed to materialize an MV — identity, canonical DDL, and the body
|
|
117
117
|
* in both AST and canonical-SQL form. Satisfied by the create plan node
|
|
@@ -445,7 +445,7 @@ export declare function isBodyIrrelevantTableChange(oldObject: TableSchema, newO
|
|
|
445
445
|
* which treats a failed analysis as "could not prove disjoint" ⇒ stale (the safe
|
|
446
446
|
* default) — it must never be swallowed into a false "disjoint" conclusion.
|
|
447
447
|
*/
|
|
448
|
-
export declare function referencedSourceColumns(db: Database, bodySql: string, qualifiedSource: string): Set<number>;
|
|
448
|
+
export declare function referencedSourceColumns(db: Database, schemaName: string, bodySql: string, qualifiedSource: string): Set<number>;
|
|
449
449
|
/**
|
|
450
450
|
* Recompile a LIVE materialized view's row-time plan in place after a **genuine**
|
|
451
451
|
* source `table_modified` (`oldObject !== newObject` — constraint/stats/tags-only OR
|
|
@@ -577,7 +577,7 @@ export declare function unlinkCoveredUniqueConstraints(db: Database, mv: Maintai
|
|
|
577
577
|
/** Re-validates a stale MV's body against the current source schemas. Throws the
|
|
578
578
|
* staleness diagnostic when the body no longer plans. Returns the optimized
|
|
579
579
|
* relational root on success. */
|
|
580
|
-
export declare function revalidateBody(db: Database, mvName: string, bodySql: string): RelationalPlanNode;
|
|
580
|
+
export declare function revalidateBody(db: Database, schemaName: string, mvName: string, bodySql: string): RelationalPlanNode;
|
|
581
581
|
/**
|
|
582
582
|
* Lowercased `schema.name` keys of every MV that is stale *right now*. The rename
|
|
583
583
|
* emitters snapshot this BEFORE the statement's first schema-change notify, so the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"materialized-view-helpers.d.ts","sourceRoot":"","sources":["../../../../src/runtime/emit/materialized-view-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAc,KAAK,GAAG,EAAE,KAAK,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAC5E,OAAO,KAAK,KAAK,GAAG,MAAM,qBAAqB,CAAC;AAEhD,OAAO,KAAK,EAAY,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAMrF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,KAAK,WAAW,EAAsF,MAAM,uBAAuB,CAAC;AAQ7I,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAA8B,MAAM,sBAAsB,CAAC;AACnF,OAAO,EAAqB,KAAK,qBAAqB,EAAwB,MAAM,4BAA4B,CAAC;AAEjH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAErD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAE7E,OAAO,KAAK,EAAE,WAAW,EAAoB,MAAM,4BAA4B,CAAC;AAahF,OAAO,EAAE,eAAe,EAAE,CAAC;AAE3B;;;;;;;;GAQG;AACH,wBAAgB,4BAA4B,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,YAAY,CAS/F;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,0BAA0B,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,YAAY,CASjH;AAED,uFAAuF;AACvF,MAAM,WAAW,YAAY;IAC5B,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,UAAU,EAAE,aAAa,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAC5D,QAAQ,CAAC,EAAE,aAAa,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAC3D,0EAA0E;IAC1E,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB;;;;;;0EAMsE;IACtE,YAAY,CAAC,EAAE,gBAAgB,CAAC;IAChC;;;;sEAIkE;IAClE,aAAa,CAAC,EAAE,aAAa,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC;CACrD;AAED;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CACjC,EAAE,EAAE,QAAQ,EACZ,OAAO,EAAE,MAAM,EACf,eAAe,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,SAAS,GAChD,YAAY,CAMd;
|
|
1
|
+
{"version":3,"file":"materialized-view-helpers.d.ts","sourceRoot":"","sources":["../../../../src/runtime/emit/materialized-view-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAc,KAAK,GAAG,EAAE,KAAK,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAC5E,OAAO,KAAK,KAAK,GAAG,MAAM,qBAAqB,CAAC;AAEhD,OAAO,KAAK,EAAY,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAMrF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,KAAK,WAAW,EAAsF,MAAM,uBAAuB,CAAC;AAQ7I,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAA8B,MAAM,sBAAsB,CAAC;AACnF,OAAO,EAAqB,KAAK,qBAAqB,EAAwB,MAAM,4BAA4B,CAAC;AAEjH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAErD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAE7E,OAAO,KAAK,EAAE,WAAW,EAAoB,MAAM,4BAA4B,CAAC;AAahF,OAAO,EAAE,eAAe,EAAE,CAAC;AAE3B;;;;;;;;GAQG;AACH,wBAAgB,4BAA4B,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,YAAY,CAS/F;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,0BAA0B,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,YAAY,CASjH;AAED,uFAAuF;AACvF,MAAM,WAAW,YAAY;IAC5B,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,UAAU,EAAE,aAAa,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAC5D,QAAQ,CAAC,EAAE,aAAa,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAC3D,0EAA0E;IAC1E,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB;;;;;;0EAMsE;IACtE,YAAY,CAAC,EAAE,gBAAgB,CAAC;IAChC;;;;sEAIkE;IAClE,aAAa,CAAC,EAAE,aAAa,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC;CACrD;AAED;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CACjC,EAAE,EAAE,QAAQ,EACZ,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EACf,eAAe,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,SAAS,GAChD,YAAY,CAMd;AA+HD;;;;;;;;;;GAUG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,YAAY,GAAG,aAAa,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC,CAa7G;AAED;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CACtC,EAAE,EAAE,QAAQ,EACZ,UAAU,EAAE,MAAM,EAClB,gBAAgB,EAAE,MAAM,EACxB,KAAK,EAAE,YAAY,EACnB,UAAU,CAAC,EAAE,MAAM,EACnB,UAAU,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AAC/C,8FAA8F;AAC9F,IAAI,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,GACvC,WAAW,CAyCb;AAED;wFACwF;AACxF,wBAAsB,eAAe,CAAC,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,CAkBvG;AAED;;;;;GAKG;AACH,MAAM,WAAW,yBAAyB;IACzC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,8FAA8F;IAC9F,SAAS,EAAE,GAAG,CAAC,SAAS,CAAC;IACzB,wFAAwF;IACxF,OAAO,EAAE,MAAM,CAAC;IAChB,uFAAuF;IACvF,OAAO,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAChC,IAAI,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC1C;uDACmD;IACnD,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,yDAAyD;IACzD,iBAAiB,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;CACvD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,yBAAyB,EAAE,KAAK,EAAE,YAAY,GAAG,IAAI,CAOnG;AAkED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAsB,eAAe,CAAC,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,yBAAyB,EAAE,eAAe,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAmElJ;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAsB,qBAAqB,CAC1C,EAAE,EAAE,QAAQ,EACZ,GAAG,EAAE,yBAAyB,EAC9B,WAAW,EAAE,WAAW,EACxB,KAAK,EAAE,YAAY,GACjB,OAAO,CAAC,qBAAqB,CAAC,CAuBhC;AAmUD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4EG;AACH,wBAAsB,0BAA0B,CAC/C,EAAE,EAAE,QAAQ,EACZ,KAAK,EAAE,WAAW,EAClB,MAAM,EAAE,GAAG,CAAC,SAAS,EACrB,eAAe,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,SAAS,EAClD,gBAAgB,UAAQ,EACxB,YAAY,UAAQ;AACpB;;;;;;;;GAQG;AACH,uBAAuB,UAAQ,GAC7B,OAAO,CAAC,qBAAqB,CAAC,CAkUhC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,0BAA0B,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,qBAAqB,GAAG,WAAW,CAmB/F;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAsB,qBAAqB,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,CAAC,eAAe,GAAG,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAAC,CAwD/H;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,wBAAsB,cAAc,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CAwE3F;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,YAAY,GAAG,OAAO,CAMtF;AA4JD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,2BAA2B,CAAC,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,GAAG,OAAO,CASnG;AAkED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAgB,uBAAuB,CAAC,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAqC/H;AAiBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoEG;AACH,wBAAgB,gCAAgC,CAC/C,EAAE,EAAE,QAAQ,EACZ,EAAE,EAAE,qBAAqB,EACzB,SAAS,EAAE,WAAW,EACtB,SAAS,EAAE,WAAW,GACpB,OAAO,CAwET;AA0SD;;;;;;;GAOG;AACH,wBAAsB,cAAc,CACnC,EAAE,EAAE,QAAQ,EACZ,EAAE,EAAE,qBAAqB,EACzB,KAAK,EAAE,YAAY,GACjB,OAAO,CAAC,qBAAqB,CAAC,CAMhC;AA2HD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,QAAQ,EAAE,aAAa,EAAE,WAAW,GAAG,WAAW,CAiBxF;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,QAAQ,EAAE,aAAa,EAAE,WAAW,GAAG,WAAW,GAAG,SAAS,CAGvG;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,4BAA4B,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,qBAAqB,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAyB3G;AAED;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,qBAAqB,GAAG,IAAI,CAO5F;AAED;;kCAEkC;AAClC,wBAAgB,cAAc,CAAC,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,kBAAkB,CAwBpH;AAID;;;;;;;;GAQG;AACH,wBAAgB,8BAA8B,CAAC,EAAE,EAAE,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC,CAMhF;AAYD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,uCAAuC,CAC5D,EAAE,EAAE,QAAQ,EACZ,MAAM,EAAE,MAAM,EACd,iBAAiB,EAAE,MAAM,EACzB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,GAC3B,OAAO,CAAC,IAAI,CAAC,CAyBf;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,wCAAwC,CAC7D,EAAE,EAAE,QAAQ,EACZ,MAAM,EAAE,MAAM,EACd,iBAAiB,EAAE,MAAM,EACzB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,EAC7B,qBAAqB,EAAE,qBAAqB,GAC1C,OAAO,CAAC,IAAI,CAAC,CAcf;AA+FD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,wBAAsB,kCAAkC,CACvD,EAAE,EAAE,QAAQ,EACZ,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,GAC3B,OAAO,CAAC,IAAI,CAAC,CAwCf"}
|
|
@@ -74,13 +74,15 @@ export function nullInNotNullSeededPkError(schemaName, viewName, columnName) {
|
|
|
74
74
|
* until Phase 2). Re-planning here is cheap relative to materialization and keeps
|
|
75
75
|
* the create/refresh emitters free of optimizer plumbing.
|
|
76
76
|
*/
|
|
77
|
-
export function deriveBackingShape(db, bodySql, explicitColumns) {
|
|
77
|
+
export function deriveBackingShape(db, schemaName, bodySql, explicitColumns) {
|
|
78
78
|
// Suppress the read-side rewrite: we are computing the MV body to derive/populate
|
|
79
79
|
// its OWN backing, so it must not be rewritten to read that backing.
|
|
80
|
-
return db.schemaManager.withSuppressedMaterializedViewRewrite(() => deriveBackingShapeUnguarded(db, bodySql, explicitColumns));
|
|
80
|
+
return db.schemaManager.withSuppressedMaterializedViewRewrite(() => deriveBackingShapeUnguarded(db, schemaName, bodySql, explicitColumns));
|
|
81
81
|
}
|
|
82
|
-
function deriveBackingShapeUnguarded(db, bodySql, explicitColumns) {
|
|
83
|
-
|
|
82
|
+
function deriveBackingShapeUnguarded(db, schemaName, bodySql, explicitColumns) {
|
|
83
|
+
// Home-schema path: the body's unqualified source names resolve next to the
|
|
84
|
+
// MV, independent of the session's schema path at re-plan time.
|
|
85
|
+
const plan = db.getPlan(bodySql, db._homeSchemaPath(schemaName));
|
|
84
86
|
const root = plan.getRelations()[0];
|
|
85
87
|
if (!root) {
|
|
86
88
|
throw new QuereusError('materialized view body produced no relation', StatusCode.INTERNAL);
|
|
@@ -278,12 +280,14 @@ tags) {
|
|
|
278
280
|
}
|
|
279
281
|
/** Runs the body to completion and returns its rows (raw `Row` arrays). Uses the
|
|
280
282
|
* no-transaction-management primitive — the caller is already inside DDL execution. */
|
|
281
|
-
export async function collectBodyRows(db, bodySql) {
|
|
283
|
+
export async function collectBodyRows(db, schemaName, bodySql) {
|
|
282
284
|
// Suppress the read-side rewrite for the whole prepare+iterate: this body is run
|
|
283
285
|
// to (re)compute the MV's OWN backing (create fill / refresh rebuild), so it must
|
|
284
286
|
// recompute from the source, never read the backing it is populating.
|
|
285
287
|
return db.schemaManager.withSuppressedMaterializedViewRewriteAsync(async () => {
|
|
286
288
|
const stmt = db.prepare(bodySql);
|
|
289
|
+
// Compile is deferred, so the override lands before any planning happens.
|
|
290
|
+
stmt._schemaPathOverride = db._homeSchemaPath(schemaName);
|
|
287
291
|
try {
|
|
288
292
|
const rows = [];
|
|
289
293
|
for await (const row of stmt._iterateRowsRaw()) {
|
|
@@ -392,7 +396,7 @@ function warnKeyCoarsening(schemaName, viewName, info) {
|
|
|
392
396
|
*/
|
|
393
397
|
export async function materializeView(db, def, preDerivedShape) {
|
|
394
398
|
const sm = db.schemaManager;
|
|
395
|
-
const shape = preDerivedShape ?? deriveBackingShape(db, def.bodySql, def.columns);
|
|
399
|
+
const shape = preDerivedShape ?? deriveBackingShape(db, def.schemaName, def.bodySql, def.columns);
|
|
396
400
|
// Lives here — not in deriveBackingShape — because the refresh path reaches a
|
|
397
401
|
// legitimate mismatch after a source ALTER (see the assert's docstring).
|
|
398
402
|
assertDeclaredColumnArity(def, shape);
|
|
@@ -403,7 +407,7 @@ export async function materializeView(db, def, preDerivedShape) {
|
|
|
403
407
|
const backingSchema = buildBackingTableSchema(db, def.schemaName, def.viewName, shape, def.backingModuleName, def.backingModuleArgs, def.tags);
|
|
404
408
|
const completeBacking = await sm.createBackingTable(backingSchema);
|
|
405
409
|
try {
|
|
406
|
-
const rows = await collectBodyRows(db, def.bodySql);
|
|
410
|
+
const rows = await collectBodyRows(db, def.schemaName, def.bodySql);
|
|
407
411
|
const host = resolveBackingHost(db, completeBacking);
|
|
408
412
|
// `replaceContents` runs NO derived-row constraint validation: this caller's
|
|
409
413
|
// backing is the MV-sugar shape (`buildBackingTableSchema` hard-codes empty
|
|
@@ -893,7 +897,7 @@ discardBackingOnFailure = false) {
|
|
|
893
897
|
// renamed positionally to it and the name check skipped; otherwise natural output
|
|
894
898
|
// names with the strict declared-shape check (the body must already be aliased to
|
|
895
899
|
// the declared names — the attach verb / implicit-create posture).
|
|
896
|
-
const shape = deriveBackingShape(db, bodySql, positionalRename ? recordedColumns : undefined);
|
|
900
|
+
const shape = deriveBackingShape(db, schemaName, bodySql, positionalRename ? recordedColumns : undefined);
|
|
897
901
|
// Explicit rename-list arity guard. `deriveBackingShape` sizes the shape to the
|
|
898
902
|
// BODY's arity (a surplus rename name is dropped, a missing one padded), so a
|
|
899
903
|
// list whose length disagrees with the body would otherwise record an
|
|
@@ -937,7 +941,7 @@ discardBackingOnFailure = false) {
|
|
|
937
941
|
reshapePlan = classification.plan;
|
|
938
942
|
}
|
|
939
943
|
assertNoDerivationCycle(db, schemaName, name, shape.sourceTables);
|
|
940
|
-
const rows = await collectBodyRows(db, bodySql);
|
|
944
|
+
const rows = await collectBodyRows(db, schemaName, bodySql);
|
|
941
945
|
// Shape-derived physical key (see assertDerivedRowsAreSet): under a reshape the
|
|
942
946
|
// table's own PK definition may carry pre-reshape indices; equivalent otherwise.
|
|
943
947
|
const shapePk = computeBackingPrimaryKey(shape)
|
|
@@ -1249,7 +1253,7 @@ export async function createMaintainedTable(db, stmt) {
|
|
|
1249
1253
|
const declared = sm.buildDeclaredTableSchema(stmt);
|
|
1250
1254
|
const recordedColumns = explicit ? declared.columns.map(c => c.name) : undefined;
|
|
1251
1255
|
const bodySql = astToString(stmt.maintained.select);
|
|
1252
|
-
const shape = deriveBackingShape(db, bodySql, explicit ? recordedColumns : undefined);
|
|
1256
|
+
const shape = deriveBackingShape(db, schemaName, bodySql, explicit ? recordedColumns : undefined);
|
|
1253
1257
|
const mismatch = describeAttachShapeMismatch(declared, shape, explicit);
|
|
1254
1258
|
if (mismatch) {
|
|
1255
1259
|
throw new QuereusError(`cannot create maintained table '${schemaName}.${name}': ${mismatch}`, StatusCode.ERROR, undefined, stmt.table.loc?.start.line, stmt.table.loc?.start.column);
|
|
@@ -1319,7 +1323,7 @@ export async function createMaintainedTable(db, stmt) {
|
|
|
1319
1323
|
*/
|
|
1320
1324
|
export async function rebuildBacking(db, mv) {
|
|
1321
1325
|
const bodySql = astToString(mv.derivation.selectAst);
|
|
1322
|
-
const rows = await collectBodyRows(db, bodySql);
|
|
1326
|
+
const rows = await collectBodyRows(db, mv.schemaName, bodySql);
|
|
1323
1327
|
const backing = db.schemaManager.getTable(mv.schemaName, mv.name);
|
|
1324
1328
|
if (!backing) {
|
|
1325
1329
|
throw new QuereusError(`Internal error: maintained table '${mv.name}' not found during rebuild`, StatusCode.INTERNAL);
|
|
@@ -1682,11 +1686,11 @@ function valueSemanticsChangedColumns(oldObject, newObject) {
|
|
|
1682
1686
|
* which treats a failed analysis as "could not prove disjoint" ⇒ stale (the safe
|
|
1683
1687
|
* default) — it must never be swallowed into a false "disjoint" conclusion.
|
|
1684
1688
|
*/
|
|
1685
|
-
export function referencedSourceColumns(db, bodySql, qualifiedSource) {
|
|
1689
|
+
export function referencedSourceColumns(db, schemaName, bodySql, qualifiedSource) {
|
|
1686
1690
|
const targetName = qualifiedSource.toLowerCase();
|
|
1687
1691
|
return db.schemaManager.withSuppressedMaterializedViewRewrite(() => {
|
|
1688
1692
|
const ast = new Parser().parse(bodySql);
|
|
1689
|
-
const { plan } = db._buildPlan([ast]);
|
|
1693
|
+
const { plan } = db._buildPlan([ast], undefined, db._homeSchemaPath(schemaName));
|
|
1690
1694
|
const referencedAttrIds = new Set();
|
|
1691
1695
|
const sourceRefs = [];
|
|
1692
1696
|
const visited = new Set();
|
|
@@ -1815,7 +1819,7 @@ export function tryRecompileMaterializedViewLive(db, mv, oldObject, newObject) {
|
|
|
1815
1819
|
try {
|
|
1816
1820
|
const d = mv.derivation;
|
|
1817
1821
|
const bodySql = astToString(d.selectAst);
|
|
1818
|
-
const shape = deriveBackingShape(db, bodySql, d.columns);
|
|
1822
|
+
const shape = deriveBackingShape(db, mv.schemaName, bodySql, d.columns);
|
|
1819
1823
|
if (!sameSourceTables(d.sourceTables, shape.sourceTables)) {
|
|
1820
1824
|
log('Marking materialized view %s.%s stale instead of recompiling: re-planned source tables (%s) disagree with the recorded set (%s) — REFRESH re-derives', mv.schemaName, mv.name, shape.sourceTables.join(', '), d.sourceTables.join(', '));
|
|
1821
1825
|
return false;
|
|
@@ -1857,7 +1861,7 @@ export function tryRecompileMaterializedViewLive(db, mv, oldObject, newObject) {
|
|
|
1857
1861
|
const valueChanged = valueSemanticsChangedColumns(oldObject, newObject);
|
|
1858
1862
|
if (valueChanged.size > 0) {
|
|
1859
1863
|
const source = `${newObject.schemaName}.${newObject.name}`.toLowerCase();
|
|
1860
|
-
const read = referencedSourceColumns(db, bodySql, source);
|
|
1864
|
+
const read = referencedSourceColumns(db, mv.schemaName, bodySql, source);
|
|
1861
1865
|
const collidingName = [...valueChanged].find(name => {
|
|
1862
1866
|
const idx = newObject.columnIndexMap.get(name);
|
|
1863
1867
|
return idx !== undefined && read.has(idx);
|
|
@@ -2061,7 +2065,13 @@ function describePhysicalPkChange(current, shape, renameMap) {
|
|
|
2061
2065
|
}
|
|
2062
2066
|
return null;
|
|
2063
2067
|
}
|
|
2064
|
-
/**
|
|
2068
|
+
/**
|
|
2069
|
+
* Lifts a {@link ReshapeColumnOp} onto the module's `SchemaChangeInfo` surface.
|
|
2070
|
+
* Never sets `ddl` — these are engine-internal backing reshapes, not statements the
|
|
2071
|
+
* application issued, and a module emits a schema-change event only for a call
|
|
2072
|
+
* carrying `ddl` (see `SchemaChangeInfo.ddl`), so every reshape stays silent on the
|
|
2073
|
+
* public schema channel.
|
|
2074
|
+
*/
|
|
2065
2075
|
function reshapeOpToChange(op) {
|
|
2066
2076
|
switch (op.kind) {
|
|
2067
2077
|
case 'rename':
|
|
@@ -2294,7 +2304,8 @@ export function tryResolveBackingHost(db, backingSchema) {
|
|
|
2294
2304
|
export function linkCoveredUniqueConstraints(db, mv, bodySql) {
|
|
2295
2305
|
// The coverage prover reasons over the body's SOURCE table; suppress the
|
|
2296
2306
|
// read-side rewrite so the body is not re-pointed at this MV's own backing.
|
|
2297
|
-
|
|
2307
|
+
// Home-schema path: the body's unqualified names resolve next to the MV.
|
|
2308
|
+
const root = db.schemaManager.withSuppressedMaterializedViewRewrite(() => db.getPlan(bodySql, db._homeSchemaPath(mv.schemaName)).getRelations()[0]);
|
|
2298
2309
|
if (!root)
|
|
2299
2310
|
return;
|
|
2300
2311
|
const sm = db.schemaManager;
|
|
@@ -2336,12 +2347,13 @@ export function unlinkCoveredUniqueConstraints(db, mv) {
|
|
|
2336
2347
|
/** Re-validates a stale MV's body against the current source schemas. Throws the
|
|
2337
2348
|
* staleness diagnostic when the body no longer plans. Returns the optimized
|
|
2338
2349
|
* relational root on success. */
|
|
2339
|
-
export function revalidateBody(db, mvName, bodySql) {
|
|
2350
|
+
export function revalidateBody(db, schemaName, mvName, bodySql) {
|
|
2340
2351
|
let root;
|
|
2341
2352
|
try {
|
|
2342
2353
|
// Re-validate the body against the SOURCE schemas; suppress the read-side
|
|
2343
|
-
// rewrite so it is not re-pointed at this MV's own backing.
|
|
2344
|
-
|
|
2354
|
+
// rewrite so it is not re-pointed at this MV's own backing. Home-schema
|
|
2355
|
+
// path: unqualified names resolve next to the MV, not the session path.
|
|
2356
|
+
root = db.schemaManager.withSuppressedMaterializedViewRewrite(() => db.getPlan(bodySql, db._homeSchemaPath(schemaName)).getRelations()[0]);
|
|
2345
2357
|
}
|
|
2346
2358
|
catch (e) {
|
|
2347
2359
|
const message = e instanceof Error ? e.message : String(e);
|
|
@@ -2595,7 +2607,7 @@ export async function restoreUnaffectedMaterializedViews(db, preStale) {
|
|
|
2595
2607
|
// Throws when the body no longer plans against the renamed catalog
|
|
2596
2608
|
// (e.g. a chained MV referencing a renamed-away output name) → catch
|
|
2597
2609
|
// below leaves it stale.
|
|
2598
|
-
const shape = deriveBackingShape(db, bodySql, d.columns);
|
|
2610
|
+
const shape = deriveBackingShape(db, mv.schemaName, bodySql, d.columns);
|
|
2599
2611
|
// The retry of a failure-marked MV must not revive an inconsistent record: a
|
|
2600
2612
|
// rewrite that threw between the in-place AST mutation and the derived-field
|
|
2601
2613
|
// re-key leaves the OLD derivation (un-re-keyed `sourceTables`) holding the
|
|
@@ -2648,7 +2660,7 @@ function sameSourceTables(a, b) {
|
|
|
2648
2660
|
* and cached plans scanning the backing directly recompile against the new names.
|
|
2649
2661
|
*/
|
|
2650
2662
|
async function renameShiftedBackingColumns(db, schema, mv, bodySql, preDerivedShape) {
|
|
2651
|
-
const shape = preDerivedShape ?? deriveBackingShape(db, bodySql, mv.derivation.columns);
|
|
2663
|
+
const shape = preDerivedShape ?? deriveBackingShape(db, mv.schemaName, bodySql, mv.derivation.columns);
|
|
2652
2664
|
const backing = schema.getTable(mv.name);
|
|
2653
2665
|
if (!backing) {
|
|
2654
2666
|
throw new QuereusError(`Internal error: maintained table '${mv.name}' not found during backing-column rename`, StatusCode.INTERNAL);
|