@quereus/quereus 4.5.0 → 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 +4 -3
- 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-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 +138 -71
- 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 +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 +11 -4
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +12 -3
- 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/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/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 +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/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/function-call.d.ts.map +1 -1
- package/dist/src/planner/building/function-call.js +7 -2
- 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-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 +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/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/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/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 +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.map +1 -1
- package/dist/src/planner/nodes/key-set-semi-join-node.js +5 -1
- 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.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 +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/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.map +1 -1
- package/dist/src/planner/nodes/table-access-nodes.js +5 -0
- 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 +77 -6
- package/dist/src/planner/optimizer.js.map +1 -1
- 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 +3 -68
- package/dist/src/planner/rules/access/rule-key-set-seek.js.map +1 -1
- package/dist/src/planner/rules/access/rule-select-access-path.d.ts +19 -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 +24 -3
- 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 +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 +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 +83 -27
- package/dist/src/planner/rules/join/rule-join-physical-selection.js.map +1 -1
- package/dist/src/planner/rules/join/rule-monotonic-merge-join.js +4 -4
- package/dist/src/planner/rules/join/rule-monotonic-merge-join.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 +42 -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 +84 -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 +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 +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 +7 -1
- package/dist/src/planner/rules/predicate/rule-predicate-pushdown.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/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.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/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 +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/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 +380 -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/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/dml-executor.d.ts.map +1 -1
- package/dist/src/runtime/emit/dml-executor.js +64 -27
- 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/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 +6 -0
- package/dist/src/runtime/emit/key-set-semi-join.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/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/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 +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/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 +46 -8
- 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 +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 +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.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 +572 -495
- 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.map +1 -1
- package/dist/src/vtab/memory/module.js +2 -1
- 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 +51 -21
- package/dist/src/vtab/module.d.ts.map +1 -1
- package/dist/src/vtab/table.d.ts +1 -1
- package/dist/src/vtab/table.js +1 -1
- package/package.json +3 -3
|
@@ -9,6 +9,13 @@ import type { CTEScopeNode } from '../nodes/cte-node.js';
|
|
|
9
9
|
* the same path SELECT uses — closing the read gap where a CTE referenced in an
|
|
10
10
|
* UPDATE/DELETE `where` / `set` subquery previously failed to resolve, and giving a
|
|
11
11
|
* CTE-name DML target its sibling CTEs.
|
|
12
|
+
*
|
|
13
|
+
* The WITH clause contributes CTE *definitions* (`cteNodes`), not scope symbols. A
|
|
14
|
+
* `cteName.column` symbol is published by `buildFrom`'s CTE branch, against the
|
|
15
|
+
* attribute ids the `CTEReferenceNode` for that FROM entry republishes. This used to
|
|
16
|
+
* also register `cteName.column` here, bound to the CTE **body's** attribute ids —
|
|
17
|
+
* ids no `CTEReferenceNode` ever publishes, so any reference resolving through them
|
|
18
|
+
* could only fail at runtime with "No row context found for column ...".
|
|
12
19
|
*/
|
|
13
20
|
export declare function buildWithContext(ctx: PlanningContext, stmt: {
|
|
14
21
|
readonly withClause?: AST.WithClause;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"select-context.d.ts","sourceRoot":"","sources":["../../../../src/planner/building/select-context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,GAAG,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"select-context.d.ts","sourceRoot":"","sources":["../../../../src/planner/building/select-context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,GAAG,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAGzD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,gBAAgB,CAC/B,GAAG,EAAE,eAAe,EACpB,IAAI,EAAE;IAAE,QAAQ,CAAC,UAAU,CAAC,EAAE,GAAG,CAAC,UAAU,CAAA;CAAE,EAC9C,UAAU,GAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAa,GAC/C;IACF,eAAe,EAAE,eAAe,CAAC;IACjC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;CACpC,CAeA"}
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
import { RegisteredScope } from '../scopes/registered.js';
|
|
2
|
-
import { ColumnReferenceNode } from '../nodes/reference.js';
|
|
3
1
|
import { buildWithClause } from './with.js';
|
|
4
2
|
/**
|
|
5
3
|
* Builds context with CTEs if present.
|
|
@@ -9,53 +7,25 @@ import { buildWithClause } from './with.js';
|
|
|
9
7
|
* the same path SELECT uses — closing the read gap where a CTE referenced in an
|
|
10
8
|
* UPDATE/DELETE `where` / `set` subquery previously failed to resolve, and giving a
|
|
11
9
|
* CTE-name DML target its sibling CTEs.
|
|
10
|
+
*
|
|
11
|
+
* The WITH clause contributes CTE *definitions* (`cteNodes`), not scope symbols. A
|
|
12
|
+
* `cteName.column` symbol is published by `buildFrom`'s CTE branch, against the
|
|
13
|
+
* attribute ids the `CTEReferenceNode` for that FROM entry republishes. This used to
|
|
14
|
+
* also register `cteName.column` here, bound to the CTE **body's** attribute ids —
|
|
15
|
+
* ids no `CTEReferenceNode` ever publishes, so any reference resolving through them
|
|
16
|
+
* could only fail at runtime with "No row context found for column ...".
|
|
12
17
|
*/
|
|
13
18
|
export function buildWithContext(ctx, stmt, parentCTEs = new Map()) {
|
|
14
19
|
// Start with parent CTEs - either from parameter or from context
|
|
15
20
|
const cteNodes = new Map(parentCTEs.size > 0 ? parentCTEs : (ctx.cteNodes ?? new Map()));
|
|
16
|
-
let contextWithCTEs = ctx;
|
|
17
21
|
if (stmt.withClause) {
|
|
18
|
-
const newCteNodes = buildWithClause(ctx, stmt.withClause);
|
|
19
22
|
// Merge parent CTEs with new ones (new ones take precedence)
|
|
20
|
-
for (const [name, node] of
|
|
23
|
+
for (const [name, node] of buildWithClause(ctx, stmt.withClause)) {
|
|
21
24
|
cteNodes.set(name, node);
|
|
22
25
|
}
|
|
23
|
-
// Create a new scope that includes the CTEs
|
|
24
|
-
const cteScope = createCTEScope(cteNodes, ctx);
|
|
25
|
-
contextWithCTEs = { ...ctx, scope: cteScope, cteNodes, cteReferenceCache: ctx.cteReferenceCache };
|
|
26
|
-
}
|
|
27
|
-
else if (cteNodes.size > 0) {
|
|
28
|
-
// No WITH clause but we have parent CTEs, create scope for them
|
|
29
|
-
const cteScope = createCTEScope(cteNodes, ctx);
|
|
30
|
-
contextWithCTEs = { ...ctx, scope: cteScope, cteNodes, cteReferenceCache: ctx.cteReferenceCache };
|
|
31
26
|
}
|
|
27
|
+
// The only contribution is the definition map; scope is left untouched.
|
|
28
|
+
const contextWithCTEs = cteNodes.size > 0 ? { ...ctx, cteNodes } : ctx;
|
|
32
29
|
return { contextWithCTEs, cteNodes };
|
|
33
30
|
}
|
|
34
|
-
/**
|
|
35
|
-
* Creates a scope that includes CTE references
|
|
36
|
-
* CRITICAL: Uses stable input attribute IDs only, ignoring any projection output scopes
|
|
37
|
-
* that might cause attribute ID collisions in correlated subqueries
|
|
38
|
-
*/
|
|
39
|
-
function createCTEScope(cteNodes, ctx) {
|
|
40
|
-
// Keep ParameterScope in the chain so parameters can be resolved in queries using CTEs
|
|
41
|
-
const cteScope = new RegisteredScope(ctx.scope);
|
|
42
|
-
// Register each CTE in the scope
|
|
43
|
-
for (const [cteName, cteNode] of cteNodes) {
|
|
44
|
-
// CRITICAL: Use only the stable input attributes from the CTE definition
|
|
45
|
-
// Do NOT use any projection output attributes that might have fresh IDs
|
|
46
|
-
const attributes = cteNode.getAttributes();
|
|
47
|
-
const columnTypes = cteNode.getType().columns;
|
|
48
|
-
// Only register columns that are stable input attributes
|
|
49
|
-
// This prevents scope pollution from projection output attributes
|
|
50
|
-
columnTypes.forEach((col, i) => {
|
|
51
|
-
if (i < attributes.length) {
|
|
52
|
-
const attr = attributes[i];
|
|
53
|
-
// Register CTE columns with qualified names to avoid collisions
|
|
54
|
-
const qualifiedColumnName = `${cteName}.${col.name.toLowerCase()}`;
|
|
55
|
-
cteScope.registerSymbol(qualifiedColumnName, (exp, s) => new ColumnReferenceNode(s, exp, col.type, attr.id, i));
|
|
56
|
-
}
|
|
57
|
-
});
|
|
58
|
-
}
|
|
59
|
-
return cteScope;
|
|
60
|
-
}
|
|
61
31
|
//# sourceMappingURL=select-context.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"select-context.js","sourceRoot":"","sources":["../../../../src/planner/building/select-context.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"select-context.js","sourceRoot":"","sources":["../../../../src/planner/building/select-context.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAE5C;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,gBAAgB,CAC/B,GAAoB,EACpB,IAA8C,EAC9C,aAAwC,IAAI,GAAG,EAAE;IAKjD,iEAAiE;IACjE,MAAM,QAAQ,GAA8B,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,IAAI,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC;IAEpH,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QACrB,6DAA6D;QAC7D,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,eAAe,CAAC,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YAClE,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC1B,CAAC;IACF,CAAC;IAED,wEAAwE;IACxE,MAAM,eAAe,GAAG,QAAQ,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;IAEvE,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,CAAC;AACtC,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type * as AST from '../../parser/ast.js';
|
|
2
|
-
import { PlanNode, type RelationalPlanNode } from '../nodes/plan-node.js';
|
|
2
|
+
import { PlanNode, type Attribute, type RelationalPlanNode, type ScalarPlanNode } from '../nodes/plan-node.js';
|
|
3
3
|
import type { PlanningContext } from '../planning-context.js';
|
|
4
|
+
import type { Scope } from '../scopes/scope.js';
|
|
4
5
|
import type { CTEScopeNode } from '../nodes/cte-node.js';
|
|
5
6
|
import { ValuesNode } from '../nodes/values-node.js';
|
|
6
7
|
/**
|
|
@@ -43,4 +44,39 @@ export declare function buildValuesStmt(ctx: PlanningContext, stmt: AST.ValuesSt
|
|
|
43
44
|
* @returns A relational plan node representing the FROM clause
|
|
44
45
|
*/
|
|
45
46
|
export declare function buildFrom(fromClause: AST.FromClause, parentContext: PlanningContext, cteNodes?: Map<string, CTEScopeNode>): RelationalPlanNode;
|
|
47
|
+
/**
|
|
48
|
+
* Desugar `using (c1, c2, …)` into the `on l.c1 = r.c1 and l.c2 = r.c2 …` condition
|
|
49
|
+
* it is defined to mean, so a USING join is *the same plan* an equivalent ON join
|
|
50
|
+
* builds. Each pair goes through `buildComparison` — the same helper `buildExpression`
|
|
51
|
+
* uses for a spelled-out `=` — so everything hanging off a real comparison node
|
|
52
|
+
* applies to USING for free and cannot drift from the ON spelling:
|
|
53
|
+
*
|
|
54
|
+
* - cross-type coercion — a JSON column paired with a TEXT one compares structurally,
|
|
55
|
+
* an INTEGER paired with a TEXT one numerically (ticket
|
|
56
|
+
* `bug-using-join-skips-cross-type-coercion`; before the desugar USING compared
|
|
57
|
+
* raw storage classes and matched nothing).
|
|
58
|
+
* - `BinaryOpNode.generateType`'s collation-lattice validation — a `using (c)` over
|
|
59
|
+
* columns with conflicting explicit/declared collations raises the identical
|
|
60
|
+
* ambiguous-collation error as `l.c = r.c`, at plan time rather than only as the
|
|
61
|
+
* emitter's backstop. Both spellings resolve each pair through the SAME symmetric
|
|
62
|
+
* provenance lattice.
|
|
63
|
+
* - `extractEquiPairs` — hash/merge key selection, collation tagging and the
|
|
64
|
+
* semantic-ordering gate, all off the one extractor.
|
|
65
|
+
*
|
|
66
|
+
* A NATURAL join (not yet parsed) desugars to USING pairs and inherits all of this.
|
|
67
|
+
*
|
|
68
|
+
* Column references are built **from attributes**, not by resolving a synthesized
|
|
69
|
+
* qualified `AST.ColumnExpr` through the join scope: a USING column can be ambiguous
|
|
70
|
+
* by name within one side (`a join b using (k) join c using (k)` — the left side of
|
|
71
|
+
* the second join has two `k` columns). First-match-per-side by name is the pairing
|
|
72
|
+
* rule USING has always used here.
|
|
73
|
+
*
|
|
74
|
+
* NOTE: the nested-loop USING path used to resolve one comparator per column at emit
|
|
75
|
+
* time; it now evaluates a condition sub-program per row pair, like every ON join.
|
|
76
|
+
* Only USING joins that fall back to nested loop (cross-type pairs, existence-flag
|
|
77
|
+
* joins) pay this, and it is not measured. If a USING-heavy workload ever profiles
|
|
78
|
+
* slower, the fix belongs in the shared ON-condition evaluation path — not in a
|
|
79
|
+
* restored USING special case.
|
|
80
|
+
*/
|
|
81
|
+
export declare function buildUsingCondition(usingColumns: readonly string[], leftAttrs: readonly Attribute[], rightAttrs: readonly Attribute[], scope: Scope): ScalarPlanNode;
|
|
46
82
|
//# sourceMappingURL=select.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"select.d.ts","sourceRoot":"","sources":["../../../../src/planner/building/select.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,GAAG,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,KAAK,kBAAkB,
|
|
1
|
+
{"version":3,"file":"select.d.ts","sourceRoot":"","sources":["../../../../src/planner/building/select.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,GAAG,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,KAAK,SAAS,EAAE,KAAK,kBAAkB,EAAE,KAAK,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAG/G,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAM9D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAUhD,OAAO,KAAK,EAAE,YAAY,EAAe,MAAM,sBAAsB,CAAC;AAMtE,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAwBrD;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,GAAG,EAAE,eAAe,EACpB,IAAI,EAAE,GAAG,CAAC,UAAU,EACpB,UAAU,GAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAa;AACjD;;;;;GAKG;AACH,oBAAoB,GAAE,OAAc,GACnC,QAAQ,CA2PV;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC9B,GAAG,EAAE,eAAe,EACpB,IAAI,EAAE,GAAG,CAAC,UAAU,GAClB,UAAU,CAQZ;AA6BD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,SAAS,CAAC,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE,aAAa,EAAE,eAAe,EAAE,QAAQ,GAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAa,GAAG,kBAAkB,CA6QzJ;AA6FD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,wBAAgB,mBAAmB,CAClC,YAAY,EAAE,SAAS,MAAM,EAAE,EAC/B,SAAS,EAAE,SAAS,SAAS,EAAE,EAC/B,UAAU,EAAE,SAAS,SAAS,EAAE,EAChC,KAAK,EAAE,KAAK,GACV,cAAc,CAchB"}
|
|
@@ -8,15 +8,16 @@ import { AliasedScope } from '../scopes/aliased.js';
|
|
|
8
8
|
import { RegisteredScope } from '../scopes/registered.js';
|
|
9
9
|
import { MultiScope } from '../scopes/multi.js';
|
|
10
10
|
import { ShadowScope } from '../scopes/shadow.js';
|
|
11
|
+
import { EmptyScope } from '../scopes/empty.js';
|
|
11
12
|
import { ProjectNode } from '../nodes/project-node.js';
|
|
12
|
-
import { buildExpression } from './expression.js';
|
|
13
|
+
import { buildComparison, buildExpression } from './expression.js';
|
|
13
14
|
import { FilterNode } from '../nodes/filter.js';
|
|
14
15
|
import { buildTableFunctionCall } from './table-function.js';
|
|
15
16
|
import { CTEReferenceNode } from '../nodes/cte-reference-node.js';
|
|
16
17
|
import { JoinNode } from '../nodes/join-node.js';
|
|
17
|
-
import { resolveComparisonCollation, collationConflictError } from '../analysis/comparison-collation.js';
|
|
18
18
|
import { EXISTENCE_FLAG_TYPE } from '../nodes/join-utils.js';
|
|
19
19
|
import { ColumnReferenceNode } from '../nodes/reference.js';
|
|
20
|
+
import { BinaryOpNode } from '../nodes/scalar.js';
|
|
20
21
|
import { TEXT_TYPE } from '../../types/builtin-types.js';
|
|
21
22
|
import { ValuesNode } from '../nodes/values-node.js';
|
|
22
23
|
import { createLogger } from '../../common/logger.js';
|
|
@@ -74,6 +75,11 @@ preserveInputColumns = true) {
|
|
|
74
75
|
throw new QuereusError('SELECT with multiple FROM sources (joins) not supported.', StatusCode.UNSUPPORTED, undefined, stmt.from[1].loc?.start.line, stmt.from[1].loc?.start.column);
|
|
75
76
|
}
|
|
76
77
|
// Phase 2: Create the main scope for this SELECT statement
|
|
78
|
+
// NOTE: the `|| ft.scope` fallback only fires for the FROM-less SingleRowNode, which
|
|
79
|
+
// buildFrom never registers. Every scope buildFrom does register is own-only (see
|
|
80
|
+
// registerColumnScope); a node's own `.scope` is the enclosing chain, so if this
|
|
81
|
+
// fallback ever starts firing for a real source it silently reinstates the chaining
|
|
82
|
+
// this ShadowScope exists to replace.
|
|
77
83
|
const columnScopes = fromTables.map(ft => ctx.outputScopes.get(ft) || ft.scope).filter(Boolean);
|
|
78
84
|
const selectScope = new ShadowScope([...columnScopes, contextWithCTEs.scope]);
|
|
79
85
|
let selectContext = { ...contextWithCTEs, scope: selectScope };
|
|
@@ -105,11 +111,15 @@ preserveInputColumns = true) {
|
|
|
105
111
|
// ORDER-BY-only aggregates; track it locally so the post-aggregate branch
|
|
106
112
|
// is taken when those promote a non-aggregate query into an aggregate one.
|
|
107
113
|
let hasAggregates = hasAggregatesInSelect;
|
|
108
|
-
// Handle SELECT * separately
|
|
114
|
+
// Handle SELECT * separately. Keyed by the AST column so the aggregate path can
|
|
115
|
+
// expand each star back to *its own* columns — a select list may hold more than
|
|
116
|
+
// one star (`select a.*, b.* from a join b`).
|
|
117
|
+
const starProjectionsByColumn = new Map();
|
|
109
118
|
for (const column of stmt.columns) {
|
|
110
119
|
if (column.type === 'all') {
|
|
111
|
-
const
|
|
112
|
-
|
|
120
|
+
const expanded = buildStarProjections(column, input, selectScope);
|
|
121
|
+
starProjectionsByColumn.set(column, expanded);
|
|
122
|
+
projections.push(...expanded);
|
|
113
123
|
}
|
|
114
124
|
}
|
|
115
125
|
// Add non-star projections
|
|
@@ -149,7 +159,7 @@ preserveInputColumns = true) {
|
|
|
149
159
|
}
|
|
150
160
|
// Build final projections if needed
|
|
151
161
|
if (aggregateResult.needsFinalProjection && aggregateResult.aggregateNode && aggregateResult.groupByExpressions) {
|
|
152
|
-
const finalProjections = buildFinalAggregateProjections(stmt, selectContext, aggregateResult.aggregateScope, aggregateResult.aggregateNode, aggregates, aggregateResult.groupByExpressions);
|
|
162
|
+
const finalProjections = buildFinalAggregateProjections(stmt, selectContext, aggregateResult.aggregateScope, aggregateResult.aggregateNode, aggregates, aggregateResult.groupByExpressions, starProjectionsByColumn);
|
|
153
163
|
// When HAVING-only or ORDER-BY-only aggregates were added, don't preserve
|
|
154
164
|
// input columns so they are stripped from the output (they exist only for
|
|
155
165
|
// those clauses).
|
|
@@ -213,8 +223,14 @@ preserveInputColumns = true) {
|
|
|
213
223
|
preAggregateSort = true;
|
|
214
224
|
}
|
|
215
225
|
}
|
|
216
|
-
// Handle final projections for non-aggregate, non-window cases
|
|
217
|
-
|
|
226
|
+
// Handle final projections for non-aggregate, non-window cases.
|
|
227
|
+
// A GROUP BY with no aggregate functions anywhere still went through the
|
|
228
|
+
// aggregate phase (which built its own final projection against the
|
|
229
|
+
// AggregateNode output); re-running buildFinalProjections here would emit a
|
|
230
|
+
// second projection whose column references still point at *pre-aggregate*
|
|
231
|
+
// attributes, which the AggregateNode does not output.
|
|
232
|
+
const hasGrouping = Boolean(aggregateResult.aggregateScope);
|
|
233
|
+
if (!hasGrouping && !hasWindowFunctions) {
|
|
218
234
|
const finalResult = buildFinalProjections(input, projections, selectScope, stmt, selectContext, preserveInputColumns, selectListAsts);
|
|
219
235
|
input = finalResult.output;
|
|
220
236
|
selectContext = finalResult.finalContext;
|
|
@@ -255,9 +271,17 @@ export function buildValuesStmt(ctx, stmt) {
|
|
|
255
271
|
/**
|
|
256
272
|
* Registers each column of a relational node as a symbol in a new scope,
|
|
257
273
|
* wrapped with an AliasedScope for qualified name resolution.
|
|
274
|
+
*
|
|
275
|
+
* The scope is deliberately parented on {@link EmptyScope} — a FROM source's scope
|
|
276
|
+
* holds ONLY its own columns and answers "no" for anything else. The fallback to the
|
|
277
|
+
* enclosing query is composed exactly once by each consumer (`buildSelectStmt`'s
|
|
278
|
+
* `ShadowScope`, `buildJoin`'s ON-condition and LATERAL `ShadowScope`s). Chaining each
|
|
279
|
+
* source scope to the caller's scope instead would make `MultiScope`'s first-match reach
|
|
280
|
+
* the outer scope through peer #1 before peer #2 is ever consulted, so a join's own
|
|
281
|
+
* right-hand source loses name lookup to a same-named enclosing symbol.
|
|
258
282
|
*/
|
|
259
|
-
function registerColumnScope(
|
|
260
|
-
const registered = new RegisteredScope(
|
|
283
|
+
function registerColumnScope(node, scopeName, alias) {
|
|
284
|
+
const registered = new RegisteredScope(EmptyScope.instance);
|
|
261
285
|
const attributes = node.getAttributes();
|
|
262
286
|
node.getType().columns.forEach((c, i) => {
|
|
263
287
|
const attr = attributes[i];
|
|
@@ -297,7 +321,7 @@ export function buildFrom(fromClause, parentContext, cteNodes = new Map()) {
|
|
|
297
321
|
internalRefNode = new AliasNode(parentContext.scope, cteNode, fromClause.alias.toLowerCase());
|
|
298
322
|
}
|
|
299
323
|
fromTable = internalRefNode;
|
|
300
|
-
columnScope = registerColumnScope(
|
|
324
|
+
columnScope = registerColumnScope(fromTable, tableName, fromClause.alias?.toLowerCase() ?? tableName);
|
|
301
325
|
}
|
|
302
326
|
else {
|
|
303
327
|
// Regular CTE reference - cache by CTE name + alias to ensure consistent attribute IDs
|
|
@@ -318,7 +342,7 @@ export function buildFrom(fromClause, parentContext, cteNodes = new Map()) {
|
|
|
318
342
|
const attrs = cteRefNode.getAttributes();
|
|
319
343
|
logger(`Created new CTE reference ${cacheKey}, attrs=[${attrs.map(a => a.id).join(',')}]`);
|
|
320
344
|
}
|
|
321
|
-
columnScope = registerColumnScope(
|
|
345
|
+
columnScope = registerColumnScope(cteRefNode, tableName, fromClause.alias?.toLowerCase() ?? tableName);
|
|
322
346
|
fromTable = cteRefNode;
|
|
323
347
|
}
|
|
324
348
|
}
|
|
@@ -397,7 +421,7 @@ export function buildFrom(fromClause, parentContext, cteNodes = new Map()) {
|
|
|
397
421
|
else {
|
|
398
422
|
fromTable = viewSelectNode;
|
|
399
423
|
}
|
|
400
|
-
columnScope = registerColumnScope(
|
|
424
|
+
columnScope = registerColumnScope(fromTable, fromClause.table.name.toLowerCase(), fromClause.alias?.toLowerCase() ?? fromClause.table.name.toLowerCase());
|
|
401
425
|
}
|
|
402
426
|
else if (maintainedTable) {
|
|
403
427
|
// Maintained table (materialized view): resolves through the ORDINARY
|
|
@@ -428,7 +452,7 @@ export function buildFrom(fromClause, parentContext, cteNodes = new Map()) {
|
|
|
428
452
|
tableNode = new AliasNode(parentContext.scope, tableNode, fromClause.alias.toLowerCase());
|
|
429
453
|
}
|
|
430
454
|
fromTable = tableNode;
|
|
431
|
-
columnScope = registerColumnScope(
|
|
455
|
+
columnScope = registerColumnScope(fromTable, fromClause.table.name.toLowerCase(), fromClause.alias?.toLowerCase() ?? fromClause.table.name.toLowerCase());
|
|
432
456
|
}
|
|
433
457
|
else {
|
|
434
458
|
// Regular table
|
|
@@ -438,7 +462,7 @@ export function buildFrom(fromClause, parentContext, cteNodes = new Map()) {
|
|
|
438
462
|
tableNode = new AliasNode(parentContext.scope, tableNode, fromClause.alias.toLowerCase());
|
|
439
463
|
}
|
|
440
464
|
fromTable = tableNode;
|
|
441
|
-
columnScope = registerColumnScope(
|
|
465
|
+
columnScope = registerColumnScope(fromTable, fromClause.table.name.toLowerCase(), fromClause.alias?.toLowerCase() ?? fromClause.table.name.toLowerCase());
|
|
442
466
|
}
|
|
443
467
|
}
|
|
444
468
|
}
|
|
@@ -449,7 +473,7 @@ export function buildFrom(fromClause, parentContext, cteNodes = new Map()) {
|
|
|
449
473
|
funcNode = new AliasNode(parentContext.scope, funcNode, fromClause.alias.toLowerCase());
|
|
450
474
|
}
|
|
451
475
|
fromTable = funcNode;
|
|
452
|
-
columnScope = registerColumnScope(
|
|
476
|
+
columnScope = registerColumnScope(fromTable, '', fromClause.alias?.toLowerCase() ?? fromClause.name.name.toLowerCase());
|
|
453
477
|
}
|
|
454
478
|
else if (fromClause.type === 'subquerySource') {
|
|
455
479
|
// Build the subquery body. SubquerySource now carries any QueryExpr;
|
|
@@ -485,8 +509,9 @@ export function buildFrom(fromClause, parentContext, cteNodes = new Map()) {
|
|
|
485
509
|
fromTable = alias
|
|
486
510
|
? new AliasNode(parentContext.scope, subqueryNode, alias)
|
|
487
511
|
: subqueryNode;
|
|
488
|
-
// Create scope for subquery columns
|
|
489
|
-
|
|
512
|
+
// Create scope for subquery columns. Own-only, parented on EmptyScope, for the
|
|
513
|
+
// same reason as registerColumnScope — see its doc comment.
|
|
514
|
+
const subqueryScope = new RegisteredScope(EmptyScope.instance);
|
|
490
515
|
const subqueryAttributes = fromTable.getAttributes();
|
|
491
516
|
// Use provided column names or infer from subquery
|
|
492
517
|
const columnNames = fromClause.columns || fromTable.getType().columns.map(c => c.name);
|
|
@@ -542,24 +567,24 @@ function buildJoin(joinClause, parentContext, cteNodes) {
|
|
|
542
567
|
}
|
|
543
568
|
// Create a combined scope for the join that includes both left and right columns
|
|
544
569
|
const combinedScope = new MultiScope([leftScope, rightScope]);
|
|
545
|
-
//
|
|
570
|
+
// Context for building the ON condition: the join's own two peers first, then the
|
|
571
|
+
// enclosing query. Both peers are own-only scopes (see registerColumnScope), so
|
|
572
|
+
// neither can answer for the other, and everything they do not own — a correlated
|
|
573
|
+
// outer column, a bind parameter — must still resolve, one level later.
|
|
546
574
|
const joinContext = {
|
|
547
575
|
...parentContext,
|
|
548
|
-
scope: combinedScope
|
|
576
|
+
scope: new ShadowScope([combinedScope, parentContext.scope])
|
|
549
577
|
};
|
|
550
578
|
let condition;
|
|
551
579
|
let usingColumns;
|
|
552
|
-
//
|
|
580
|
+
// ON and USING are mutually exclusive spellings of the same predicate (the parser
|
|
581
|
+
// accepts one or the other), and USING desugars into the ON condition it means.
|
|
553
582
|
if (joinClause.condition) {
|
|
554
583
|
condition = buildExpression(joinContext, joinClause.condition);
|
|
555
584
|
}
|
|
556
|
-
|
|
557
|
-
if (joinClause.columns) {
|
|
585
|
+
else if (joinClause.columns) {
|
|
558
586
|
usingColumns = joinClause.columns;
|
|
559
|
-
|
|
560
|
-
// For now, store the column names and let the emitter handle the condition
|
|
561
|
-
// TODO: This could be improved by synthesizing the equality conditions here
|
|
562
|
-
validateUsingCollations(usingColumns, leftNode, rightNode);
|
|
587
|
+
condition = buildUsingCondition(usingColumns, leftNode.getAttributes(), rightNode.getAttributes(), joinContext.scope);
|
|
563
588
|
}
|
|
564
589
|
// Existence (`exists … as`) flags: mint a stable attribute id per clause (once,
|
|
565
590
|
// here — so it survives `withChildren` rebuilds) and expose each by its `as`
|
|
@@ -587,31 +612,67 @@ function buildJoin(joinClause, parentContext, cteNodes) {
|
|
|
587
612
|
return joinNode;
|
|
588
613
|
}
|
|
589
614
|
/**
|
|
590
|
-
*
|
|
591
|
-
*
|
|
592
|
-
*
|
|
593
|
-
*
|
|
594
|
-
*
|
|
595
|
-
*
|
|
596
|
-
*
|
|
597
|
-
*
|
|
598
|
-
*
|
|
599
|
-
*
|
|
615
|
+
* Desugar `using (c1, c2, …)` into the `on l.c1 = r.c1 and l.c2 = r.c2 …` condition
|
|
616
|
+
* it is defined to mean, so a USING join is *the same plan* an equivalent ON join
|
|
617
|
+
* builds. Each pair goes through `buildComparison` — the same helper `buildExpression`
|
|
618
|
+
* uses for a spelled-out `=` — so everything hanging off a real comparison node
|
|
619
|
+
* applies to USING for free and cannot drift from the ON spelling:
|
|
620
|
+
*
|
|
621
|
+
* - cross-type coercion — a JSON column paired with a TEXT one compares structurally,
|
|
622
|
+
* an INTEGER paired with a TEXT one numerically (ticket
|
|
623
|
+
* `bug-using-join-skips-cross-type-coercion`; before the desugar USING compared
|
|
624
|
+
* raw storage classes and matched nothing).
|
|
625
|
+
* - `BinaryOpNode.generateType`'s collation-lattice validation — a `using (c)` over
|
|
626
|
+
* columns with conflicting explicit/declared collations raises the identical
|
|
627
|
+
* ambiguous-collation error as `l.c = r.c`, at plan time rather than only as the
|
|
628
|
+
* emitter's backstop. Both spellings resolve each pair through the SAME symmetric
|
|
629
|
+
* provenance lattice.
|
|
630
|
+
* - `extractEquiPairs` — hash/merge key selection, collation tagging and the
|
|
631
|
+
* semantic-ordering gate, all off the one extractor.
|
|
632
|
+
*
|
|
633
|
+
* A NATURAL join (not yet parsed) desugars to USING pairs and inherits all of this.
|
|
634
|
+
*
|
|
635
|
+
* Column references are built **from attributes**, not by resolving a synthesized
|
|
636
|
+
* qualified `AST.ColumnExpr` through the join scope: a USING column can be ambiguous
|
|
637
|
+
* by name within one side (`a join b using (k) join c using (k)` — the left side of
|
|
638
|
+
* the second join has two `k` columns). First-match-per-side by name is the pairing
|
|
639
|
+
* rule USING has always used here.
|
|
640
|
+
*
|
|
641
|
+
* NOTE: the nested-loop USING path used to resolve one comparator per column at emit
|
|
642
|
+
* time; it now evaluates a condition sub-program per row pair, like every ON join.
|
|
643
|
+
* Only USING joins that fall back to nested loop (cross-type pairs, existence-flag
|
|
644
|
+
* joins) pay this, and it is not measured. If a USING-heavy workload ever profiles
|
|
645
|
+
* slower, the fix belongs in the shared ON-condition evaluation path — not in a
|
|
646
|
+
* restored USING special case.
|
|
647
|
+
*/
|
|
648
|
+
export function buildUsingCondition(usingColumns, leftAttrs, rightAttrs, scope) {
|
|
649
|
+
if (usingColumns.length === 0) {
|
|
650
|
+
throw new QuereusError('USING clause requires at least one column', StatusCode.ERROR);
|
|
651
|
+
}
|
|
652
|
+
const conjuncts = usingColumns.map(colName => buildUsingColumnEquality(colName, leftAttrs, rightAttrs, scope));
|
|
653
|
+
return conjuncts.reduce((acc, cur) => new BinaryOpNode(acc.scope, { type: 'binary', operator: 'AND', left: acc.expression, right: cur.expression }, acc, cur));
|
|
654
|
+
}
|
|
655
|
+
/** One USING column's `l.c = r.c` conjunct, built exactly as the ON spelling builds it. */
|
|
656
|
+
function buildUsingColumnEquality(colName, leftAttrs, rightAttrs, scope) {
|
|
657
|
+
const left = buildUsingOperand(colName, leftAttrs, 'left', scope);
|
|
658
|
+
const right = buildUsingOperand(colName, rightAttrs, 'right', scope);
|
|
659
|
+
return buildComparison(scope, { type: 'binary', operator: '=', left: left.expression, right: right.expression }, left, right);
|
|
660
|
+
}
|
|
661
|
+
/**
|
|
662
|
+
* One side's operand for a USING column: a reference to the FIRST attribute of that
|
|
663
|
+
* name on that side (see the pairing rule on {@link buildUsingCondition}), qualified
|
|
664
|
+
* by its relation so the synthesized AST reads like the ON spelling.
|
|
600
665
|
*/
|
|
601
|
-
function
|
|
602
|
-
const
|
|
603
|
-
const
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
const leftAttr = leftAttrs.find(a => a.name.toLowerCase() === lower);
|
|
607
|
-
const rightAttr = rightAttrs.find(a => a.name.toLowerCase() === lower);
|
|
608
|
-
// A USING column missing from a side is a name-resolution error surfaced
|
|
609
|
-
// elsewhere (the join's column scope); skip rather than mask it here.
|
|
610
|
-
if (!leftAttr || !rightAttr)
|
|
611
|
-
continue;
|
|
612
|
-
const resolution = resolveComparisonCollation(leftAttr.type, rightAttr.type);
|
|
613
|
-
if (resolution.kind === 'conflict')
|
|
614
|
-
throw collationConflictError(resolution);
|
|
666
|
+
function buildUsingOperand(colName, attrs, side, scope) {
|
|
667
|
+
const lower = colName.toLowerCase();
|
|
668
|
+
const index = attrs.findIndex(a => a.name.toLowerCase() === lower);
|
|
669
|
+
if (index === -1) {
|
|
670
|
+
throw new QuereusError(`USING column not found on ${side} side of join: ${colName}`, StatusCode.ERROR);
|
|
615
671
|
}
|
|
672
|
+
const attr = attrs[index];
|
|
673
|
+
const expr = attr.relationName
|
|
674
|
+
? { type: 'column', name: attr.name, table: attr.relationName }
|
|
675
|
+
: { type: 'column', name: attr.name };
|
|
676
|
+
return new ColumnReferenceNode(scope, expr, attr.type, attr.id, index);
|
|
616
677
|
}
|
|
617
678
|
//# sourceMappingURL=select.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"select.js","sourceRoot":"","sources":["../../../../src/planner/building/select.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"select.js","sourceRoot":"","sources":["../../../../src/planner/building/select.ts"],"names":[],"mappings":"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"}
|
|
@@ -39,4 +39,44 @@ export declare function classifyConjunctCost(node: ScalarPlanNode): ConjunctCost
|
|
|
39
39
|
* order for ties via a stable sort.
|
|
40
40
|
*/
|
|
41
41
|
export declare function compareConjunctCost(a: ConjunctCost, b: ConjunctCost): number;
|
|
42
|
+
/**
|
|
43
|
+
* Selectivity assigned to a conjunct the statistics could not estimate, when at
|
|
44
|
+
* least one sibling conjunct WAS estimated. This is `DEFAULT_FILTER_SELECTIVITY`
|
|
45
|
+
* (0.5) — the engine's one "nobody knows" fraction, the same one
|
|
46
|
+
* `FilterNode.estimatedRows` falls back to — so "no information" is the neutral
|
|
47
|
+
* position: a measured-stronger conjunct (s < 0.5) sorts ahead of unknowns, a
|
|
48
|
+
* measured-weaker one (s > 0.5) behind. With the benefit term constant across a
|
|
49
|
+
* group of unknowns, descending benefit/cost degenerates to ascending cost, so
|
|
50
|
+
* unknowns keep their cost order among themselves.
|
|
51
|
+
*/
|
|
52
|
+
export declare const UNKNOWN_CONJUNCT_SELECTIVITY = 0.5;
|
|
53
|
+
/**
|
|
54
|
+
* Divide-by-zero guard only. `PlanNode.estimatedCost` defaults to 0.01 and the
|
|
55
|
+
* leaf scalar nodes cost 1, so no real conjunct has zero subtree cost; the floor
|
|
56
|
+
* keeps a zero from turning the ratio into Infinity. It cannot repair a NaN
|
|
57
|
+
* cost — but `getTotalCost()` sums finite per-node costs, so none arises.
|
|
58
|
+
*/
|
|
59
|
+
export declare const MIN_CONJUNCT_COST = 1e-9;
|
|
60
|
+
export interface ConjunctRank extends ConjunctCost {
|
|
61
|
+
/**
|
|
62
|
+
* Estimated fraction of rows the conjunct keeps, from the stats provider's
|
|
63
|
+
* `statsOnlySelectivity` family; {@link UNKNOWN_CONJUNCT_SELECTIVITY} when
|
|
64
|
+
* unknown. Clamped to [0, 1] at comparison time, so an out-of-range provider
|
|
65
|
+
* value cannot produce a negative benefit.
|
|
66
|
+
*/
|
|
67
|
+
selectivity: number;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* (tier asc, benefit/cost desc, subtreeCost asc) lexicographic.
|
|
71
|
+
*
|
|
72
|
+
* The tier stays the primary key: raw cost is not comparable ACROSS tiers (see
|
|
73
|
+
* the module doc-comment), so a measured selectivity must never bet against an
|
|
74
|
+
* unmeasured per-row sub-program cost — a strongly-selective `Subquery`-tier
|
|
75
|
+
* conjunct cannot jump ahead of a weakly-selective `Pure` one. Within a tier the
|
|
76
|
+
* conjuncts are the same structural class, cost is comparable, and the ratio is
|
|
77
|
+
* the textbook rank. Ratio ties fall through to plain cost (never a raw ratio
|
|
78
|
+
* difference — a sub-ULP difference must not collapse two distinct keys into a
|
|
79
|
+
* tie); full ties resolve to 0 and callers keep source order via a stable sort.
|
|
80
|
+
*/
|
|
81
|
+
export declare function compareConjunctRank(a: ConjunctRank, b: ConjunctRank): number;
|
|
42
82
|
//# sourceMappingURL=conjunct-cost.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conjunct-cost.d.ts","sourceRoot":"","sources":["../../../../src/planner/cost/conjunct-cost.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAA8B,KAAK,cAAc,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"conjunct-cost.d.ts","sourceRoot":"","sources":["../../../../src/planner/cost/conjunct-cost.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAA8B,KAAK,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAIxF,iFAAiF;AACjF,oBAAY,gBAAgB;IAC3B,0DAA0D;IAC1D,IAAI,IAAI;IACR,4EAA4E;IAC5E,QAAQ,IAAI;IACZ,0EAA0E;IAC1E,QAAQ,IAAI;CACZ;AAED,MAAM,WAAW,YAAY;IAC5B,IAAI,EAAE,gBAAgB,CAAC;IACvB,kEAAkE;IAClE,WAAW,EAAE,MAAM,CAAC;CACpB;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,cAAc,GAAG,YAAY,CAmBvE;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,YAAY,GAAG,MAAM,CAG5E;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,4BAA4B,MAA6B,CAAC;AAEvE;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,OAAO,CAAC;AAEtC,MAAM,WAAW,YAAa,SAAQ,YAAY;IACjD;;;;;OAKG;IACH,WAAW,EAAE,MAAM,CAAC;CACpB;AAQD;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,YAAY,GAAG,MAAM,CAM5E"}
|