@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,15 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Rule: Key-set seek — materialize the semi-join key set, then seek the target with it
|
|
3
3
|
*
|
|
4
|
-
* Pattern (anchored on the physical hash semi join `join-physical-selection`
|
|
4
|
+
* Pattern (anchored on the physical hash semi join `join-physical-selection`
|
|
5
|
+
* builds — rule id `key-set-seek` — and on the merge semi join
|
|
6
|
+
* `monotonic-merge-join` / `join-physical-selection` build — rule id
|
|
7
|
+
* `key-set-seek-merge`; one rule function serves both anchors):
|
|
5
8
|
*
|
|
6
|
-
* BloomJoinNode (semi, exactly one equi-pair, no residual)
|
|
9
|
+
* BloomJoinNode | MergeJoinNode (semi, exactly one equi-pair, no residual)
|
|
7
10
|
* ├─ left: (FilterNode | trivial ProjectNode | AliasNode)*
|
|
8
11
|
* │ over SeqScan(fullScan) | ordering-only IndexScan(plan=0)
|
|
12
|
+
* │ | IndexSeek carrying pushedConstraints
|
|
9
13
|
* └─ right: uncorrelated, deterministic, side-effect-free key source
|
|
10
14
|
*
|
|
11
15
|
* On a successful match the left chain is rebuilt with the leaf replaced by a
|
|
@@ -16,27 +20,61 @@
|
|
|
16
20
|
* HashJoin(semi, Project(Filter(leaf)), right)
|
|
17
21
|
* → Project(Filter(KeySetSemiJoin(leaf, right)))
|
|
18
22
|
*
|
|
23
|
+
* An `IndexSeek` leaf is admitted UNCHANGED, with the predicate its
|
|
24
|
+
* `FilterInfo` enforces (recorded in `pushedConstraints`, dropped from the
|
|
25
|
+
* tree on the module's promise) re-applied as a `Filter` directly above the
|
|
26
|
+
* new node — inside the peeled wrappers, because a peeled trivial Project may
|
|
27
|
+
* not carry the predicate's columns:
|
|
28
|
+
*
|
|
29
|
+
* HashJoin(semi, Project(IndexSeek[s='x']), right)
|
|
30
|
+
* → Project(Filter[s='x'](KeySetSemiJoin(IndexSeek[s='x'], right)))
|
|
31
|
+
*
|
|
32
|
+
* That is right on both runtime branches: the scan branch runs the leaf's own
|
|
33
|
+
* FilterInfo untouched (the pushed seek happens exactly as today; the added
|
|
34
|
+
* Filter is redundant), and the seek branch replaces the FilterInfo with the
|
|
35
|
+
* multi-seek (the module ignores the pushed predicate; the Filter re-applies
|
|
36
|
+
* it). The scan branch is byte-for-byte the plan being displaced, so the
|
|
37
|
+
* rewrite is never a structural loss.
|
|
38
|
+
*
|
|
19
39
|
* The new node ALWAYS builds the key set and ALWAYS probes each target row
|
|
20
40
|
* against it — the runtime pushdown only changes how many rows the target
|
|
21
41
|
* emits, so a skipped or over-fetching seek can cost performance but never
|
|
22
42
|
* correctness. Every gate below exists to make an UNDER-fetch (rows the seek
|
|
23
43
|
* fails to return, which the probe cannot resurrect) impossible.
|
|
24
44
|
*
|
|
25
|
-
* The rule declines (returns null, keeping the
|
|
45
|
+
* The rule declines (returns null, keeping the join it arrived as) on all of:
|
|
26
46
|
* - join type ≠ semi, >1 equi-pair, or a residual condition
|
|
27
47
|
* - a correlated, non-deterministic, or side-effect-bearing key source
|
|
28
48
|
* - side effects anywhere in the left chain
|
|
29
49
|
* - any non-peelable node between the join and the access leaf
|
|
30
|
-
* - a leaf that is not an unconstrained every-row walk
|
|
31
|
-
*
|
|
32
|
-
*
|
|
33
|
-
* (
|
|
34
|
-
*
|
|
35
|
-
*
|
|
36
|
-
*
|
|
37
|
-
*
|
|
38
|
-
*
|
|
39
|
-
*
|
|
50
|
+
* - a walk leaf that is not an unconstrained every-row walk (residue in
|
|
51
|
+
* `FilterInfo.constraints`, or a pushed limit / offset)
|
|
52
|
+
* - a seek leaf failing any of {@link admitSeekLeaf}'s five gates:
|
|
53
|
+
* - a pushed limit / offset (a directive the multi-seek would not honour,
|
|
54
|
+
* and unlike a predicate it cannot be re-applied by a Filter without
|
|
55
|
+
* changing which rows are dropped — unreachable today,
|
|
56
|
+
* `monotonic-limit-pushdown`'s peel cannot cross a join, but kept)
|
|
57
|
+
* - no recorded `pushedConstraints` (a seek we cannot describe is a seek
|
|
58
|
+
* we must not displace)
|
|
59
|
+
* - a recorded predicate containing a relational node (this rule runs
|
|
60
|
+
* PostOptimization — a re-inserted relational subquery would reach emit
|
|
61
|
+
* unphysicalized)
|
|
62
|
+
* - a correlated subtree (`index-nested-loop` builds seeks keyed on the
|
|
63
|
+
* OUTER side of a join — re-applying is correct but the node drains the
|
|
64
|
+
* key source per outer row, turning a linear plan quadratic)
|
|
65
|
+
* - an emission order that absorbed a Sort (`orderingLoadBearing` —
|
|
66
|
+
* `seekPreservesTargetOrder` is false for every seek, so the absorbed
|
|
67
|
+
* order cannot be reproduced)
|
|
68
|
+
* - a walk leaf whose emission order absorbed a SortNode (`orderingLoadBearing`)
|
|
69
|
+
* UNLESS the seek would reproduce that order (`seekPreservesTargetOrder`:
|
|
70
|
+
* the seek index is the walk index, so a multi-seek emits a subsequence of
|
|
71
|
+
* the walk — still in the same order). Otherwise the dropped Sort's order,
|
|
72
|
+
* which rides the leaf's walk order through the order-preserving join,
|
|
73
|
+
* would be replaced by seek-key order
|
|
74
|
+
* - target/key logical types that do not share one seek key space
|
|
75
|
+
* (`sharesSeekKeySpace`: identical types, or any two of INTEGER / REAL /
|
|
76
|
+
* NUMERIC). Anything else could be encoded into seek keys that miss rows
|
|
77
|
+
* `=` considers equal
|
|
40
78
|
* - a semantic-ordering key type ('PT1H' ≡ 'PT60M' but byte-distinct: a
|
|
41
79
|
* raw-value seek under-fetches)
|
|
42
80
|
* - a collation cover that is MISMATCH_UNSAFE (a finer index under-fetches;
|
|
@@ -49,87 +87,63 @@
|
|
|
49
87
|
* - the module answering a synthesized probe with a plan `validateAccessPlan`
|
|
50
88
|
* rejects (a module bug — logged, then declined like any other gate rather
|
|
51
89
|
* than failing a query the user's own predicate would have run fine)
|
|
52
|
-
* - a break-even of zero (the module's own costs say
|
|
53
|
-
*
|
|
90
|
+
* - a break-even of zero (the module's own costs say the displaced plan —
|
|
91
|
+
* the plain scan for a walk leaf, the leaf's own pushed seek for a seek
|
|
92
|
+
* leaf — wins at every key count)
|
|
93
|
+
*
|
|
94
|
+
* The MERGE anchor adds two gates the hash anchor does not need:
|
|
95
|
+
* - `seekPreservesTargetOrder` must hold. `MergeJoinNode.computePhysical`
|
|
96
|
+
* propagates the probe side's `ordering` / `monotonicOn` for semi, so a
|
|
97
|
+
* Sort an earlier pass dropped on the strength of the merge join's order
|
|
98
|
+
* cannot come back — a replacement that cannot reproduce that order is a
|
|
99
|
+
* wrong-order plan, not a slow one. (`BloomJoinNode` propagates neither,
|
|
100
|
+
* so nothing above a hash join can have depended on an ordering claim —
|
|
101
|
+
* that asymmetry is the whole reason this gate is merge-only.)
|
|
102
|
+
* - the key source's PHYSICAL row estimate, when present, must not exceed
|
|
103
|
+
* min(maxKeys, breakEvenKeys) — the same expression the runtime's `push`
|
|
104
|
+
* decision uses. A merge semi join streams both sides; this node drains
|
|
105
|
+
* the key source into a Set before opening the target, so a rewrite whose
|
|
106
|
+
* seek then never fires is pure loss (the same scan, plus a set the merge
|
|
107
|
+
* join never built). The gate is a heuristic in BOTH directions: the
|
|
108
|
+
* estimate is advisory, and it counts ROWS while the runtime counts
|
|
109
|
+
* DISTINCT non-null keys, so a duplicate-heavy key source can be declined
|
|
110
|
+
* here and still have seeked. Both errors cost an optimization, never a
|
|
111
|
+
* row. The hash arm has no such gate because the hash join it replaces
|
|
112
|
+
* already built that set.
|
|
54
113
|
*
|
|
55
|
-
* NOTE: the three `getBestAccessPlan` probes run on every qualifying
|
|
114
|
+
* NOTE: the three `getBestAccessPlan` probes run on every qualifying semi
|
|
56
115
|
* join optimization, uncached. Cheap for both shipped modules; if a third-party
|
|
57
116
|
* module with an expensive planner ever shows up in optimization profiles,
|
|
58
117
|
* memoize by (table, seek column).
|
|
59
118
|
*
|
|
60
|
-
* NOTE: the `orderingLoadBearing` decline is conservative
|
|
61
|
-
*
|
|
62
|
-
*
|
|
63
|
-
* `backlog/feat-key-set-seek-merge-semi-join`).
|
|
119
|
+
* NOTE: the `orderingLoadBearing` decline is conservative when
|
|
120
|
+
* `seekPreservesTargetOrder` is false — a future enhancement could re-sort the
|
|
121
|
+
* pushed output by the leaf's advertised order.
|
|
64
122
|
*/
|
|
65
123
|
import { createLogger } from '../../../common/logger.js';
|
|
66
|
-
import { isRelationalNode } from '../../nodes/plan-node.js';
|
|
67
124
|
import { BloomJoinNode } from '../../nodes/bloom-join-node.js';
|
|
68
|
-
import {
|
|
69
|
-
import {
|
|
70
|
-
import {
|
|
71
|
-
import { ProjectNode } from '../../nodes/project-node.js';
|
|
125
|
+
import { MergeJoinNode } from '../../nodes/merge-join-node.js';
|
|
126
|
+
import { KeySetSemiJoinNode, RUNTIME_SET_MAX_KEYS, seekPreservesTargetOrder } from '../../nodes/key-set-semi-join-node.js';
|
|
127
|
+
import { IndexScanNode, IndexSeekNode } from '../../nodes/table-access-nodes.js';
|
|
72
128
|
import { FilterNode } from '../../nodes/filter.js';
|
|
73
|
-
import { ColumnReferenceNode } from '../../nodes/reference.js';
|
|
74
129
|
import { PlanNodeCharacteristics } from '../../framework/characteristics.js';
|
|
75
130
|
import { isCorrelatedSubquery } from '../../cache/correlation-detector.js';
|
|
76
131
|
import { hasSemanticOrdering, normalizeCollationName } from '../../../util/comparison.js';
|
|
132
|
+
import { sharesSeekKeySpace } from '../../../types/builtin-types.js';
|
|
77
133
|
import { effectiveCollationOfTypes } from '../../analysis/comparison-collation.js';
|
|
78
|
-
import {
|
|
134
|
+
import { hasRelationalDescendant } from '../../analysis/scalar-subqueries.js';
|
|
135
|
+
import { classifyConstraintCover, combineResidualExpressions } from './rule-select-access-path.js';
|
|
136
|
+
import { peelToSeekableAccessLeaf, rebuildChain, buildProbeRequest } from '../shared/access-leaf.js';
|
|
79
137
|
import { resolveIndexDescriptor } from '../../../vtab/index-descriptor.js';
|
|
80
138
|
import { validateAccessPlan, } from '../../../vtab/best-access-plan.js';
|
|
81
139
|
const log = createLogger('optimizer:rule:key-set-seek');
|
|
82
|
-
/**
|
|
83
|
-
* A Project is "trivial" iff every projection is a bare ColumnReferenceNode —
|
|
84
|
-
* it preserves row count, order, and attribute ids, so the semi join commutes
|
|
85
|
-
* below it. Same predicate as `rule-monotonic-limit-pushdown`.
|
|
86
|
-
*/
|
|
87
|
-
function isTrivialProject(project) {
|
|
88
|
-
return project.projections.every(p => p.node instanceof ColumnReferenceNode);
|
|
89
|
-
}
|
|
90
|
-
/**
|
|
91
|
-
* Walk down from `chainRoot` toward the access leaf, descending only through
|
|
92
|
-
* Alias / trivial Project / Filter wrappers (each commutes with a semi join).
|
|
93
|
-
* Returns null when anything else appears before an admissible leaf.
|
|
94
|
-
*/
|
|
95
|
-
function peelToLeaf(chainRoot) {
|
|
96
|
-
let cursor = chainRoot;
|
|
97
|
-
let safety = 16;
|
|
98
|
-
while (safety-- > 0) {
|
|
99
|
-
if (cursor instanceof SeqScanNode || cursor instanceof IndexScanNode)
|
|
100
|
-
return cursor;
|
|
101
|
-
if (cursor instanceof AliasNode) {
|
|
102
|
-
cursor = cursor.source;
|
|
103
|
-
continue;
|
|
104
|
-
}
|
|
105
|
-
if (cursor instanceof ProjectNode && isTrivialProject(cursor)) {
|
|
106
|
-
cursor = cursor.source;
|
|
107
|
-
continue;
|
|
108
|
-
}
|
|
109
|
-
if (cursor instanceof FilterNode) {
|
|
110
|
-
cursor = cursor.source;
|
|
111
|
-
continue;
|
|
112
|
-
}
|
|
113
|
-
return null;
|
|
114
|
-
}
|
|
115
|
-
return null;
|
|
116
|
-
}
|
|
117
|
-
/**
|
|
118
|
-
* Rebuild the chain `chainRoot → … → oldLeaf` with `oldLeaf` replaced by
|
|
119
|
-
* `newLeaf`, reconstructing each intermediate node via `withChildren` (same
|
|
120
|
-
* shape as `rule-monotonic-limit-pushdown`'s rebuildChain).
|
|
121
|
-
*/
|
|
122
|
-
function rebuildChain(chainRoot, oldLeaf, newLeaf) {
|
|
123
|
-
if (chainRoot === oldLeaf) {
|
|
124
|
-
return newLeaf;
|
|
125
|
-
}
|
|
126
|
-
const newChildren = chainRoot.getChildren().map(child => isRelationalNode(child) ? rebuildChain(child, oldLeaf, newLeaf) : child);
|
|
127
|
-
return chainRoot.withChildren(newChildren);
|
|
128
|
-
}
|
|
129
140
|
/**
|
|
130
141
|
* Structural + purity admission of the join itself: a single-pair, residual-free
|
|
131
|
-
*
|
|
132
|
-
* deterministic, pure) and whose probe chain
|
|
142
|
+
* SEMI join (hash or merge — both expose the same shape) whose key source may be
|
|
143
|
+
* drained exactly once (uncorrelated, deterministic, pure) and whose probe chain
|
|
144
|
+
* carries no write. The residual gate also covers `monotonic-merge-join`'s
|
|
145
|
+
* residualized non-driving equi-pairs: a two-pair IN-style shape arrives as one
|
|
146
|
+
* equi-pair plus a residual and declines here.
|
|
133
147
|
*/
|
|
134
148
|
function admitJoin(node) {
|
|
135
149
|
if (node.joinType !== 'semi')
|
|
@@ -162,25 +176,35 @@ function admitJoin(node) {
|
|
|
162
176
|
return true;
|
|
163
177
|
}
|
|
164
178
|
/**
|
|
165
|
-
* The probe-side access leaf, when
|
|
166
|
-
*
|
|
179
|
+
* The probe-side access leaf, when the rewrite can honour everything its
|
|
180
|
+
* `FilterInfo` enforces.
|
|
181
|
+
*
|
|
182
|
+
* Two arms. A WALK leaf must read every row with nothing pushed into it: a
|
|
183
|
+
* plain full scan, or an ordering-only index walk (plan=0) — which reads every
|
|
184
|
+
* row exactly like a full scan and differs only in emission order. A SEEK leaf
|
|
185
|
+
* (its residual Filter dropped on the module's promise to enforce the pushed
|
|
186
|
+
* predicate) is admitted unchanged when its `pushedConstraints` fully describe
|
|
187
|
+
* that promise — the caller re-applies them above the new node; see
|
|
188
|
+
* {@link admitSeekLeaf} for the gates. A pushed limit / offset declines both
|
|
189
|
+
* arms: a directive the multi-seek would not honour, and one a Filter cannot
|
|
190
|
+
* re-apply without changing which rows are dropped.
|
|
167
191
|
*
|
|
168
|
-
*
|
|
169
|
-
*
|
|
170
|
-
*
|
|
171
|
-
*
|
|
172
|
-
*
|
|
173
|
-
*
|
|
174
|
-
* silently drop those predicates
|
|
175
|
-
* (backlog/feat-key-set-seek-over-pushed-constraints). A pushed limit / offset
|
|
176
|
-
* is likewise a directive the multi-seek would not honor.
|
|
192
|
+
* Deliberately structural only for the walk arm: its `orderingLoadBearing`
|
|
193
|
+
* decline needs the pushdown (an absorbed Sort is fine when
|
|
194
|
+
* `seekPreservesTargetOrder` holds), so it lives in `ruleKeySetSeek` after
|
|
195
|
+
* `planPushdown` rather than here. The seek arm's ordering decline IS here
|
|
196
|
+
* (gate 5): `seekPreservesTargetOrder` is false for every seek, so no pushdown
|
|
197
|
+
* could ever change the answer.
|
|
177
198
|
*/
|
|
178
199
|
function admitLeaf(left) {
|
|
179
|
-
const leaf =
|
|
200
|
+
const leaf = peelToSeekableAccessLeaf(left);
|
|
180
201
|
if (!leaf) {
|
|
181
202
|
log('decline: left does not peel to an access leaf through Alias/Project/Filter');
|
|
182
203
|
return null;
|
|
183
204
|
}
|
|
205
|
+
if (leaf instanceof IndexSeekNode) {
|
|
206
|
+
return admitSeekLeaf(leaf);
|
|
207
|
+
}
|
|
184
208
|
const fi = leaf.filterInfo;
|
|
185
209
|
const isEveryRowWalk = fi.accessPath?.kind === 'fullScan'
|
|
186
210
|
|| (fi.accessPath?.kind === 'index' && fi.accessPath.plan === 'scan');
|
|
@@ -189,16 +213,62 @@ function admitLeaf(left) {
|
|
|
189
213
|
log('decline: leaf is not an unconstrained every-row walk');
|
|
190
214
|
return null;
|
|
191
215
|
}
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
216
|
+
return { leaf };
|
|
217
|
+
}
|
|
218
|
+
/**
|
|
219
|
+
* Admission gates for an `IndexSeekNode` target. The type / collation /
|
|
220
|
+
* module-claim / break-even gates applied later concern the SEEK column and
|
|
221
|
+
* apply to this arm identically; these five concern the pushed predicate.
|
|
222
|
+
*/
|
|
223
|
+
function admitSeekLeaf(leaf) {
|
|
224
|
+
const fi = leaf.filterInfo;
|
|
225
|
+
// Gate 1: a pushed limit / offset is a directive the multi-seek would not
|
|
226
|
+
// honour, and unlike a predicate it cannot be re-applied by a Filter without
|
|
227
|
+
// changing which rows are dropped. (Unreachable today —
|
|
228
|
+
// `monotonic-limit-pushdown`'s peel cannot cross a join — but kept.)
|
|
229
|
+
if (fi.limit !== undefined || fi.offset !== undefined) {
|
|
230
|
+
log('decline: seek leaf carries a pushed limit/offset');
|
|
231
|
+
return null;
|
|
232
|
+
}
|
|
233
|
+
// Gate 2: the seek's FilterInfo is the sole enforcer of whatever the module
|
|
234
|
+
// promised; a seek we cannot describe is a seek we must not displace.
|
|
235
|
+
if (!leaf.pushedConstraints || leaf.pushedConstraints.length === 0) {
|
|
236
|
+
log('decline: seek leaf records no pushed constraints');
|
|
237
|
+
return null;
|
|
238
|
+
}
|
|
239
|
+
const residual = combineResidualExpressions(leaf.pushedConstraints.map(c => c.sourceExpression));
|
|
240
|
+
if (!residual) {
|
|
241
|
+
log('decline: seek leaf pushed constraints combine to no predicate');
|
|
242
|
+
return null;
|
|
243
|
+
}
|
|
244
|
+
// Gate 3: this rule runs in PostOptimization, so an expression re-inserted
|
|
245
|
+
// here gets no further optimization pass — an unphysicalized relational
|
|
246
|
+
// subquery inside it would reach emit unprepared. Constraint extraction
|
|
247
|
+
// should never produce one; this gate makes that independent of the
|
|
248
|
+
// extractor's behaviour.
|
|
249
|
+
if (hasRelationalDescendant(residual)) {
|
|
250
|
+
log('decline: seek leaf pushed predicate contains a relational node');
|
|
199
251
|
return null;
|
|
200
252
|
}
|
|
201
|
-
|
|
253
|
+
// Gate 4: `index-nested-loop` builds seeks whose keys — and therefore whose
|
|
254
|
+
// pushedConstraints — reference the OUTER side of a nested-loop join.
|
|
255
|
+
// Re-applying such a predicate above the semi join would still be correct,
|
|
256
|
+
// but the node drains the key source once per outer row, turning a linear
|
|
257
|
+
// plan quadratic. Same test `admitJoin` applies to the key source.
|
|
258
|
+
if (isCorrelatedSubquery(leaf)) {
|
|
259
|
+
log('decline: seek leaf is correlated (per-outer-row seek)');
|
|
260
|
+
return null;
|
|
261
|
+
}
|
|
262
|
+
// Gate 5: `seekPreservesTargetOrder` is false for every IndexSeekNode (it
|
|
263
|
+
// requires an ordering-only index walk whose index is the seek index), so a
|
|
264
|
+
// seek target can never reproduce an absorbed Sort's order — one ordering
|
|
265
|
+
// doctrine with the walk arm's gate in `ruleKeySetSeek`, resolved here
|
|
266
|
+
// because no pushdown could change the answer.
|
|
267
|
+
if (leaf.orderingLoadBearing) {
|
|
268
|
+
log('decline: seek leaf emission order is load-bearing (absorbed a Sort)');
|
|
269
|
+
return null;
|
|
270
|
+
}
|
|
271
|
+
return { leaf, residual };
|
|
202
272
|
}
|
|
203
273
|
/**
|
|
204
274
|
* Resolve the equi-pair to a target column index, then apply the two type gates
|
|
@@ -219,11 +289,32 @@ function resolveSeekColumns(leaf, right, leftAttrId, rightAttrId) {
|
|
|
219
289
|
}
|
|
220
290
|
const targetType = leaf.getAttributes()[seekCol].type;
|
|
221
291
|
const keyType = right.getAttributes()[keyIdx].type;
|
|
222
|
-
//
|
|
223
|
-
//
|
|
224
|
-
//
|
|
225
|
-
|
|
226
|
-
|
|
292
|
+
// One seek key space only. Identical types qualify; so does any pair drawn
|
|
293
|
+
// from INTEGER / REAL / NUMERIC, whose keys are identified by VALUE rather
|
|
294
|
+
// than by JS representation at every layer (see `sharesSeekKeySpace`). The
|
|
295
|
+
// key value is passed through RAW — coercing it into the target's type would
|
|
296
|
+
// truncate (`INTEGER_TYPE.parse(1.5)` → 1) and mint a key for a value `=`
|
|
297
|
+
// calls unequal. Any other cross-type pair could be encoded into seek keys
|
|
298
|
+
// that miss rows `=` considers equal, and the probe cannot resurrect a row
|
|
299
|
+
// the seek never returned.
|
|
300
|
+
//
|
|
301
|
+
// NOTE: a NaN seek key cannot under-fetch, so it needs no special handling
|
|
302
|
+
// here. A NaN key's probe string is `n:NaN`, which matches only a stored NaN.
|
|
303
|
+
// On the memory backend, REAL/NUMERIC rank NaN first and NaN = NaN in the
|
|
304
|
+
// very comparator their BTrees are built with, so the seek lands on the NaN
|
|
305
|
+
// entries; an INTEGER-declared column cannot hold NaN at all
|
|
306
|
+
// (`INTEGER_TYPE.validate` rejects it), so there is no row to miss — its
|
|
307
|
+
// comparator ranking NaN equal to everything can only over-fetch, which the
|
|
308
|
+
// probe trims. On the store backend `encodeNumeric` maps every NaN to one
|
|
309
|
+
// byte string (above every finite double), so the window is exactly the NaN
|
|
310
|
+
// rows. Dropping NaN keys the way NULL keys are dropped would be WRONG: it
|
|
311
|
+
// would under-fetch a genuinely NaN-valued row in a REAL/NUMERIC column.
|
|
312
|
+
// The reasoning is defensive: no builtin SQL surface produces a stored NaN —
|
|
313
|
+
// `0.0/0.0`, `1e308*1e308`, `sqrt(-1)` and `cast('nan' as real)` all yield NULL
|
|
314
|
+
// or 0, and a NaN bound as a parameter arrives as NULL. Only a plugin type,
|
|
315
|
+
// module or UDF can mint one.
|
|
316
|
+
if (!sharesSeekKeySpace(targetType.logicalType, keyType.logicalType)) {
|
|
317
|
+
log('decline: %s and %s do not share a seek key space', targetType.logicalType.name, keyType.logicalType.name);
|
|
227
318
|
return null;
|
|
228
319
|
}
|
|
229
320
|
// Semantic-ordering types ('PT1H' equals 'PT60M' but is byte-distinct): a
|
|
@@ -236,20 +327,6 @@ function resolveSeekColumns(leaf, right, leftAttrId, rightAttrId) {
|
|
|
236
327
|
}
|
|
237
328
|
return { seekCol, targetType, keyType };
|
|
238
329
|
}
|
|
239
|
-
/** Build the probe request `createIndexBasedAccess` would (identical `columns` mapping). */
|
|
240
|
-
function buildProbeRequest(tableSchema, tableRows, filters) {
|
|
241
|
-
return {
|
|
242
|
-
columns: tableSchema.columns.map((col, index) => ({
|
|
243
|
-
index,
|
|
244
|
-
name: col.name,
|
|
245
|
-
type: col.logicalType,
|
|
246
|
-
isPrimaryKey: col.primaryKey || false,
|
|
247
|
-
isUnique: col.primaryKey || false,
|
|
248
|
-
})),
|
|
249
|
-
filters,
|
|
250
|
-
estimatedRows: tableRows,
|
|
251
|
-
};
|
|
252
|
-
}
|
|
253
330
|
/** A seek probe's claim, when the module accepted the runtime-set filter cleanly. */
|
|
254
331
|
function claimedIndex(plan, seekCol) {
|
|
255
332
|
if (plan.handledFilters[0] !== true)
|
|
@@ -267,14 +344,14 @@ function claimedIndex(plan, seekCol) {
|
|
|
267
344
|
return plan.indexName;
|
|
268
345
|
}
|
|
269
346
|
/**
|
|
270
|
-
* The module's answers to the
|
|
271
|
-
*
|
|
272
|
-
*
|
|
273
|
-
* the cost slope is well defined.
|
|
347
|
+
* The module's answers to the synthesized requests: its cost for a runtime-set
|
|
348
|
+
* seek at two key counts (2 and the engine ceiling), plus the cost of the plan
|
|
349
|
+
* the seek branch would displace. `maxCount` 2 rather than 1 keeps the two
|
|
350
|
+
* seek points distinct so the cost slope is well defined.
|
|
274
351
|
*
|
|
275
352
|
* These requests are the ENGINE's, not the user's: a module that answers one
|
|
276
353
|
* with a plan `validateAccessPlan` rejects gets logged and declined, leaving the
|
|
277
|
-
*
|
|
354
|
+
* incoming semi join — the same disposition as every other gate. Failing the query
|
|
278
355
|
* instead would let a synthesized probe break a predicate that ran fine before.
|
|
279
356
|
*/
|
|
280
357
|
function probeModuleCosts(context, leaf, seekCol, keyRowsEstimate) {
|
|
@@ -305,10 +382,17 @@ function probeModuleCosts(context, leaf, seekCol, keyRowsEstimate) {
|
|
|
305
382
|
return plan;
|
|
306
383
|
};
|
|
307
384
|
try {
|
|
385
|
+
// The plan the seek branch displaces. A constrained leaf already records
|
|
386
|
+
// the module's cost for its own seek (`filterInfo.indexInfoOutput.
|
|
387
|
+
// estimatedCost` is `accessPlan.cost` verbatim — `makeIndexFilterInfo`
|
|
388
|
+
// spreads a base seeded with it and never overrides the field); an
|
|
389
|
+
// unconstrained walk has to be asked.
|
|
308
390
|
return {
|
|
309
391
|
seekAt2: ask([runtimeSetFilter(2)]),
|
|
310
392
|
seekAtMax: ask([runtimeSetFilter(RUNTIME_SET_MAX_KEYS)]),
|
|
311
|
-
|
|
393
|
+
baselineCost: leaf instanceof IndexSeekNode
|
|
394
|
+
? leaf.filterInfo.indexInfoOutput.estimatedCost
|
|
395
|
+
: ask([]).cost,
|
|
312
396
|
};
|
|
313
397
|
}
|
|
314
398
|
catch (e) {
|
|
@@ -370,30 +454,56 @@ function planPushdown(context, leaf, right, cols) {
|
|
|
370
454
|
};
|
|
371
455
|
}
|
|
372
456
|
/**
|
|
373
|
-
*
|
|
374
|
-
*
|
|
375
|
-
*
|
|
376
|
-
*
|
|
377
|
-
*
|
|
457
|
+
* Absorbs floating-point jitter in the break-even solve before `Math.floor`.
|
|
458
|
+
* The tie case is real, not hypothetical: the memory module prices a k-key
|
|
459
|
+
* runtime-set seek and a k-row literal equality seek with one formula, so a
|
|
460
|
+
* pushed single-row equality baseline lands EXACTLY on the interpolation line
|
|
461
|
+
* at k=1 — in exact arithmetic the floor yields 1 (accept at the tie; a
|
|
462
|
+
* cost-equal seek is harmless), but the subtract-then-divide can land a hair
|
|
463
|
+
* under the integer and turn the tie into a decline.
|
|
464
|
+
*
|
|
465
|
+
* NOTE: the consequence on the memory module is that an equality-pushed seek
|
|
466
|
+
* target always lands on `breakEvenKeys === 1`, so the plan is rewritten but
|
|
467
|
+
* the runtime seek branch fires only for a one-key set. That is the module's
|
|
468
|
+
* own verdict (it prices both seeks off the seek-key count and knows nothing
|
|
469
|
+
* of how many rows each window holds), not an engine choice. A module that
|
|
470
|
+
* prices an equality seek from its matched-row count — the store does — yields
|
|
471
|
+
* a break-even that discriminates, and the seek branch fires accordingly.
|
|
472
|
+
*/
|
|
473
|
+
const BREAK_EVEN_EPSILON = 1e-9;
|
|
474
|
+
/**
|
|
475
|
+
* The distinct key count at which the module's own seek cost overtakes the
|
|
476
|
+
* cost of the plan being displaced (the plain scan for a walk leaf, the leaf's
|
|
477
|
+
* own pushed seek for a seek leaf). Interpolates the runtime-set seek cost as
|
|
478
|
+
* a linear function of key count through the two probe points and solves
|
|
479
|
+
* against the baseline. The linear fit is an approximation, but it is the
|
|
480
|
+
* MODULE's approximation — cost authority stays with the module rather than a
|
|
481
|
+
* second cost model living in the optimizer.
|
|
482
|
+
*
|
|
483
|
+
* A flat-or-falling seek cost (`slope <= 0`) never overtakes the baseline, so
|
|
484
|
+
* the engine ceiling becomes the threshold. A baseline cheaper than a two-key
|
|
485
|
+
* seek interpolates below 1 and the caller declines — for a seek leaf that is
|
|
486
|
+
* the honest "the pushed seek beats any key-set seek" answer.
|
|
378
487
|
*
|
|
379
|
-
*
|
|
380
|
-
*
|
|
381
|
-
*
|
|
488
|
+
* NOTE: the comparison charges nothing for the re-applied predicate's per-row
|
|
489
|
+
* evaluation on a seek leaf's seek branch. It is bounded by the number of rows
|
|
490
|
+
* the seek returns (≤ key count), so it cannot flip a decision by much.
|
|
382
491
|
*/
|
|
383
492
|
function interpolateBreakEven(costs) {
|
|
384
493
|
const slope = (costs.seekAtMax.cost - costs.seekAt2.cost) / (RUNTIME_SET_MAX_KEYS - 2);
|
|
385
494
|
if (slope <= 0)
|
|
386
495
|
return RUNTIME_SET_MAX_KEYS;
|
|
387
|
-
return Math.max(0, Math.min(RUNTIME_SET_MAX_KEYS, Math.floor(2 + (costs.
|
|
496
|
+
return Math.max(0, Math.min(RUNTIME_SET_MAX_KEYS, Math.floor(2 + (costs.baselineCost - costs.seekAt2.cost) / slope + BREAK_EVEN_EPSILON)));
|
|
388
497
|
}
|
|
389
498
|
export function ruleKeySetSeek(node, context) {
|
|
390
|
-
if (!(node instanceof BloomJoinNode))
|
|
499
|
+
if (!(node instanceof BloomJoinNode) && !(node instanceof MergeJoinNode))
|
|
391
500
|
return null;
|
|
392
501
|
if (!admitJoin(node))
|
|
393
502
|
return null;
|
|
394
|
-
const
|
|
395
|
-
if (!
|
|
503
|
+
const admitted = admitLeaf(node.left);
|
|
504
|
+
if (!admitted)
|
|
396
505
|
return null;
|
|
506
|
+
const { leaf, residual } = admitted;
|
|
397
507
|
const pair = node.equiPairs[0];
|
|
398
508
|
const cols = resolveSeekColumns(leaf, node.right, pair.leftAttrId, pair.rightAttrId);
|
|
399
509
|
if (!cols)
|
|
@@ -401,8 +511,59 @@ export function ruleKeySetSeek(node, context) {
|
|
|
401
511
|
const pushdown = planPushdown(context, leaf, node.right, cols);
|
|
402
512
|
if (!pushdown)
|
|
403
513
|
return null;
|
|
514
|
+
// A leaf whose emission order absorbed a SortNode (sort absorption in
|
|
515
|
+
// rule-grow-retrieve, before this join existed) is the only thing producing
|
|
516
|
+
// the query's ORDER BY: the join preserves probe order at runtime, and the
|
|
517
|
+
// replacement must keep serving that order. When the seek index is the walk
|
|
518
|
+
// index (`seekPreservesTargetOrder`) both runtime branches emit in the
|
|
519
|
+
// leaf's own order and the absorbed Sort stays served; otherwise a pushed
|
|
520
|
+
// multi-seek would emit in seek-key order — decline, keeping the
|
|
521
|
+
// order-preserving join.
|
|
522
|
+
if (leaf instanceof IndexScanNode && leaf.orderingLoadBearing
|
|
523
|
+
&& !seekPreservesTargetOrder(leaf, pushdown)) {
|
|
524
|
+
log('decline: leaf emission order is load-bearing (absorbed a Sort) and the seek would not reproduce it');
|
|
525
|
+
return null;
|
|
526
|
+
}
|
|
527
|
+
if (node instanceof MergeJoinNode) {
|
|
528
|
+
// Merge-arm-only gate 1: the merge join propagates the probe side's
|
|
529
|
+
// ordering / monotonicOn upward for semi, so an ancestor (or an already
|
|
530
|
+
// dropped Sort) may depend on that order. The replacement must be able
|
|
531
|
+
// to claim the same order — KeySetSemiJoinNode does so exactly when
|
|
532
|
+
// this predicate holds. (The hash arm needs no such gate: BloomJoinNode
|
|
533
|
+
// propagates no ordering, so nothing above it can have depended on one.)
|
|
534
|
+
if (!seekPreservesTargetOrder(leaf, pushdown)) {
|
|
535
|
+
log('decline: merge join propagates the probe order and the seek cannot reproduce it');
|
|
536
|
+
return null;
|
|
537
|
+
}
|
|
538
|
+
// Merge-arm-only gate 2: do not trade a streaming operator for an
|
|
539
|
+
// unbounded materialization. When the key source's row estimate already
|
|
540
|
+
// exceeds the runtime's own seek threshold — the same expression
|
|
541
|
+
// `emitKeySetSemiJoin` uses for its `push` decision — the seek is very
|
|
542
|
+
// unlikely to fire and the rewrite is then pure loss: the same scan the
|
|
543
|
+
// merge join did, plus a probe Set the merge join never built. Heuristic
|
|
544
|
+
// in both directions (the estimate is advisory, and it counts ROWS where
|
|
545
|
+
// the runtime counts DISTINCT non-null keys), so it can only cost an
|
|
546
|
+
// optimization, never a row. Absent estimate ⇒ proceed, the same posture
|
|
547
|
+
// the rest of the rule takes toward advisory numbers. The PHYSICAL
|
|
548
|
+
// estimate is read because the logical `estimatedRows` getter reads
|
|
549
|
+
// `undefined` through a physical access node. NOTE: inert on the memory
|
|
550
|
+
// backend today (its row estimate for a freshly-populated table reads 0)
|
|
551
|
+
// — this gate exists for modules that report real cardinality.
|
|
552
|
+
const keyRows = node.right.physical.estimatedRows;
|
|
553
|
+
if (keyRows !== undefined && keyRows > Math.min(pushdown.maxKeys, pushdown.breakEvenKeys)) {
|
|
554
|
+
log('decline: key source estimate %d exceeds the seek threshold min(%d, %d)', keyRows, pushdown.maxKeys, pushdown.breakEvenKeys);
|
|
555
|
+
return null;
|
|
556
|
+
}
|
|
557
|
+
}
|
|
404
558
|
const keySetJoin = new KeySetSemiJoinNode(node.scope, leaf, node.right, pair.leftAttrId, pair.rightAttrId, pushdown);
|
|
405
|
-
|
|
406
|
-
|
|
559
|
+
// For a seek target, re-apply the module-enforced predicate DIRECTLY above
|
|
560
|
+
// the node — inside the peeled wrappers, because a peeled trivial Project
|
|
561
|
+
// may not carry the predicate's columns. The node exposes the target's full
|
|
562
|
+
// attribute set, so the predicate's column references resolve here.
|
|
563
|
+
const replacement = residual !== undefined
|
|
564
|
+
? new FilterNode(leaf.scope, keySetJoin, residual)
|
|
565
|
+
: keySetJoin;
|
|
566
|
+
log('Replaced %s semi join with KeySetSemiJoin on %s.%s via %s (breakEven=%d%s)', node instanceof MergeJoinNode ? 'merge' : 'hash', leaf.tableSchema.name, leaf.tableSchema.columns[cols.seekCol]?.name, pushdown.indexName, pushdown.breakEvenKeys, residual !== undefined ? ', pushed predicate re-applied' : '');
|
|
567
|
+
return rebuildChain(node.left, leaf, replacement);
|
|
407
568
|
}
|
|
408
569
|
//# sourceMappingURL=rule-key-set-seek.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rule-key-set-seek.js","sourceRoot":"","sources":["../../../../../src/planner/rules/access/rule-key-set-seek.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"rule-key-set-seek.js","sourceRoot":"","sources":["../../../../../src/planner/rules/access/rule-key-set-seek.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rule-monotonic-range-access.d.ts","sourceRoot":"","sources":["../../../../../src/planner/rules/access/rule-monotonic-range-access.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"rule-monotonic-range-access.d.ts","sourceRoot":"","sources":["../../../../../src/planner/rules/access/rule-monotonic-range-access.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAyN7D,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,GAAG,QAAQ,GAAG,IAAI,CAQ1F"}
|