@quereus/quereus 4.4.1 → 4.6.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/core/database-events.d.ts +99 -1
- package/dist/src/core/database-events.d.ts.map +1 -1
- package/dist/src/core/database-events.js +219 -3
- package/dist/src/core/database-events.js.map +1 -1
- package/dist/src/core/database-materialized-views-analysis.d.ts.map +1 -1
- package/dist/src/core/database-materialized-views-analysis.js +1 -0
- package/dist/src/core/database-materialized-views-analysis.js.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 +29 -2
- package/dist/src/core/database-materialized-views-plan-builders.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 +7 -1
- package/dist/src/core/database.d.ts.map +1 -1
- package/dist/src/core/database.js +20 -5
- package/dist/src/core/database.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/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 +193 -37
- 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 +11 -3
- 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 +39 -1
- package/dist/src/func/registration.d.ts.map +1 -1
- package/dist/src/func/registration.js +236 -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 +14 -5
- package/dist/src/index.js.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 +160 -44
- package/dist/src/parser/parser.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/coarsened-key.d.ts +4 -3
- package/dist/src/planner/analysis/coarsened-key.d.ts.map +1 -1
- package/dist/src/planner/analysis/coarsened-key.js +37 -3
- package/dist/src/planner/analysis/coarsened-key.js.map +1 -1
- package/dist/src/planner/analysis/comparison-collation.d.ts +41 -13
- package/dist/src/planner/analysis/comparison-collation.d.ts.map +1 -1
- package/dist/src/planner/analysis/comparison-collation.js +51 -14
- 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 +13 -2
- package/dist/src/planner/analysis/coverage-prover.d.ts.map +1 -1
- package/dist/src/planner/analysis/coverage-prover.js +10 -14
- package/dist/src/planner/analysis/coverage-prover.js.map +1 -1
- package/dist/src/planner/analysis/predicate-conjuncts.d.ts +10 -4
- package/dist/src/planner/analysis/predicate-conjuncts.d.ts.map +1 -1
- package/dist/src/planner/analysis/predicate-conjuncts.js +28 -7
- package/dist/src/planner/analysis/predicate-conjuncts.js.map +1 -1
- package/dist/src/planner/analysis/query-rewrite-matcher.d.ts.map +1 -1
- package/dist/src/planner/analysis/query-rewrite-matcher.js +8 -27
- package/dist/src/planner/analysis/query-rewrite-matcher.js.map +1 -1
- package/dist/src/planner/analysis/scalar-subqueries.d.ts +22 -3
- package/dist/src/planner/analysis/scalar-subqueries.d.ts.map +1 -1
- package/dist/src/planner/analysis/scalar-subqueries.js +32 -3
- package/dist/src/planner/analysis/scalar-subqueries.js.map +1 -1
- package/dist/src/planner/analysis/set-op-type-merge.d.ts +64 -0
- package/dist/src/planner/analysis/set-op-type-merge.d.ts.map +1 -0
- package/dist/src/planner/analysis/set-op-type-merge.js +97 -0
- package/dist/src/planner/analysis/set-op-type-merge.js.map +1 -0
- package/dist/src/planner/building/alter-table.d.ts.map +1 -1
- package/dist/src/planner/building/alter-table.js +65 -27
- package/dist/src/planner/building/alter-table.js.map +1 -1
- package/dist/src/planner/building/coercion.d.ts +54 -0
- package/dist/src/planner/building/coercion.d.ts.map +1 -0
- package/dist/src/planner/building/coercion.js +88 -0
- package/dist/src/planner/building/coercion.js.map +1 -0
- package/dist/src/planner/building/constraint-builder.d.ts.map +1 -1
- package/dist/src/planner/building/constraint-builder.js +5 -18
- package/dist/src/planner/building/constraint-builder.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 +23 -115
- package/dist/src/planner/building/expression.js.map +1 -1
- package/dist/src/planner/building/function-call.d.ts.map +1 -1
- package/dist/src/planner/building/function-call.js +13 -0
- package/dist/src/planner/building/function-call.js.map +1 -1
- package/dist/src/planner/building/select-aggregates.d.ts +1 -1
- package/dist/src/planner/building/select-aggregates.d.ts.map +1 -1
- package/dist/src/planner/building/select-aggregates.js +53 -2
- package/dist/src/planner/building/select-aggregates.js.map +1 -1
- package/dist/src/planner/building/select-compound.d.ts.map +1 -1
- package/dist/src/planner/building/select-compound.js +10 -6
- package/dist/src/planner/building/select-compound.js.map +1 -1
- package/dist/src/planner/building/select-context.d.ts +7 -0
- package/dist/src/planner/building/select-context.d.ts.map +1 -1
- package/dist/src/planner/building/select-context.js +10 -40
- package/dist/src/planner/building/select-context.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 +112 -51
- package/dist/src/planner/building/select.js.map +1 -1
- package/dist/src/planner/cost/conjunct-cost.d.ts +82 -0
- package/dist/src/planner/cost/conjunct-cost.d.ts.map +1 -0
- package/dist/src/planner/cost/conjunct-cost.js +107 -0
- package/dist/src/planner/cost/conjunct-cost.js.map +1 -0
- 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/mutation/propagate.d.ts.map +1 -1
- package/dist/src/planner/mutation/propagate.js +1 -0
- package/dist/src/planner/mutation/propagate.js.map +1 -1
- package/dist/src/planner/nodes/aggregate-node.d.ts +6 -0
- package/dist/src/planner/nodes/aggregate-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/aggregate-node.js +10 -2
- 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 +24 -8
- package/dist/src/planner/nodes/alter-table-node.d.ts.map +1 -1
- 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/async-gather-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/async-gather-node.js +19 -8
- package/dist/src/planner/nodes/async-gather-node.js.map +1 -1
- package/dist/src/planner/nodes/bloom-join-node.d.ts +2 -0
- package/dist/src/planner/nodes/bloom-join-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/bloom-join-node.js +17 -7
- 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/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/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 +12 -5
- package/dist/src/planner/nodes/filter.js.map +1 -1
- package/dist/src/planner/nodes/hash-aggregate.d.ts +6 -0
- package/dist/src/planner/nodes/hash-aggregate.d.ts.map +1 -1
- package/dist/src/planner/nodes/hash-aggregate.js +10 -2
- package/dist/src/planner/nodes/hash-aggregate.js.map +1 -1
- package/dist/src/planner/nodes/join-node.d.ts +25 -1
- package/dist/src/planner/nodes/join-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/join-node.js +38 -10
- package/dist/src/planner/nodes/join-node.js.map +1 -1
- package/dist/src/planner/nodes/join-utils.d.ts +78 -0
- package/dist/src/planner/nodes/join-utils.d.ts.map +1 -1
- package/dist/src/planner/nodes/join-utils.js +73 -0
- package/dist/src/planner/nodes/join-utils.js.map +1 -1
- package/dist/src/planner/nodes/key-set-semi-join-node.d.ts +87 -0
- package/dist/src/planner/nodes/key-set-semi-join-node.d.ts.map +1 -0
- package/dist/src/planner/nodes/key-set-semi-join-node.js +141 -0
- package/dist/src/planner/nodes/key-set-semi-join-node.js.map +1 -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 +2 -0
- package/dist/src/planner/nodes/merge-join-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/merge-join-node.js +21 -8
- 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-type.d.ts +1 -0
- package/dist/src/planner/nodes/plan-node-type.d.ts.map +1 -1
- package/dist/src/planner/nodes/plan-node-type.js +1 -0
- package/dist/src/planner/nodes/plan-node-type.js.map +1 -1
- package/dist/src/planner/nodes/plan-node.d.ts +24 -0
- package/dist/src/planner/nodes/plan-node.d.ts.map +1 -1
- 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 +2 -1
- 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.map +1 -1
- package/dist/src/planner/nodes/retrieve-node.js +2 -1
- package/dist/src/planner/nodes/retrieve-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/set-operation-node.d.ts +68 -16
- package/dist/src/planner/nodes/set-operation-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/set-operation-node.js +147 -26
- package/dist/src/planner/nodes/set-operation-node.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 +6 -0
- package/dist/src/planner/nodes/stream-aggregate.d.ts.map +1 -1
- package/dist/src/planner/nodes/stream-aggregate.js +10 -2
- package/dist/src/planner/nodes/stream-aggregate.js.map +1 -1
- package/dist/src/planner/nodes/table-access-nodes.d.ts +19 -1
- package/dist/src/planner/nodes/table-access-nodes.d.ts.map +1 -1
- package/dist/src/planner/nodes/table-access-nodes.js +18 -2
- package/dist/src/planner/nodes/table-access-nodes.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 +9 -1
- package/dist/src/planner/optimizer.d.ts.map +1 -1
- package/dist/src/planner/optimizer.js +126 -6
- package/dist/src/planner/optimizer.js.map +1 -1
- package/dist/src/planner/rules/access/rule-key-set-seek.d.ts +68 -0
- package/dist/src/planner/rules/access/rule-key-set-seek.d.ts.map +1 -0
- package/dist/src/planner/rules/access/rule-key-set-seek.js +343 -0
- package/dist/src/planner/rules/access/rule-key-set-seek.js.map +1 -0
- 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 +46 -0
- 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 +54 -13
- package/dist/src/planner/rules/access/rule-select-access-path.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 +9 -0
- package/dist/src/planner/rules/cache/rule-cte-optimization.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 +49 -49
- package/dist/src/planner/rules/join/equi-pair-extractor.d.ts.map +1 -1
- package/dist/src/planner/rules/join/equi-pair-extractor.js +54 -58
- 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 +285 -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-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 +97 -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.map +1 -1
- package/dist/src/planner/rules/join/rule-monotonic-merge-join.js +15 -5
- package/dist/src/planner/rules/join/rule-monotonic-merge-join.js.map +1 -1
- package/dist/src/planner/rules/predicate/rule-empty-relation-folding.d.ts +1 -1
- package/dist/src/planner/rules/predicate/rule-empty-relation-folding.js +1 -1
- package/dist/src/planner/rules/predicate/rule-filter-conjunct-ordering.d.ts +43 -0
- package/dist/src/planner/rules/predicate/rule-filter-conjunct-ordering.d.ts.map +1 -0
- package/dist/src/planner/rules/predicate/rule-filter-conjunct-ordering.js +119 -0
- package/dist/src/planner/rules/predicate/rule-filter-conjunct-ordering.js.map +1 -0
- package/dist/src/planner/rules/predicate/rule-filter-selectivity.d.ts +44 -3
- package/dist/src/planner/rules/predicate/rule-filter-selectivity.d.ts.map +1 -1
- package/dist/src/planner/rules/predicate/rule-filter-selectivity.js +142 -18
- package/dist/src/planner/rules/predicate/rule-filter-selectivity.js.map +1 -1
- package/dist/src/planner/rules/predicate/rule-join-predicate-pushdown.d.ts +73 -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 +205 -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 +10 -2
- package/dist/src/planner/rules/predicate/rule-predicate-pushdown.d.ts.map +1 -1
- package/dist/src/planner/rules/predicate/rule-predicate-pushdown.js +20 -2
- package/dist/src/planner/rules/predicate/rule-predicate-pushdown.js.map +1 -1
- package/dist/src/planner/rules/retrieve/rule-grow-retrieve.d.ts.map +1 -1
- package/dist/src/planner/rules/retrieve/rule-grow-retrieve.js +18 -3
- package/dist/src/planner/rules/retrieve/rule-grow-retrieve.js.map +1 -1
- package/dist/src/planner/rules/shared/access-leaf.d.ts +39 -0
- package/dist/src/planner/rules/shared/access-leaf.d.ts.map +1 -0
- package/dist/src/planner/rules/shared/access-leaf.js +79 -0
- package/dist/src/planner/rules/shared/access-leaf.js.map +1 -0
- package/dist/src/planner/rules/shared/index-style-context.d.ts +17 -0
- package/dist/src/planner/rules/shared/index-style-context.d.ts.map +1 -1
- package/dist/src/planner/rules/shared/index-style-context.js +7 -0
- package/dist/src/planner/rules/shared/index-style-context.js.map +1 -1
- 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 +18 -8
- 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 +27 -10
- 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 +24 -6
- package/dist/src/planner/rules/subquery/rule-subquery-decorrelation.d.ts.map +1 -1
- package/dist/src/planner/rules/subquery/rule-subquery-decorrelation.js +243 -70
- 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 +87 -4
- package/dist/src/planner/stats/catalog-stats.d.ts.map +1 -1
- package/dist/src/planner/stats/catalog-stats.js +250 -28
- 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 +36 -2
- 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/selectivity-combine.d.ts +53 -0
- package/dist/src/planner/stats/selectivity-combine.d.ts.map +1 -0
- package/dist/src/planner/stats/selectivity-combine.js +75 -0
- package/dist/src/planner/stats/selectivity-combine.js.map +1 -0
- 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/util/column-origins.d.ts +79 -0
- package/dist/src/planner/util/column-origins.d.ts.map +1 -0
- package/dist/src/planner/util/column-origins.js +150 -0
- package/dist/src/planner/util/column-origins.js.map +1 -0
- 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 +56 -17
- package/dist/src/planner/util/ind-utils.d.ts.map +1 -1
- package/dist/src/planner/util/ind-utils.js +82 -21
- package/dist/src/planner/util/ind-utils.js.map +1 -1
- package/dist/src/planner/util/key-utils.d.ts +20 -2
- package/dist/src/planner/util/key-utils.d.ts.map +1 -1
- package/dist/src/planner/util/key-utils.js +37 -3
- package/dist/src/planner/util/key-utils.js.map +1 -1
- package/dist/src/planner/util/row-estimates.d.ts +28 -0
- package/dist/src/planner/util/row-estimates.d.ts.map +1 -0
- package/dist/src/planner/util/row-estimates.js +40 -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 +40 -0
- package/dist/src/runtime/deferred-constraint-queue.d.ts.map +1 -1
- package/dist/src/runtime/deferred-constraint-queue.js +90 -9
- 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 +39 -1
- 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 +42 -0
- package/dist/src/runtime/emit/alter-schema-event.d.ts.map +1 -0
- package/dist/src/runtime/emit/alter-schema-event.js +28 -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 +386 -154
- 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 +35 -3
- package/dist/src/runtime/emit/analyze.js.map +1 -1
- package/dist/src/runtime/emit/asof-scan.d.ts.map +1 -1
- package/dist/src/runtime/emit/asof-scan.js +8 -3
- package/dist/src/runtime/emit/asof-scan.js.map +1 -1
- package/dist/src/runtime/emit/between.d.ts.map +1 -1
- package/dist/src/runtime/emit/between.js +4 -38
- package/dist/src/runtime/emit/between.js.map +1 -1
- package/dist/src/runtime/emit/binary.d.ts.map +1 -1
- package/dist/src/runtime/emit/binary.js +2 -23
- package/dist/src/runtime/emit/binary.js.map +1 -1
- package/dist/src/runtime/emit/bloom-join.d.ts.map +1 -1
- package/dist/src/runtime/emit/bloom-join.js +6 -35
- package/dist/src/runtime/emit/bloom-join.js.map +1 -1
- package/dist/src/runtime/emit/case.d.ts.map +1 -1
- package/dist/src/runtime/emit/case.js +40 -6
- package/dist/src/runtime/emit/case.js.map +1 -1
- 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 +32 -8
- package/dist/src/runtime/emit/constraint-check.js.map +1 -1
- package/dist/src/runtime/emit/dml-executor.d.ts.map +1 -1
- package/dist/src/runtime/emit/dml-executor.js +90 -50
- package/dist/src/runtime/emit/dml-executor.js.map +1 -1
- 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/filter.d.ts +18 -0
- package/dist/src/runtime/emit/filter.d.ts.map +1 -1
- package/dist/src/runtime/emit/filter.js +52 -10
- package/dist/src/runtime/emit/filter.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-key-extractor.d.ts +46 -0
- package/dist/src/runtime/emit/join-key-extractor.d.ts.map +1 -0
- package/dist/src/runtime/emit/join-key-extractor.js +60 -0
- package/dist/src/runtime/emit/join-key-extractor.js.map +1 -0
- package/dist/src/runtime/emit/join.d.ts.map +1 -1
- package/dist/src/runtime/emit/join.js +8 -46
- package/dist/src/runtime/emit/join.js.map +1 -1
- package/dist/src/runtime/emit/key-set-semi-join.d.ts +29 -0
- package/dist/src/runtime/emit/key-set-semi-join.d.ts.map +1 -0
- package/dist/src/runtime/emit/key-set-semi-join.js +149 -0
- package/dist/src/runtime/emit/key-set-semi-join.js.map +1 -0
- package/dist/src/runtime/emit/merge-join.d.ts.map +1 -1
- package/dist/src/runtime/emit/merge-join.js +15 -8
- package/dist/src/runtime/emit/merge-join.js.map +1 -1
- package/dist/src/runtime/emit/operand-comparator.d.ts +70 -0
- package/dist/src/runtime/emit/operand-comparator.d.ts.map +1 -0
- package/dist/src/runtime/emit/operand-comparator.js +93 -0
- package/dist/src/runtime/emit/operand-comparator.js.map +1 -0
- package/dist/src/runtime/emit/scan.d.ts.map +1 -1
- package/dist/src/runtime/emit/scan.js +11 -2
- package/dist/src/runtime/emit/scan.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/window.js +36 -23
- package/dist/src/runtime/emit/window.js.map +1 -1
- package/dist/src/runtime/parallel-driver.d.ts +5 -2
- package/dist/src/runtime/parallel-driver.d.ts.map +1 -1
- package/dist/src/runtime/parallel-driver.js +6 -2
- package/dist/src/runtime/parallel-driver.js.map +1 -1
- package/dist/src/runtime/register.d.ts.map +1 -1
- package/dist/src/runtime/register.js +2 -0
- package/dist/src/runtime/register.js.map +1 -1
- package/dist/src/runtime/types.d.ts +7 -0
- package/dist/src/runtime/types.d.ts.map +1 -1
- package/dist/src/runtime/types.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 +76 -20
- package/dist/src/schema/catalog-persistability.js.map +1 -1
- package/dist/src/schema/catalog.d.ts +67 -2
- package/dist/src/schema/catalog.d.ts.map +1 -1
- package/dist/src/schema/catalog.js +194 -3
- package/dist/src/schema/catalog.js.map +1 -1
- 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/ddl-generator.d.ts.map +1 -1
- package/dist/src/schema/ddl-generator.js +19 -6
- package/dist/src/schema/ddl-generator.js.map +1 -1
- package/dist/src/schema/function.d.ts +40 -0
- 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/manager.d.ts +84 -7
- package/dist/src/schema/manager.d.ts.map +1 -1
- package/dist/src/schema/manager.js +153 -53
- package/dist/src/schema/manager.js.map +1 -1
- package/dist/src/schema/schema-differ.d.ts.map +1 -1
- package/dist/src/schema/schema-differ.js +104 -28
- 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/types/builtin-types.d.ts +16 -0
- package/dist/src/types/builtin-types.d.ts.map +1 -1
- package/dist/src/types/builtin-types.js +76 -12
- 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/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 +41 -3
- package/dist/src/util/comparison.d.ts.map +1 -1
- package/dist/src/util/comparison.js +52 -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/best-access-plan.d.ts +87 -0
- package/dist/src/vtab/best-access-plan.d.ts.map +1 -1
- package/dist/src/vtab/best-access-plan.js +87 -0
- package/dist/src/vtab/best-access-plan.js.map +1 -1
- package/dist/src/vtab/capabilities.d.ts +1 -1
- package/dist/src/vtab/events.d.ts +5 -1
- package/dist/src/vtab/events.d.ts.map +1 -1
- package/dist/src/vtab/events.js.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 +6 -4
- package/dist/src/vtab/memory/layer/base.d.ts.map +1 -1
- package/dist/src/vtab/memory/layer/base.js +10 -7
- 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 +232 -39
- package/dist/src/vtab/memory/layer/manager.d.ts.map +1 -1
- package/dist/src/vtab/memory/layer/manager.js +657 -519
- 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 +111 -16
- package/dist/src/vtab/memory/layer/transaction.d.ts.map +1 -1
- package/dist/src/vtab/memory/layer/transaction.js +154 -51
- package/dist/src/vtab/memory/layer/transaction.js.map +1 -1
- package/dist/src/vtab/memory/module.d.ts +14 -2
- package/dist/src/vtab/memory/module.d.ts.map +1 -1
- package/dist/src/vtab/memory/module.js +53 -40
- package/dist/src/vtab/memory/module.js.map +1 -1
- package/dist/src/vtab/memory/table.d.ts +1 -1
- package/dist/src/vtab/memory/table.d.ts.map +1 -1
- package/dist/src/vtab/memory/table.js +15 -3
- package/dist/src/vtab/memory/table.js.map +1 -1
- package/dist/src/vtab/module.d.ts +51 -21
- package/dist/src/vtab/module.d.ts.map +1 -1
- package/dist/src/vtab/table.d.ts +10 -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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"async-gather-node.d.ts","sourceRoot":"","sources":["../../../../src/planner/nodes/async-gather-node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,KAAK,EACX,kBAAkB,EAClB,SAAS,EACT,kBAAkB,EAIlB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,YAAY,EAAU,MAAM,0BAA0B,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"async-gather-node.d.ts","sourceRoot":"","sources":["../../../../src/planner/nodes/async-gather-node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,KAAK,EACX,kBAAkB,EAClB,SAAS,EACT,kBAAkB,EAIlB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,YAAY,EAAU,MAAM,0BAA0B,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAkBhD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,MAAM,qBAAqB,GAC9B;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;CAAE,GAC7B;IAAE,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAA;CAAE,GACjC;IACD,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B;;;;;OAKG;IACH,QAAQ,CAAC,cAAc,EAAE,SAAS,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,CAAC;IACxD;;;;OAIG;IACH,QAAQ,CAAC,cAAc,EAAE,SAAS,MAAM,EAAE,CAAC;CAC3C,CAAC;AAEH;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC/B,wFAAwF;IACxF,QAAQ,CAAC,gBAAgB,EAAE,SAAS,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,CAAC;IAC1D,4EAA4E;IAC5E,QAAQ,CAAC,mBAAmB,EAAE,SAAS,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,CAAC;CAC7D;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,qBAAa,eAAgB,SAAQ,QAAS,YAAW,kBAAkB;aAOzD,QAAQ,EAAE,SAAS,kBAAkB,EAAE;aACvC,UAAU,EAAE,qBAAqB;aACjC,cAAc,EAAE,MAAM;aACtB,oBAAoB,CAAC,EAAE,SAAS,SAAS,EAAE;IAT5D,SAAkB,QAAQ,4BAA4B;IACtD,OAAO,CAAC,eAAe,CAA+B;IACtD,OAAO,CAAC,eAAe,CAA0B;gBAGhD,KAAK,EAAE,KAAK,EACI,QAAQ,EAAE,SAAS,kBAAkB,EAAE,EACvC,UAAU,EAAE,qBAAqB,EACjC,cAAc,EAAE,MAAM,EACtB,oBAAoB,CAAC,EAAE,SAAS,SAAS,EAAE,YAAA;IAU5D,OAAO,CAAC,MAAM,CAAC,oBAAoB;IAiCnC;;;;;;;;;;;;;;;;;;;OAmBG;IACH,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAsG/B;;;;OAIG;IACH,OAAO,CAAC,sBAAsB;IAuB9B,qFAAqF;IACrF,kBAAkB,IAAI,eAAe;IAIrC,OAAO,CAAC,eAAe;IA4BvB;;;;;;;;;OASG;IACH,OAAO,CAAC,uBAAuB;IA6B/B,aAAa,IAAI,SAAS,SAAS,EAAE;IAIrC,OAAO,IAAI,YAAY;IAiFvB;;;;;;;OAOG;IACH,OAAO,CAAC,eAAe;IAmCvB,eAAe,CAAC,gBAAgB,EAAE,kBAAkB,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAmFpF,WAAW,IAAI,SAAS,QAAQ,EAAE;IAIlC,YAAY,IAAI,SAAS,kBAAkB,EAAE;IAI7C,YAAY,CAAC,WAAW,EAAE,SAAS,QAAQ,EAAE,GAAG,QAAQ;IAiCxD,IAAI,aAAa,IAAI,MAAM,GAAG,SAAS,CA2BtC;IAEQ,QAAQ,IAAI,MAAM;IAIlB,oBAAoB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAUxD"}
|
|
@@ -4,6 +4,7 @@ import { Cached } from '../../util/cached.js';
|
|
|
4
4
|
import { quereusError } from '../../common/errors.js';
|
|
5
5
|
import { StatusCode } from '../../common/types.js';
|
|
6
6
|
import { closeConstantBindingsOverEcs, hasSingletonFd, mergeConstantBindings, mergeDomainConstraints, mergeEquivClasses, mergeFds, shiftConstantBindings, shiftDomainConstraints, shiftEquivClasses, shiftFds, } from '../util/fd-utils.js';
|
|
7
|
+
import { mergeSetOpAdvertisedType } from '../analysis/set-op-type-merge.js';
|
|
7
8
|
/**
|
|
8
9
|
* Physical N-ary relational node that drives ≥ 2 independent (uncorrelated)
|
|
9
10
|
* child relations concurrently via {@link ParallelDriver.drive} and combines
|
|
@@ -201,8 +202,13 @@ export class AsyncGatherNode extends PlanNode {
|
|
|
201
202
|
}
|
|
202
203
|
if (this.combinator.kind === 'unionAll') {
|
|
203
204
|
// Mirror SetOperationNode.buildAttributes: keep left (children[0])
|
|
204
|
-
// attribute IDs verbatim so ORDER BY references continue to resolve
|
|
205
|
-
|
|
205
|
+
// attribute IDs verbatim so ORDER BY references continue to resolve,
|
|
206
|
+
// but carry the cross-branch merged column types (getType's unionAll
|
|
207
|
+
// derivation) so the attributes and the relation type cannot drift.
|
|
208
|
+
const mergedColumns = this.getType().columns;
|
|
209
|
+
return this.children[0].getAttributes().map((attr, i) => mergedColumns[i] && attr.type !== mergedColumns[i].type
|
|
210
|
+
? { ...attr, type: mergedColumns[i].type }
|
|
211
|
+
: attr);
|
|
206
212
|
}
|
|
207
213
|
if (this.combinator.kind === 'zipByKey') {
|
|
208
214
|
return this.buildZipByKeyAttributes();
|
|
@@ -259,19 +265,24 @@ export class AsyncGatherNode extends PlanNode {
|
|
|
259
265
|
}
|
|
260
266
|
getType() {
|
|
261
267
|
if (this.combinator.kind === 'unionAll') {
|
|
262
|
-
// Per-column
|
|
263
|
-
//
|
|
264
|
-
//
|
|
268
|
+
// Per-column logical type is the same symmetric cross-branch merge
|
|
269
|
+
// `SetOperationNode` advertises (a left-deep fold matches the unionAll
|
|
270
|
+
// chain this gather replaced); nullability is the OR across all
|
|
271
|
+
// children; isSet is false (unionAll allows duplicates). Other fields
|
|
272
|
+
// fall through from children[0].
|
|
265
273
|
const types = this.children.map(c => c.getType());
|
|
266
274
|
const baseType = types[0];
|
|
267
275
|
const columns = baseType.columns.map((baseCol, i) => {
|
|
276
|
+
let logicalType = baseCol.type.logicalType;
|
|
268
277
|
let nullable = baseCol.type.nullable;
|
|
269
278
|
for (let j = 1; j < types.length; j++) {
|
|
270
|
-
|
|
279
|
+
const childType = types[j].columns[i].type;
|
|
280
|
+
logicalType = mergeSetOpAdvertisedType(logicalType, childType.logicalType);
|
|
281
|
+
nullable = nullable || childType.nullable;
|
|
271
282
|
}
|
|
272
|
-
return nullable === baseCol.type.nullable
|
|
283
|
+
return logicalType === baseCol.type.logicalType && nullable === baseCol.type.nullable
|
|
273
284
|
? baseCol
|
|
274
|
-
: { ...baseCol, type: { ...baseCol.type, nullable
|
|
285
|
+
: { ...baseCol, type: { ...baseCol.type, logicalType, nullable } };
|
|
275
286
|
});
|
|
276
287
|
return {
|
|
277
288
|
typeClass: 'relation',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"async-gather-node.js","sourceRoot":"","sources":["../../../../src/planner/nodes/async-gather-node.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"async-gather-node.js","sourceRoot":"","sources":["../../../../src/planner/nodes/async-gather-node.ts"],"names":[],"mappings":"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"}
|
|
@@ -44,6 +44,8 @@ export declare class BloomJoinNode extends PlanNode implements BinaryRelationalN
|
|
|
44
44
|
preserveAttributeIds?: readonly Attribute[] | undefined);
|
|
45
45
|
private buildAttributes;
|
|
46
46
|
getAttributes(): Attribute[];
|
|
47
|
+
/** Pairs this join may mint value-level facts from — see {@link valueFactPairs}. */
|
|
48
|
+
private factPairs;
|
|
47
49
|
getType(): RelationType;
|
|
48
50
|
computePhysical(childrenPhysical: PhysicalProperties[]): Partial<PhysicalProperties>;
|
|
49
51
|
get estimatedRows(): number | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bloom-join-node.d.ts","sourceRoot":"","sources":["../../../../src/planner/nodes/bloom-join-node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,KAAK,kBAAkB,EAAE,KAAK,oBAAoB,EAAE,KAAK,cAAc,EAAE,KAAK,kBAAkB,EAAE,KAAK,SAAS,EAAoB,MAAM,gBAAgB,CAAC;AAC9K,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAIhD,OAAO,KAAK,EAAE,WAAW,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAE3F,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/C,OAAO,
|
|
1
|
+
{"version":3,"file":"bloom-join-node.d.ts","sourceRoot":"","sources":["../../../../src/planner/nodes/bloom-join-node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,KAAK,kBAAkB,EAAE,KAAK,oBAAoB,EAAE,KAAK,cAAc,EAAE,KAAK,kBAAkB,EAAE,KAAK,SAAS,EAAoB,MAAM,gBAAgB,CAAC;AAC9K,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAIhD,OAAO,KAAK,EAAE,WAAW,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAE3F,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/C,OAAO,EAA0J,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAG5M,YAAY,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEpD;;;;;;;;GAQG;AACH,qBAAa,aAAc,SAAQ,QAAS,YAAW,oBAAoB,EAAE,WAAW,EAAE,sBAAsB;IAQ9G,4BAA4B;aACZ,IAAI,EAAE,kBAAkB;IACxC,8CAA8C;aAC9B,KAAK,EAAE,kBAAkB;aACzB,QAAQ,EAAE,QAAQ;IAClC,2DAA2D;aAC3C,SAAS,EAAE,SAAS,YAAY,EAAE;IAClD,qDAAqD;aACrC,iBAAiB,CAAC,EAAE,cAAc;IAClD,wDAAwD;aACxC,oBAAoB,CAAC,EAAE,SAAS,SAAS,EAAE;IAjB5D,SAAkB,QAAQ,yBAAyB;IACnD,QAAQ,CAAC,aAAa,EAAG,IAAI,CAAU;IACvC,QAAQ,CAAC,wBAAwB,EAAG,IAAI,CAAU;IAClD,OAAO,CAAC,eAAe,CAAsB;gBAG5C,KAAK,EAAE,KAAK;IACZ,4BAA4B;IACZ,IAAI,EAAE,kBAAkB;IACxC,8CAA8C;IAC9B,KAAK,EAAE,kBAAkB,EACzB,QAAQ,EAAE,QAAQ;IAClC,2DAA2D;IAC3C,SAAS,EAAE,SAAS,YAAY,EAAE;IAClD,qDAAqD;IACrC,iBAAiB,CAAC,EAAE,cAAc,YAAA;IAClD,wDAAwD;IACxC,oBAAoB,CAAC,EAAE,SAAS,SAAS,EAAE,YAAA;IAY5D,OAAO,CAAC,eAAe;IAOvB,aAAa,IAAI,SAAS,EAAE;IAI5B,oFAAoF;IACpF,OAAO,CAAC,SAAS;IAIjB,OAAO,IAAI,YAAY;IAavB,eAAe,CAAC,gBAAgB,EAAE,kBAAkB,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC;IA0CpF,IAAI,aAAa,IAAI,MAAM,GAAG,SAAS,CAEtC;IAED,WAAW,IAAI,SAAS,QAAQ,EAAE;IAMlC,YAAY,IAAI,SAAS,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;IAIjE,YAAY,CAAC,WAAW,EAAE,SAAS,QAAQ,EAAE,GAAG,QAAQ;IAgCxD,WAAW,IAAI,QAAQ;IACvB,gBAAgB,IAAI,cAAc,GAAG,SAAS;IAC9C,aAAa,IAAI,kBAAkB;IACnC,cAAc,IAAI,kBAAkB;IACpC,eAAe,IAAI,SAAS,MAAM,EAAE,GAAG,SAAS;IAGhD,aAAa,IAAI,SAAS,cAAc,EAAE;IAIjC,QAAQ,IAAI,MAAM;IAKlB,oBAAoB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAUxD"}
|
|
@@ -5,7 +5,8 @@ import { StatusCode } from '../../common/types.js';
|
|
|
5
5
|
import { quereusError } from '../../common/errors.js';
|
|
6
6
|
import { hashJoinCost } from '../cost/index.js';
|
|
7
7
|
import { analyzeJoinKeyCoverage, combineJoinKeys } from '../util/key-utils.js';
|
|
8
|
-
import { buildJoinAttributes, buildJoinRelationType, estimateJoinRows, propagateJoinFds, propagateJoinInds } from './join-utils.js';
|
|
8
|
+
import { buildJoinAttributes, buildJoinRelationType, describeEquiPairs, estimateJoinRows, joinPhysicalRows, propagateJoinFds, propagateJoinInds, valueFactPairs } from './join-utils.js';
|
|
9
|
+
import { physicalSourceRows } from '../util/row-estimates.js';
|
|
9
10
|
/**
|
|
10
11
|
* Physical plan node implementing a hash (bloom) join.
|
|
11
12
|
*
|
|
@@ -57,12 +58,16 @@ export class BloomJoinNode extends PlanNode {
|
|
|
57
58
|
getAttributes() {
|
|
58
59
|
return this.attributesCache.value;
|
|
59
60
|
}
|
|
61
|
+
/** Pairs this join may mint value-level facts from — see {@link valueFactPairs}. */
|
|
62
|
+
factPairs() {
|
|
63
|
+
return valueFactPairs(this.equiPairs);
|
|
64
|
+
}
|
|
60
65
|
getType() {
|
|
61
66
|
const leftType = this.left.getType();
|
|
62
67
|
const rightType = this.right.getType();
|
|
63
68
|
const leftIndex = this.left.getAttributeIndex();
|
|
64
69
|
const rightIndex = this.right.getAttributeIndex();
|
|
65
|
-
const indexPairs = this.
|
|
70
|
+
const indexPairs = this.factPairs().map(p => ({
|
|
66
71
|
left: leftIndex.get(p.leftAttrId) ?? -1,
|
|
67
72
|
right: rightIndex.get(p.rightAttrId) ?? -1,
|
|
68
73
|
})).filter(p => p.left >= 0 && p.right >= 0);
|
|
@@ -75,16 +80,21 @@ export class BloomJoinNode extends PlanNode {
|
|
|
75
80
|
const leftAttrs = this.left.getAttributes();
|
|
76
81
|
const leftIndex = this.left.getAttributeIndex();
|
|
77
82
|
const rightIndex = this.right.getAttributeIndex();
|
|
78
|
-
// Map attribute-ID-based equi-pairs to column-index-based pairs
|
|
79
|
-
|
|
83
|
+
// Map attribute-ID-based equi-pairs to column-index-based pairs.
|
|
84
|
+
// Value-fact consumers only — see `factPairs`.
|
|
85
|
+
const indexPairs = this.factPairs().map(p => ({
|
|
80
86
|
left: leftIndex.get(p.leftAttrId) ?? -1,
|
|
81
87
|
right: rightIndex.get(p.rightAttrId) ?? -1,
|
|
82
88
|
}));
|
|
83
|
-
|
|
89
|
+
// PHYSICAL child cardinalities — the logical getters read `undefined`
|
|
90
|
+
// through a physical access node (see `physicalSourceRows`).
|
|
91
|
+
const leftRows = physicalSourceRows(leftPhys, this.left);
|
|
92
|
+
const rightRows = physicalSourceRows(rightPhys, this.right);
|
|
93
|
+
const result = analyzeJoinKeyCoverage(this.joinType, leftPhys, rightPhys, this.left.getType(), this.right.getType(), indexPairs, leftRows, rightRows, leftAttrs.length);
|
|
84
94
|
const totalCols = this.getAttributes().length;
|
|
85
95
|
const fdResult = propagateJoinFds(this.joinType, leftPhys, rightPhys, indexPairs, leftAttrs.length, totalCols, result.preservedKeys);
|
|
86
96
|
return {
|
|
87
|
-
estimatedRows: result.estimatedRows,
|
|
97
|
+
estimatedRows: joinPhysicalRows(this.joinType, result.estimatedRows, leftRows, rightRows),
|
|
88
98
|
fds: fdResult.fds,
|
|
89
99
|
equivClasses: fdResult.equivClasses,
|
|
90
100
|
constantBindings: fdResult.constantBindings,
|
|
@@ -140,7 +150,7 @@ export class BloomJoinNode extends PlanNode {
|
|
|
140
150
|
return {
|
|
141
151
|
joinType: this.joinType,
|
|
142
152
|
algorithm: 'bloom',
|
|
143
|
-
equiPairs: this.equiPairs
|
|
153
|
+
equiPairs: describeEquiPairs(this.equiPairs),
|
|
144
154
|
hasResidual: !!this.residualCondition,
|
|
145
155
|
leftRows: this.left.estimatedRows,
|
|
146
156
|
rightRows: this.right.estimatedRows,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bloom-join-node.js","sourceRoot":"","sources":["../../../../src/planner/nodes/bloom-join-node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAoH,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAG9K,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEhD,OAAO,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC/E,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,iBAAiB,EAAqB,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"bloom-join-node.js","sourceRoot":"","sources":["../../../../src/planner/nodes/bloom-join-node.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cache-node.d.ts","sourceRoot":"","sources":["../../../../src/planner/nodes/cache-node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,KAAK,kBAAkB,EAAE,KAAK,mBAAmB,EAAE,KAAK,SAAS,EAAE,KAAK,kBAAkB,EAAoB,MAAM,gBAAgB,CAAC;AACxJ,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAGhD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"cache-node.d.ts","sourceRoot":"","sources":["../../../../src/planner/nodes/cache-node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,KAAK,kBAAkB,EAAE,KAAK,mBAAmB,EAAE,KAAK,SAAS,EAAE,KAAK,kBAAkB,EAAoB,MAAM,gBAAgB,CAAC;AACxJ,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAGhD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAGpE,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,OAAO,CAAC;AAE/C;;;;;;GAMG;AACH,qBAAa,SAAU,SAAQ,QAAS,YAAW,mBAAmB,EAAE,YAAY;aAMlE,MAAM,EAAE,kBAAkB;aAC1B,QAAQ,EAAE,aAAa;aACvB,SAAS,EAAE,MAAM;IACjC;;;;;;OAMG;aACa,KAAK,EAAE,OAAO;IAf/B,QAAQ,CAAC,QAAQ,sBAAsB;IACvC,QAAQ,CAAC,cAAc,EAAG,IAAI,CAAU;gBAGvC,KAAK,EAAE,KAAK,EACI,MAAM,EAAE,kBAAkB,EAC1B,QAAQ,GAAE,aAAwB,EAClC,SAAS,GAAE,MAAc,EAAG,wCAAwC;IACpF;;;;;;OAMG;IACa,KAAK,GAAE,OAAe,EACtC,qBAAqB,CAAC,EAAE,MAAM;IAM/B,aAAa,IAAI,SAAS,SAAS,EAAE;IAIrC,OAAO,IAAI,YAAY;IAUvB,WAAW,IAAI,SAAS,CAAC,kBAAkB,CAAC;IAI5C,YAAY,IAAI,SAAS,CAAC,kBAAkB,CAAC;IAI7C,eAAe,CAAC,gBAAgB,EAAE,kBAAkB,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC;IA6BpF,YAAY,CAAC,WAAW,EAAE,SAAS,QAAQ,EAAE,GAAG,QAAQ;IA4BxD,IAAI,aAAa,IAAI,MAAM,GAAG,SAAS,CAEtC;IAED,gBAAgB,IAAI,MAAM;IAI1B,QAAQ,IAAI,OAAO;IAIV,QAAQ,IAAI,MAAM;IAIlB,oBAAoB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAQxD"}
|
|
@@ -2,6 +2,7 @@ import { PlanNodeType } from './plan-node-type.js';
|
|
|
2
2
|
import { PlanNode, isRelationalNode } from './plan-node.js';
|
|
3
3
|
import { StatusCode } from '../../common/types.js';
|
|
4
4
|
import { quereusError } from '../../common/errors.js';
|
|
5
|
+
import { physicalSourceRows } from '../util/row-estimates.js';
|
|
5
6
|
/**
|
|
6
7
|
* CacheNode provides smart caching for any relational input.
|
|
7
8
|
*
|
|
@@ -66,7 +67,7 @@ export class CacheNode extends PlanNode {
|
|
|
66
67
|
// the cache's replay iterator is not that leaf — matching the pass-through
|
|
67
68
|
// contract documented on those fields.
|
|
68
69
|
return {
|
|
69
|
-
estimatedRows: this.source
|
|
70
|
+
estimatedRows: physicalSourceRows(sourcePhysical, this.source),
|
|
70
71
|
ordering: sourcePhysical?.ordering,
|
|
71
72
|
monotonicOn: sourcePhysical?.monotonicOn,
|
|
72
73
|
fds: sourcePhysical?.fds,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cache-node.js","sourceRoot":"","sources":["../../../../src/planner/nodes/cache-node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAA8F,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAGxJ,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"cache-node.js","sourceRoot":"","sources":["../../../../src/planner/nodes/cache-node.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,6 +15,12 @@ export declare class DistinctNode extends PlanNode implements UnaryRelationalNod
|
|
|
15
15
|
getChildren(): readonly [RelationalPlanNode];
|
|
16
16
|
getRelations(): readonly [RelationalPlanNode];
|
|
17
17
|
get estimatedRows(): number | undefined;
|
|
18
|
+
/**
|
|
19
|
+
* DISTINCT's row estimate as a pure function of the source cardinality, so the
|
|
20
|
+
* logical getter and `computePhysical` (which feeds it the PHYSICAL source
|
|
21
|
+
* count) cannot drift apart.
|
|
22
|
+
*/
|
|
23
|
+
private rowsFrom;
|
|
18
24
|
toString(): string;
|
|
19
25
|
getLogicalAttributes(): Record<string, unknown>;
|
|
20
26
|
computePhysical(childrenPhysical: PhysicalProperties[]): Partial<PhysicalProperties>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"distinct-node.d.ts","sourceRoot":"","sources":["../../../../src/planner/nodes/distinct-node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,KAAK,kBAAkB,EAAE,KAAK,mBAAmB,EAAE,KAAK,SAAS,EAAoB,KAAK,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACxJ,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"distinct-node.d.ts","sourceRoot":"","sources":["../../../../src/planner/nodes/distinct-node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,KAAK,kBAAkB,EAAE,KAAK,mBAAmB,EAAE,KAAK,SAAS,EAAoB,KAAK,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACxJ,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAKhD;;;GAGG;AACH,qBAAa,YAAa,SAAQ,QAAS,YAAW,mBAAmB;aAKrD,MAAM,EAAE,kBAAkB;IAJ5C,SAAkB,QAAQ,yBAAyB;gBAGjD,KAAK,EAAE,KAAK,EACI,MAAM,EAAE,kBAAkB,EAC1C,qBAAqB,CAAC,EAAE,MAAM;IAShC,OAAO,IAAI,YAAY;IASvB,aAAa,IAAI,SAAS,SAAS,EAAE;IAKrC,WAAW,IAAI,SAAS,CAAC,kBAAkB,CAAC;IAI5C,YAAY,IAAI,SAAS,CAAC,kBAAkB,CAAC;IAI7C,IAAI,aAAa,IAAI,MAAM,GAAG,SAAS,CAEtC;IAED;;;;OAIG;IACH,OAAO,CAAC,QAAQ;IAWP,QAAQ,IAAI,MAAM;IAIlB,oBAAoB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAQxD,eAAe,CAAC,gBAAgB,EAAE,kBAAkB,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC;IA0BpF,YAAY,CAAC,WAAW,EAAE,SAAS,QAAQ,EAAE,GAAG,QAAQ;CAuBzD"}
|
|
@@ -2,6 +2,7 @@ import { PlanNodeType } from './plan-node-type.js';
|
|
|
2
2
|
import { PlanNode, isRelationalNode } from './plan-node.js';
|
|
3
3
|
import { quereusError } from '../../common/errors.js';
|
|
4
4
|
import { StatusCode } from '../../common/types.js';
|
|
5
|
+
import { physicalSourceRows } from '../util/row-estimates.js';
|
|
5
6
|
/**
|
|
6
7
|
* Represents a DISTINCT operation that eliminates duplicate rows.
|
|
7
8
|
* It takes an input relation and outputs unique rows.
|
|
@@ -36,9 +37,16 @@ export class DistinctNode extends PlanNode {
|
|
|
36
37
|
return [this.source];
|
|
37
38
|
}
|
|
38
39
|
get estimatedRows() {
|
|
40
|
+
return this.rowsFrom(this.source.estimatedRows);
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* DISTINCT's row estimate as a pure function of the source cardinality, so the
|
|
44
|
+
* logical getter and `computePhysical` (which feeds it the PHYSICAL source
|
|
45
|
+
* count) cannot drift apart.
|
|
46
|
+
*/
|
|
47
|
+
rowsFrom(sourceRows) {
|
|
39
48
|
// DISTINCT reduces the number of rows by eliminating duplicates
|
|
40
49
|
// This is a rough estimate - in reality it depends on data distribution
|
|
41
|
-
const sourceRows = this.source.estimatedRows;
|
|
42
50
|
if (sourceRows === undefined)
|
|
43
51
|
return undefined;
|
|
44
52
|
if (sourceRows <= 1)
|
|
@@ -69,7 +77,7 @@ export class DistinctNode extends PlanNode {
|
|
|
69
77
|
// `RelationType.isSet` (set in getType()). FDs that the source proved on
|
|
70
78
|
// proper subsets of the output (e.g., a PK FD) carry through unchanged.
|
|
71
79
|
return {
|
|
72
|
-
estimatedRows: this.
|
|
80
|
+
estimatedRows: this.rowsFrom(physicalSourceRows(sourcePhysical, this.source)),
|
|
73
81
|
ordering: sourcePhysical?.ordering,
|
|
74
82
|
monotonicOn,
|
|
75
83
|
fds: sourcePhysical?.fds,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"distinct-node.js","sourceRoot":"","sources":["../../../../src/planner/nodes/distinct-node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAqE,gBAAgB,EAA2B,MAAM,gBAAgB,CAAC;AAGxJ,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"distinct-node.js","sourceRoot":"","sources":["../../../../src/planner/nodes/distinct-node.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eager-prefetch-node.d.ts","sourceRoot":"","sources":["../../../../src/planner/nodes/eager-prefetch-node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,KAAK,kBAAkB,EAAE,KAAK,mBAAmB,EAAE,KAAK,SAAS,EAAoB,KAAK,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACxJ,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"eager-prefetch-node.d.ts","sourceRoot":"","sources":["../../../../src/planner/nodes/eager-prefetch-node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,KAAK,kBAAkB,EAAE,KAAK,mBAAmB,EAAE,KAAK,SAAS,EAAoB,KAAK,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACxJ,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAKhD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,qBAAa,iBAAkB,SAAQ,QAAS,YAAW,mBAAmB;aAK5D,MAAM,EAAE,kBAAkB;aAC1B,UAAU,EAAE,MAAM;IALnC,SAAkB,QAAQ,8BAA8B;gBAGvD,KAAK,EAAE,KAAK,EACI,MAAM,EAAE,kBAAkB,EAC1B,UAAU,GAAE,MAAW,EACvC,qBAAqB,CAAC,EAAE,MAAM;IAK/B,aAAa,IAAI,SAAS,SAAS,EAAE;IAIrC,OAAO,IAAI,YAAY;IAIvB,WAAW,IAAI,SAAS,CAAC,kBAAkB,CAAC;IAI5C,YAAY,IAAI,SAAS,CAAC,kBAAkB,CAAC;IAI7C,YAAY,CAAC,WAAW,EAAE,SAAS,QAAQ,EAAE,GAAG,QAAQ;IAsBxD,IAAI,aAAa,IAAI,MAAM,GAAG,SAAS,CAEtC;IAED,eAAe,CAAC,gBAAgB,EAAE,kBAAkB,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAoB3E,QAAQ,IAAI,MAAM;IAIlB,oBAAoB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAMxD"}
|
|
@@ -2,6 +2,7 @@ import { PlanNodeType } from './plan-node-type.js';
|
|
|
2
2
|
import { PlanNode, isRelationalNode } from './plan-node.js';
|
|
3
3
|
import { StatusCode } from '../../common/types.js';
|
|
4
4
|
import { quereusError } from '../../common/errors.js';
|
|
5
|
+
import { physicalSourceRows } from '../util/row-estimates.js';
|
|
5
6
|
/**
|
|
6
7
|
* Physical pass-through that forks the runtime context and pumps its child
|
|
7
8
|
* sub-tree into a bounded ring buffer **eagerly on `run()`** (emit / scheduler
|
|
@@ -69,7 +70,7 @@ export class EagerPrefetchNode extends PlanNode {
|
|
|
69
70
|
computePhysical(childrenPhysical) {
|
|
70
71
|
const sourcePhysical = childrenPhysical[0];
|
|
71
72
|
return {
|
|
72
|
-
estimatedRows: this.
|
|
73
|
+
estimatedRows: physicalSourceRows(sourcePhysical, this.source),
|
|
73
74
|
// FIFO ring buffer: rows, order, and attribute IDs are identical at
|
|
74
75
|
// runtime, so every relational claim passes through verbatim.
|
|
75
76
|
ordering: sourcePhysical?.ordering,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eager-prefetch-node.js","sourceRoot":"","sources":["../../../../src/planner/nodes/eager-prefetch-node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAqE,gBAAgB,EAA2B,MAAM,gBAAgB,CAAC;AAGxJ,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"eager-prefetch-node.js","sourceRoot":"","sources":["../../../../src/planner/nodes/eager-prefetch-node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAqE,gBAAgB,EAA2B,MAAM,gBAAgB,CAAC;AAGxJ,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAE9D;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,OAAO,iBAAkB,SAAQ,QAAQ;IAK7B;IACA;IALC,QAAQ,GAAG,YAAY,CAAC,aAAa,CAAC;IAExD,YACC,KAAY,EACI,MAA0B,EAC1B,aAAqB,EAAE,EACvC,qBAA8B;QAE9B,KAAK,CAAC,KAAK,EAAE,qBAAqB,CAAC,CAAC;QAJpB,WAAM,GAAN,MAAM,CAAoB;QAC1B,eAAU,GAAV,UAAU,CAAa;IAIxC,CAAC;IAED,aAAa;QACZ,OAAO,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;IACpC,CAAC;IAED,OAAO;QACN,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;IAC9B,CAAC;IAED,WAAW;QACV,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACtB,CAAC;IAED,YAAY;QACX,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACtB,CAAC;IAED,YAAY,CAAC,WAAgC;QAC5C,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,YAAY,CAAC,0CAA0C,WAAW,CAAC,MAAM,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;QACnG,CAAC;QAED,MAAM,CAAC,SAAS,CAAC,GAAG,WAAW,CAAC;QAEhC,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,EAAE,CAAC;YAClC,YAAY,CAAC,uDAAuD,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;QAC5F,CAAC;QAED,IAAI,SAAS,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC;YAC/B,OAAO,IAAI,CAAC;QACb,CAAC;QAED,OAAO,IAAI,iBAAiB,CAC3B,IAAI,CAAC,KAAK,EACV,SAA+B,EAC/B,IAAI,CAAC,UAAU,CACf,CAAC;IACH,CAAC;IAED,IAAI,aAAa;QAChB,OAAO,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;IAClC,CAAC;IAED,eAAe,CAAC,gBAAsC;QACrD,MAAM,cAAc,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;QAC3C,OAAO;YACN,aAAa,EAAE,kBAAkB,CAAC,cAAc,EAAE,IAAI,CAAC,MAAM,CAAC;YAC9D,oEAAoE;YACpE,8DAA8D;YAC9D,QAAQ,EAAE,cAAc,EAAE,QAAQ;YAClC,GAAG,EAAE,cAAc,EAAE,GAAG;YACxB,YAAY,EAAE,cAAc,EAAE,YAAY;YAC1C,gBAAgB,EAAE,cAAc,EAAE,gBAAgB;YAClD,iBAAiB,EAAE,cAAc,EAAE,iBAAiB;YACpD,yEAAyE;YACzE,IAAI,EAAE,cAAc,EAAE,IAAI;YAC1B,WAAW,EAAE,cAAc,EAAE,WAAW;YACxC,8DAA8D;YAC9D,qEAAqE;YACrE,kCAAkC;SAClC,CAAC;IACH,CAAC;IAEQ,QAAQ;QAChB,OAAO,0BAA0B,IAAI,CAAC,UAAU,GAAG,CAAC;IACrD,CAAC;IAEQ,oBAAoB;QAC5B,OAAO;YACN,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,cAAc,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ;SACpC,CAAC;IACH,CAAC;CACD"}
|
|
@@ -138,6 +138,11 @@ export declare class FanOutLookupJoinNode extends PlanNode implements Relational
|
|
|
138
138
|
* branch preserves the outer row when empty, so its true factor is at least 1;
|
|
139
139
|
* the child-estimate product is an upper-leaning approximation either way.)
|
|
140
140
|
* Returns `undefined` only when the outer side itself has no estimate.
|
|
141
|
+
*
|
|
142
|
+
* `childrenPhysical` is supplied by `computePhysical` so the fan-out reads each
|
|
143
|
+
* child's PHYSICAL cardinality (`getChildren()` order: outer, then one entry per
|
|
144
|
+
* branch); the logical getter reads `undefined` through a physical access node.
|
|
145
|
+
* Omitted by the `estimatedRows` getter, which is the pre-optimization view.
|
|
141
146
|
*/
|
|
142
147
|
private computeEstimatedRows;
|
|
143
148
|
get estimatedRows(): number | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fanout-lookup-join-node.d.ts","sourceRoot":"","sources":["../../../../src/planner/nodes/fanout-lookup-join-node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EACN,QAAQ,EAER,KAAK,kBAAkB,EACvB,KAAK,SAAS,EACd,KAAK,kBAAkB,EAKvB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"fanout-lookup-join-node.d.ts","sourceRoot":"","sources":["../../../../src/planner/nodes/fanout-lookup-join-node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EACN,QAAQ,EAER,KAAK,kBAAkB,EACvB,KAAK,SAAS,EACd,KAAK,kBAAkB,EAKvB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAOhD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,MAAM,gBAAgB,GAAG,gBAAgB,GAAG,iBAAiB,GAAG,OAAO,GAAG,YAAY,CAAC;AAE7F;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAEhE;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAEjE;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,SAAS,CAAC;AAEnD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,WAAW,gBAAgB;IAChC,QAAQ,CAAC,KAAK,EAAE,kBAAkB,CAAC;IACnC,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAChC,QAAQ,CAAC,WAAW,EAAE,SAAS,SAAS,EAAE,CAAC;IAC3C,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;CAChC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,qBAAa,oBAAqB,SAAQ,QAAS,YAAW,kBAAkB;aAM9D,KAAK,EAAE,kBAAkB;aACzB,QAAQ,EAAE,SAAS,gBAAgB,EAAE;aACrC,cAAc,EAAE,MAAM;aACtB,oBAAoB,CAAC,EAAE,SAAS,SAAS,EAAE;aAC3C,SAAS,EAAE,eAAe;IAT3C,SAAkB,QAAQ,iCAAiC;IAC3D,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA+B;gBAG9D,KAAK,EAAE,KAAK,EACI,KAAK,EAAE,kBAAkB,EACzB,QAAQ,EAAE,SAAS,gBAAgB,EAAE,EACrC,cAAc,EAAE,MAAM,EACtB,oBAAoB,CAAC,EAAE,SAAS,SAAS,EAAE,YAAA,EAC3C,SAAS,GAAE,eAA0B;IAUtD,OAAO,CAAC,MAAM,CAAC,oBAAoB;IA+CnC,OAAO,CAAC,eAAe;IAmBvB,aAAa,IAAI,SAAS,SAAS,EAAE;IAIrC,OAAO,IAAI,YAAY;IA+BvB,eAAe,CAAC,gBAAgB,EAAE,SAAS,kBAAkB,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC;IA2D7F;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,oBAAoB;IAgB5B,IAAI,aAAa,IAAI,MAAM,GAAG,SAAS,CAEtC;IAED,WAAW,IAAI,SAAS,QAAQ,EAAE;IAIlC,YAAY,IAAI,SAAS,kBAAkB,EAAE;IAI7C,YAAY,CAAC,WAAW,EAAE,SAAS,QAAQ,EAAE,GAAG,QAAQ;IA2C/C,QAAQ,IAAI,MAAM;IAQlB,oBAAoB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAYxD"}
|
|
@@ -4,6 +4,7 @@ import { Cached } from '../../util/cached.js';
|
|
|
4
4
|
import { StatusCode } from '../../common/types.js';
|
|
5
5
|
import { quereusError } from '../../common/errors.js';
|
|
6
6
|
import { propagateJoinFds, propagateJoinInds } from './join-utils.js';
|
|
7
|
+
import { physicalSourceRows } from '../util/row-estimates.js';
|
|
7
8
|
/**
|
|
8
9
|
* True when the branch preserves the outer row on an empty match (LEFT
|
|
9
10
|
* semantics) and therefore nullable-widens its output attributes. Shared by the
|
|
@@ -190,7 +191,7 @@ export class FanOutLookupJoinNode extends PlanNode {
|
|
|
190
191
|
constantBindings: bindings.length > 0 ? bindings : undefined,
|
|
191
192
|
domainConstraints: domains.length > 0 ? domains : undefined,
|
|
192
193
|
inds: inds.length > 0 ? inds : undefined,
|
|
193
|
-
estimatedRows: this.computeEstimatedRows(),
|
|
194
|
+
estimatedRows: this.computeEstimatedRows(childrenPhysical),
|
|
194
195
|
};
|
|
195
196
|
}
|
|
196
197
|
/**
|
|
@@ -201,19 +202,25 @@ export class FanOutLookupJoinNode extends PlanNode {
|
|
|
201
202
|
* branch preserves the outer row when empty, so its true factor is at least 1;
|
|
202
203
|
* the child-estimate product is an upper-leaning approximation either way.)
|
|
203
204
|
* Returns `undefined` only when the outer side itself has no estimate.
|
|
205
|
+
*
|
|
206
|
+
* `childrenPhysical` is supplied by `computePhysical` so the fan-out reads each
|
|
207
|
+
* child's PHYSICAL cardinality (`getChildren()` order: outer, then one entry per
|
|
208
|
+
* branch); the logical getter reads `undefined` through a physical access node.
|
|
209
|
+
* Omitted by the `estimatedRows` getter, which is the pre-optimization view.
|
|
204
210
|
*/
|
|
205
|
-
computeEstimatedRows() {
|
|
206
|
-
const
|
|
211
|
+
computeEstimatedRows(childrenPhysical) {
|
|
212
|
+
const rowsOf = (node, childIndex) => childrenPhysical ? physicalSourceRows(childrenPhysical[childIndex], node) : node.estimatedRows;
|
|
213
|
+
const outerEst = rowsOf(this.outer, 0);
|
|
207
214
|
if (outerEst === undefined)
|
|
208
215
|
return undefined;
|
|
209
216
|
let est = outerEst;
|
|
210
|
-
|
|
217
|
+
this.branches.forEach((b, i) => {
|
|
211
218
|
if (isCrossBranchMode(b.mode)) {
|
|
212
|
-
const childEst = b.child
|
|
219
|
+
const childEst = rowsOf(b.child, i + 1);
|
|
213
220
|
if (childEst !== undefined)
|
|
214
221
|
est *= childEst;
|
|
215
222
|
}
|
|
216
|
-
}
|
|
223
|
+
});
|
|
217
224
|
return est;
|
|
218
225
|
}
|
|
219
226
|
get estimatedRows() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fanout-lookup-join-node.js","sourceRoot":"","sources":["../../../../src/planner/nodes/fanout-lookup-join-node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EACN,QAAQ,EACR,gBAAgB,GAQhB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"fanout-lookup-join-node.js","sourceRoot":"","sources":["../../../../src/planner/nodes/fanout-lookup-join-node.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filter.d.ts","sourceRoot":"","sources":["../../../../src/planner/nodes/filter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,KAAK,kBAAkB,EAAE,KAAK,cAAc,EAAE,KAAK,mBAAmB,EAAE,KAAK,SAAS,EAAkC,KAAK,kBAAkB,EAAmD,MAAM,gBAAgB,CAAC;AAC5O,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAIhD,OAAO,KAAK,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAOhG;;;GAGG;AACH,eAAO,MAAM,0BAA0B,MAAM,CAAC;AAE9C;;;;GAIG;AACH,qBAAa,UAAW,SAAQ,QAAS,YAAW,mBAAmB,EAAE,gBAAgB,EAAE,sBAAsB;aAO/F,MAAM,EAAE,kBAAkB;aAC1B,SAAS,EAAE,cAAc;aAMzB,WAAW,CAAC,EAAE,MAAM;IAbrC,SAAkB,QAAQ,uBAAuB;IACjD,QAAQ,CAAC,kBAAkB,EAAG,IAAI,CAAU;IAC5C,QAAQ,CAAC,wBAAwB,EAAG,IAAI,CAAU;gBAGjD,KAAK,EAAE,KAAK,EACI,MAAM,EAAE,kBAAkB,EAC1B,SAAS,EAAE,cAAc,EACzC,qBAAqB,CAAC,EAAE,MAAM,EAKd,WAAW,CAAC,EAAE,MAAM,YAAA;IAcrC,OAAO,IAAI,YAAY;IAKvB,aAAa,IAAI,SAAS,SAAS,EAAE;IAKrC,WAAW,IAAI,SAAS,CAAC,kBAAkB,EAAE,cAAc,CAAC;IAI5D,YAAY,IAAI,SAAS,CAAC,kBAAkB,CAAC;IAI7C,IAAI,aAAa,IAAI,MAAM,GAAG,SAAS,CActC;IAED,eAAe,CAAC,gBAAgB,EAAE,kBAAkB,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAkI3E,QAAQ,IAAI,MAAM;IAIlB,oBAAoB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAMxD,YAAY,CAAC,WAAW,EAAE,SAAS,QAAQ,EAAE,GAAG,QAAQ;
|
|
1
|
+
{"version":3,"file":"filter.d.ts","sourceRoot":"","sources":["../../../../src/planner/nodes/filter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,KAAK,kBAAkB,EAAE,KAAK,cAAc,EAAE,KAAK,mBAAmB,EAAE,KAAK,SAAS,EAAkC,KAAK,kBAAkB,EAAmD,MAAM,gBAAgB,CAAC;AAC5O,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAIhD,OAAO,KAAK,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAOhG;;;GAGG;AACH,eAAO,MAAM,0BAA0B,MAAM,CAAC;AAE9C;;;;GAIG;AACH,qBAAa,UAAW,SAAQ,QAAS,YAAW,mBAAmB,EAAE,gBAAgB,EAAE,sBAAsB;aAO/F,MAAM,EAAE,kBAAkB;aAC1B,SAAS,EAAE,cAAc;aAMzB,WAAW,CAAC,EAAE,MAAM;IAbrC,SAAkB,QAAQ,uBAAuB;IACjD,QAAQ,CAAC,kBAAkB,EAAG,IAAI,CAAU;IAC5C,QAAQ,CAAC,wBAAwB,EAAG,IAAI,CAAU;gBAGjD,KAAK,EAAE,KAAK,EACI,MAAM,EAAE,kBAAkB,EAC1B,SAAS,EAAE,cAAc,EACzC,qBAAqB,CAAC,EAAE,MAAM,EAKd,WAAW,CAAC,EAAE,MAAM,YAAA;IAcrC,OAAO,IAAI,YAAY;IAKvB,aAAa,IAAI,SAAS,SAAS,EAAE;IAKrC,WAAW,IAAI,SAAS,CAAC,kBAAkB,EAAE,cAAc,CAAC;IAI5D,YAAY,IAAI,SAAS,CAAC,kBAAkB,CAAC;IAI7C,IAAI,aAAa,IAAI,MAAM,GAAG,SAAS,CActC;IAED,eAAe,CAAC,gBAAgB,EAAE,kBAAkB,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAkI3E,QAAQ,IAAI,MAAM;IAIlB,oBAAoB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAMxD,YAAY,CAAC,WAAW,EAAE,SAAS,QAAQ,EAAE,GAAG,QAAQ;IAkDxD,YAAY,IAAI,cAAc,GAAG,IAAI;IAIrC,aAAa,CAAC,YAAY,EAAE,cAAc,GAAG,IAAI,GAAG,QAAQ;IAmB5D,aAAa,IAAI,SAAS,cAAc,EAAE;CAG1C"}
|
|
@@ -214,12 +214,19 @@ export class FilterNode extends PlanNode {
|
|
|
214
214
|
// The stamped selectivity is predicate-specific: carry it through ONLY when
|
|
215
215
|
// the predicate is unchanged; drop it (undefined → recompute default until
|
|
216
216
|
// re-stamped) when the predicate changes.
|
|
217
|
+
//
|
|
218
|
+
// Dropping it here is routine, not exceptional: PostOptimization re-mints
|
|
219
|
+
// stamped Filters whenever it rewrites something inside their predicate
|
|
220
|
+
// (`scalar-subquery-cache` wrapping a scalar subquery's inner is the common
|
|
221
|
+
// case). The `filter-selectivity-restamp` PostOptimization registration of
|
|
222
|
+
// `rule-filter-selectivity` is what recovers the estimate — it re-derives a
|
|
223
|
+
// number against the NEW predicate rather than carrying the old one forward.
|
|
224
|
+
//
|
|
217
225
|
// NOTE (tripwire): a carried selectivity was computed against THIS source's
|
|
218
|
-
// table. If a
|
|
219
|
-
// different source), the carried estimate goes slightly stale
|
|
220
|
-
//
|
|
221
|
-
//
|
|
222
|
-
// `newSource !== this.source`.
|
|
226
|
+
// table. If a pass ever re-sources a stamped Filter (same predicate object,
|
|
227
|
+
// different source), the carried estimate goes slightly stale and nothing
|
|
228
|
+
// re-derives it — the re-stamp rule declines on an already-stamped Filter. If
|
|
229
|
+
// that shape appears, also drop selectivity when `newSource !== this.source`.
|
|
223
230
|
const preservedSelectivity = newPredicate === this.predicate ? this.selectivity : undefined;
|
|
224
231
|
// Create new instance preserving attributes (filter preserves source attributes)
|
|
225
232
|
return new FilterNode(this.scope, newSource, newPredicate, undefined, preservedSelectivity);
|