@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,6 +1,5 @@
|
|
|
1
1
|
import { CastNode } from '../nodes/scalar.js';
|
|
2
|
-
import {
|
|
3
|
-
import { NULL_TYPE } from '../../types/builtin-types.js';
|
|
2
|
+
import { comparisonGroupCoercions, comparisonGroupIndices, crossTypeCoercion } from '../../types/comparison-coercion.js';
|
|
4
3
|
/**
|
|
5
4
|
* Plan-build cross-type coercion for comparison sites. Every construct that
|
|
6
5
|
* compares operands — `=` and friends, BETWEEN, IN value lists, simple CASE,
|
|
@@ -8,103 +7,48 @@ import { NULL_TYPE } from '../../types/builtin-types.js';
|
|
|
8
7
|
* ({@link import('../../schema/function.js').BaseFunctionSchema.comparesArgs}) —
|
|
9
8
|
* reconciles its operands through this one module so none of them can drift
|
|
10
9
|
* from the others.
|
|
10
|
+
*
|
|
11
|
+
* This file owns only the *rewrite*: which operand gets wrapped in a synthetic
|
|
12
|
+
* `CastNode`. The decision of which operand converts and to what lives in
|
|
13
|
+
* `types/comparison-coercion.ts`, shared with the emit-time consumer
|
|
14
|
+
* (`runtime/emit/operand-comparator.ts` `makeComparisonGroup`) that serves the
|
|
15
|
+
* builtins which return one of their arguments and so cannot be rewritten here.
|
|
11
16
|
*/
|
|
12
17
|
/**
|
|
13
18
|
* Reconcile operands of a comparison whose plan-time types cannot be compared
|
|
14
19
|
* meaningfully as-is, by wrapping one side in a synthetic CastNode.
|
|
15
20
|
* Returns `[left, right]` — possibly with one side replaced by a CastNode.
|
|
16
21
|
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
* 1. **Object-physical vs anything else.** JSON is the engine's only logical type
|
|
20
|
-
* whose `physicalType` is `PhysicalType.OBJECT`: its runtime values are native
|
|
21
|
-
* JS objects/arrays, which `compareSqlValuesFast` short-circuits against any
|
|
22
|
-
* other storage class — so `json_col = '{"a":1}'` was unconditionally false,
|
|
23
|
-
* even for byte-identical text. The non-object side is cast to the object
|
|
24
|
-
* side's type, never the reverse: casting the JSON side to text would make
|
|
25
|
-
* equality depend on spelling and put `=` out of step with the index, which
|
|
26
|
-
* compares structurally.
|
|
27
|
-
*
|
|
28
|
-
* The gate is deliberately `physicalType === OBJECT`, **not**
|
|
29
|
-
* `semanticOrdering`. DATE/TIME/DATETIME/TIMESPAN also carry semantic ordering
|
|
30
|
-
* but are physically text, and the runtime's `tryTemporalComparison` already
|
|
31
|
-
* reconciles them; routing them through a cast would change behavior for no
|
|
32
|
-
* gain.
|
|
33
|
-
*
|
|
34
|
-
* A cast to JSON is lenient (see `runtime/emit/cast.ts`): text that does not
|
|
35
|
-
* parse comes back unchanged, so `json_col = 'not json'` is false rather than
|
|
36
|
-
* an error. Note the consequence for JSON *string scalars*, which are stored
|
|
37
|
-
* as plain JS strings: a column holding `"hello"` matches BOTH the SQL literal
|
|
38
|
-
* `'"hello"'` (parses to the JSON string `hello`) and the bare `'hello'` (does
|
|
39
|
-
* not parse, falls back to the raw string `hello`, which `JSON_TYPE.compare`
|
|
40
|
-
* then compares as text). Only the first form generalizes — `'[1,2]'` matches
|
|
41
|
-
* the JSON array while a bare `[1,2]` is not SQL text at all.
|
|
42
|
-
*
|
|
43
|
-
* 2. **Numeric vs textual.** The textual operand is cast to the numeric side's
|
|
44
|
-
* type name (e.g. 'INTEGER' or 'REAL') so the runtime can take the fast path.
|
|
22
|
+
* See {@link crossTypeCoercion} for the rule (object-physical vs anything else,
|
|
23
|
+
* then numeric vs textual) and why each side is chosen.
|
|
45
24
|
*/
|
|
46
25
|
export function insertCrossTypeCoercion(scope, left, right) {
|
|
47
|
-
const
|
|
48
|
-
|
|
49
|
-
const leftObject = leftLogical.physicalType === PhysicalType.OBJECT;
|
|
50
|
-
const rightObject = rightLogical.physicalType === PhysicalType.OBJECT;
|
|
51
|
-
// NOTE: two object-physical operands of DIFFERENT logical types fall through both
|
|
52
|
-
// arms onto the generic runtime path. Unreachable while JSON is the only
|
|
53
|
-
// PhysicalType.OBJECT type; adding a second one means deciding which side converts.
|
|
54
|
-
// Exactly one side is object-physical. A NULL-typed operand is left alone: the
|
|
55
|
-
// comparison is UNKNOWN regardless, so the cast would only add a runtime hop.
|
|
56
|
-
if (leftObject !== rightObject) {
|
|
57
|
-
if (leftObject && rightLogical !== NULL_TYPE) {
|
|
58
|
-
return [left, wrapInCast(scope, right, leftLogical.name)];
|
|
59
|
-
}
|
|
60
|
-
if (rightObject && leftLogical !== NULL_TYPE) {
|
|
61
|
-
return [wrapInCast(scope, left, rightLogical.name), right];
|
|
62
|
-
}
|
|
26
|
+
const coercion = crossTypeCoercion(left.getType().logicalType, right.getType().logicalType);
|
|
27
|
+
if (!coercion)
|
|
63
28
|
return [left, right];
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
const leftTextual = !!leftLogical.isTextual;
|
|
68
|
-
const rightTextual = !!rightLogical.isTextual;
|
|
69
|
-
if (leftNumeric && rightTextual) {
|
|
70
|
-
// Wrap right (textual) in a cast to the left's numeric type
|
|
71
|
-
return [left, wrapInCast(scope, right, leftLogical.name)];
|
|
72
|
-
}
|
|
73
|
-
if (rightNumeric && leftTextual) {
|
|
74
|
-
// Wrap left (textual) in a cast to the right's numeric type
|
|
75
|
-
return [wrapInCast(scope, left, rightLogical.name), right];
|
|
76
|
-
}
|
|
77
|
-
return [left, right];
|
|
29
|
+
return coercion.side === 'left'
|
|
30
|
+
? [wrapInCast(scope, left, coercion.target.name), right]
|
|
31
|
+
: [left, wrapInCast(scope, right, coercion.target.name)];
|
|
78
32
|
}
|
|
79
33
|
/**
|
|
80
|
-
* Apply
|
|
81
|
-
*
|
|
82
|
-
*
|
|
83
|
-
*
|
|
84
|
-
*
|
|
85
|
-
*
|
|
86
|
-
* never been applied to either site (`int_col in ('1')` is false today for the same
|
|
87
|
-
* underlying reason), and turning it on here would change unrelated behavior; that
|
|
88
|
-
* case is tracked by `bug-numeric-text-coercion-skips-in-and-case`. Note `=` and
|
|
89
|
-
* BETWEEN DO apply it, so those two forms currently disagree with IN / simple CASE
|
|
90
|
-
* on a numeric column compared against a numeric-looking string.
|
|
91
|
-
*
|
|
92
|
-
* The probe is shared by every value, so it is wrapped at most once — if any value
|
|
93
|
-
* is object-physical while the probe is not, the probe is cast first and the values
|
|
94
|
-
* are then reconciled against it.
|
|
34
|
+
* Apply {@link comparisonGroupCoercions} across the one-probe-against-many-values
|
|
35
|
+
* shape shared by an IN value list, a simple CASE and a scalar builtin's
|
|
36
|
+
* comparison group, so `json_col in ('{"a":1}')`, `int_col in ('1')` and
|
|
37
|
+
* `case int_col when '1' …` all agree with the `=` spelling of the same
|
|
38
|
+
* comparison. See that function for the probe-vs-value asymmetry and the one
|
|
39
|
+
* documented gap it leaves.
|
|
95
40
|
*/
|
|
96
|
-
export function
|
|
97
|
-
const
|
|
98
|
-
const
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
return [coercedProbe, values.map(val => insertCrossTypeCoercion(scope, coercedProbe, val)[1])];
|
|
41
|
+
export function coerceComparisonSet(scope, probe, values) {
|
|
42
|
+
const nodes = [probe, ...values];
|
|
43
|
+
const targets = comparisonGroupCoercions(nodes.map(node => node.getType().logicalType));
|
|
44
|
+
const coerced = nodes.map((node, i) => {
|
|
45
|
+
const target = targets[i];
|
|
46
|
+
return target ? wrapInCast(scope, node, target.name) : node;
|
|
47
|
+
});
|
|
48
|
+
return [coerced[0], coerced.slice(1)];
|
|
105
49
|
}
|
|
106
50
|
/**
|
|
107
|
-
* Apply {@link
|
|
51
|
+
* Apply {@link coerceComparisonSet} across the argument positions a scalar
|
|
108
52
|
* function declares as one comparison group
|
|
109
53
|
* ({@link import('../../schema/function.js').BaseFunctionSchema.comparesArgs}),
|
|
110
54
|
* so `nullif(json_col, '{"a":1}')` reconciles its operands exactly as
|
|
@@ -112,24 +56,31 @@ export function coerceObjectPhysicalSet(scope, probe, values) {
|
|
|
112
56
|
* the rest the value-list role; positions outside the argument list are ignored
|
|
113
57
|
* (defensive — a well-formed declaration never names one). Mutates `args` in
|
|
114
58
|
* place, replacing coerced members with their CastNode wrappers.
|
|
59
|
+
*
|
|
60
|
+
* NOT for a function that returns one of its arguments verbatim
|
|
61
|
+
* ({@link import('../../schema/function.js').BaseFunctionSchema.returnsArg}):
|
|
62
|
+
* replacing the argument replaces the *returned value* too. Those go through
|
|
63
|
+
* `makeComparisonGroup` at emit time instead.
|
|
115
64
|
*/
|
|
116
65
|
export function coerceComparisonGroup(scope, comparesArgs, args) {
|
|
117
|
-
const indices = comparesArgs
|
|
118
|
-
? args.map((_, i) => i)
|
|
119
|
-
: comparesArgs.filter(i => i >= 0 && i < args.length);
|
|
66
|
+
const indices = comparisonGroupIndices(comparesArgs, args.length);
|
|
120
67
|
if (indices.length < 2)
|
|
121
68
|
return;
|
|
122
69
|
const [probeIdx, ...valueIdx] = indices;
|
|
123
|
-
const [probe, values] =
|
|
70
|
+
const [probe, values] = coerceComparisonSet(scope, args[probeIdx], valueIdx.map(i => args[i]));
|
|
124
71
|
args[probeIdx] = probe;
|
|
125
72
|
valueIdx.forEach((argIdx, j) => { args[argIdx] = values[j]; });
|
|
126
73
|
}
|
|
127
74
|
/** Create a synthetic CastNode wrapping `operand` with the given target type name. */
|
|
128
75
|
export function wrapInCast(scope, operand, targetType) {
|
|
129
|
-
// Synthesise
|
|
76
|
+
// Synthesise an AST.CastExpr. `targetType` is the only field CastNode itself
|
|
77
|
+
// reads, but `formatExpression` renders a node from its AST rather than from
|
|
78
|
+
// its children — a `literal null` placeholder here made every coerced operand
|
|
79
|
+
// print as `cast(null as integer)` in EXPLAIN while the real operand child was
|
|
80
|
+
// intact. Carrying the operand's own AST keeps the rendering truthful.
|
|
130
81
|
const syntheticExpr = {
|
|
131
82
|
type: 'cast',
|
|
132
|
-
expr:
|
|
83
|
+
expr: operand.expression,
|
|
133
84
|
targetType,
|
|
134
85
|
};
|
|
135
86
|
return new CastNode(scope, syntheticExpr, operand);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coercion.js","sourceRoot":"","sources":["../../../../src/planner/building/coercion.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"coercion.js","sourceRoot":"","sources":["../../../../src/planner/building/coercion.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,23 @@
|
|
|
1
1
|
import type * as AST from '../../parser/ast.js';
|
|
2
2
|
import type { PlanningContext } from '../planning-context.js';
|
|
3
|
+
import { BinaryOpNode } from '../nodes/scalar.js';
|
|
3
4
|
import type { ScalarPlanNode } from '../nodes/plan-node.js';
|
|
5
|
+
import { type Scope } from '../scopes/scope.js';
|
|
6
|
+
/**
|
|
7
|
+
* Build a comparison `BinaryOpNode` the ONE way every comparison site must: insert
|
|
8
|
+
* the cross-type coercion casts (so a numeric side and a textual side compare
|
|
9
|
+
* numerically, an object side and a textual side structurally), then force
|
|
10
|
+
* `generateType`'s lazily-cached collation-lattice validation so an ambiguous
|
|
11
|
+
* collation errors at prepare time rather than as the emitter's backstop.
|
|
12
|
+
*
|
|
13
|
+
* `expression` is the source spelling and is deliberately NOT rewritten to match a
|
|
14
|
+
* coerced operand — EXPLAIN keeps showing what the user wrote.
|
|
15
|
+
*
|
|
16
|
+
* Callers: the `binary` case below, and `buildUsingCondition` (`./select.ts`), which
|
|
17
|
+
* desugars `using (c)` into this node — that shared construction is what keeps a
|
|
18
|
+
* USING pair from drifting away from the spelled-out `l.c = r.c`.
|
|
19
|
+
*/
|
|
20
|
+
export declare function buildComparison(scope: Scope, expression: AST.BinaryExpr, left: ScalarPlanNode, right: ScalarPlanNode): BinaryOpNode;
|
|
4
21
|
/**
|
|
5
22
|
* Builds an expression plan node from an AST expression.
|
|
6
23
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expression.d.ts","sourceRoot":"","sources":["../../../../src/planner/building/expression.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,GAAG,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"expression.d.ts","sourceRoot":"","sources":["../../../../src/planner/building/expression.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,GAAG,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAe,YAAY,EAAiE,MAAM,oBAAoB,CAAC;AAI9H,OAAO,KAAK,EAAE,cAAc,EAAsB,MAAM,uBAAuB,CAAC;AAKhF,OAAO,EAAa,KAAK,KAAK,EAAE,MAAM,oBAAoB,CAAC;AA4C3D;;;;;;;;;;;;;GAaG;AACH,wBAAgB,eAAe,CAC9B,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,GAAG,CAAC,UAAU,EAC1B,IAAI,EAAE,cAAc,EACpB,KAAK,EAAE,cAAc,GACnB,YAAY,CAKd;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,eAAe,EAAE,IAAI,EAAE,GAAG,CAAC,UAAU,EAAE,eAAe,GAAE,OAAe,GAAG,cAAc,CAwN5H"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { LiteralNode, BinaryOpNode, UnaryOpNode, CaseExprNode, CastNode, CollateNode, BetweenNode } from '../nodes/scalar.js';
|
|
2
|
-
import { insertCrossTypeCoercion,
|
|
2
|
+
import { insertCrossTypeCoercion, coerceComparisonSet } from './coercion.js';
|
|
3
3
|
import { ScalarSubqueryNode, InNode, ExistsNode } from '../nodes/subquery.js';
|
|
4
4
|
import { WindowFunctionCallNode } from '../nodes/window-function.js';
|
|
5
5
|
import { QuereusError } from '../../common/errors.js';
|
|
@@ -40,6 +40,26 @@ function buildExpressionPositionQueryExpr(ctx, query, preserveInputColumns, _sit
|
|
|
40
40
|
const logger = createLogger('planner:expression');
|
|
41
41
|
/** Comparison operators that should trigger cross-category coercion insertion */
|
|
42
42
|
const COMPARISON_OPS = new Set(['=', '==', '!=', '<>', '<', '<=', '>', '>=']);
|
|
43
|
+
/**
|
|
44
|
+
* Build a comparison `BinaryOpNode` the ONE way every comparison site must: insert
|
|
45
|
+
* the cross-type coercion casts (so a numeric side and a textual side compare
|
|
46
|
+
* numerically, an object side and a textual side structurally), then force
|
|
47
|
+
* `generateType`'s lazily-cached collation-lattice validation so an ambiguous
|
|
48
|
+
* collation errors at prepare time rather than as the emitter's backstop.
|
|
49
|
+
*
|
|
50
|
+
* `expression` is the source spelling and is deliberately NOT rewritten to match a
|
|
51
|
+
* coerced operand — EXPLAIN keeps showing what the user wrote.
|
|
52
|
+
*
|
|
53
|
+
* Callers: the `binary` case below, and `buildUsingCondition` (`./select.ts`), which
|
|
54
|
+
* desugars `using (c)` into this node — that shared construction is what keeps a
|
|
55
|
+
* USING pair from drifting away from the spelled-out `l.c = r.c`.
|
|
56
|
+
*/
|
|
57
|
+
export function buildComparison(scope, expression, left, right) {
|
|
58
|
+
const [coercedLeft, coercedRight] = insertCrossTypeCoercion(scope, left, right);
|
|
59
|
+
const node = new BinaryOpNode(scope, expression, coercedLeft, coercedRight);
|
|
60
|
+
node.getType();
|
|
61
|
+
return node;
|
|
62
|
+
}
|
|
43
63
|
/**
|
|
44
64
|
* Builds an expression plan node from an AST expression.
|
|
45
65
|
*/
|
|
@@ -86,20 +106,11 @@ export function buildExpression(ctx, expr, allowAggregates = false) {
|
|
|
86
106
|
return new UnaryOpNode(ctx.scope, expr, operand);
|
|
87
107
|
}
|
|
88
108
|
case 'binary': {
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
[left, right] = insertCrossTypeCoercion(ctx.scope, left, right);
|
|
95
|
-
}
|
|
96
|
-
const binaryNode = new BinaryOpNode(ctx.scope, expr, left, right);
|
|
97
|
-
// Comparisons validate their collation lattice in generateType, which is
|
|
98
|
-
// lazily cached — force it so a conflict errors at prepare time.
|
|
99
|
-
if (COMPARISON_OPS.has(expr.operator)) {
|
|
100
|
-
binaryNode.getType();
|
|
101
|
-
}
|
|
102
|
-
return binaryNode;
|
|
109
|
+
const left = buildExpression(ctx, expr.left, allowAggregates);
|
|
110
|
+
const right = buildExpression(ctx, expr.right, allowAggregates);
|
|
111
|
+
return COMPARISON_OPS.has(expr.operator)
|
|
112
|
+
? buildComparison(ctx.scope, expr, left, right)
|
|
113
|
+
: new BinaryOpNode(ctx.scope, expr, left, right);
|
|
103
114
|
}
|
|
104
115
|
case 'case': {
|
|
105
116
|
// Build base expression if present
|
|
@@ -113,7 +124,7 @@ export function buildExpression(ctx, expr, allowAggregates = false) {
|
|
|
113
124
|
// object-physical reconciliation an IN list gets — otherwise
|
|
114
125
|
// `case json_col when '{"a":1}'` disagrees with `json_col = '{"a":1}'`.
|
|
115
126
|
if (baseExpr) {
|
|
116
|
-
const [coercedBase, coercedWhens] =
|
|
127
|
+
const [coercedBase, coercedWhens] = coerceComparisonSet(ctx.scope, baseExpr, whenThenClauses.map(c => c.when));
|
|
117
128
|
baseExpr = coercedBase;
|
|
118
129
|
coercedWhens.forEach((when, i) => { whenThenClauses[i].when = when; });
|
|
119
130
|
}
|
|
@@ -198,7 +209,7 @@ export function buildExpression(ctx, expr, allowAggregates = false) {
|
|
|
198
209
|
else if (expr.values) {
|
|
199
210
|
// IN value list: expr IN (value1, value2, ...)
|
|
200
211
|
const rawValueExprs = expr.values.map(val => buildExpression(ctx, val, allowAggregates));
|
|
201
|
-
const [inLeft, valueExprs] =
|
|
212
|
+
const [inLeft, valueExprs] = coerceComparisonSet(ctx.scope, leftExpr, rawValueExprs);
|
|
202
213
|
const inListNode = new InNode(ctx.scope, expr, inLeft, undefined, valueExprs);
|
|
203
214
|
// Same eager collation-lattice validation as the subquery form.
|
|
204
215
|
inListNode.getType();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expression.js","sourceRoot":"","sources":["../../../../src/planner/building/expression.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"expression.js","sourceRoot":"","sources":["../../../../src/planner/building/expression.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"function-call.d.ts","sourceRoot":"","sources":["../../../../src/planner/building/function-call.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAK9D,OAAO,KAAK,GAAG,MAAM,qBAAqB,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AASvD,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,eAAe,EAAE,IAAI,EAAE,GAAG,CAAC,YAAY,EAAE,eAAe,EAAE,OAAO,GAAG,cAAc,
|
|
1
|
+
{"version":3,"file":"function-call.d.ts","sourceRoot":"","sources":["../../../../src/planner/building/function-call.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAK9D,OAAO,KAAK,GAAG,MAAM,qBAAqB,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AASvD,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,eAAe,EAAE,IAAI,EAAE,GAAG,CAAC,YAAY,EAAE,eAAe,EAAE,OAAO,GAAG,cAAc,CAgIxH"}
|
|
@@ -78,10 +78,15 @@ export function buildFunctionCall(ctx, expr, allowAggregates) {
|
|
|
78
78
|
// Regular scalar function
|
|
79
79
|
const args = expr.args.map(arg => buildExpression(ctx, arg, allowAggregates));
|
|
80
80
|
// Reconcile a declared comparison group's object-physical operands the way
|
|
81
|
-
// `=` / IN / simple CASE do, so e.g. `
|
|
81
|
+
// `=` / IN / simple CASE do, so e.g. `same_value(json_col, '<text>')` compares
|
|
82
82
|
// JSON against JSON. Must run BEFORE inferReturnType: coercion inserts
|
|
83
83
|
// CastNodes, which changes the argument types inference sees.
|
|
84
|
-
|
|
84
|
+
//
|
|
85
|
+
// Skipped for a function that returns one of its arguments (`returnsArg` —
|
|
86
|
+
// nullif/greatest/least): the cast would replace the RETURNED value too. Those
|
|
87
|
+
// coerce comparison keys at emit time (`makeComparisonGroup`) instead, which
|
|
88
|
+
// also lets inferReturnType see the arguments the user actually wrote.
|
|
89
|
+
if (isScalarFunctionSchema(functionSchema) && functionSchema.comparesArgs && !functionSchema.returnsArg) {
|
|
85
90
|
coerceComparisonGroup(ctx.scope, functionSchema.comparesArgs, args);
|
|
86
91
|
}
|
|
87
92
|
// Perform type inference if available
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"function-call.js","sourceRoot":"","sources":["../../../../src/planner/building/function-call.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"function-call.js","sourceRoot":"","sources":["../../../../src/planner/building/function-call.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAGnD,OAAO,EAAE,yBAAyB,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAC7F,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAGtE,MAAM,UAAU,iBAAiB,CAAC,GAAoB,EAAE,IAAsB,EAAE,eAAwB;IACvG,0EAA0E;IAC1E,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjD,mCAAmC;QACnC,KAAK,MAAM,GAAG,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;YAClC,IAAI,mBAAmB,CAAC,mBAAmB,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC7D,MAAM,WAAW,GAAG,GAAG,CAAC,UAAuC,CAAC;gBAChE,kEAAkE;gBAClE,IAAI,WAAW,CAAC,YAAY,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;oBACrE,WAAW,CAAC,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,IAAI,CAAC,MAAM;oBAC5C,CAAC,WAAW,CAAC,UAAU,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,IAAI,KAAK,CAAC,EAAE,CAAC;oBACjE,2BAA2B;oBAC3B,IAAI,SAAS,GAAG,IAAI,CAAC;oBACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;wBAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;wBAC7B,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;wBACnC,iEAAiE;wBACjE,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,UAAU,EAAE,IAAI,KAAK,QAAQ,EAAE,CAAC;4BACvE,IAAI,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;gCACzE,SAAS,GAAG,KAAK,CAAC;gCAClB,MAAM;4BACP,CAAC;wBACF,CAAC;6BAAM,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,IAAI,MAAM,CAAC,UAAU,EAAE,IAAI,KAAK,SAAS,EAAE,CAAC;4BAChF,IAAI,OAAO,CAAC,KAAK,KAAK,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;gCAC/C,SAAS,GAAG,KAAK,CAAC;gCAClB,MAAM;4BACP,CAAC;wBACF,CAAC;wBACD,2DAA2D;oBAC5D,CAAC;oBAED,IAAI,SAAS,EAAE,CAAC;wBACf,6DAA6D;wBAC7D,MAAM,UAAU,GAAmB;4BAClC,IAAI,EAAE,QAAQ;4BACd,IAAI,EAAE,GAAG,CAAC,KAAK;yBACf,CAAC;wBACF,OAAO,IAAI,mBAAmB,CAC7B,GAAG,CAAC,KAAK,EACT,UAAU,EACV,GAAG,CAAC,UAAU,CAAC,OAAO,EAAE,EACxB,GAAG,CAAC,WAAW,EACf,GAAG,CAAC,WAAW,CACf,CAAC;oBACH,CAAC;gBACF,CAAC;YACF,CAAC;QACF,CAAC;IACF,CAAC;IAED,wCAAwC;IACxC,MAAM,cAAc,GAAG,qBAAqB,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC/E,IAAI,cAAc,IAAI,yBAAyB,CAAC,cAAc,CAAC,EAAE,CAAC;QACjE,IAAI,CAAC,eAAe,EAAE,CAAC;YACtB,MAAM,IAAI,YAAY,CAAC,sBAAsB,IAAI,CAAC,IAAI,8BAA8B,EAAE,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QAClK,CAAC;QAED,yCAAyC;QACzC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,4CAA4C;QAEjH,sCAAsC;QACtC,IAAI,YAAoC,CAAC;QACzC,IAAI,cAAc,CAAC,eAAe,EAAE,CAAC;YACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,WAAW,CAAC,CAAC;YAE5D,mDAAmD;YACnD,IAAI,cAAc,CAAC,gBAAgB,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACnF,MAAM,IAAI,YAAY,CACrB,iDAAiD,IAAI,CAAC,IAAI,EAAE,EAC5D,UAAU,CAAC,QAAQ,EACnB,SAAS,EACT,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,EACpB,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,CACtB,CAAC;YACH,CAAC;YAED,YAAY,GAAG,cAAc,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;QACzD,CAAC;QAED,OAAO,IAAI,yBAAyB,CACnC,GAAG,CAAC,KAAK,EACT,IAAI,EACJ,IAAI,CAAC,IAAI,EACT,cAAc,EACd,IAAI,EACJ,IAAI,CAAC,QAAQ,IAAI,KAAK,EAAE,sCAAsC;QAC9D,SAAS,EAAE,kCAAkC;QAC7C,SAAS,EAAG,iCAAiC;QAC7C,YAAY,CACZ,CAAC;IACH,CAAC;SAAM,CAAC;QACP,0BAA0B;QAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,eAAe,CAAC,CAAC,CAAC;QAE9E,2EAA2E;QAC3E,+EAA+E;QAC/E,uEAAuE;QACvE,8DAA8D;QAC9D,EAAE;QACF,2EAA2E;QAC3E,+EAA+E;QAC/E,6EAA6E;QAC7E,uEAAuE;QACvE,IAAI,sBAAsB,CAAC,cAAc,CAAC,IAAI,cAAc,CAAC,YAAY,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,CAAC;YACzG,qBAAqB,CAAC,GAAG,CAAC,KAAK,EAAE,cAAc,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;QACrE,CAAC;QAED,sCAAsC;QACtC,IAAI,YAAoC,CAAC;QACzC,IAAI,sBAAsB,CAAC,cAAc,CAAC,IAAI,cAAc,CAAC,eAAe,EAAE,CAAC;YAC9E,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,WAAW,CAAC,CAAC;YAE5D,mDAAmD;YACnD,IAAI,cAAc,CAAC,gBAAgB,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACnF,MAAM,IAAI,YAAY,CACrB,uCAAuC,IAAI,CAAC,IAAI,EAAE,EAClD,UAAU,CAAC,QAAQ,EACnB,SAAS,EACT,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,EACpB,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,CACtB,CAAC;YACH,CAAC;YAED,YAAY,GAAG,cAAc,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;QACzD,CAAC;QAED,OAAO,IAAI,sBAAsB,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;IACxF,CAAC;AACF,CAAC"}
|
|
@@ -27,5 +27,5 @@ export declare function buildAggregatePhase(input: RelationalPlanNode, stmt: AST
|
|
|
27
27
|
export declare function buildFinalAggregateProjections(stmt: AST.SelectStmt, selectContext: PlanningContext, aggregateOutputScope: RegisteredScope, aggregateNode: RelationalPlanNode, aggregates: {
|
|
28
28
|
expression: ScalarPlanNode;
|
|
29
29
|
alias: string;
|
|
30
|
-
}[], groupByExpressions: ScalarPlanNode[]): Projection[];
|
|
30
|
+
}[], groupByExpressions: ScalarPlanNode[], starProjectionsByColumn?: ReadonlyMap<AST.ResultColumn, readonly Projection[]>): Projection[];
|
|
31
31
|
//# sourceMappingURL=select-aggregates.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"select-aggregates.d.ts","sourceRoot":"","sources":["../../../../src/planner/building/select-aggregates.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,GAAG,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAmD,KAAK,kBAAkB,EAAE,KAAK,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACtI,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAI9D,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAc1D;;GAEG;AACH,wBAAgB,mBAAmB,CAClC,KAAK,EAAE,kBAAkB,EACzB,IAAI,EAAE,GAAG,CAAC,UAAU,EACpB,aAAa,EAAE,eAAe,EAC9B,UAAU,EAAE;IAAE,UAAU,EAAE,cAAc,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EAAE,EAC3D,aAAa,EAAE,OAAO,EACtB,WAAW,EAAE,UAAU,EAAE,EACzB,oBAAoB,GAAE,OAAe,EACrC,cAAc,GAAE,GAAG,CAAC,UAAU,EAAO,GACnC;IACF,MAAM,EAAE,kBAAkB,CAAC;IAC3B,cAAc,CAAC,EAAE,eAAe,CAAC;IACjC,oBAAoB,EAAE,OAAO,CAAC;IAC9B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,aAAa,CAAC,EAAE,kBAAkB,CAAC;IACnC,kBAAkB,CAAC,EAAE,cAAc,EAAE,CAAC;IACtC,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,iBAAiB,CAAC,EAAE,eAAe,CAAC,YAAY,CAAC,CAAC;CAClD,
|
|
1
|
+
{"version":3,"file":"select-aggregates.d.ts","sourceRoot":"","sources":["../../../../src/planner/building/select-aggregates.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,GAAG,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAmD,KAAK,kBAAkB,EAAE,KAAK,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACtI,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAI9D,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAc1D;;GAEG;AACH,wBAAgB,mBAAmB,CAClC,KAAK,EAAE,kBAAkB,EACzB,IAAI,EAAE,GAAG,CAAC,UAAU,EACpB,aAAa,EAAE,eAAe,EAC9B,UAAU,EAAE;IAAE,UAAU,EAAE,cAAc,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EAAE,EAC3D,aAAa,EAAE,OAAO,EACtB,WAAW,EAAE,UAAU,EAAE,EACzB,oBAAoB,GAAE,OAAe,EACrC,cAAc,GAAE,GAAG,CAAC,UAAU,EAAO,GACnC;IACF,MAAM,EAAE,kBAAkB,CAAC;IAC3B,cAAc,CAAC,EAAE,eAAe,CAAC;IACjC,oBAAoB,EAAE,OAAO,CAAC;IAC9B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,aAAa,CAAC,EAAE,kBAAkB,CAAC;IACnC,kBAAkB,CAAC,EAAE,cAAc,EAAE,CAAC;IACtC,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,iBAAiB,CAAC,EAAE,eAAe,CAAC,YAAY,CAAC,CAAC;CAClD,CA6IA;AAueD;;GAEG;AACH,wBAAgB,8BAA8B,CAC7C,IAAI,EAAE,GAAG,CAAC,UAAU,EACpB,aAAa,EAAE,eAAe,EAC9B,oBAAoB,EAAE,eAAe,EACrC,aAAa,EAAE,kBAAkB,EACjC,UAAU,EAAE;IAAE,UAAU,EAAE,cAAc,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EAAE,EAC3D,kBAAkB,EAAE,cAAc,EAAE,EACpC,uBAAuB,GAAE,WAAW,CAAC,GAAG,CAAC,YAAY,EAAE,SAAS,UAAU,EAAE,CAAa,GACvF,UAAU,EAAE,CAyGd"}
|
|
@@ -110,7 +110,20 @@ export function buildAggregatePhase(input, stmt, selectContext, aggregates, hasA
|
|
|
110
110
|
// Determine if final projection is needed.
|
|
111
111
|
// Force a final projection when HAVING-only or ORDER-BY-only aggregates were
|
|
112
112
|
// added, to strip them from the output (they exist only for those clauses).
|
|
113
|
-
const needsFinalProjection = hasHavingOnlyAggregates || hasOrderByOnlyAggregates || hasWrappedAggregates || checkNeedsFinalProjection(projections)
|
|
113
|
+
const needsFinalProjection = hasHavingOnlyAggregates || hasOrderByOnlyAggregates || hasWrappedAggregates || checkNeedsFinalProjection(projections)
|
|
114
|
+
// A GROUP BY with no aggregate functions has no other projection step: the
|
|
115
|
+
// select list must be projected over the AggregateNode output here, or the
|
|
116
|
+
// output would be the raw group keys in GROUP BY order.
|
|
117
|
+
// NOTE: the `!hasAggregates` guard is load-bearing. Forcing the projection for
|
|
118
|
+
// every grouped query changes the plan shape of a grouped materialized-view body
|
|
119
|
+
// (`select k, count(*), sum(a) … group by k`) and re-routes its incremental
|
|
120
|
+
// maintenance from residual-recompute to full-rebuild — see
|
|
121
|
+
// test/incremental/delta-aggregate.spec.ts. It is also why an aggregate-only
|
|
122
|
+
// select list still leaks its grouping key into the output
|
|
123
|
+
// (backlog/bug-grouped-aggregate-only-select-returns-extra-column); fixing that
|
|
124
|
+
// means reconciling the projection with maintenance routing, not just dropping
|
|
125
|
+
// this guard.
|
|
126
|
+
|| Boolean(hasGroupBy && !hasAggregates && projections.length > 0);
|
|
114
127
|
return {
|
|
115
128
|
output: currentInput,
|
|
116
129
|
aggregateScope: aggregateOutputScope,
|
|
@@ -515,7 +528,7 @@ function dedupeNewAggregates(funcExprs, selectContext, existingAggregates) {
|
|
|
515
528
|
/**
|
|
516
529
|
* Builds final projections for the complete SELECT list in aggregate context
|
|
517
530
|
*/
|
|
518
|
-
export function buildFinalAggregateProjections(stmt, selectContext, aggregateOutputScope, aggregateNode, aggregates, groupByExpressions) {
|
|
531
|
+
export function buildFinalAggregateProjections(stmt, selectContext, aggregateOutputScope, aggregateNode, aggregates, groupByExpressions, starProjectionsByColumn = new Map()) {
|
|
519
532
|
const finalProjections = [];
|
|
520
533
|
const aggregateAttributes = aggregateNode.getAttributes();
|
|
521
534
|
// Build context with aggregates so buildFunctionCall can resolve aggregate references
|
|
@@ -546,7 +559,36 @@ export function buildFinalAggregateProjections(stmt, selectContext, aggregateOut
|
|
|
546
559
|
if (!groupByFingerprints.has(fp))
|
|
547
560
|
groupByFingerprints.set(fp, index);
|
|
548
561
|
});
|
|
562
|
+
// Bare source columns that are themselves group keys map straight to the
|
|
563
|
+
// aggregate's group output column. Used to expand `SELECT *` in a grouped
|
|
564
|
+
// query, which must emit source-column order rather than GROUP BY order.
|
|
565
|
+
const groupKeyByAttrId = new Map();
|
|
566
|
+
groupByExpressions.forEach((expr, index) => {
|
|
567
|
+
if (CapabilityDetectors.isColumnReference(expr)) {
|
|
568
|
+
const attrId = expr.attributeId;
|
|
569
|
+
if (!groupKeyByAttrId.has(attrId))
|
|
570
|
+
groupKeyByAttrId.set(attrId, index);
|
|
571
|
+
}
|
|
572
|
+
});
|
|
549
573
|
for (const column of stmt.columns) {
|
|
574
|
+
if (column.type === 'all') {
|
|
575
|
+
for (const starProj of starProjectionsByColumn.get(column) ?? []) {
|
|
576
|
+
const gbIdx = starGroupKeyIndex(starProj, groupKeyByAttrId);
|
|
577
|
+
if (gbIdx === undefined) {
|
|
578
|
+
// validateAggregateProjections already rejected every star column that
|
|
579
|
+
// is not a grouping key, so reaching here means the two disagree.
|
|
580
|
+
throw new QuereusError(`Internal: SELECT * column '${starProj.alias ?? '?'}' is not a GROUP BY key`, StatusCode.INTERNAL);
|
|
581
|
+
}
|
|
582
|
+
const starRef = starProj.node;
|
|
583
|
+
const colRef = buildGroupKeyColumnRef(aggregateOutputScope, aggregateAttributes[gbIdx], starRef.expression, gbIdx);
|
|
584
|
+
finalProjections.push({
|
|
585
|
+
node: colRef,
|
|
586
|
+
alias: starProj.alias,
|
|
587
|
+
attributeId: colRef.attributeId
|
|
588
|
+
});
|
|
589
|
+
}
|
|
590
|
+
continue;
|
|
591
|
+
}
|
|
550
592
|
if (column.type === 'column') {
|
|
551
593
|
// Bare columns (`type === 'column'`) already resolve against the aggregate
|
|
552
594
|
// group symbol (registered under the column name) in recompute, so their
|
|
@@ -583,6 +625,15 @@ export function buildFinalAggregateProjections(stmt, selectContext, aggregateOut
|
|
|
583
625
|
}
|
|
584
626
|
return finalProjections;
|
|
585
627
|
}
|
|
628
|
+
/**
|
|
629
|
+
* Resolves one expanded `SELECT *` column to the GROUP BY index it was grouped on,
|
|
630
|
+
* or `undefined` if it is not a bare reference to a grouping key.
|
|
631
|
+
*/
|
|
632
|
+
function starGroupKeyIndex(starProj, groupKeyByAttrId) {
|
|
633
|
+
if (!CapabilityDetectors.isColumnReference(starProj.node))
|
|
634
|
+
return undefined;
|
|
635
|
+
return groupKeyByAttrId.get(starProj.node.attributeId);
|
|
636
|
+
}
|
|
586
637
|
/**
|
|
587
638
|
* Synthesizes a bare {@link ColumnReferenceNode} to an AggregateNode group output
|
|
588
639
|
* column for a SELECT-list item that fingerprint-matches a GROUP BY expression.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"select-aggregates.js","sourceRoot":"","sources":["../../../../src/planner/building/select-aggregates.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"select-aggregates.js","sourceRoot":"","sources":["../../../../src/planner/building/select-aggregates.ts"],"names":[],"mappings":"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"}
|