@quereus/quereus 4.4.1 → 4.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -4
- package/dist/src/core/database-events.d.ts +99 -1
- package/dist/src/core/database-events.d.ts.map +1 -1
- package/dist/src/core/database-events.js +219 -3
- package/dist/src/core/database-events.js.map +1 -1
- package/dist/src/core/database-materialized-views-analysis.d.ts.map +1 -1
- package/dist/src/core/database-materialized-views-analysis.js +1 -0
- package/dist/src/core/database-materialized-views-analysis.js.map +1 -1
- package/dist/src/core/database-materialized-views-plan-builders.d.ts.map +1 -1
- package/dist/src/core/database-materialized-views-plan-builders.js +29 -2
- package/dist/src/core/database-materialized-views-plan-builders.js.map +1 -1
- package/dist/src/core/database-transaction.d.ts +9 -0
- package/dist/src/core/database-transaction.d.ts.map +1 -1
- package/dist/src/core/database-transaction.js +9 -0
- package/dist/src/core/database-transaction.js.map +1 -1
- package/dist/src/core/database.d.ts +7 -1
- package/dist/src/core/database.d.ts.map +1 -1
- package/dist/src/core/database.js +20 -5
- package/dist/src/core/database.js.map +1 -1
- package/dist/src/func/builtins/aggregate.js +11 -11
- package/dist/src/func/builtins/aggregate.js.map +1 -1
- package/dist/src/func/builtins/builtin-window-functions.d.ts.map +1 -1
- package/dist/src/func/builtins/builtin-window-functions.js +15 -85
- package/dist/src/func/builtins/builtin-window-functions.js.map +1 -1
- package/dist/src/func/builtins/conversion.d.ts.map +1 -1
- package/dist/src/func/builtins/conversion.js +10 -9
- package/dist/src/func/builtins/conversion.js.map +1 -1
- package/dist/src/func/builtins/datetime.d.ts.map +1 -1
- package/dist/src/func/builtins/datetime.js +28 -10
- package/dist/src/func/builtins/datetime.js.map +1 -1
- package/dist/src/func/builtins/json.d.ts.map +1 -1
- package/dist/src/func/builtins/json.js +23 -17
- package/dist/src/func/builtins/json.js.map +1 -1
- package/dist/src/func/builtins/mutation.js +2 -2
- package/dist/src/func/builtins/mutation.js.map +1 -1
- package/dist/src/func/builtins/return-types.d.ts +327 -0
- package/dist/src/func/builtins/return-types.d.ts.map +1 -0
- package/dist/src/func/builtins/return-types.js +43 -0
- package/dist/src/func/builtins/return-types.js.map +1 -0
- package/dist/src/func/builtins/scalar.d.ts.map +1 -1
- package/dist/src/func/builtins/scalar.js +193 -37
- package/dist/src/func/builtins/scalar.js.map +1 -1
- package/dist/src/func/builtins/schema.d.ts.map +1 -1
- package/dist/src/func/builtins/schema.js +11 -3
- package/dist/src/func/builtins/schema.js.map +1 -1
- package/dist/src/func/builtins/string.d.ts.map +1 -1
- package/dist/src/func/builtins/string.js +4 -2
- package/dist/src/func/builtins/string.js.map +1 -1
- package/dist/src/func/builtins/timespan.d.ts +3 -0
- package/dist/src/func/builtins/timespan.d.ts.map +1 -1
- package/dist/src/func/builtins/timespan.js +15 -11
- package/dist/src/func/builtins/timespan.js.map +1 -1
- package/dist/src/func/registration.d.ts +39 -1
- package/dist/src/func/registration.d.ts.map +1 -1
- package/dist/src/func/registration.js +236 -41
- package/dist/src/func/registration.js.map +1 -1
- package/dist/src/index.d.ts +14 -7
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +14 -5
- package/dist/src/index.js.map +1 -1
- package/dist/src/parser/parser.d.ts +46 -0
- package/dist/src/parser/parser.d.ts.map +1 -1
- package/dist/src/parser/parser.js +160 -44
- package/dist/src/parser/parser.js.map +1 -1
- package/dist/src/planner/analysis/check-extraction.d.ts.map +1 -1
- package/dist/src/planner/analysis/check-extraction.js +37 -4
- package/dist/src/planner/analysis/check-extraction.js.map +1 -1
- package/dist/src/planner/analysis/coarsened-key.d.ts +4 -3
- package/dist/src/planner/analysis/coarsened-key.d.ts.map +1 -1
- package/dist/src/planner/analysis/coarsened-key.js +37 -3
- package/dist/src/planner/analysis/coarsened-key.js.map +1 -1
- package/dist/src/planner/analysis/comparison-collation.d.ts +41 -13
- package/dist/src/planner/analysis/comparison-collation.d.ts.map +1 -1
- package/dist/src/planner/analysis/comparison-collation.js +51 -14
- package/dist/src/planner/analysis/comparison-collation.js.map +1 -1
- package/dist/src/planner/analysis/constraint-extractor.d.ts +0 -7
- package/dist/src/planner/analysis/constraint-extractor.d.ts.map +1 -1
- package/dist/src/planner/analysis/constraint-extractor.js +59 -59
- package/dist/src/planner/analysis/constraint-extractor.js.map +1 -1
- package/dist/src/planner/analysis/coverage-prover.d.ts +13 -2
- package/dist/src/planner/analysis/coverage-prover.d.ts.map +1 -1
- package/dist/src/planner/analysis/coverage-prover.js +10 -14
- package/dist/src/planner/analysis/coverage-prover.js.map +1 -1
- package/dist/src/planner/analysis/predicate-conjuncts.d.ts +10 -4
- package/dist/src/planner/analysis/predicate-conjuncts.d.ts.map +1 -1
- package/dist/src/planner/analysis/predicate-conjuncts.js +28 -7
- package/dist/src/planner/analysis/predicate-conjuncts.js.map +1 -1
- package/dist/src/planner/analysis/query-rewrite-matcher.d.ts.map +1 -1
- package/dist/src/planner/analysis/query-rewrite-matcher.js +8 -27
- package/dist/src/planner/analysis/query-rewrite-matcher.js.map +1 -1
- package/dist/src/planner/analysis/scalar-subqueries.d.ts +22 -3
- package/dist/src/planner/analysis/scalar-subqueries.d.ts.map +1 -1
- package/dist/src/planner/analysis/scalar-subqueries.js +32 -3
- package/dist/src/planner/analysis/scalar-subqueries.js.map +1 -1
- package/dist/src/planner/analysis/set-op-type-merge.d.ts +64 -0
- package/dist/src/planner/analysis/set-op-type-merge.d.ts.map +1 -0
- package/dist/src/planner/analysis/set-op-type-merge.js +97 -0
- package/dist/src/planner/analysis/set-op-type-merge.js.map +1 -0
- package/dist/src/planner/building/alter-table.d.ts.map +1 -1
- package/dist/src/planner/building/alter-table.js +65 -27
- package/dist/src/planner/building/alter-table.js.map +1 -1
- package/dist/src/planner/building/coercion.d.ts +54 -0
- package/dist/src/planner/building/coercion.d.ts.map +1 -0
- package/dist/src/planner/building/coercion.js +88 -0
- package/dist/src/planner/building/coercion.js.map +1 -0
- package/dist/src/planner/building/constraint-builder.d.ts.map +1 -1
- package/dist/src/planner/building/constraint-builder.js +5 -18
- package/dist/src/planner/building/constraint-builder.js.map +1 -1
- package/dist/src/planner/building/expression.d.ts +17 -0
- package/dist/src/planner/building/expression.d.ts.map +1 -1
- package/dist/src/planner/building/expression.js +23 -115
- package/dist/src/planner/building/expression.js.map +1 -1
- package/dist/src/planner/building/function-call.d.ts.map +1 -1
- package/dist/src/planner/building/function-call.js +13 -0
- package/dist/src/planner/building/function-call.js.map +1 -1
- package/dist/src/planner/building/select-aggregates.d.ts +1 -1
- package/dist/src/planner/building/select-aggregates.d.ts.map +1 -1
- package/dist/src/planner/building/select-aggregates.js +53 -2
- package/dist/src/planner/building/select-aggregates.js.map +1 -1
- package/dist/src/planner/building/select-compound.d.ts.map +1 -1
- package/dist/src/planner/building/select-compound.js +10 -6
- package/dist/src/planner/building/select-compound.js.map +1 -1
- package/dist/src/planner/building/select-context.d.ts +7 -0
- package/dist/src/planner/building/select-context.d.ts.map +1 -1
- package/dist/src/planner/building/select-context.js +10 -40
- package/dist/src/planner/building/select-context.js.map +1 -1
- package/dist/src/planner/building/select.d.ts +37 -1
- package/dist/src/planner/building/select.d.ts.map +1 -1
- package/dist/src/planner/building/select.js +112 -51
- package/dist/src/planner/building/select.js.map +1 -1
- package/dist/src/planner/cost/conjunct-cost.d.ts +82 -0
- package/dist/src/planner/cost/conjunct-cost.d.ts.map +1 -0
- package/dist/src/planner/cost/conjunct-cost.js +107 -0
- package/dist/src/planner/cost/conjunct-cost.js.map +1 -0
- package/dist/src/planner/cost/index.d.ts +10 -0
- package/dist/src/planner/cost/index.d.ts.map +1 -1
- package/dist/src/planner/cost/index.js +15 -0
- package/dist/src/planner/cost/index.js.map +1 -1
- package/dist/src/planner/mutation/propagate.d.ts.map +1 -1
- package/dist/src/planner/mutation/propagate.js +1 -0
- package/dist/src/planner/mutation/propagate.js.map +1 -1
- package/dist/src/planner/nodes/aggregate-node.d.ts +6 -0
- package/dist/src/planner/nodes/aggregate-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/aggregate-node.js +10 -2
- package/dist/src/planner/nodes/aggregate-node.js.map +1 -1
- package/dist/src/planner/nodes/alias-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/alias-node.js +2 -1
- package/dist/src/planner/nodes/alias-node.js.map +1 -1
- package/dist/src/planner/nodes/alter-table-node.d.ts +24 -8
- package/dist/src/planner/nodes/alter-table-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/alter-table-node.js.map +1 -1
- package/dist/src/planner/nodes/asof-scan-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/asof-scan-node.js +4 -1
- package/dist/src/planner/nodes/asof-scan-node.js.map +1 -1
- package/dist/src/planner/nodes/asserted-keys-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/asserted-keys-node.js +2 -1
- package/dist/src/planner/nodes/asserted-keys-node.js.map +1 -1
- package/dist/src/planner/nodes/async-gather-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/async-gather-node.js +19 -8
- package/dist/src/planner/nodes/async-gather-node.js.map +1 -1
- package/dist/src/planner/nodes/bloom-join-node.d.ts +2 -0
- package/dist/src/planner/nodes/bloom-join-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/bloom-join-node.js +17 -7
- package/dist/src/planner/nodes/bloom-join-node.js.map +1 -1
- package/dist/src/planner/nodes/cache-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/cache-node.js +2 -1
- package/dist/src/planner/nodes/cache-node.js.map +1 -1
- package/dist/src/planner/nodes/distinct-node.d.ts +6 -0
- package/dist/src/planner/nodes/distinct-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/distinct-node.js +10 -2
- package/dist/src/planner/nodes/distinct-node.js.map +1 -1
- package/dist/src/planner/nodes/eager-prefetch-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/eager-prefetch-node.js +2 -1
- package/dist/src/planner/nodes/eager-prefetch-node.js.map +1 -1
- package/dist/src/planner/nodes/fanout-lookup-join-node.d.ts +5 -0
- package/dist/src/planner/nodes/fanout-lookup-join-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/fanout-lookup-join-node.js +13 -6
- package/dist/src/planner/nodes/fanout-lookup-join-node.js.map +1 -1
- package/dist/src/planner/nodes/filter.d.ts.map +1 -1
- package/dist/src/planner/nodes/filter.js +12 -5
- package/dist/src/planner/nodes/filter.js.map +1 -1
- package/dist/src/planner/nodes/hash-aggregate.d.ts +6 -0
- package/dist/src/planner/nodes/hash-aggregate.d.ts.map +1 -1
- package/dist/src/planner/nodes/hash-aggregate.js +10 -2
- package/dist/src/planner/nodes/hash-aggregate.js.map +1 -1
- package/dist/src/planner/nodes/join-node.d.ts +25 -1
- package/dist/src/planner/nodes/join-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/join-node.js +38 -10
- package/dist/src/planner/nodes/join-node.js.map +1 -1
- package/dist/src/planner/nodes/join-utils.d.ts +78 -0
- package/dist/src/planner/nodes/join-utils.d.ts.map +1 -1
- package/dist/src/planner/nodes/join-utils.js +73 -0
- package/dist/src/planner/nodes/join-utils.js.map +1 -1
- package/dist/src/planner/nodes/key-set-semi-join-node.d.ts +87 -0
- package/dist/src/planner/nodes/key-set-semi-join-node.d.ts.map +1 -0
- package/dist/src/planner/nodes/key-set-semi-join-node.js +141 -0
- package/dist/src/planner/nodes/key-set-semi-join-node.js.map +1 -0
- package/dist/src/planner/nodes/lens-auxiliary-access-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/lens-auxiliary-access-node.js +2 -1
- package/dist/src/planner/nodes/lens-auxiliary-access-node.js.map +1 -1
- package/dist/src/planner/nodes/limit-offset.d.ts +6 -0
- package/dist/src/planner/nodes/limit-offset.d.ts.map +1 -1
- package/dist/src/planner/nodes/limit-offset.js +10 -2
- package/dist/src/planner/nodes/limit-offset.js.map +1 -1
- package/dist/src/planner/nodes/merge-join-node.d.ts +2 -0
- package/dist/src/planner/nodes/merge-join-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/merge-join-node.js +21 -8
- package/dist/src/planner/nodes/merge-join-node.js.map +1 -1
- package/dist/src/planner/nodes/ordinal-slice-node.d.ts +5 -0
- package/dist/src/planner/nodes/ordinal-slice-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/ordinal-slice-node.js +9 -2
- package/dist/src/planner/nodes/ordinal-slice-node.js.map +1 -1
- package/dist/src/planner/nodes/plan-node-type.d.ts +1 -0
- package/dist/src/planner/nodes/plan-node-type.d.ts.map +1 -1
- package/dist/src/planner/nodes/plan-node-type.js +1 -0
- package/dist/src/planner/nodes/plan-node-type.js.map +1 -1
- package/dist/src/planner/nodes/plan-node.d.ts +24 -0
- package/dist/src/planner/nodes/plan-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/plan-node.js.map +1 -1
- package/dist/src/planner/nodes/project-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/project-node.js +2 -1
- package/dist/src/planner/nodes/project-node.js.map +1 -1
- package/dist/src/planner/nodes/reference.d.ts.map +1 -1
- package/dist/src/planner/nodes/reference.js +3 -2
- package/dist/src/planner/nodes/reference.js.map +1 -1
- package/dist/src/planner/nodes/retrieve-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/retrieve-node.js +2 -1
- package/dist/src/planner/nodes/retrieve-node.js.map +1 -1
- package/dist/src/planner/nodes/scalar.d.ts.map +1 -1
- package/dist/src/planner/nodes/scalar.js +5 -18
- package/dist/src/planner/nodes/scalar.js.map +1 -1
- package/dist/src/planner/nodes/set-operation-node.d.ts +68 -16
- package/dist/src/planner/nodes/set-operation-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/set-operation-node.js +147 -26
- package/dist/src/planner/nodes/set-operation-node.js.map +1 -1
- package/dist/src/planner/nodes/sort.d.ts.map +1 -1
- package/dist/src/planner/nodes/sort.js +3 -1
- package/dist/src/planner/nodes/sort.js.map +1 -1
- package/dist/src/planner/nodes/stream-aggregate.d.ts +6 -0
- package/dist/src/planner/nodes/stream-aggregate.d.ts.map +1 -1
- package/dist/src/planner/nodes/stream-aggregate.js +10 -2
- package/dist/src/planner/nodes/stream-aggregate.js.map +1 -1
- package/dist/src/planner/nodes/table-access-nodes.d.ts +19 -1
- package/dist/src/planner/nodes/table-access-nodes.d.ts.map +1 -1
- package/dist/src/planner/nodes/table-access-nodes.js +18 -2
- package/dist/src/planner/nodes/table-access-nodes.js.map +1 -1
- package/dist/src/planner/nodes/window-function.d.ts.map +1 -1
- package/dist/src/planner/nodes/window-function.js +8 -0
- package/dist/src/planner/nodes/window-function.js.map +1 -1
- package/dist/src/planner/nodes/window-node.d.ts +1 -1
- package/dist/src/planner/nodes/window-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/window-node.js +3 -1
- package/dist/src/planner/nodes/window-node.js.map +1 -1
- package/dist/src/planner/optimizer.d.ts +9 -1
- package/dist/src/planner/optimizer.d.ts.map +1 -1
- package/dist/src/planner/optimizer.js +126 -6
- package/dist/src/planner/optimizer.js.map +1 -1
- package/dist/src/planner/rules/access/rule-key-set-seek.d.ts +68 -0
- package/dist/src/planner/rules/access/rule-key-set-seek.d.ts.map +1 -0
- package/dist/src/planner/rules/access/rule-key-set-seek.js +343 -0
- package/dist/src/planner/rules/access/rule-key-set-seek.js.map +1 -0
- package/dist/src/planner/rules/access/rule-monotonic-range-access.d.ts.map +1 -1
- package/dist/src/planner/rules/access/rule-monotonic-range-access.js +2 -2
- package/dist/src/planner/rules/access/rule-monotonic-range-access.js.map +1 -1
- package/dist/src/planner/rules/access/rule-select-access-path.d.ts +46 -0
- package/dist/src/planner/rules/access/rule-select-access-path.d.ts.map +1 -1
- package/dist/src/planner/rules/access/rule-select-access-path.js +54 -13
- package/dist/src/planner/rules/access/rule-select-access-path.js.map +1 -1
- package/dist/src/planner/rules/cache/rule-cte-optimization.d.ts.map +1 -1
- package/dist/src/planner/rules/cache/rule-cte-optimization.js +9 -0
- package/dist/src/planner/rules/cache/rule-cte-optimization.js.map +1 -1
- package/dist/src/planner/rules/cache/rule-nested-loop-right-cache.d.ts.map +1 -1
- package/dist/src/planner/rules/cache/rule-nested-loop-right-cache.js +6 -4
- package/dist/src/planner/rules/cache/rule-nested-loop-right-cache.js.map +1 -1
- package/dist/src/planner/rules/join/equi-pair-extractor.d.ts +49 -49
- package/dist/src/planner/rules/join/equi-pair-extractor.d.ts.map +1 -1
- package/dist/src/planner/rules/join/equi-pair-extractor.js +54 -58
- package/dist/src/planner/rules/join/equi-pair-extractor.js.map +1 -1
- package/dist/src/planner/rules/join/index-nested-loop.d.ts +49 -0
- package/dist/src/planner/rules/join/index-nested-loop.d.ts.map +1 -0
- package/dist/src/planner/rules/join/index-nested-loop.js +285 -0
- package/dist/src/planner/rules/join/index-nested-loop.js.map +1 -0
- package/dist/src/planner/rules/join/rule-fanout-batched-outer.js +8 -8
- package/dist/src/planner/rules/join/rule-join-physical-selection.d.ts +10 -4
- package/dist/src/planner/rules/join/rule-join-physical-selection.d.ts.map +1 -1
- package/dist/src/planner/rules/join/rule-join-physical-selection.js +97 -29
- package/dist/src/planner/rules/join/rule-join-physical-selection.js.map +1 -1
- package/dist/src/planner/rules/join/rule-monotonic-merge-join.d.ts.map +1 -1
- package/dist/src/planner/rules/join/rule-monotonic-merge-join.js +15 -5
- package/dist/src/planner/rules/join/rule-monotonic-merge-join.js.map +1 -1
- package/dist/src/planner/rules/predicate/rule-empty-relation-folding.d.ts +1 -1
- package/dist/src/planner/rules/predicate/rule-empty-relation-folding.js +1 -1
- package/dist/src/planner/rules/predicate/rule-filter-conjunct-ordering.d.ts +43 -0
- package/dist/src/planner/rules/predicate/rule-filter-conjunct-ordering.d.ts.map +1 -0
- package/dist/src/planner/rules/predicate/rule-filter-conjunct-ordering.js +119 -0
- package/dist/src/planner/rules/predicate/rule-filter-conjunct-ordering.js.map +1 -0
- package/dist/src/planner/rules/predicate/rule-filter-selectivity.d.ts +44 -3
- package/dist/src/planner/rules/predicate/rule-filter-selectivity.d.ts.map +1 -1
- package/dist/src/planner/rules/predicate/rule-filter-selectivity.js +142 -18
- package/dist/src/planner/rules/predicate/rule-filter-selectivity.js.map +1 -1
- package/dist/src/planner/rules/predicate/rule-join-predicate-pushdown.d.ts +73 -0
- package/dist/src/planner/rules/predicate/rule-join-predicate-pushdown.d.ts.map +1 -0
- package/dist/src/planner/rules/predicate/rule-join-predicate-pushdown.js +205 -0
- package/dist/src/planner/rules/predicate/rule-join-predicate-pushdown.js.map +1 -0
- package/dist/src/planner/rules/predicate/rule-predicate-inference-equivalence.d.ts +14 -11
- package/dist/src/planner/rules/predicate/rule-predicate-inference-equivalence.d.ts.map +1 -1
- package/dist/src/planner/rules/predicate/rule-predicate-inference-equivalence.js +21 -85
- package/dist/src/planner/rules/predicate/rule-predicate-inference-equivalence.js.map +1 -1
- package/dist/src/planner/rules/predicate/rule-predicate-pushdown.d.ts +10 -2
- package/dist/src/planner/rules/predicate/rule-predicate-pushdown.d.ts.map +1 -1
- package/dist/src/planner/rules/predicate/rule-predicate-pushdown.js +20 -2
- package/dist/src/planner/rules/predicate/rule-predicate-pushdown.js.map +1 -1
- package/dist/src/planner/rules/retrieve/rule-grow-retrieve.d.ts.map +1 -1
- package/dist/src/planner/rules/retrieve/rule-grow-retrieve.js +18 -3
- package/dist/src/planner/rules/retrieve/rule-grow-retrieve.js.map +1 -1
- package/dist/src/planner/rules/shared/access-leaf.d.ts +39 -0
- package/dist/src/planner/rules/shared/access-leaf.d.ts.map +1 -0
- package/dist/src/planner/rules/shared/access-leaf.js +79 -0
- package/dist/src/planner/rules/shared/access-leaf.js.map +1 -0
- package/dist/src/planner/rules/shared/index-style-context.d.ts +17 -0
- package/dist/src/planner/rules/shared/index-style-context.d.ts.map +1 -1
- package/dist/src/planner/rules/shared/index-style-context.js +7 -0
- package/dist/src/planner/rules/shared/index-style-context.js.map +1 -1
- package/dist/src/planner/rules/subquery/rule-anti-join-fk-empty.d.ts.map +1 -1
- package/dist/src/planner/rules/subquery/rule-anti-join-fk-empty.js +18 -8
- package/dist/src/planner/rules/subquery/rule-anti-join-fk-empty.js.map +1 -1
- package/dist/src/planner/rules/subquery/rule-semi-join-fk-trivial.d.ts +3 -1
- package/dist/src/planner/rules/subquery/rule-semi-join-fk-trivial.d.ts.map +1 -1
- package/dist/src/planner/rules/subquery/rule-semi-join-fk-trivial.js +27 -10
- package/dist/src/planner/rules/subquery/rule-semi-join-fk-trivial.js.map +1 -1
- package/dist/src/planner/rules/subquery/rule-subquery-decorrelation.d.ts +24 -6
- package/dist/src/planner/rules/subquery/rule-subquery-decorrelation.d.ts.map +1 -1
- package/dist/src/planner/rules/subquery/rule-subquery-decorrelation.js +243 -70
- package/dist/src/planner/rules/subquery/rule-subquery-decorrelation.js.map +1 -1
- package/dist/src/planner/rules/window/rule-monotonic-window.d.ts +17 -7
- package/dist/src/planner/rules/window/rule-monotonic-window.d.ts.map +1 -1
- package/dist/src/planner/rules/window/rule-monotonic-window.js +124 -87
- package/dist/src/planner/rules/window/rule-monotonic-window.js.map +1 -1
- package/dist/src/planner/scopes/aliased.d.ts.map +1 -1
- package/dist/src/planner/scopes/aliased.js +6 -0
- package/dist/src/planner/scopes/aliased.js.map +1 -1
- package/dist/src/planner/stats/catalog-stats.d.ts +87 -4
- package/dist/src/planner/stats/catalog-stats.d.ts.map +1 -1
- package/dist/src/planner/stats/catalog-stats.js +250 -28
- package/dist/src/planner/stats/catalog-stats.js.map +1 -1
- package/dist/src/planner/stats/conjunct-selectivity.d.ts +48 -0
- package/dist/src/planner/stats/conjunct-selectivity.d.ts.map +1 -0
- package/dist/src/planner/stats/conjunct-selectivity.js +168 -0
- package/dist/src/planner/stats/conjunct-selectivity.js.map +1 -0
- package/dist/src/planner/stats/index.d.ts +36 -2
- package/dist/src/planner/stats/index.d.ts.map +1 -1
- package/dist/src/planner/stats/index.js.map +1 -1
- package/dist/src/planner/stats/selectivity-combine.d.ts +53 -0
- package/dist/src/planner/stats/selectivity-combine.d.ts.map +1 -0
- package/dist/src/planner/stats/selectivity-combine.js +75 -0
- package/dist/src/planner/stats/selectivity-combine.js.map +1 -0
- package/dist/src/planner/stats/table-cardinality.d.ts +28 -0
- package/dist/src/planner/stats/table-cardinality.d.ts.map +1 -0
- package/dist/src/planner/stats/table-cardinality.js +29 -0
- package/dist/src/planner/stats/table-cardinality.js.map +1 -0
- package/dist/src/planner/util/column-origins.d.ts +79 -0
- package/dist/src/planner/util/column-origins.d.ts.map +1 -0
- package/dist/src/planner/util/column-origins.js +150 -0
- package/dist/src/planner/util/column-origins.js.map +1 -0
- package/dist/src/planner/util/fd-utils.d.ts +32 -8
- package/dist/src/planner/util/fd-utils.d.ts.map +1 -1
- package/dist/src/planner/util/fd-utils.js +46 -9
- package/dist/src/planner/util/fd-utils.js.map +1 -1
- package/dist/src/planner/util/ind-utils.d.ts +56 -17
- package/dist/src/planner/util/ind-utils.d.ts.map +1 -1
- package/dist/src/planner/util/ind-utils.js +82 -21
- package/dist/src/planner/util/ind-utils.js.map +1 -1
- package/dist/src/planner/util/key-utils.d.ts +20 -2
- package/dist/src/planner/util/key-utils.d.ts.map +1 -1
- package/dist/src/planner/util/key-utils.js +37 -3
- package/dist/src/planner/util/key-utils.js.map +1 -1
- package/dist/src/planner/util/row-estimates.d.ts +28 -0
- package/dist/src/planner/util/row-estimates.d.ts.map +1 -0
- package/dist/src/planner/util/row-estimates.js +40 -0
- package/dist/src/planner/util/row-estimates.js.map +1 -0
- package/dist/src/planner/util/row-population.d.ts +42 -0
- package/dist/src/planner/util/row-population.d.ts.map +1 -0
- package/dist/src/planner/util/row-population.js +71 -0
- package/dist/src/planner/util/row-population.js.map +1 -0
- package/dist/src/runtime/deferred-constraint-queue.d.ts +40 -0
- package/dist/src/runtime/deferred-constraint-queue.d.ts.map +1 -1
- package/dist/src/runtime/deferred-constraint-queue.js +90 -9
- package/dist/src/runtime/deferred-constraint-queue.js.map +1 -1
- package/dist/src/runtime/emit/add-constraint.d.ts.map +1 -1
- package/dist/src/runtime/emit/add-constraint.js +39 -1
- package/dist/src/runtime/emit/add-constraint.js.map +1 -1
- package/dist/src/runtime/emit/aggregate.d.ts.map +1 -1
- package/dist/src/runtime/emit/aggregate.js +4 -4
- package/dist/src/runtime/emit/aggregate.js.map +1 -1
- package/dist/src/runtime/emit/alter-schema-event.d.ts +42 -0
- package/dist/src/runtime/emit/alter-schema-event.d.ts.map +1 -0
- package/dist/src/runtime/emit/alter-schema-event.js +28 -0
- package/dist/src/runtime/emit/alter-schema-event.js.map +1 -0
- package/dist/src/runtime/emit/alter-table.d.ts.map +1 -1
- package/dist/src/runtime/emit/alter-table.js +386 -154
- package/dist/src/runtime/emit/alter-table.js.map +1 -1
- package/dist/src/runtime/emit/analyze.d.ts.map +1 -1
- package/dist/src/runtime/emit/analyze.js +35 -3
- package/dist/src/runtime/emit/analyze.js.map +1 -1
- package/dist/src/runtime/emit/asof-scan.d.ts.map +1 -1
- package/dist/src/runtime/emit/asof-scan.js +8 -3
- package/dist/src/runtime/emit/asof-scan.js.map +1 -1
- package/dist/src/runtime/emit/between.d.ts.map +1 -1
- package/dist/src/runtime/emit/between.js +4 -38
- package/dist/src/runtime/emit/between.js.map +1 -1
- package/dist/src/runtime/emit/binary.d.ts.map +1 -1
- package/dist/src/runtime/emit/binary.js +2 -23
- package/dist/src/runtime/emit/binary.js.map +1 -1
- package/dist/src/runtime/emit/bloom-join.d.ts.map +1 -1
- package/dist/src/runtime/emit/bloom-join.js +6 -35
- package/dist/src/runtime/emit/bloom-join.js.map +1 -1
- package/dist/src/runtime/emit/case.d.ts.map +1 -1
- package/dist/src/runtime/emit/case.js +40 -6
- package/dist/src/runtime/emit/case.js.map +1 -1
- package/dist/src/runtime/emit/cast.d.ts.map +1 -1
- package/dist/src/runtime/emit/cast.js +4 -19
- package/dist/src/runtime/emit/cast.js.map +1 -1
- package/dist/src/runtime/emit/constraint-check.d.ts.map +1 -1
- package/dist/src/runtime/emit/constraint-check.js +32 -8
- package/dist/src/runtime/emit/constraint-check.js.map +1 -1
- package/dist/src/runtime/emit/dml-executor.d.ts.map +1 -1
- package/dist/src/runtime/emit/dml-executor.js +90 -50
- package/dist/src/runtime/emit/dml-executor.js.map +1 -1
- package/dist/src/runtime/emit/drop-index.d.ts.map +1 -1
- package/dist/src/runtime/emit/drop-index.js +4 -3
- package/dist/src/runtime/emit/drop-index.js.map +1 -1
- package/dist/src/runtime/emit/filter.d.ts +18 -0
- package/dist/src/runtime/emit/filter.d.ts.map +1 -1
- package/dist/src/runtime/emit/filter.js +52 -10
- package/dist/src/runtime/emit/filter.js.map +1 -1
- package/dist/src/runtime/emit/hash-aggregate.d.ts.map +1 -1
- package/dist/src/runtime/emit/hash-aggregate.js +2 -2
- package/dist/src/runtime/emit/hash-aggregate.js.map +1 -1
- package/dist/src/runtime/emit/join-key-extractor.d.ts +46 -0
- package/dist/src/runtime/emit/join-key-extractor.d.ts.map +1 -0
- package/dist/src/runtime/emit/join-key-extractor.js +60 -0
- package/dist/src/runtime/emit/join-key-extractor.js.map +1 -0
- package/dist/src/runtime/emit/join.d.ts.map +1 -1
- package/dist/src/runtime/emit/join.js +8 -46
- package/dist/src/runtime/emit/join.js.map +1 -1
- package/dist/src/runtime/emit/key-set-semi-join.d.ts +29 -0
- package/dist/src/runtime/emit/key-set-semi-join.d.ts.map +1 -0
- package/dist/src/runtime/emit/key-set-semi-join.js +149 -0
- package/dist/src/runtime/emit/key-set-semi-join.js.map +1 -0
- package/dist/src/runtime/emit/merge-join.d.ts.map +1 -1
- package/dist/src/runtime/emit/merge-join.js +15 -8
- package/dist/src/runtime/emit/merge-join.js.map +1 -1
- package/dist/src/runtime/emit/operand-comparator.d.ts +70 -0
- package/dist/src/runtime/emit/operand-comparator.d.ts.map +1 -0
- package/dist/src/runtime/emit/operand-comparator.js +93 -0
- package/dist/src/runtime/emit/operand-comparator.js.map +1 -0
- package/dist/src/runtime/emit/scan.d.ts.map +1 -1
- package/dist/src/runtime/emit/scan.js +11 -2
- package/dist/src/runtime/emit/scan.js.map +1 -1
- package/dist/src/runtime/emit/schema-declarative.d.ts.map +1 -1
- package/dist/src/runtime/emit/schema-declarative.js +30 -0
- package/dist/src/runtime/emit/schema-declarative.js.map +1 -1
- package/dist/src/runtime/emit/subquery.d.ts.map +1 -1
- package/dist/src/runtime/emit/subquery.js +153 -52
- package/dist/src/runtime/emit/subquery.js.map +1 -1
- package/dist/src/runtime/emit/window.js +36 -23
- package/dist/src/runtime/emit/window.js.map +1 -1
- package/dist/src/runtime/parallel-driver.d.ts +5 -2
- package/dist/src/runtime/parallel-driver.d.ts.map +1 -1
- package/dist/src/runtime/parallel-driver.js +6 -2
- package/dist/src/runtime/parallel-driver.js.map +1 -1
- package/dist/src/runtime/register.d.ts.map +1 -1
- package/dist/src/runtime/register.js +2 -0
- package/dist/src/runtime/register.js.map +1 -1
- package/dist/src/runtime/types.d.ts +7 -0
- package/dist/src/runtime/types.d.ts.map +1 -1
- package/dist/src/runtime/types.js.map +1 -1
- package/dist/src/schema/catalog-persistability.d.ts +19 -16
- package/dist/src/schema/catalog-persistability.d.ts.map +1 -1
- package/dist/src/schema/catalog-persistability.js +76 -20
- package/dist/src/schema/catalog-persistability.js.map +1 -1
- package/dist/src/schema/catalog.d.ts +67 -2
- package/dist/src/schema/catalog.d.ts.map +1 -1
- package/dist/src/schema/catalog.js +194 -3
- package/dist/src/schema/catalog.js.map +1 -1
- package/dist/src/schema/column.d.ts +26 -3
- package/dist/src/schema/column.d.ts.map +1 -1
- package/dist/src/schema/column.js.map +1 -1
- package/dist/src/schema/ddl-generator.d.ts.map +1 -1
- package/dist/src/schema/ddl-generator.js +19 -6
- package/dist/src/schema/ddl-generator.js.map +1 -1
- package/dist/src/schema/function.d.ts +40 -0
- package/dist/src/schema/function.d.ts.map +1 -1
- package/dist/src/schema/function.js +10 -2
- package/dist/src/schema/function.js.map +1 -1
- package/dist/src/schema/manager.d.ts +84 -7
- package/dist/src/schema/manager.d.ts.map +1 -1
- package/dist/src/schema/manager.js +153 -53
- package/dist/src/schema/manager.js.map +1 -1
- package/dist/src/schema/schema-differ.d.ts.map +1 -1
- package/dist/src/schema/schema-differ.js +104 -28
- package/dist/src/schema/schema-differ.js.map +1 -1
- package/dist/src/schema/table.d.ts +149 -1
- package/dist/src/schema/table.d.ts.map +1 -1
- package/dist/src/schema/table.js +248 -1
- package/dist/src/schema/table.js.map +1 -1
- package/dist/src/schema/unique-enforcement.d.ts +5 -3
- package/dist/src/schema/unique-enforcement.d.ts.map +1 -1
- package/dist/src/schema/unique-enforcement.js +5 -3
- package/dist/src/schema/unique-enforcement.js.map +1 -1
- package/dist/src/types/builtin-types.d.ts +16 -0
- package/dist/src/types/builtin-types.d.ts.map +1 -1
- package/dist/src/types/builtin-types.js +76 -12
- package/dist/src/types/builtin-types.js.map +1 -1
- package/dist/src/types/cast-semantics.d.ts +42 -0
- package/dist/src/types/cast-semantics.d.ts.map +1 -1
- package/dist/src/types/cast-semantics.js +64 -0
- package/dist/src/types/cast-semantics.js.map +1 -1
- package/dist/src/types/comparison-coercion.d.ts +101 -0
- package/dist/src/types/comparison-coercion.d.ts.map +1 -0
- package/dist/src/types/comparison-coercion.js +162 -0
- package/dist/src/types/comparison-coercion.js.map +1 -0
- package/dist/src/types/index.d.ts +2 -2
- package/dist/src/types/index.d.ts.map +1 -1
- package/dist/src/types/index.js +2 -2
- package/dist/src/types/index.js.map +1 -1
- package/dist/src/types/logical-type.d.ts +7 -0
- package/dist/src/types/logical-type.d.ts.map +1 -1
- package/dist/src/types/logical-type.js.map +1 -1
- package/dist/src/types/validation.d.ts +56 -0
- package/dist/src/types/validation.d.ts.map +1 -1
- package/dist/src/types/validation.js +68 -0
- package/dist/src/types/validation.js.map +1 -1
- package/dist/src/util/coercion.d.ts +8 -0
- package/dist/src/util/coercion.d.ts.map +1 -1
- package/dist/src/util/coercion.js +8 -0
- package/dist/src/util/coercion.js.map +1 -1
- package/dist/src/util/comparison.d.ts +41 -3
- package/dist/src/util/comparison.d.ts.map +1 -1
- package/dist/src/util/comparison.js +52 -5
- package/dist/src/util/comparison.js.map +1 -1
- package/dist/src/util/key-serializer.d.ts +46 -0
- package/dist/src/util/key-serializer.d.ts.map +1 -1
- package/dist/src/util/key-serializer.js +47 -0
- package/dist/src/util/key-serializer.js.map +1 -1
- package/dist/src/util/value-set.d.ts +21 -0
- package/dist/src/util/value-set.d.ts.map +1 -0
- package/dist/src/util/value-set.js +22 -0
- package/dist/src/util/value-set.js.map +1 -0
- package/dist/src/vtab/best-access-plan.d.ts +87 -0
- package/dist/src/vtab/best-access-plan.d.ts.map +1 -1
- package/dist/src/vtab/best-access-plan.js +87 -0
- package/dist/src/vtab/best-access-plan.js.map +1 -1
- package/dist/src/vtab/capabilities.d.ts +1 -1
- package/dist/src/vtab/events.d.ts +5 -1
- package/dist/src/vtab/events.d.ts.map +1 -1
- package/dist/src/vtab/events.js.map +1 -1
- package/dist/src/vtab/memory/layer/alter-column.d.ts +147 -0
- package/dist/src/vtab/memory/layer/alter-column.d.ts.map +1 -0
- package/dist/src/vtab/memory/layer/alter-column.js +214 -0
- package/dist/src/vtab/memory/layer/alter-column.js.map +1 -0
- package/dist/src/vtab/memory/layer/base.d.ts +6 -4
- package/dist/src/vtab/memory/layer/base.d.ts.map +1 -1
- package/dist/src/vtab/memory/layer/base.js +10 -7
- package/dist/src/vtab/memory/layer/base.js.map +1 -1
- package/dist/src/vtab/memory/layer/interface.d.ts +2 -2
- package/dist/src/vtab/memory/layer/interface.d.ts.map +1 -1
- package/dist/src/vtab/memory/layer/manager.d.ts +232 -39
- package/dist/src/vtab/memory/layer/manager.d.ts.map +1 -1
- package/dist/src/vtab/memory/layer/manager.js +657 -519
- package/dist/src/vtab/memory/layer/manager.js.map +1 -1
- package/dist/src/vtab/memory/layer/scan-layer.d.ts.map +1 -1
- package/dist/src/vtab/memory/layer/scan-layer.js +32 -5
- package/dist/src/vtab/memory/layer/scan-layer.js.map +1 -1
- package/dist/src/vtab/memory/layer/transaction.d.ts +111 -16
- package/dist/src/vtab/memory/layer/transaction.d.ts.map +1 -1
- package/dist/src/vtab/memory/layer/transaction.js +154 -51
- package/dist/src/vtab/memory/layer/transaction.js.map +1 -1
- package/dist/src/vtab/memory/module.d.ts +14 -2
- package/dist/src/vtab/memory/module.d.ts.map +1 -1
- package/dist/src/vtab/memory/module.js +53 -40
- package/dist/src/vtab/memory/module.js.map +1 -1
- package/dist/src/vtab/memory/table.d.ts +1 -1
- package/dist/src/vtab/memory/table.d.ts.map +1 -1
- package/dist/src/vtab/memory/table.js +15 -3
- package/dist/src/vtab/memory/table.js.map +1 -1
- package/dist/src/vtab/module.d.ts +51 -21
- package/dist/src/vtab/module.d.ts.map +1 -1
- package/dist/src/vtab/table.d.ts +10 -2
- package/dist/src/vtab/table.d.ts.map +1 -1
- package/dist/src/vtab/table.js +1 -1
- package/dist/src/vtab/table.js.map +1 -1
- package/package.json +3 -3
|
@@ -9,6 +9,7 @@ import { buildInsertStatement, buildUpdateStatement, buildDeleteStatement } from
|
|
|
9
9
|
import { isMaintainedTable } from '../../schema/derivation.js';
|
|
10
10
|
import { hasNativeEventSupport } from '../../util/event-support.js';
|
|
11
11
|
import { sqlValueIdentical, compareSqlValuesFast, BINARY_COLLATION } from '../../util/comparison.js';
|
|
12
|
+
import { uniqueEnforcementComparators } from '../../schema/unique-enforcement.js';
|
|
12
13
|
import { validateAndParse } from '../../types/validation.js';
|
|
13
14
|
import { withAsyncRowContext } from '../context-helpers.js';
|
|
14
15
|
import { executeForeignKeyActionsAndLens, assertTransitiveRestrictsForParentMutation, createParentRestrictBatch, accumulateParentRestrictKeys, flushParentRestrictBatch } from '../foreign-key-actions.js';
|
|
@@ -23,19 +24,22 @@ import { poisonResidualDeltaAccumulations } from '../../core/database-materializ
|
|
|
23
24
|
let stmtSavepointCounter = 0;
|
|
24
25
|
/**
|
|
25
26
|
* True when a proposed value equals the stored existing value at one conflict-target
|
|
26
|
-
* column the way the targeted constraint ENFORCES:
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
*
|
|
27
|
+
* column the way the targeted constraint ENFORCES: through the column's precomputed
|
|
28
|
+
* comparator (declared-type `compare` for a semantic-ordering column, else the
|
|
29
|
+
* enforcement collation). Both sides are already in declared (stored) form —
|
|
30
|
+
* `existing` is a stored row and the proposed row was converted by the INSERT
|
|
31
|
+
* emitter's static-type pass — so no per-row conversion happens here.
|
|
30
32
|
*
|
|
31
|
-
* `targetPos` indexes the clause's per-target
|
|
33
|
+
* `targetPos` indexes the clause's per-target comparator array (aligned with
|
|
32
34
|
* `conflictTargetIndices`). When absent — a defensively-old plan — it degrades to
|
|
33
35
|
* BINARY, i.e. the byte-identity semantics of `sqlValueIdentical`, preserving its
|
|
34
36
|
* numeric-storage-class tolerance via {@link compareSqlValuesFast}.
|
|
35
37
|
*/
|
|
36
38
|
function conflictTargetValuesMatch(existing, proposed, clause, targetPos) {
|
|
37
|
-
const
|
|
38
|
-
|
|
39
|
+
const compare = clause.conflictTargetComparators?.[targetPos];
|
|
40
|
+
if (compare)
|
|
41
|
+
return compare(existing, proposed) === 0;
|
|
42
|
+
return compareSqlValuesFast(existing, proposed, BINARY_COLLATION) === 0;
|
|
39
43
|
}
|
|
40
44
|
/**
|
|
41
45
|
* Returns true when the table's owning *module* natively emits data events.
|
|
@@ -242,6 +246,15 @@ export function emitDmlExecutor(plan, ctx) {
|
|
|
242
246
|
assertNotMaintainedTableTarget(tableSchema);
|
|
243
247
|
// Pre-calculate primary key column indices from schema (needed for update/delete)
|
|
244
248
|
const pkColumnIndicesInSchema = tableSchema.primaryKeyDefinition.map(pkColDef => pkColDef.index);
|
|
249
|
+
// Per-PK-column comparators for the data-event contract's relocation test: an UPDATE
|
|
250
|
+
// whose key values differ under the PRIMARY KEY's own comparator MOVES the row, and the
|
|
251
|
+
// contract delivers that as delete-at-old-key + insert-at-new-key rather than one `update`
|
|
252
|
+
// (docs/usage.md § Subscribing to Data Changes). Built through the shared UNIQUE-enforcement
|
|
253
|
+
// rule so the test is collation- and type-aware — never raw value equality, which would
|
|
254
|
+
// mis-classify a NOCASE case-only rewrite ('apple' → 'APPLE') as a move when the row never
|
|
255
|
+
// left its slot. Resolved once here (the resolver throws on an unregistered name and
|
|
256
|
+
// records the collation dependency so a redefined collation re-emits).
|
|
257
|
+
const pkEventComparators = uniqueEnforcementComparators(tableSchema.columns, pkColumnIndicesInSchema, tableSchema.primaryKeyDefinition.map(pkColDef => ctx.resolveCollation(pkColDef.collation ?? 'BINARY')));
|
|
245
258
|
// Emit mutation context evaluators if present
|
|
246
259
|
const contextEvaluatorInstructions = [];
|
|
247
260
|
if (plan.mutationContextValues && plan.contextAttributes) {
|
|
@@ -268,11 +281,15 @@ export function emitDmlExecutor(plan, ctx) {
|
|
|
268
281
|
existingRowDescriptor: clause.existingRowDescriptor,
|
|
269
282
|
};
|
|
270
283
|
// Resolve the per-target-column enforcement collation NAMES to functions once
|
|
271
|
-
// here (recording the collation dependency so a redefined collation re-emits)
|
|
272
|
-
//
|
|
273
|
-
//
|
|
284
|
+
// here (recording the collation dependency so a redefined collation re-emits),
|
|
285
|
+
// then build the per-column comparators through the shared UNIQUE-enforcement
|
|
286
|
+
// rule. Consumed by matchUpsertClause so a conflict the targeted constraint
|
|
287
|
+
// considers a duplicate — collation-equal, or semantically equal under a
|
|
288
|
+
// semantic-ordering declared type — routes to DO UPDATE / DO NOTHING instead
|
|
289
|
+
// of aborting.
|
|
274
290
|
if (clause.conflictTargetIndices && clause.conflictTargetCollations) {
|
|
275
|
-
|
|
291
|
+
const collationFns = clause.conflictTargetCollations.map(name => ctx.resolveCollation(name ?? 'BINARY'));
|
|
292
|
+
runtime.conflictTargetComparators = uniqueEnforcementComparators(tableSchema.columns, clause.conflictTargetIndices, collationFns);
|
|
276
293
|
}
|
|
277
294
|
if (clause.action === 'update' && clause.assignments) {
|
|
278
295
|
runtime.assignmentIndices = new Map();
|
|
@@ -320,18 +337,13 @@ export function emitDmlExecutor(plan, ctx) {
|
|
|
320
337
|
// No conflict target specified - matches any unique constraint
|
|
321
338
|
return clause;
|
|
322
339
|
}
|
|
323
|
-
//
|
|
324
|
-
//
|
|
325
|
-
//
|
|
326
|
-
//
|
|
327
|
-
//
|
|
328
|
-
//
|
|
329
|
-
//
|
|
330
|
-
// case-variant, RTRIM trailing-space) is routed by the collation compare
|
|
331
|
-
// to the DO UPDATE / DO NOTHING arm rather than aborting with a UNIQUE
|
|
332
|
-
// error. The per-column collation functions are precomputed at emit; a
|
|
333
|
-
// BINARY, byte-identical key still compares 0 (well-formed seeds
|
|
334
|
-
// re-present byte-identical literals, so seed idempotency is unaffected).
|
|
340
|
+
// The conflict is on this clause's target columns when the proposed row
|
|
341
|
+
// equals the existing one there, compared the way the constraint ENFORCES
|
|
342
|
+
// (see {@link conflictTargetValuesMatch}): an affinity-coerced, a
|
|
343
|
+
// collation-equal or a semantically-equal conflict all route to the DO
|
|
344
|
+
// UPDATE / DO NOTHING arm rather than aborting with a UNIQUE error, while
|
|
345
|
+
// a BINARY byte-identical key still compares 0 (so seed idempotency, which
|
|
346
|
+
// re-presents identical literals, is unaffected).
|
|
335
347
|
//
|
|
336
348
|
// NOTE: one residual corner remains out of scope — multi-constraint
|
|
337
349
|
// coincidence. If an insert violates the targeted constraint AND another
|
|
@@ -643,6 +655,54 @@ export function emitDmlExecutor(plan, ctx) {
|
|
|
643
655
|
await it.return();
|
|
644
656
|
}
|
|
645
657
|
}
|
|
658
|
+
/**
|
|
659
|
+
* True when `oldRow` and `newRow` sit at DIFFERENT primary keys — the row relocated.
|
|
660
|
+
* Compares under {@link pkEventComparators} (per-column collation- and type-aware), so a
|
|
661
|
+
* key rewrite that leaves the row in its existing slot (a NOCASE 'apple' → 'APPLE') is
|
|
662
|
+
* NOT a relocation.
|
|
663
|
+
*
|
|
664
|
+
* NOTE: this verdict must match the SUBSTRATE's — the memory module decides the same
|
|
665
|
+
* question with `createPrimaryKeyFunctions`' comparators, a different construction. The two
|
|
666
|
+
* agree on every type in tree today (both fall through to `compareSqlValuesFast` under the
|
|
667
|
+
* column collation for TEXT, and to the declared type's `compare` for a semantic-ordering
|
|
668
|
+
* type). They could part company on a type that carries a `compare` WITHOUT
|
|
669
|
+
* `semanticOrdering` — DATE/TIME/DATETIME, whose `compare` is hard-wired to BINARY — if such
|
|
670
|
+
* a column ever became able to declare a non-BINARY collation, which the DDL currently
|
|
671
|
+
* refuses. If that changes, share one comparator factory instead: a disagreement here emits
|
|
672
|
+
* one `update` for a row the substrate actually moved. The same tripwire covers the STORE
|
|
673
|
+
* substrate, which reaches this path whenever a store table is registered WITHOUT its own
|
|
674
|
+
* emitter: it decides relocation from its encoded data key (`resolvePkKeyCollations`), a
|
|
675
|
+
* third construction that folds the same per-column collation.
|
|
676
|
+
*/
|
|
677
|
+
function primaryKeyRelocated(oldRow, newRow) {
|
|
678
|
+
return pkColumnIndicesInSchema.some((colIdx, i) => pkEventComparators[i](oldRow[colIdx], newRow[colIdx]) !== 0);
|
|
679
|
+
}
|
|
680
|
+
/**
|
|
681
|
+
* Emit the auto data event(s) for one row-level UPDATE under the event contract's split
|
|
682
|
+
* rule (docs/usage.md § Subscribing to Data Changes): a relocating key change is delivered
|
|
683
|
+
* as a `delete` at the old key then an `insert` at the new key — so a listener retires the
|
|
684
|
+
* old identity without having to know which columns form the key — and anything else is a
|
|
685
|
+
* single `update` keyed by the POST-image, which is the row the table now holds.
|
|
686
|
+
*
|
|
687
|
+
* The split loses `changedColumns` and the "same row" link between the two events; that
|
|
688
|
+
* cost is the documented contract, not an oversight.
|
|
689
|
+
*/
|
|
690
|
+
function emitAutoUpdateEvents(ctx, oldRow, newRow) {
|
|
691
|
+
const newKeyValues = pkColumnIndicesInSchema.map(idx => newRow[idx]);
|
|
692
|
+
if (primaryKeyRelocated(oldRow, newRow)) {
|
|
693
|
+
const oldKeyValues = pkColumnIndicesInSchema.map(idx => oldRow[idx]);
|
|
694
|
+
emitAutoDataEvent(ctx, tableSchema, 'delete', oldKeyValues, [...oldRow]);
|
|
695
|
+
emitAutoDataEvent(ctx, tableSchema, 'insert', newKeyValues, undefined, [...newRow]);
|
|
696
|
+
return;
|
|
697
|
+
}
|
|
698
|
+
const changedColumns = [];
|
|
699
|
+
for (let i = 0; i < tableSchema.columns.length; i++) {
|
|
700
|
+
if (!sqlValueIdentical(oldRow[i], newRow[i])) {
|
|
701
|
+
changedColumns.push(tableSchema.columns[i].name);
|
|
702
|
+
}
|
|
703
|
+
}
|
|
704
|
+
emitAutoDataEvent(ctx, tableSchema, 'update', newKeyValues, [...oldRow], [...newRow], changedColumns);
|
|
705
|
+
}
|
|
646
706
|
/**
|
|
647
707
|
* Performs a single row's INSERT side-effects (vtab.update + bookkeeping +
|
|
648
708
|
* UPSERT handling + REPLACE handling). Returns the row to yield downstream,
|
|
@@ -682,18 +742,11 @@ export function emitDmlExecutor(plan, ctx) {
|
|
|
682
742
|
const updateResult = await executeUpsertUpdate(ctx, vtab, matchingClause, result.existingRow, newRow, contextRow, upsertEvaluators);
|
|
683
743
|
if (!updateResult)
|
|
684
744
|
return undefined;
|
|
685
|
-
const existingKeyValues = pkColumnIndicesInSchema.map(idx => result.existingRow[idx]);
|
|
686
745
|
ctx.db._recordUpdate(tableKey, result.existingRow, updateResult.updatedRow, pkColumnIndicesInSchema);
|
|
687
746
|
await maintainRowTimeStructures(ctx, tableKey, { op: 'update', oldRow: result.existingRow, newRow: updateResult.updatedRow }, backingConnCache, deferredRebuilds, residualBatch);
|
|
688
747
|
await executeForeignKeyActionsAndLens(ctx.db, tableSchema, 'update', result.existingRow, updateResult.updatedRow, plan.lensRouted);
|
|
689
748
|
if (needsAutoEvents) {
|
|
690
|
-
|
|
691
|
-
for (let i = 0; i < tableSchema.columns.length; i++) {
|
|
692
|
-
if (!sqlValueIdentical(result.existingRow[i], updateResult.updatedRow[i])) {
|
|
693
|
-
changedColumns.push(tableSchema.columns[i].name);
|
|
694
|
-
}
|
|
695
|
-
}
|
|
696
|
-
emitAutoDataEvent(ctx, tableSchema, 'update', existingKeyValues, [...result.existingRow], [...updateResult.updatedRow], changedColumns);
|
|
749
|
+
emitAutoUpdateEvents(ctx, result.existingRow, updateResult.updatedRow);
|
|
697
750
|
}
|
|
698
751
|
return updateResult.flatRow;
|
|
699
752
|
}
|
|
@@ -717,18 +770,11 @@ export function emitDmlExecutor(plan, ctx) {
|
|
|
717
770
|
await processEvictions(ctx, needsAutoEvents, tableKey, result.evictedRows, backingConnCache, deferredRebuilds, residualBatch);
|
|
718
771
|
const replacedRow = result.replacedRow;
|
|
719
772
|
if (replacedRow) {
|
|
720
|
-
const newKeyValues = pkColumnIndicesInSchema.map(idx => storedRow[idx]);
|
|
721
773
|
ctx.db._recordUpdate(tableKey, replacedRow, storedRow, pkColumnIndicesInSchema);
|
|
722
774
|
await maintainRowTimeStructures(ctx, tableKey, { op: 'update', oldRow: replacedRow, newRow: storedRow }, backingConnCache, deferredRebuilds, residualBatch);
|
|
723
775
|
await executeForeignKeyActionsAndLens(ctx.db, tableSchema, 'delete', replacedRow, undefined, plan.lensRouted);
|
|
724
776
|
if (needsAutoEvents) {
|
|
725
|
-
|
|
726
|
-
for (let i = 0; i < numCols; i++) {
|
|
727
|
-
if (!sqlValueIdentical(replacedRow[i], storedRow[i])) {
|
|
728
|
-
changedColumns.push(tableSchema.columns[i].name);
|
|
729
|
-
}
|
|
730
|
-
}
|
|
731
|
-
emitAutoDataEvent(ctx, tableSchema, 'update', newKeyValues, [...replacedRow], [...storedRow], changedColumns);
|
|
777
|
+
emitAutoUpdateEvents(ctx, replacedRow, storedRow);
|
|
732
778
|
}
|
|
733
779
|
}
|
|
734
780
|
else {
|
|
@@ -910,18 +956,12 @@ export function emitDmlExecutor(plan, ctx) {
|
|
|
910
956
|
await maintainRowTimeStructures(ctx, tableKey, { op: 'update', oldRow, newRow: storedRow }, backingConnCache, deferredRebuilds, residualBatch);
|
|
911
957
|
// Execute FK cascading actions (CASCADE, SET NULL, SET DEFAULT)
|
|
912
958
|
await executeForeignKeyActionsAndLens(ctx.db, tableSchema, 'update', oldRow, storedRow, plan.lensRouted);
|
|
913
|
-
// Emit auto event for modules without native event support
|
|
959
|
+
// Emit auto event(s) for modules without native event support. NOT keyed by
|
|
960
|
+
// `keyValues` — that is the vtab's `oldKeyValues` and stays pointed at the OLD row;
|
|
961
|
+
// the event contract keys an update by its post-image and splits a relocating key
|
|
962
|
+
// change into delete + insert. See emitAutoUpdateEvents.
|
|
914
963
|
if (needsAutoEvents) {
|
|
915
|
-
|
|
916
|
-
const changedColumns = [];
|
|
917
|
-
for (let i = 0; i < numCols; i++) {
|
|
918
|
-
const oldVal = oldRow[i];
|
|
919
|
-
const newVal = storedRow[i];
|
|
920
|
-
if (!sqlValueIdentical(oldVal, newVal)) {
|
|
921
|
-
changedColumns.push(tableSchema.columns[i].name);
|
|
922
|
-
}
|
|
923
|
-
}
|
|
924
|
-
emitAutoDataEvent(ctx, tableSchema, 'update', keyValues, [...oldRow], [...storedRow], changedColumns);
|
|
964
|
+
emitAutoUpdateEvents(ctx, oldRow, storedRow);
|
|
925
965
|
}
|
|
926
966
|
return withStoredNewSection(flatRow, storedRow, newRow, numCols);
|
|
927
967
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dml-executor.js","sourceRoot":"","sources":["../../../../src/runtime/emit/dml-executor.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dml-executor.js","sourceRoot":"","sources":["../../../../src/runtime/emit/dml-executor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"drop-index.d.ts","sourceRoot":"","sources":["../../../../src/runtime/emit/drop-index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AAC5E,OAAO,KAAK,EAAE,WAAW,EAAkB,MAAM,aAAa,CAAC;AAE/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAK9D,wBAAgB,aAAa,CAAC,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,eAAe,GAAG,WAAW,
|
|
1
|
+
{"version":3,"file":"drop-index.d.ts","sourceRoot":"","sources":["../../../../src/runtime/emit/drop-index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AAC5E,OAAO,KAAK,EAAE,WAAW,EAAkB,MAAM,aAAa,CAAC;AAE/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAK9D,wBAAgB,aAAa,CAAC,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,eAAe,GAAG,WAAW,CAiCrF"}
|
|
@@ -9,9 +9,10 @@ export function emitDropIndex(plan, _ctx) {
|
|
|
9
9
|
// If nothing owns the index, skip the gate and let dropIndex handle IF EXISTS /
|
|
10
10
|
// not-found.
|
|
11
11
|
if (isDdlPolicyStrict(rctx.db)) {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
12
|
+
// Same resolver, same default scope, as the drop itself — so the policy gate
|
|
13
|
+
// can never fire against a table whose index is not the one dropIndex will
|
|
14
|
+
// resolve (or against no droppable index at all).
|
|
15
|
+
const owner = rctx.db.schemaManager.findIndexOwner(plan.schemaName, plan.indexName)?.table;
|
|
15
16
|
if (owner) {
|
|
16
17
|
assertDdlTransactionPolicy(rctx.db, requireVtabModule(owner), owner.vtabModuleName, `DROP INDEX ${plan.indexName}`);
|
|
17
18
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"drop-index.js","sourceRoot":"","sources":["../../../../src/runtime/emit/drop-index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAGpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,0BAA0B,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAE5F,MAAM,UAAU,aAAa,CAAC,IAAmB,EAAE,IAAqB;IACvE,KAAK,UAAU,GAAG,CAAC,IAAoB;QACtC,gFAAgF;QAChF,+EAA+E;QAC/E,+EAA+E;QAC/E,gFAAgF;QAChF,aAAa;QACb,IAAI,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;YAChC,
|
|
1
|
+
{"version":3,"file":"drop-index.js","sourceRoot":"","sources":["../../../../src/runtime/emit/drop-index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAGpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,0BAA0B,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAE5F,MAAM,UAAU,aAAa,CAAC,IAAmB,EAAE,IAAqB;IACvE,KAAK,UAAU,GAAG,CAAC,IAAoB;QACtC,gFAAgF;QAChF,+EAA+E;QAC/E,+EAA+E;QAC/E,gFAAgF;QAChF,aAAa;QACb,IAAI,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;YAChC,6EAA6E;YAC7E,2EAA2E;YAC3E,kDAAkD;YAClD,MAAM,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC;YAC3F,IAAI,KAAK,EAAE,CAAC;gBACX,0BAA0B,CACzB,IAAI,CAAC,EAAE,EAAE,iBAAiB,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,cAAc,EACvD,cAAc,IAAI,CAAC,SAAS,EAAE,CAC9B,CAAC;YACH,CAAC;QACF,CAAC;QAED,wEAAwE;QACxE,MAAM,IAAI,CAAC,EAAE,CAAC,kBAAkB,EAAE,CAAC;QAEnC,MAAM,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAEtF,OAAO,IAAI,CAAC;IACb,CAAC;IAED,OAAO;QACN,MAAM,EAAE,EAAE;QACV,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC;QACf,IAAI,EAAE,aAAa,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,SAAS,GAAG;KACvD,CAAC;AACH,CAAC"}
|
|
@@ -1,5 +1,23 @@
|
|
|
1
1
|
import type { FilterNode } from '../../planner/nodes/filter.js';
|
|
2
2
|
import type { Instruction } from '../types.js';
|
|
3
3
|
import type { EmissionContext } from '../emission-context.js';
|
|
4
|
+
/**
|
|
5
|
+
* Emit a `FilterNode`.
|
|
6
|
+
*
|
|
7
|
+
* A conjunctive predicate (`a and b and c`) is split into its top-level conjuncts at
|
|
8
|
+
* emit time and each is compiled into its own on-demand sub-program. Per row the
|
|
9
|
+
* conjuncts run in source order and the row is dropped at the **first** one that does
|
|
10
|
+
* not yield true, so a later conjunct containing an expensive or side-effecting call
|
|
11
|
+
* never runs for a row an earlier conjunct already rejected.
|
|
12
|
+
*
|
|
13
|
+
* This needs no three-valued-logic reasoning at the conjunct boundary: a filter keeps
|
|
14
|
+
* a row only when the predicate is *true*, and under SQL `AND` a conjunct that is
|
|
15
|
+
* `false` **or** `NULL` makes the whole conjunction `false` or `NULL` — either way the
|
|
16
|
+
* row is rejected. The per-conjunct truthiness test is the same `isTruthy` the whole
|
|
17
|
+
* predicate used before, so blob / string / numeric truthiness is unchanged.
|
|
18
|
+
*
|
|
19
|
+
* Nested `AND`s that are not at the top level of the predicate (under a `NOT`, inside
|
|
20
|
+
* a `CASE`, below an `OR`) are untouched and still route through `emitLogicalOp`.
|
|
21
|
+
*/
|
|
4
22
|
export declare function emitFilter(plan: FilterNode, ctx: EmissionContext): Instruction;
|
|
5
23
|
//# sourceMappingURL=filter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filter.d.ts","sourceRoot":"","sources":["../../../../src/runtime/emit/filter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,KAAK,EAAE,WAAW,EAAkB,MAAM,aAAa,CAAC;AAI/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"filter.d.ts","sourceRoot":"","sources":["../../../../src/runtime/emit/filter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,KAAK,EAAE,WAAW,EAAkB,MAAM,aAAa,CAAC;AAI/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAyB9D;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,eAAe,GAAG,WAAW,CA2C9E"}
|
|
@@ -6,6 +6,7 @@ import { createRowSlot } from '../context-helpers.js';
|
|
|
6
6
|
import { QuereusError } from '../../common/errors.js';
|
|
7
7
|
import { isTruthy } from '../../util/comparison.js';
|
|
8
8
|
import { resolveMaybe } from '../async-util.js';
|
|
9
|
+
import { splitConjuncts } from '../../planner/analysis/predicate-conjuncts.js';
|
|
9
10
|
function asPredicateScalar(value) {
|
|
10
11
|
if (value === null)
|
|
11
12
|
return null;
|
|
@@ -15,21 +16,61 @@ function asPredicateScalar(value) {
|
|
|
15
16
|
return value;
|
|
16
17
|
throw new QuereusError(`Filter predicate returned non-scalar value: ${String(value)}`, StatusCode.INTERNAL);
|
|
17
18
|
}
|
|
19
|
+
/**
|
|
20
|
+
* Run one predicate sub-program against the current row and reduce it to a keep/drop
|
|
21
|
+
* decision. Resolves without a per-row microtask hop: the sub-program almost always
|
|
22
|
+
* completes synchronously, so the result is only a promise when it genuinely is one.
|
|
23
|
+
* See resolveMaybe in runtime/async-util.ts.
|
|
24
|
+
*/
|
|
25
|
+
function evaluatePredicate(rctx, predicate) {
|
|
26
|
+
return resolveMaybe(predicate(rctx), (result) => isTruthy(asPredicateScalar(result)));
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Emit a `FilterNode`.
|
|
30
|
+
*
|
|
31
|
+
* A conjunctive predicate (`a and b and c`) is split into its top-level conjuncts at
|
|
32
|
+
* emit time and each is compiled into its own on-demand sub-program. Per row the
|
|
33
|
+
* conjuncts run in source order and the row is dropped at the **first** one that does
|
|
34
|
+
* not yield true, so a later conjunct containing an expensive or side-effecting call
|
|
35
|
+
* never runs for a row an earlier conjunct already rejected.
|
|
36
|
+
*
|
|
37
|
+
* This needs no three-valued-logic reasoning at the conjunct boundary: a filter keeps
|
|
38
|
+
* a row only when the predicate is *true*, and under SQL `AND` a conjunct that is
|
|
39
|
+
* `false` **or** `NULL` makes the whole conjunction `false` or `NULL` — either way the
|
|
40
|
+
* row is rejected. The per-conjunct truthiness test is the same `isTruthy` the whole
|
|
41
|
+
* predicate used before, so blob / string / numeric truthiness is unchanged.
|
|
42
|
+
*
|
|
43
|
+
* Nested `AND`s that are not at the top level of the predicate (under a `NOT`, inside
|
|
44
|
+
* a `CASE`, below an `OR`) are untouched and still route through `emitLogicalOp`.
|
|
45
|
+
*/
|
|
18
46
|
export function emitFilter(plan, ctx) {
|
|
19
47
|
const sourceInstruction = emitPlanNode(plan.source, ctx);
|
|
20
|
-
const
|
|
21
|
-
//
|
|
48
|
+
const conjuncts = splitConjuncts(plan.predicate);
|
|
49
|
+
// NOTE: each conjunct becomes its own sub-program, so N cheap conjuncts that all
|
|
50
|
+
// pass cost N callback invocations per row where the unsplit AND tree cost one
|
|
51
|
+
// (measured ~5-10% on a 3-conjunct all-true scan of 20k memory rows; any conjunct
|
|
52
|
+
// that rejects more than pays it back). If wide all-passing filters ever show up
|
|
53
|
+
// as hot, fuse the cheap side-effect-free conjuncts back into one sub-program.
|
|
54
|
+
const conjunctFuncs = conjuncts.map(conjunct => emitCallFromPlan(conjunct, ctx));
|
|
22
55
|
const sourceRowDescriptor = buildRowDescriptor(plan.source.getAttributes());
|
|
23
|
-
|
|
56
|
+
// Variable arity: the conjunct callbacks arrive as a rest tuple, since the param
|
|
57
|
+
// count is decided at emit time.
|
|
58
|
+
async function* run(rctx, source, ...predicates) {
|
|
24
59
|
const sourceSlot = createRowSlot(rctx, sourceRowDescriptor);
|
|
25
60
|
try {
|
|
26
61
|
for await (const sourceRow of source) {
|
|
62
|
+
// The row slot is set before any conjunct runs, so a correlated conjunct
|
|
63
|
+
// sees the current row regardless of where it sits in the order.
|
|
27
64
|
sourceSlot.set(sourceRow);
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
65
|
+
let keep = true;
|
|
66
|
+
for (const predicate of predicates) {
|
|
67
|
+
const decision = evaluatePredicate(rctx, predicate);
|
|
68
|
+
if (!(decision instanceof Promise ? await decision : decision)) {
|
|
69
|
+
keep = false;
|
|
70
|
+
break;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
if (keep) {
|
|
33
74
|
yield sourceRow;
|
|
34
75
|
}
|
|
35
76
|
}
|
|
@@ -38,10 +79,11 @@ export function emitFilter(plan, ctx) {
|
|
|
38
79
|
sourceSlot.close();
|
|
39
80
|
}
|
|
40
81
|
}
|
|
82
|
+
const earlyExit = conjuncts.length > 1 ? ` [${conjuncts.length} conjuncts, early exit]` : '';
|
|
41
83
|
return {
|
|
42
|
-
params: [sourceInstruction,
|
|
84
|
+
params: [sourceInstruction, ...conjunctFuncs],
|
|
43
85
|
run: asRun(run),
|
|
44
|
-
note: `filter(${plan.predicate.toString()})`
|
|
86
|
+
note: `filter(${plan.predicate.toString()})${earlyExit}`
|
|
45
87
|
};
|
|
46
88
|
}
|
|
47
89
|
//# sourceMappingURL=filter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filter.js","sourceRoot":"","sources":["../../../../src/runtime/emit/filter.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAChE,OAAO,
|
|
1
|
+
{"version":3,"file":"filter.js","sourceRoot":"","sources":["../../../../src/runtime/emit/filter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hash-aggregate.d.ts","sourceRoot":"","sources":["../../../../src/runtime/emit/hash-aggregate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,KAAK,EAAE,WAAW,EAAkB,MAAM,aAAa,CAAC;AAI/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"hash-aggregate.d.ts","sourceRoot":"","sources":["../../../../src/runtime/emit/hash-aggregate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,KAAK,EAAE,WAAW,EAAkB,MAAM,aAAa,CAAC;AAI/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AA2B9D,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,iBAAiB,EAAE,GAAG,EAAE,eAAe,GAAG,WAAW,CAkT5F"}
|
|
@@ -3,7 +3,7 @@ import { emitPlanNode, emitCallFromPlan } from '../emitters.js';
|
|
|
3
3
|
import { isAggregateFunctionSchema } from '../../schema/function.js';
|
|
4
4
|
import { AggregateFunctionCallNode } from '../../planner/nodes/aggregate-function.js';
|
|
5
5
|
import { isRelationalNode } from '../../planner/nodes/plan-node.js';
|
|
6
|
-
import {
|
|
6
|
+
import { createValueSet } from '../../util/value-set.js';
|
|
7
7
|
import { logContextPush, logContextPop } from '../utils.js';
|
|
8
8
|
import { coerceForAggregate } from '../../util/coercion.js';
|
|
9
9
|
import { quereusError } from '../../common/errors.js';
|
|
@@ -67,7 +67,7 @@ export function emitHashAggregate(plan, ctx) {
|
|
|
67
67
|
return aggregateSchemas.map(schema => cloneInitialValue(isAggregateFunctionSchema(schema) ? schema.initialValue : undefined));
|
|
68
68
|
}
|
|
69
69
|
function createDistinctTrees() {
|
|
70
|
-
return aggregateDistinctFlags.map((isDistinct, i) => isDistinct ?
|
|
70
|
+
return aggregateDistinctFlags.map((isDistinct, i) => isDistinct ? createValueSet(distinctComparators[i]) : null);
|
|
71
71
|
}
|
|
72
72
|
// No GROUP BY case — identical to stream aggregate (single accumulator, no hash map)
|
|
73
73
|
if (plan.groupBy.length === 0) {
|