@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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rule-subquery-decorrelation.d.ts","sourceRoot":"","sources":["../../../../../src/planner/rules/subquery/rule-subquery-decorrelation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AAIH,OAAO,EAAoB,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"rule-subquery-decorrelation.d.ts","sourceRoot":"","sources":["../../../../../src/planner/rules/subquery/rule-subquery-decorrelation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AAIH,OAAO,EAAoB,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAqe7D,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,GAAG,QAAQ,GAAG,IAAI,CAkB/F;AAmCD,wBAAgB,+BAA+B,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,GAAG,QAAQ,GAAG,IAAI,CAkCrG"}
|
|
@@ -61,6 +61,7 @@ import { isEquiCorrelation, collectDefinedAttrIds, referencesAnyAttr } from '../
|
|
|
61
61
|
import { PlanNodeCharacteristics } from '../../framework/characteristics.js';
|
|
62
62
|
import { extractEquiPairs } from '../join/equi-pair-extractor.js';
|
|
63
63
|
import { resolveComparisonCollation, resolveInCollationForNode } from '../../analysis/comparison-collation.js';
|
|
64
|
+
import { coerceComparisonSet } from '../../building/coercion.js';
|
|
64
65
|
const log = createLogger('optimizer:rule:subquery-decorrelation');
|
|
65
66
|
/**
|
|
66
67
|
* Identify a decorrelation candidate from a single conjunct.
|
|
@@ -182,15 +183,13 @@ function extractInCorrelation(inNode, outerAttrIds) {
|
|
|
182
183
|
if (innerAttrs.length === 0)
|
|
183
184
|
return null;
|
|
184
185
|
const innerFirstAttr = innerAttrs[0];
|
|
185
|
-
// Build the equi-join condition: outer.col = inner.firstCol
|
|
186
|
-
// We need a BinaryOpNode with = between the outer column ref and an inner column ref
|
|
187
|
-
const innerColRef = new ColumnReferenceNode(outerColRef.scope, outerColRef.expression, // reuse expression for formatting
|
|
188
|
-
innerFirstAttr.type, innerFirstAttr.id, 0 // column index in the inner relation
|
|
189
|
-
);
|
|
190
|
-
const equiCondition = new BinaryOpNode(outerColRef.scope, { type: 'binary', operator: '=', left: outerColRef.expression, right: innerColRef.expression }, outerColRef, innerColRef);
|
|
191
186
|
// Walk through the subquery to find any additional correlation filters
|
|
192
187
|
let current = subqueryRoot;
|
|
193
|
-
// Skip Project and Alias nodes
|
|
188
|
+
// Skip Project and Alias nodes.
|
|
189
|
+
// NOTE: every other root (Distinct, SetOperation, Sort, CTE body, Aggregate, …)
|
|
190
|
+
// is caught only by the post-build external-reference backstop in
|
|
191
|
+
// decorrelateOneConjunct — widening this descent without keeping that backstop
|
|
192
|
+
// would silently bury the correlation inside the join's right side again.
|
|
194
193
|
while (current.nodeType === PlanNodeType.Project || current.nodeType === PlanNodeType.Alias) {
|
|
195
194
|
const children = current.getChildren();
|
|
196
195
|
const source = children[0];
|
|
@@ -198,9 +197,44 @@ function extractInCorrelation(inNode, outerAttrIds) {
|
|
|
198
197
|
break;
|
|
199
198
|
current = source;
|
|
200
199
|
}
|
|
200
|
+
// Gate: a LIMIT/OFFSET reached by the descent sits ABOVE the correlated
|
|
201
|
+
// filter, so it applies per outer row — a single semi join cannot express
|
|
202
|
+
// that. (A LIMIT *below* the correlated filter, inside a derived table, is
|
|
203
|
+
// uncorrelated and never reached here.)
|
|
204
|
+
if (current.nodeType === PlanNodeType.LimitOffset)
|
|
205
|
+
return null;
|
|
206
|
+
// Whatever the descent landed on becomes the join's right side (minus the
|
|
207
|
+
// correlated filter, when one was found).
|
|
208
|
+
const innerSource = current instanceof FilterNode ? current.source : current;
|
|
209
|
+
// Gate: the right side must actually expose the IN comparison target. A bare
|
|
210
|
+
// column projection preserves the source column's attribute id, but a
|
|
211
|
+
// COMPUTED projection (`select b.x + 0 …`) mints a fresh id that nothing
|
|
212
|
+
// below defines — the join condition would reference an attribute no side
|
|
213
|
+
// provides. Mirrors the SELECT-list sibling's key-attribute lookup.
|
|
214
|
+
const innerKeyIndex = innerSource.getAttributes().findIndex(a => a.id === innerFirstAttr.id);
|
|
215
|
+
if (innerKeyIndex < 0)
|
|
216
|
+
return null;
|
|
217
|
+
// Build the equi-join condition: outer.col = inner.firstCol. The inner
|
|
218
|
+
// reference gets its OWN AST — reusing the outer column's expression made
|
|
219
|
+
// EXPLAIN render every decorrelated IN condition as the nonsense `a.x = a.x`.
|
|
220
|
+
const innerColRef = new ColumnReferenceNode(outerColRef.scope, { type: 'column', name: innerFirstAttr.name }, innerFirstAttr.type, innerFirstAttr.id, innerKeyIndex);
|
|
221
|
+
// Reconcile the two operands exactly as a hand-written `=` would be. Building the
|
|
222
|
+
// BinaryOpNode raw bypassed the plan-build coercion every other comparison site gets,
|
|
223
|
+
// so `json_col in (select text_col …)` compared a native JS object against a string
|
|
224
|
+
// and never matched, and `int_col in (select text_col …)` compared a number against a
|
|
225
|
+
// string. `coerceComparisonSet` is the IN-shaped helper — the same one the IN
|
|
226
|
+
// value-list and simple-CASE builders call, and the same one `extractUncorrelatedIn`
|
|
227
|
+
// calls, so the two decorrelation arms and the runtime set probe cannot split.
|
|
228
|
+
//
|
|
229
|
+
// The now-CastNode-wrapped side demotes this conjunct out of `extractEquiPairs`
|
|
230
|
+
// (which requires two bare column references) into the join's residual — the correct
|
|
231
|
+
// destination, since the residual is where `=`'s own semantics apply, and the join
|
|
232
|
+
// still keys on the genuine correlation pair.
|
|
233
|
+
const [coercedOuter, [coercedInner]] = coerceComparisonSet(outerColRef.scope, outerColRef, [innerColRef]);
|
|
234
|
+
const equiCondition = new BinaryOpNode(outerColRef.scope, { type: 'binary', operator: '=', left: coercedOuter.expression, right: coercedInner.expression }, coercedOuter, coercedInner);
|
|
201
235
|
// If there's a filter with additional correlation, extract it
|
|
202
236
|
if (current instanceof FilterNode) {
|
|
203
|
-
const innerAttrIds = collectDefinedAttrIds(
|
|
237
|
+
const innerAttrIds = collectDefinedAttrIds(innerSource);
|
|
204
238
|
const conjuncts = splitConjuncts(current.predicate);
|
|
205
239
|
const additionalCorrelation = [];
|
|
206
240
|
const innerOnly = [];
|
|
@@ -222,14 +256,14 @@ function extractInCorrelation(inNode, outerAttrIds) {
|
|
|
222
256
|
const correlationCondition = combineConjuncts(allCorrelation);
|
|
223
257
|
const residualInnerFilter = combineConjuncts(innerOnly);
|
|
224
258
|
return {
|
|
225
|
-
innerSource
|
|
259
|
+
innerSource,
|
|
226
260
|
correlationCondition,
|
|
227
261
|
residualInnerFilter,
|
|
228
262
|
};
|
|
229
263
|
}
|
|
230
264
|
// No inner filter — the only correlation is the IN condition itself
|
|
231
265
|
return {
|
|
232
|
-
innerSource
|
|
266
|
+
innerSource,
|
|
233
267
|
correlationCondition: equiCondition,
|
|
234
268
|
residualInnerFilter: null,
|
|
235
269
|
};
|
|
@@ -267,7 +301,21 @@ function extractUncorrelatedIn(inNode, outerAttrIds) {
|
|
|
267
301
|
// correlated arm's condition renders as the nonsense `a.x = a.x` in EXPLAIN).
|
|
268
302
|
const innerColRef = new ColumnReferenceNode(outerColRef.scope, { type: 'column', name: innerAttr.name }, innerAttr.type, innerAttr.id, 0 // column index in the inner relation
|
|
269
303
|
);
|
|
270
|
-
|
|
304
|
+
// Reconcile the operands exactly as a hand-written `=` would be, for the same
|
|
305
|
+
// reason `extractInCorrelation` does: this raw BinaryOpNode bypasses the coercion
|
|
306
|
+
// `buildExpression` applies. When a cast IS inserted (a JSON/TEXT or numeric/TEXT
|
|
307
|
+
// pair), the wrapper fails the equi-pair gate below and the conjunct declines to
|
|
308
|
+
// the set-probe path — whose `inMembershipKeys` performs the same conversion per
|
|
309
|
+
// row. That decline is the point: a hash join keyed on the RAW values would rank a
|
|
310
|
+
// number against a numeric-looking string by storage class and match nothing,
|
|
311
|
+
// disagreeing with every other spelling of the comparison.
|
|
312
|
+
// NOTE: the decline costs the hash-join shape for cross-type uncorrelated INs — the
|
|
313
|
+
// set probe materializes the inner side once and probes per outer row, which is fine
|
|
314
|
+
// at current inner sizes. If a cross-type `col in (select …)` over a large inner ever
|
|
315
|
+
// shows up as slow, the move is a coercion-aware equi-pair (key both sides on the
|
|
316
|
+
// cast result), not reverting the coercion.
|
|
317
|
+
const [coercedOuter, [coercedInner]] = coerceComparisonSet(outerColRef.scope, outerColRef, [innerColRef]);
|
|
318
|
+
const condition = new BinaryOpNode(outerColRef.scope, { type: 'binary', operator: '=', left: coercedOuter.expression, right: coercedInner.expression }, coercedOuter, coercedInner);
|
|
271
319
|
// Gate (the O(N×K)-floor guardrail): the synthesized condition must survive
|
|
272
320
|
// the SAME extraction rule-join-physical-selection uses, as exactly one
|
|
273
321
|
// equi-pair with no residual. That is that rule's only structural
|
|
@@ -351,6 +399,16 @@ function decorrelateOneConjunct(node) {
|
|
|
351
399
|
? new FilterNode(extraction.innerSource.scope, extraction.innerSource, extraction.residualInnerFilter)
|
|
352
400
|
: extraction.innerSource;
|
|
353
401
|
joinCondition = extraction.correlationCondition;
|
|
402
|
+
// Correctness backstop: every correlation must have been LIFTED into the
|
|
403
|
+
// join condition. Anything still referencing an outer scope from inside
|
|
404
|
+
// the right side would be driven as if uncorrelated (a semi join does not
|
|
405
|
+
// re-establish the outer row context), so decline and leave the conjunct
|
|
406
|
+
// on the per-row path. Mirrors the SELECT-list sibling's
|
|
407
|
+
// `collectExternalReferences(distinctRight)` check.
|
|
408
|
+
if (collectExternalReferences(joinRight).size !== 0) {
|
|
409
|
+
log('Right side retains external references after extraction; skipping conjunct');
|
|
410
|
+
continue;
|
|
411
|
+
}
|
|
354
412
|
}
|
|
355
413
|
// Build the semi/anti join
|
|
356
414
|
const joinNode = new JoinNode(outerSource.scope, outerSource, joinRight, candidate.joinType, joinCondition);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rule-subquery-decorrelation.js","sourceRoot":"","sources":["../../../../../src/planner/rules/subquery/rule-subquery-decorrelation.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"rule-subquery-decorrelation.js","sourceRoot":"","sources":["../../../../../src/planner/rules/subquery/rule-subquery-decorrelation.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,9 +19,11 @@
|
|
|
19
19
|
* (`UNBOUNDED PRECEDING TO CURRENT ROW`, ROWS or RANGE — RANGE handles peer
|
|
20
20
|
* groups via delayed emit at peer boundaries)
|
|
21
21
|
* - `SUM` / `COUNT` / `AVG` / `MIN` / `MAX` / `FIRST_VALUE` / `LAST_VALUE`
|
|
22
|
-
* over a sliding frame `ROWS BETWEEN n PRECEDING AND m FOLLOWING`
|
|
23
|
-
*
|
|
24
|
-
*
|
|
22
|
+
* over a sliding frame `ROWS BETWEEN n PRECEDING AND m FOLLOWING` or
|
|
23
|
+
* `RANGE BETWEEN n PRECEDING AND m FOLLOWING` (single numeric ORDER BY key),
|
|
24
|
+
* `n` and `m` being non-negative integer literals in both modes. Either
|
|
25
|
+
* bound may instead be `CURRENT ROW`, which is that bound at offset zero;
|
|
26
|
+
* a start-only frame (`ROWS n PRECEDING`) means `... AND CURRENT ROW`.
|
|
25
27
|
*
|
|
26
28
|
* Bail conditions:
|
|
27
29
|
*
|
|
@@ -34,12 +36,20 @@
|
|
|
34
36
|
* - frame is anything other than the default (or the explicit equivalent
|
|
35
37
|
* `UNBOUNDED PRECEDING TO CURRENT ROW` in `ROWS` or `RANGE`), or a
|
|
36
38
|
* supported sliding shape (see above)
|
|
39
|
+
* - `RANGE` sliding frame whose ORDER BY is not a single numeric key
|
|
40
|
+
* (`isRangeSlidingEligible`)
|
|
41
|
+
* - frame offset that is not a non-negative integer literal (`readFrameOffset`)
|
|
42
|
+
*
|
|
43
|
+
* Every bail is a *performance* decision, never a semantic one: a shape this
|
|
44
|
+
* rule recognizes must produce exactly the rows the buffered frame walk in
|
|
45
|
+
* `runtime/emit/window.ts` produces for it. The two RANGE-specific bails above
|
|
46
|
+
* exist precisely because the two paths would otherwise answer differently.
|
|
47
|
+
* `test/plan/window-one-sided-frames.spec.ts` runs every case both ways.
|
|
37
48
|
*
|
|
38
49
|
* Out of scope (deferred): NTILE/PERCENT_RANK/CUME_DIST (need partition size up
|
|
39
|
-
* front), DISTINCT aggregates,
|
|
40
|
-
* (`UNBOUNDED PRECEDING AND m FOLLOWING`, `n PRECEDING AND UNBOUNDED
|
|
41
|
-
*
|
|
42
|
-
* buffered halves.
|
|
50
|
+
* front), DISTINCT aggregates, unbounded-on-one-side sliding shapes
|
|
51
|
+
* (`UNBOUNDED PRECEDING AND m FOLLOWING`, `n PRECEDING AND UNBOUNDED
|
|
52
|
+
* FOLLOWING`), splitting a mixed WindowNode into streaming + buffered halves.
|
|
43
53
|
*/
|
|
44
54
|
import type { PlanNode } from '../../nodes/plan-node.js';
|
|
45
55
|
import type { OptContext } from '../../framework/context.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rule-monotonic-window.d.ts","sourceRoot":"","sources":["../../../../../src/planner/rules/window/rule-monotonic-window.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"rule-monotonic-window.d.ts","sourceRoot":"","sources":["../../../../../src/planner/rules/window/rule-monotonic-window.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAkB,MAAM,0BAA0B,CAAC;AACzE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAoN7D,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,GAAG,QAAQ,GAAG,IAAI,CAyJzF"}
|
|
@@ -19,9 +19,11 @@
|
|
|
19
19
|
* (`UNBOUNDED PRECEDING TO CURRENT ROW`, ROWS or RANGE — RANGE handles peer
|
|
20
20
|
* groups via delayed emit at peer boundaries)
|
|
21
21
|
* - `SUM` / `COUNT` / `AVG` / `MIN` / `MAX` / `FIRST_VALUE` / `LAST_VALUE`
|
|
22
|
-
* over a sliding frame `ROWS BETWEEN n PRECEDING AND m FOLLOWING`
|
|
23
|
-
*
|
|
24
|
-
*
|
|
22
|
+
* over a sliding frame `ROWS BETWEEN n PRECEDING AND m FOLLOWING` or
|
|
23
|
+
* `RANGE BETWEEN n PRECEDING AND m FOLLOWING` (single numeric ORDER BY key),
|
|
24
|
+
* `n` and `m` being non-negative integer literals in both modes. Either
|
|
25
|
+
* bound may instead be `CURRENT ROW`, which is that bound at offset zero;
|
|
26
|
+
* a start-only frame (`ROWS n PRECEDING`) means `... AND CURRENT ROW`.
|
|
25
27
|
*
|
|
26
28
|
* Bail conditions:
|
|
27
29
|
*
|
|
@@ -34,12 +36,20 @@
|
|
|
34
36
|
* - frame is anything other than the default (or the explicit equivalent
|
|
35
37
|
* `UNBOUNDED PRECEDING TO CURRENT ROW` in `ROWS` or `RANGE`), or a
|
|
36
38
|
* supported sliding shape (see above)
|
|
39
|
+
* - `RANGE` sliding frame whose ORDER BY is not a single numeric key
|
|
40
|
+
* (`isRangeSlidingEligible`)
|
|
41
|
+
* - frame offset that is not a non-negative integer literal (`readFrameOffset`)
|
|
42
|
+
*
|
|
43
|
+
* Every bail is a *performance* decision, never a semantic one: a shape this
|
|
44
|
+
* rule recognizes must produce exactly the rows the buffered frame walk in
|
|
45
|
+
* `runtime/emit/window.ts` produces for it. The two RANGE-specific bails above
|
|
46
|
+
* exist precisely because the two paths would otherwise answer differently.
|
|
47
|
+
* `test/plan/window-one-sided-frames.spec.ts` runs every case both ways.
|
|
37
48
|
*
|
|
38
49
|
* Out of scope (deferred): NTILE/PERCENT_RANK/CUME_DIST (need partition size up
|
|
39
|
-
* front), DISTINCT aggregates,
|
|
40
|
-
* (`UNBOUNDED PRECEDING AND m FOLLOWING`, `n PRECEDING AND UNBOUNDED
|
|
41
|
-
*
|
|
42
|
-
* buffered halves.
|
|
50
|
+
* front), DISTINCT aggregates, unbounded-on-one-side sliding shapes
|
|
51
|
+
* (`UNBOUNDED PRECEDING AND m FOLLOWING`, `n PRECEDING AND UNBOUNDED
|
|
52
|
+
* FOLLOWING`), splitting a mixed WindowNode into streaming + buffered halves.
|
|
43
53
|
*/
|
|
44
54
|
import { createLogger } from '../../../common/logger.js';
|
|
45
55
|
import { WindowNode } from '../../nodes/window-node.js';
|
|
@@ -68,52 +78,110 @@ function isDefaultEquivalentFrame(frame) {
|
|
|
68
78
|
return frame.end.type === 'currentRow';
|
|
69
79
|
}
|
|
70
80
|
/**
|
|
71
|
-
*
|
|
81
|
+
* Read one frame bound as a non-negative offset from the current row, in the
|
|
82
|
+
* direction that bound sits on (`preceding` for the start bound, `following`
|
|
83
|
+
* for the end bound).
|
|
84
|
+
*
|
|
85
|
+
* `CURRENT ROW` is the offset-zero case of the bound it replaces:
|
|
86
|
+
*
|
|
87
|
+
* - ROWS: row `j` itself, which is what `0 PRECEDING` / `0 FOLLOWING` select.
|
|
88
|
+
* - RANGE: every peer row sharing `v_j`, which is what the range scan's
|
|
89
|
+
* `[v_j - 0, v_j + 0]` interval already selects.
|
|
72
90
|
*
|
|
73
|
-
*
|
|
74
|
-
*
|
|
75
|
-
*
|
|
76
|
-
*
|
|
91
|
+
* Returns undefined when the bound is not a recognized offset shape
|
|
92
|
+
* (`UNBOUNDED PRECEDING`/`FOLLOWING`, a non-literal offset, or an offset that
|
|
93
|
+
* is not a non-negative integer).
|
|
94
|
+
*
|
|
95
|
+
* The non-negative-integer rule is what the buffered frame walk's
|
|
96
|
+
* `getFrameOffset` (runtime/emit/window.ts) enforces — it *throws* on anything
|
|
97
|
+
* else, in RANGE mode as much as in ROWS. Accepting a wider set here would make
|
|
98
|
+
* `range between 1.5 preceding and current row` succeed or raise depending on
|
|
99
|
+
* whether the optimizer happened to pick the streaming plan.
|
|
100
|
+
*/
|
|
101
|
+
function readFrameOffset(bound, direction) {
|
|
102
|
+
if (bound.type === 'currentRow')
|
|
103
|
+
return 0;
|
|
104
|
+
if (bound.type !== direction)
|
|
105
|
+
return undefined;
|
|
106
|
+
const offset = tryExtractNumericLiteral(bound.value);
|
|
107
|
+
if (offset === undefined)
|
|
108
|
+
return undefined;
|
|
109
|
+
if (!Number.isInteger(offset) || offset < 0)
|
|
110
|
+
return undefined;
|
|
111
|
+
return offset;
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Recognize a sliding-frame shape supported by streaming: a start bound that is
|
|
115
|
+
* `n PRECEDING` or `CURRENT ROW`, and an end bound that is `m FOLLOWING` or
|
|
116
|
+
* `CURRENT ROW` (or absent, since a start-only frame means `... AND CURRENT
|
|
117
|
+
* ROW`). Offsets must be non-negative integer literals in both modes.
|
|
118
|
+
*
|
|
119
|
+
* One-sided shapes reduce to the two-sided form with the `CURRENT ROW` side at
|
|
120
|
+
* offset zero, so `n PRECEDING AND CURRENT ROW` runs the same sliding-buffer
|
|
121
|
+
* state machine as `n PRECEDING AND 0 FOLLOWING`.
|
|
77
122
|
*
|
|
78
123
|
* Returns the recognized shape, or null when the frame is not a supported
|
|
79
|
-
* sliding shape (caller falls back to other recognition paths).
|
|
124
|
+
* sliding shape (caller falls back to other recognition paths). Note that
|
|
125
|
+
* `UNBOUNDED PRECEDING AND CURRENT ROW` is rejected here — callers check
|
|
126
|
+
* `isDefaultEquivalentFrame` first so it keeps routing to the cheaper
|
|
127
|
+
* running-accumulator path.
|
|
80
128
|
*/
|
|
81
129
|
function recognizeSlidingFrame(frame) {
|
|
82
130
|
if (!frame)
|
|
83
131
|
return null;
|
|
84
132
|
if (frame.exclusion && frame.exclusion !== 'no others')
|
|
85
133
|
return null;
|
|
86
|
-
if (frame.end === null)
|
|
87
|
-
return null;
|
|
88
|
-
if (frame.start.type !== 'preceding')
|
|
89
|
-
return null;
|
|
90
|
-
if (frame.end.type !== 'following')
|
|
91
|
-
return null;
|
|
92
134
|
if (frame.type !== 'rows' && frame.type !== 'range')
|
|
93
135
|
return null;
|
|
94
|
-
const preceding =
|
|
95
|
-
|
|
96
|
-
if (preceding === undefined || following === undefined)
|
|
97
|
-
return null;
|
|
98
|
-
if (!Number.isFinite(preceding) || !Number.isFinite(following))
|
|
136
|
+
const preceding = readFrameOffset(frame.start, 'preceding');
|
|
137
|
+
if (preceding === undefined)
|
|
99
138
|
return null;
|
|
100
|
-
|
|
139
|
+
const following = frame.end === null
|
|
140
|
+
? 0
|
|
141
|
+
: readFrameOffset(frame.end, 'following');
|
|
142
|
+
if (following === undefined)
|
|
101
143
|
return null;
|
|
102
|
-
if (frame.type === 'rows') {
|
|
103
|
-
if (!Number.isInteger(preceding) || !Number.isInteger(following))
|
|
104
|
-
return null;
|
|
105
|
-
}
|
|
106
144
|
return { mode: frame.type, preceding, following };
|
|
107
145
|
}
|
|
146
|
+
/**
|
|
147
|
+
* Whether a RANGE-mode sliding frame may stream on this WindowNode at all.
|
|
148
|
+
*
|
|
149
|
+
* A numeric RANGE offset is arithmetic on the ORDER BY value (`[v - n, v + m]`),
|
|
150
|
+
* which the SQL standard only defines for a single ORDER BY key of a type that
|
|
151
|
+
* arithmetic applies to. The streaming range scan does that arithmetic in
|
|
152
|
+
* `Number` space; the buffered frame walk falls back to peer-group scanning when
|
|
153
|
+
* the value isn't numeric, and the two do NOT agree there — e.g. under a TEXT
|
|
154
|
+
* ORDER BY key the buffered walk still bounds the frame at peer-group edges
|
|
155
|
+
* while the streaming scan treats the whole non-numeric run as one span. So a
|
|
156
|
+
* non-numeric ORDER BY key must keep the buffered path.
|
|
157
|
+
*/
|
|
158
|
+
function isRangeSlidingEligible(orderByExpressions) {
|
|
159
|
+
if (orderByExpressions.length !== 1)
|
|
160
|
+
return false;
|
|
161
|
+
return orderByExpressions[0].getType().logicalType.isNumeric === true;
|
|
162
|
+
}
|
|
163
|
+
/** Classify a WindowNode's frame once, for every function in the node to share. */
|
|
164
|
+
function classifyFrame(frame, orderByExpressions) {
|
|
165
|
+
const sliding = recognizeSlidingFrame(frame);
|
|
166
|
+
const streamable = sliding !== null
|
|
167
|
+
&& (sliding.mode !== 'range' || isRangeSlidingEligible(orderByExpressions));
|
|
168
|
+
return { isDefault: isDefaultEquivalentFrame(frame), sliding: streamable ? sliding : null };
|
|
169
|
+
}
|
|
170
|
+
/** Build the sliding-buffer mode for a recognized aggregate under a sliding frame. */
|
|
171
|
+
function slidingAggMode(name, sliding) {
|
|
172
|
+
return {
|
|
173
|
+
kind: 'slidingAgg',
|
|
174
|
+
name,
|
|
175
|
+
frameMode: sliding.mode,
|
|
176
|
+
preceding: sliding.preceding,
|
|
177
|
+
following: sliding.following,
|
|
178
|
+
};
|
|
179
|
+
}
|
|
108
180
|
/**
|
|
109
181
|
* Decide the streaming mode for a single window function. Returns null if the
|
|
110
182
|
* function is not streaming-capable under v1 preconditions.
|
|
111
|
-
*
|
|
112
|
-
* `orderByLength` is the number of ORDER BY keys on the WindowNode — required
|
|
113
|
-
* for the RANGE-sliding-frame check, which mandates a single numeric ORDER BY
|
|
114
|
-
* key.
|
|
115
183
|
*/
|
|
116
|
-
function recognizeFunctionMode(functionName, isDistinct, args, frame
|
|
184
|
+
function recognizeFunctionMode(functionName, isDistinct, args, frame) {
|
|
117
185
|
if (isDistinct)
|
|
118
186
|
return null;
|
|
119
187
|
const name = functionName.toLowerCase();
|
|
@@ -127,47 +195,21 @@ function recognizeFunctionMode(functionName, isDistinct, args, frame, orderByLen
|
|
|
127
195
|
return { kind: 'rank' };
|
|
128
196
|
case 'dense_rank':
|
|
129
197
|
return { kind: 'denseRank' };
|
|
130
|
-
case 'first_value':
|
|
198
|
+
case 'first_value':
|
|
131
199
|
if (args.length < 1)
|
|
132
200
|
return null;
|
|
133
201
|
// Default-equivalent frame: cache first row's value for the partition.
|
|
134
|
-
if (
|
|
202
|
+
if (frame.isDefault)
|
|
135
203
|
return { kind: 'firstValue' };
|
|
136
204
|
// Sliding frame: defer to slidingAgg machinery.
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
if (sliding.mode === 'range' && orderByLength !== 1)
|
|
140
|
-
return null;
|
|
141
|
-
return {
|
|
142
|
-
kind: 'slidingAgg',
|
|
143
|
-
name: 'first_value',
|
|
144
|
-
frameMode: sliding.mode,
|
|
145
|
-
preceding: sliding.preceding,
|
|
146
|
-
following: sliding.following,
|
|
147
|
-
};
|
|
148
|
-
}
|
|
149
|
-
return null;
|
|
150
|
-
}
|
|
151
|
-
case 'last_value': {
|
|
205
|
+
return frame.sliding && slidingAggMode('first_value', frame.sliding);
|
|
206
|
+
case 'last_value':
|
|
152
207
|
if (args.length < 1)
|
|
153
208
|
return null;
|
|
154
209
|
// LAST_VALUE under the default frame == current row.
|
|
155
|
-
if (
|
|
210
|
+
if (frame.isDefault)
|
|
156
211
|
return { kind: 'lastValue' };
|
|
157
|
-
|
|
158
|
-
if (sliding) {
|
|
159
|
-
if (sliding.mode === 'range' && orderByLength !== 1)
|
|
160
|
-
return null;
|
|
161
|
-
return {
|
|
162
|
-
kind: 'slidingAgg',
|
|
163
|
-
name: 'last_value',
|
|
164
|
-
frameMode: sliding.mode,
|
|
165
|
-
preceding: sliding.preceding,
|
|
166
|
-
following: sliding.following,
|
|
167
|
-
};
|
|
168
|
-
}
|
|
169
|
-
return null;
|
|
170
|
-
}
|
|
212
|
+
return frame.sliding && slidingAggMode('last_value', frame.sliding);
|
|
171
213
|
case 'lag':
|
|
172
214
|
case 'lead': {
|
|
173
215
|
if (args.length < 1)
|
|
@@ -186,26 +228,13 @@ function recognizeFunctionMode(functionName, isDistinct, args, frame, orderByLen
|
|
|
186
228
|
return { kind: name === 'lag' ? 'lag' : 'lead', offset };
|
|
187
229
|
}
|
|
188
230
|
default:
|
|
189
|
-
if (RECOGNIZED_RUNNING_AGG.has(name))
|
|
190
|
-
if (isDefaultEquivalentFrame(frame))
|
|
191
|
-
return { kind: 'runningAgg' };
|
|
192
|
-
if (RECOGNIZED_SLIDING_AGG.has(name)) {
|
|
193
|
-
const sliding = recognizeSlidingFrame(frame);
|
|
194
|
-
if (sliding) {
|
|
195
|
-
if (sliding.mode === 'range' && orderByLength !== 1)
|
|
196
|
-
return null;
|
|
197
|
-
return {
|
|
198
|
-
kind: 'slidingAgg',
|
|
199
|
-
name: name,
|
|
200
|
-
frameMode: sliding.mode,
|
|
201
|
-
preceding: sliding.preceding,
|
|
202
|
-
following: sliding.following,
|
|
203
|
-
};
|
|
204
|
-
}
|
|
205
|
-
}
|
|
231
|
+
if (!RECOGNIZED_RUNNING_AGG.has(name))
|
|
206
232
|
return null;
|
|
207
|
-
|
|
208
|
-
|
|
233
|
+
if (frame.isDefault)
|
|
234
|
+
return { kind: 'runningAgg' };
|
|
235
|
+
if (!RECOGNIZED_SLIDING_AGG.has(name) || !frame.sliding)
|
|
236
|
+
return null;
|
|
237
|
+
return slidingAggMode(name, frame.sliding);
|
|
209
238
|
}
|
|
210
239
|
}
|
|
211
240
|
export function ruleMonotonicWindow(node, _context) {
|
|
@@ -288,6 +317,13 @@ export function ruleMonotonicWindow(node, _context) {
|
|
|
288
317
|
log('Source ordering prefix too short (have=%d, need=%d)', orderingAttrIds.length, requiredPrefixLen);
|
|
289
318
|
return null;
|
|
290
319
|
}
|
|
320
|
+
// NOTE: a PARTITION BY window never reaches here in practice today. A table
|
|
321
|
+
// access advertises `monotonicOn` for its leading *unbound* index column only
|
|
322
|
+
// (`buildMonotonicAdvertisement`, vtab/memory/module.ts), so on an index
|
|
323
|
+
// (g, k) the advertisement names `g`, and the `monotonicOn` check above
|
|
324
|
+
// rejects `partition by g order by k` before this prefix check runs. If
|
|
325
|
+
// partitioned windows should stream, that advertisement is the thing to
|
|
326
|
+
// widen — the checks below already handle the multi-key shape.
|
|
291
327
|
// First slice: partition attrs in any permutation.
|
|
292
328
|
const partitionPrefix = orderingAttrIds.slice(0, partitionAttrIds.length);
|
|
293
329
|
const partitionSet = new Set(partitionAttrIds);
|
|
@@ -311,7 +347,8 @@ export function ruleMonotonicWindow(node, _context) {
|
|
|
311
347
|
return null;
|
|
312
348
|
}
|
|
313
349
|
}
|
|
314
|
-
// Per-function recognition.
|
|
350
|
+
// Per-function recognition, against the node's one shared frame classification.
|
|
351
|
+
const frameShape = classifyFrame(frame, node.orderByExpressions);
|
|
315
352
|
const modes = [];
|
|
316
353
|
for (let fi = 0; fi < node.functions.length; fi++) {
|
|
317
354
|
const func = node.functions[fi];
|
|
@@ -319,7 +356,7 @@ export function ruleMonotonicWindow(node, _context) {
|
|
|
319
356
|
// LAG/LEAD/FIRST_VALUE/LAST_VALUE need the actual literal AST for the
|
|
320
357
|
// offset. We approximate by inspecting LiteralNode in args.
|
|
321
358
|
const argDescriptors = args.map(a => ({ expression: a.expression }));
|
|
322
|
-
const mode = recognizeFunctionMode(func.functionName, func.isDistinct, argDescriptors,
|
|
359
|
+
const mode = recognizeFunctionMode(func.functionName, func.isDistinct, argDescriptors, frameShape);
|
|
323
360
|
if (!mode) {
|
|
324
361
|
log('Function %s not streaming-capable; falling back', func.functionName);
|
|
325
362
|
return null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rule-monotonic-window.js","sourceRoot":"","sources":["../../../../../src/planner/rules/window/rule-monotonic-window.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"rule-monotonic-window.js","sourceRoot":"","sources":["../../../../../src/planner/rules/window/rule-monotonic-window.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aliased.d.ts","sourceRoot":"","sources":["../../../../src/planner/scopes/aliased.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,KAAK,GAAG,MAAM,qBAAqB,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC;;;;GAIG;AACH,qBAAa,YAAa,SAAQ,SAAS;aAKzB,MAAM,EAAE,KAAK;IAJ9B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;gBAGf,MAAM,EAAE,KAAK,EAC7B,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM;IAOd,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,CAAC,UAAU,GAAG,QAAQ,GAAG,OAAO,SAAS,GAAG,SAAS;
|
|
1
|
+
{"version":3,"file":"aliased.d.ts","sourceRoot":"","sources":["../../../../src/planner/scopes/aliased.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,KAAK,GAAG,MAAM,qBAAqB,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC;;;;GAIG;AACH,qBAAa,YAAa,SAAQ,SAAS;aAKzB,MAAM,EAAE,KAAK;IAJ9B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;gBAGf,MAAM,EAAE,KAAK,EAC7B,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM;IAOd,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,CAAC,UAAU,GAAG,QAAQ,GAAG,OAAO,SAAS,GAAG,SAAS;CA8BrG"}
|