@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
|
@@ -4,13 +4,13 @@ import { MemoryIndex } from '../index.js';
|
|
|
4
4
|
import type { Row, SqlValue } from '../../../common/types.js';
|
|
5
5
|
import type { BTreeKeyForPrimary, BTreeKeyForIndex, MemoryIndexEntry } from '../types.js';
|
|
6
6
|
import type { Layer, PkExtractorsAndComparators } from './interface.js';
|
|
7
|
+
import { type PrimaryKeyFunctions } from '../utils/primary-key.js';
|
|
7
8
|
import type { CollationResolver } from '../../../types/logical-type.js';
|
|
8
9
|
/**
|
|
9
10
|
* Pending change for event emission.
|
|
10
11
|
*/
|
|
11
12
|
export interface PendingChange {
|
|
12
13
|
type: 'insert' | 'update' | 'delete';
|
|
13
|
-
pk: BTreeKeyForPrimary;
|
|
14
14
|
oldRow?: Row;
|
|
15
15
|
newRow?: Row;
|
|
16
16
|
}
|
|
@@ -27,6 +27,30 @@ export interface OwnWrite {
|
|
|
27
27
|
/** New row for an upsert; absent for a delete. */
|
|
28
28
|
newRow?: Row;
|
|
29
29
|
}
|
|
30
|
+
/**
|
|
31
|
+
* One layer's net own-writes re-derived under a NEW primary key definition (`alter table …
|
|
32
|
+
* alter primary key`), computed without mutation by
|
|
33
|
+
* {@link TransactionLayer.prepareRekeyedPrimaryKeyColumns} and installed by
|
|
34
|
+
* {@link TransactionLayer.installRekeyedPrimaryKeyColumns}. Split into two phases because a
|
|
35
|
+
* net DELETION's new key can only be derived from the row image the PARENT layer holds at
|
|
36
|
+
* the old key ({@link OwnWrite} carries no image for a delete) — and by install time,
|
|
37
|
+
* oldest-first processing has already replaced the parent's tree with one keyed by the new
|
|
38
|
+
* definition, where an old-shaped key means nothing. So every layer's prepare runs against
|
|
39
|
+
* the intact old chain, before the first rebuild anywhere.
|
|
40
|
+
*/
|
|
41
|
+
export interface PreparedPrimaryKeyRekey {
|
|
42
|
+
/**
|
|
43
|
+
* The layer's net deletions: `newKey` re-derived from the parent's row image (what the
|
|
44
|
+
* rebuilt tree is keyed by), `oldKey` as the write recorded it (the replay's identity
|
|
45
|
+
* check — proof the row `find(newKey)` lands on is the row this layer deleted).
|
|
46
|
+
*/
|
|
47
|
+
deletions: Array<{
|
|
48
|
+
newKey: BTreeKeyForPrimary;
|
|
49
|
+
oldKey: BTreeKeyForPrimary;
|
|
50
|
+
}>;
|
|
51
|
+
/** The layer's net effective rows. A key-column change moves no stored value, so rows pass verbatim. */
|
|
52
|
+
upserts: Row[];
|
|
53
|
+
}
|
|
30
54
|
/**
|
|
31
55
|
* One layer's net own-writes at the post-ADD/DROP-COLUMN arity, computed fallibly by
|
|
32
56
|
* {@link TransactionLayer.prepareReshapedColumns} and installed infallibly by
|
|
@@ -66,15 +90,17 @@ export declare class TransactionLayer implements Layer {
|
|
|
66
90
|
* transaction: by {@link adoptSchema} for additive index/constraint DDL, a secondary-index
|
|
67
91
|
* re-key from `alter column … set collate`, and index/constraint removal (`drop index` /
|
|
68
92
|
* `drop constraint`); by {@link rekeyPrimaryKey} when that collate change lands on a
|
|
69
|
-
* primary-key column;
|
|
70
|
-
*
|
|
71
|
-
*
|
|
93
|
+
* primary-key column; by {@link installRekeyedPrimaryKeyColumns} when `alter primary key`
|
|
94
|
+
* moves the key's column set; and by {@link installReshapedColumns} when `add column` /
|
|
95
|
+
* `drop column` changes the column set itself. Every swap except the last keeps the
|
|
96
|
+
* column set identical.
|
|
72
97
|
*/
|
|
73
98
|
private tableSchemaAtCreation;
|
|
74
99
|
/**
|
|
75
100
|
* Derived from {@link tableSchemaAtCreation}'s primary key definition, so the primary
|
|
76
101
|
* tree, every inherited secondary index, and every scan share one comparator/encoder
|
|
77
102
|
* set — and one pass of collation resolution. Rebuilt only by {@link rekeyPrimaryKey},
|
|
103
|
+
* {@link installRekeyedPrimaryKeyColumns}, and {@link installReshapedColumns}, each of
|
|
78
104
|
* which rebuilds the structures keyed by them in the same call.
|
|
79
105
|
*/
|
|
80
106
|
private pkFunctions;
|
|
@@ -165,14 +191,62 @@ export declare class TransactionLayer implements Layer {
|
|
|
165
191
|
* in the parent, so a deletion removes exactly the row this layer removed and an upsert
|
|
166
192
|
* lands at exactly one key.
|
|
167
193
|
*
|
|
168
|
-
*
|
|
169
|
-
*
|
|
170
|
-
*
|
|
171
|
-
*
|
|
172
|
-
*
|
|
173
|
-
*
|
|
194
|
+
* The deletion replay verifies, under the OLD comparator, that the row it finds is the row
|
|
195
|
+
* it removed (see {@link installNetOwnWrites}'s `deletionTargets`). Without that check a
|
|
196
|
+
* deletion whose old key collapses onto a DIFFERENT row's new key deletes that other row:
|
|
197
|
+
* stage an upsert at key `'a'` in one layer, delete the colliding `'A'` from a LATER layer,
|
|
198
|
+
* and the later layer's replayed deletion lands on the parent's `'a'` — silently removing
|
|
199
|
+
* the row the transaction just wrote. `validateRekeyedPrimaryKey`'s chain walk refuses any
|
|
200
|
+
* chain that holds a colliding pair before this method runs, which makes a cross-row land
|
|
201
|
+
* unreachable today — the verify is insurance, so the replay's own correctness does not
|
|
202
|
+
* hinge on that caller-side pass staying exactly as conservative as it is.
|
|
174
203
|
*/
|
|
175
204
|
rekeyPrimaryKey(newSchema: TableSchema): void;
|
|
205
|
+
/**
|
|
206
|
+
* Phase 1 of adopting `alter table … alter primary key` — a change of the key's COLUMNS,
|
|
207
|
+
* where {@link rekeyPrimaryKey} handles only a change of its comparator — applied while
|
|
208
|
+
* THIS layer's transaction is still open. Computes, without mutating anything, the net
|
|
209
|
+
* per-key effect of the layer's own writes re-derived under `newPkFunctions`: see
|
|
210
|
+
* {@link PreparedPrimaryKeyRekey} for each piece and the field docs for why the phases
|
|
211
|
+
* are split (a deletion's new key comes from the parent's row image, which only the
|
|
212
|
+
* intact OLD chain can resolve).
|
|
213
|
+
*
|
|
214
|
+
* A deletion whose old key resolves to no parent row was a no-op when recorded
|
|
215
|
+
* (`recordDelete` tolerates a missing key) and is dropped — there is no image to re-key
|
|
216
|
+
* and nothing for the replay to remove.
|
|
217
|
+
*
|
|
218
|
+
* An UPSERT can owe a deletion too. Under the OLD key an upsert shadowed the parent's
|
|
219
|
+
* row at the same key; under the new definition the two images can land at DIFFERENT
|
|
220
|
+
* keys — a pending `update t set b = 7` before `alter primary key (a, b)` moves the
|
|
221
|
+
* row from `(a, 5)` to `(a, 7)` — and replaying only the upsert would leave the
|
|
222
|
+
* parent's pre-update image visible beside it. So each upsert that shadows a parent
|
|
223
|
+
* row landing elsewhere also emits a deletion of that parent image's new key.
|
|
224
|
+
*
|
|
225
|
+
* Soundness of the per-write collapse rests on the same precondition as
|
|
226
|
+
* {@link rekeyPrimaryKey}'s: `MemoryTableManager.validateRekeyedPrimaryKey` has proven no
|
|
227
|
+
* layer's merged view holds two rows that collide under the new definition, so every
|
|
228
|
+
* surviving deletion's `newKey` is distinct and every upsert lands at exactly one key.
|
|
229
|
+
*/
|
|
230
|
+
prepareRekeyedPrimaryKeyColumns(newPkFunctions: PrimaryKeyFunctions): PreparedPrimaryKeyRekey;
|
|
231
|
+
/**
|
|
232
|
+
* Phase 2 of adopting `alter table … alter primary key`: installs what
|
|
233
|
+
* {@link prepareRekeyedPrimaryKeyColumns} computed. Swaps in the new schema, rebuilds
|
|
234
|
+
* {@link pkFunctions}, replays the net own-writes into a tree over the parent's
|
|
235
|
+
* already-rebuilt one, and rebuilds every secondary index (each embeds the primary key in
|
|
236
|
+
* its entries). Synchronous and mutation-only. The pending-change event log is untouched —
|
|
237
|
+
* it stores only row images, and the delivered key is projected from them at commit.
|
|
238
|
+
*
|
|
239
|
+
* Like every whole-layer rebuild, the caller MUST apply this oldest-first with the base
|
|
240
|
+
* already re-keyed: the rebuilt tree inherits copy-on-write from the parent's NEW one.
|
|
241
|
+
*
|
|
242
|
+
* The deletion replay verifies the row it finds is the row this layer deleted, by
|
|
243
|
+
* comparing the found row's OLD key against the deletion's recorded one — the same
|
|
244
|
+
* insurance {@link rekeyPrimaryKey} buys with its old-comparator check, phrased through
|
|
245
|
+
* the prepared `oldKey` because here find() runs under a key whose columns the old
|
|
246
|
+
* comparator cannot read. The old extractor stays valid: a primary-key change moves no
|
|
247
|
+
* column, so the old key columns still exist in every row.
|
|
248
|
+
*/
|
|
249
|
+
installRekeyedPrimaryKeyColumns(newSchema: TableSchema, prepared: PreparedPrimaryKeyRekey): void;
|
|
176
250
|
/**
|
|
177
251
|
* A fresh primary tree inheriting copy-on-write from the parent's CURRENT one, keyed by this
|
|
178
252
|
* layer's current {@link pkFunctions}. Callers must have installed the post-DDL `pkFunctions`
|
|
@@ -180,8 +254,22 @@ export declare class TransactionLayer implements Layer {
|
|
|
180
254
|
*/
|
|
181
255
|
private newPrimaryTreeOverParent;
|
|
182
256
|
/**
|
|
183
|
-
* Shared
|
|
184
|
-
*
|
|
257
|
+
* Shared HEAD of every whole-layer rebuild: each key {@link ownWrites} touched, exactly
|
|
258
|
+
* once, paired with the layer's EFFECTIVE row at that key — `undefined` when the layer
|
|
259
|
+
* finally deleted it, the layer's own row otherwise (`get` traverses the inheritance
|
|
260
|
+
* chain). Collapsing the ordered log to one entry per key is what lets a rebuild replay
|
|
261
|
+
* the net effect instead of the history; see each caller's doc for why its own rebuild
|
|
262
|
+
* needs that.
|
|
263
|
+
*
|
|
264
|
+
* `tree` and `encode` are passed rather than read off `this` because a re-key consumes
|
|
265
|
+
* this AFTER swapping {@link pkFunctions}, and must still dedup under the OLD encoding of
|
|
266
|
+
* the OLD tree.
|
|
267
|
+
*/
|
|
268
|
+
private netOwnWriteEffects;
|
|
269
|
+
/**
|
|
270
|
+
* Shared tail of the four whole-layer rebuilds — {@link rekeyPrimaryKey},
|
|
271
|
+
* {@link installRekeyedPrimaryKeyColumns}, {@link convertColumn},
|
|
272
|
+
* {@link installReshapedColumns}. Each has already swapped in its new
|
|
185
273
|
* schema (and, where the key changed, its new {@link pkFunctions}) and collapsed
|
|
186
274
|
* {@link ownWrites} to the net per-key effect passed here; this replays that effect into a
|
|
187
275
|
* tree built over the parent's fresh one, installs it, rewrites the own-write log to match,
|
|
@@ -192,10 +280,17 @@ export declare class TransactionLayer implements Layer {
|
|
|
192
280
|
* from `pkFunctions`.
|
|
193
281
|
*
|
|
194
282
|
* A deletion an upsert has since re-occupied is dropped from the log — keeping it would make
|
|
195
|
-
* the log claim both a deletion and an upsert of the same key. Only
|
|
196
|
-
*
|
|
197
|
-
*
|
|
198
|
-
*
|
|
283
|
+
* the log claim both a deletion and an upsert of the same key. Only the two re-keys can
|
|
284
|
+
* produce that collision (two old keys collapsing under the new comparator, or a shadowed
|
|
285
|
+
* parent image whose new key another write's row now occupies); where key values are
|
|
286
|
+
* invariant a key is classified as either a deletion or an upsert, never both, so the filter
|
|
287
|
+
* is a no-op.
|
|
288
|
+
*
|
|
289
|
+
* `deletionTargets` guards each deletion's replay: `find(key)` runs under the NEW key, so a
|
|
290
|
+
* re-key can land it on a colliding row this layer never removed — a row a PARENT layer
|
|
291
|
+
* upserted at what is now the same key. Only the two re-keys pass it (each an old-key
|
|
292
|
+
* identity check on the found row); the column-set/value rebuilds leave key values
|
|
293
|
+
* untouched, where find() can only land on the deleted key itself.
|
|
199
294
|
*/
|
|
200
295
|
private installNetOwnWrites;
|
|
201
296
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../../../../src/vtab/memory/layer/transaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,KAAK,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC1F,OAAO,KAAK,EAAE,KAAK,EAAE,0BAA0B,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../../../../src/vtab/memory/layer/transaction.ts"],"names":[],"mappings":"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"}
|
|
@@ -28,15 +28,17 @@ export class TransactionLayer {
|
|
|
28
28
|
* transaction: by {@link adoptSchema} for additive index/constraint DDL, a secondary-index
|
|
29
29
|
* re-key from `alter column … set collate`, and index/constraint removal (`drop index` /
|
|
30
30
|
* `drop constraint`); by {@link rekeyPrimaryKey} when that collate change lands on a
|
|
31
|
-
* primary-key column;
|
|
32
|
-
*
|
|
33
|
-
*
|
|
31
|
+
* primary-key column; by {@link installRekeyedPrimaryKeyColumns} when `alter primary key`
|
|
32
|
+
* moves the key's column set; and by {@link installReshapedColumns} when `add column` /
|
|
33
|
+
* `drop column` changes the column set itself. Every swap except the last keeps the
|
|
34
|
+
* column set identical.
|
|
34
35
|
*/
|
|
35
36
|
tableSchemaAtCreation;
|
|
36
37
|
/**
|
|
37
38
|
* Derived from {@link tableSchemaAtCreation}'s primary key definition, so the primary
|
|
38
39
|
* tree, every inherited secondary index, and every scan share one comparator/encoder
|
|
39
40
|
* set — and one pass of collation resolution. Rebuilt only by {@link rekeyPrimaryKey},
|
|
41
|
+
* {@link installRekeyedPrimaryKeyColumns}, and {@link installReshapedColumns}, each of
|
|
40
42
|
* which rebuilds the structures keyed by them in the same call.
|
|
41
43
|
*/
|
|
42
44
|
pkFunctions;
|
|
@@ -196,39 +198,125 @@ export class TransactionLayer {
|
|
|
196
198
|
* in the parent, so a deletion removes exactly the row this layer removed and an upsert
|
|
197
199
|
* lands at exactly one key.
|
|
198
200
|
*
|
|
199
|
-
*
|
|
200
|
-
*
|
|
201
|
-
*
|
|
202
|
-
*
|
|
203
|
-
*
|
|
204
|
-
*
|
|
201
|
+
* The deletion replay verifies, under the OLD comparator, that the row it finds is the row
|
|
202
|
+
* it removed (see {@link installNetOwnWrites}'s `deletionTargets`). Without that check a
|
|
203
|
+
* deletion whose old key collapses onto a DIFFERENT row's new key deletes that other row:
|
|
204
|
+
* stage an upsert at key `'a'` in one layer, delete the colliding `'A'` from a LATER layer,
|
|
205
|
+
* and the later layer's replayed deletion lands on the parent's `'a'` — silently removing
|
|
206
|
+
* the row the transaction just wrote. `validateRekeyedPrimaryKey`'s chain walk refuses any
|
|
207
|
+
* chain that holds a colliding pair before this method runs, which makes a cross-row land
|
|
208
|
+
* unreachable today — the verify is insurance, so the replay's own correctness does not
|
|
209
|
+
* hinge on that caller-side pass staying exactly as conservative as it is.
|
|
205
210
|
*/
|
|
206
211
|
rekeyPrimaryKey(newSchema) {
|
|
207
212
|
// The pending-change EVENT log is deliberately NOT rewritten here: a collation
|
|
208
|
-
// change moves only the comparator — every stored value
|
|
209
|
-
//
|
|
213
|
+
// change moves only the comparator — every stored value is untouched — so the
|
|
214
|
+
// recorded `oldRow`/`newRow` images stay accurate as-is.
|
|
210
215
|
// (Contrast convertColumn / installReshapedColumns, which do rewrite the log.)
|
|
211
216
|
const preRekeyTree = this.primaryModifications;
|
|
212
|
-
const
|
|
217
|
+
const preRekeyFunctions = this.pkFunctions;
|
|
218
|
+
const preRekeyEncode = preRekeyFunctions.encode;
|
|
213
219
|
this.tableSchemaAtCreation = newSchema;
|
|
214
220
|
this.pkFunctions = createPrimaryKeyFunctions(newSchema, this.collationResolver);
|
|
215
|
-
// Net per-key effect of this layer's own writes, read out of the pre-rekey tree
|
|
216
|
-
// (`get` traverses the inheritance chain, so it yields the layer's EFFECTIVE row).
|
|
221
|
+
// Net per-key effect of this layer's own writes, read out of the pre-rekey tree.
|
|
217
222
|
const deletions = [];
|
|
218
223
|
const upserts = [];
|
|
219
|
-
const
|
|
220
|
-
for (const write of this.ownWrites) {
|
|
221
|
-
const encoded = preRekeyEncode(write.primaryKey);
|
|
222
|
-
if (seen.has(encoded))
|
|
223
|
-
continue;
|
|
224
|
-
seen.add(encoded);
|
|
225
|
-
const effectiveRow = preRekeyTree.get(write.primaryKey);
|
|
224
|
+
for (const { write, effectiveRow } of this.netOwnWriteEffects(preRekeyTree, preRekeyEncode)) {
|
|
226
225
|
if (effectiveRow === undefined)
|
|
227
226
|
deletions.push(write.primaryKey);
|
|
228
227
|
else
|
|
229
228
|
upserts.push(effectiveRow);
|
|
230
229
|
}
|
|
231
|
-
|
|
230
|
+
// Only the re-key can make a deletion's find() land on a colliding OTHER row, so only
|
|
231
|
+
// this caller passes the old-comparator identity check (see the method doc above).
|
|
232
|
+
this.installNetOwnWrites(deletions, upserts, (deletionKey, foundRow) => preRekeyFunctions.compare(deletionKey, preRekeyFunctions.extractFromRow(foundRow)) === 0);
|
|
233
|
+
}
|
|
234
|
+
/**
|
|
235
|
+
* Phase 1 of adopting `alter table … alter primary key` — a change of the key's COLUMNS,
|
|
236
|
+
* where {@link rekeyPrimaryKey} handles only a change of its comparator — applied while
|
|
237
|
+
* THIS layer's transaction is still open. Computes, without mutating anything, the net
|
|
238
|
+
* per-key effect of the layer's own writes re-derived under `newPkFunctions`: see
|
|
239
|
+
* {@link PreparedPrimaryKeyRekey} for each piece and the field docs for why the phases
|
|
240
|
+
* are split (a deletion's new key comes from the parent's row image, which only the
|
|
241
|
+
* intact OLD chain can resolve).
|
|
242
|
+
*
|
|
243
|
+
* A deletion whose old key resolves to no parent row was a no-op when recorded
|
|
244
|
+
* (`recordDelete` tolerates a missing key) and is dropped — there is no image to re-key
|
|
245
|
+
* and nothing for the replay to remove.
|
|
246
|
+
*
|
|
247
|
+
* An UPSERT can owe a deletion too. Under the OLD key an upsert shadowed the parent's
|
|
248
|
+
* row at the same key; under the new definition the two images can land at DIFFERENT
|
|
249
|
+
* keys — a pending `update t set b = 7` before `alter primary key (a, b)` moves the
|
|
250
|
+
* row from `(a, 5)` to `(a, 7)` — and replaying only the upsert would leave the
|
|
251
|
+
* parent's pre-update image visible beside it. So each upsert that shadows a parent
|
|
252
|
+
* row landing elsewhere also emits a deletion of that parent image's new key.
|
|
253
|
+
*
|
|
254
|
+
* Soundness of the per-write collapse rests on the same precondition as
|
|
255
|
+
* {@link rekeyPrimaryKey}'s: `MemoryTableManager.validateRekeyedPrimaryKey` has proven no
|
|
256
|
+
* layer's merged view holds two rows that collide under the new definition, so every
|
|
257
|
+
* surviving deletion's `newKey` is distinct and every upsert lands at exactly one key.
|
|
258
|
+
*/
|
|
259
|
+
prepareRekeyedPrimaryKeyColumns(newPkFunctions) {
|
|
260
|
+
const oldFunctions = this.pkFunctions;
|
|
261
|
+
const parentTree = this.parentLayer.getModificationTree('primary');
|
|
262
|
+
const deletions = [];
|
|
263
|
+
const upserts = [];
|
|
264
|
+
for (const { write, effectiveRow } of this.netOwnWriteEffects(this.primaryModifications, oldFunctions.encode)) {
|
|
265
|
+
const parentRow = parentTree?.get(write.primaryKey);
|
|
266
|
+
if (effectiveRow !== undefined) {
|
|
267
|
+
upserts.push(effectiveRow);
|
|
268
|
+
// The shadowed parent image, if its new key diverges from the upsert's —
|
|
269
|
+
// see the method doc. Same-key shadows are handled by the replay's upsert.
|
|
270
|
+
if (parentRow !== undefined
|
|
271
|
+
&& newPkFunctions.compare(newPkFunctions.extractFromRow(parentRow), newPkFunctions.extractFromRow(effectiveRow)) !== 0) {
|
|
272
|
+
deletions.push({ newKey: newPkFunctions.extractFromRow(parentRow), oldKey: write.primaryKey });
|
|
273
|
+
}
|
|
274
|
+
continue;
|
|
275
|
+
}
|
|
276
|
+
if (parentRow === undefined)
|
|
277
|
+
continue; // deletion of a key that never existed below — a no-op
|
|
278
|
+
deletions.push({ newKey: newPkFunctions.extractFromRow(parentRow), oldKey: write.primaryKey });
|
|
279
|
+
}
|
|
280
|
+
// The pending-change EVENT log needs nothing here: a change records only its row
|
|
281
|
+
// images, and `MemoryTableManager.commitTransaction` projects the delivered `key` out
|
|
282
|
+
// of them through the primary key of the schema current AT DELIVERY. So the re-key of
|
|
283
|
+
// the events is the projection itself, and the images this rewrite leaves untouched
|
|
284
|
+
// (a key-column change moves no stored value) are already the right ones.
|
|
285
|
+
return { deletions, upserts };
|
|
286
|
+
}
|
|
287
|
+
/**
|
|
288
|
+
* Phase 2 of adopting `alter table … alter primary key`: installs what
|
|
289
|
+
* {@link prepareRekeyedPrimaryKeyColumns} computed. Swaps in the new schema, rebuilds
|
|
290
|
+
* {@link pkFunctions}, replays the net own-writes into a tree over the parent's
|
|
291
|
+
* already-rebuilt one, and rebuilds every secondary index (each embeds the primary key in
|
|
292
|
+
* its entries). Synchronous and mutation-only. The pending-change event log is untouched —
|
|
293
|
+
* it stores only row images, and the delivered key is projected from them at commit.
|
|
294
|
+
*
|
|
295
|
+
* Like every whole-layer rebuild, the caller MUST apply this oldest-first with the base
|
|
296
|
+
* already re-keyed: the rebuilt tree inherits copy-on-write from the parent's NEW one.
|
|
297
|
+
*
|
|
298
|
+
* The deletion replay verifies the row it finds is the row this layer deleted, by
|
|
299
|
+
* comparing the found row's OLD key against the deletion's recorded one — the same
|
|
300
|
+
* insurance {@link rekeyPrimaryKey} buys with its old-comparator check, phrased through
|
|
301
|
+
* the prepared `oldKey` because here find() runs under a key whose columns the old
|
|
302
|
+
* comparator cannot read. The old extractor stays valid: a primary-key change moves no
|
|
303
|
+
* column, so the old key columns still exist in every row.
|
|
304
|
+
*/
|
|
305
|
+
installRekeyedPrimaryKeyColumns(newSchema, prepared) {
|
|
306
|
+
const oldFunctions = this.pkFunctions;
|
|
307
|
+
this.tableSchemaAtCreation = newSchema;
|
|
308
|
+
this.pkFunctions = createPrimaryKeyFunctions(newSchema, this.collationResolver);
|
|
309
|
+
// Every surviving deletion's newKey is distinct (see the prepare doc), so the
|
|
310
|
+
// encoded-key map cannot clobber an entry.
|
|
311
|
+
const oldKeyByNewEncoded = new Map();
|
|
312
|
+
for (const { newKey, oldKey } of prepared.deletions) {
|
|
313
|
+
oldKeyByNewEncoded.set(this.pkFunctions.encode(newKey), oldKey);
|
|
314
|
+
}
|
|
315
|
+
this.installNetOwnWrites(prepared.deletions.map(d => d.newKey), prepared.upserts, (deletionKey, foundRow) => {
|
|
316
|
+
const oldKey = oldKeyByNewEncoded.get(this.pkFunctions.encode(deletionKey));
|
|
317
|
+
return oldKey !== undefined
|
|
318
|
+
&& oldFunctions.compare(oldKey, oldFunctions.extractFromRow(foundRow)) === 0;
|
|
319
|
+
});
|
|
232
320
|
}
|
|
233
321
|
/**
|
|
234
322
|
* A fresh primary tree inheriting copy-on-write from the parent's CURRENT one, keyed by this
|
|
@@ -240,8 +328,31 @@ export class TransactionLayer {
|
|
|
240
328
|
return new BTree((value) => extractFromRow(value), compare, { base: this.parentLayer.getModificationTree('primary') || undefined });
|
|
241
329
|
}
|
|
242
330
|
/**
|
|
243
|
-
* Shared
|
|
244
|
-
*
|
|
331
|
+
* Shared HEAD of every whole-layer rebuild: each key {@link ownWrites} touched, exactly
|
|
332
|
+
* once, paired with the layer's EFFECTIVE row at that key — `undefined` when the layer
|
|
333
|
+
* finally deleted it, the layer's own row otherwise (`get` traverses the inheritance
|
|
334
|
+
* chain). Collapsing the ordered log to one entry per key is what lets a rebuild replay
|
|
335
|
+
* the net effect instead of the history; see each caller's doc for why its own rebuild
|
|
336
|
+
* needs that.
|
|
337
|
+
*
|
|
338
|
+
* `tree` and `encode` are passed rather than read off `this` because a re-key consumes
|
|
339
|
+
* this AFTER swapping {@link pkFunctions}, and must still dedup under the OLD encoding of
|
|
340
|
+
* the OLD tree.
|
|
341
|
+
*/
|
|
342
|
+
*netOwnWriteEffects(tree, encode) {
|
|
343
|
+
const seen = new Set();
|
|
344
|
+
for (const write of this.ownWrites) {
|
|
345
|
+
const encoded = encode(write.primaryKey);
|
|
346
|
+
if (seen.has(encoded))
|
|
347
|
+
continue;
|
|
348
|
+
seen.add(encoded);
|
|
349
|
+
yield { write, effectiveRow: tree.get(write.primaryKey) };
|
|
350
|
+
}
|
|
351
|
+
}
|
|
352
|
+
/**
|
|
353
|
+
* Shared tail of the four whole-layer rebuilds — {@link rekeyPrimaryKey},
|
|
354
|
+
* {@link installRekeyedPrimaryKeyColumns}, {@link convertColumn},
|
|
355
|
+
* {@link installReshapedColumns}. Each has already swapped in its new
|
|
245
356
|
* schema (and, where the key changed, its new {@link pkFunctions}) and collapsed
|
|
246
357
|
* {@link ownWrites} to the net per-key effect passed here; this replays that effect into a
|
|
247
358
|
* tree built over the parent's fresh one, installs it, rewrites the own-write log to match,
|
|
@@ -252,17 +363,27 @@ export class TransactionLayer {
|
|
|
252
363
|
* from `pkFunctions`.
|
|
253
364
|
*
|
|
254
365
|
* A deletion an upsert has since re-occupied is dropped from the log — keeping it would make
|
|
255
|
-
* the log claim both a deletion and an upsert of the same key. Only
|
|
256
|
-
*
|
|
257
|
-
*
|
|
258
|
-
*
|
|
366
|
+
* the log claim both a deletion and an upsert of the same key. Only the two re-keys can
|
|
367
|
+
* produce that collision (two old keys collapsing under the new comparator, or a shadowed
|
|
368
|
+
* parent image whose new key another write's row now occupies); where key values are
|
|
369
|
+
* invariant a key is classified as either a deletion or an upsert, never both, so the filter
|
|
370
|
+
* is a no-op.
|
|
371
|
+
*
|
|
372
|
+
* `deletionTargets` guards each deletion's replay: `find(key)` runs under the NEW key, so a
|
|
373
|
+
* re-key can land it on a colliding row this layer never removed — a row a PARENT layer
|
|
374
|
+
* upserted at what is now the same key. Only the two re-keys pass it (each an old-key
|
|
375
|
+
* identity check on the found row); the column-set/value rebuilds leave key values
|
|
376
|
+
* untouched, where find() can only land on the deleted key itself.
|
|
259
377
|
*/
|
|
260
|
-
installNetOwnWrites(deletions, upserts) {
|
|
378
|
+
installNetOwnWrites(deletions, upserts, deletionTargets) {
|
|
261
379
|
const rebuilt = this.newPrimaryTreeOverParent();
|
|
262
380
|
for (const primaryKey of deletions) {
|
|
263
381
|
const path = rebuilt.find(primaryKey);
|
|
264
|
-
if (path.on)
|
|
265
|
-
|
|
382
|
+
if (!path.on)
|
|
383
|
+
continue;
|
|
384
|
+
if (deletionTargets && !deletionTargets(primaryKey, rebuilt.at(path)))
|
|
385
|
+
continue;
|
|
386
|
+
rebuilt.deleteAt(path);
|
|
266
387
|
}
|
|
267
388
|
for (const row of upserts) {
|
|
268
389
|
rebuilt.upsert(row);
|
|
@@ -328,17 +449,9 @@ export class TransactionLayer {
|
|
|
328
449
|
// is either finally-deleted or finally-upserted, never both, and no key can collapse onto
|
|
329
450
|
// another (unlike rekeyPrimaryKey). The net per-key effect is read out of the
|
|
330
451
|
// pre-conversion tree.
|
|
331
|
-
const seen = new Set();
|
|
332
452
|
const survivingDeletions = [];
|
|
333
453
|
const upserts = [];
|
|
334
|
-
for (const write of this.
|
|
335
|
-
const encoded = this.pkFunctions.encode(write.primaryKey);
|
|
336
|
-
if (seen.has(encoded))
|
|
337
|
-
continue;
|
|
338
|
-
seen.add(encoded);
|
|
339
|
-
// `get` traverses the inheritance chain, so this is the layer's EFFECTIVE row:
|
|
340
|
-
// undefined when the layer deleted the key, the layer's own row otherwise.
|
|
341
|
-
const effectiveRow = preTree.get(write.primaryKey);
|
|
454
|
+
for (const { write, effectiveRow } of this.netOwnWriteEffects(preTree, this.pkFunctions.encode)) {
|
|
342
455
|
if (effectiveRow === undefined) {
|
|
343
456
|
survivingDeletions.push(write.primaryKey);
|
|
344
457
|
continue;
|
|
@@ -398,17 +511,9 @@ export class TransactionLayer {
|
|
|
398
511
|
* finally-upserted, never both, and no key can collapse onto another.
|
|
399
512
|
*/
|
|
400
513
|
async prepareReshapedColumns(reshapeRow, reshapeEventRow) {
|
|
401
|
-
const seen = new Set();
|
|
402
514
|
const survivingDeletions = [];
|
|
403
515
|
const upserts = [];
|
|
404
|
-
for (const write of this.
|
|
405
|
-
const encoded = this.pkFunctions.encode(write.primaryKey);
|
|
406
|
-
if (seen.has(encoded))
|
|
407
|
-
continue;
|
|
408
|
-
seen.add(encoded);
|
|
409
|
-
// `get` traverses the inheritance chain, so this is the layer's EFFECTIVE row:
|
|
410
|
-
// undefined when the layer deleted the key, the layer's own row otherwise.
|
|
411
|
-
const effectiveRow = this.primaryModifications.get(write.primaryKey);
|
|
516
|
+
for (const { write, effectiveRow } of this.netOwnWriteEffects(this.primaryModifications, this.pkFunctions.encode)) {
|
|
412
517
|
if (effectiveRow === undefined) {
|
|
413
518
|
survivingDeletions.push(write.primaryKey);
|
|
414
519
|
continue;
|
|
@@ -602,7 +707,6 @@ export class TransactionLayer {
|
|
|
602
707
|
if (this.pendingChanges) {
|
|
603
708
|
this.pendingChanges.push({
|
|
604
709
|
type: oldRowDataIfUpdate ? 'update' : 'insert',
|
|
605
|
-
pk: primaryKey,
|
|
606
710
|
oldRow: oldRowDataIfUpdate ?? undefined,
|
|
607
711
|
newRow: newRowData,
|
|
608
712
|
});
|
|
@@ -671,7 +775,6 @@ export class TransactionLayer {
|
|
|
671
775
|
if (this.pendingChanges) {
|
|
672
776
|
this.pendingChanges.push({
|
|
673
777
|
type: 'delete',
|
|
674
|
-
pk: primaryKey,
|
|
675
778
|
oldRow: oldRowDataForIndexes,
|
|
676
779
|
});
|
|
677
780
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transaction.js","sourceRoot":"","sources":["../../../../../src/vtab/memory/layer/transaction.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"transaction.js","sourceRoot":"","sources":["../../../../../src/vtab/memory/layer/transaction.ts"],"names":[],"mappings":"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"}
|
|
@@ -101,8 +101,20 @@ export declare class MemoryTableModule implements VirtualTableModule<MemoryTable
|
|
|
101
101
|
private evaluateIndexAccess;
|
|
102
102
|
/**
|
|
103
103
|
* Find equality matches for index columns (prefix matching).
|
|
104
|
-
* Handles `=`, single-value `IN`,
|
|
105
|
-
*
|
|
104
|
+
* Handles `=`, single-value `IN`, multi-value `IN`, and a runtime-valued `IN` set as
|
|
105
|
+
* equality constraints — {@link equalitySeekKeyCount} is the single well-formedness
|
|
106
|
+
* test, so the four cannot drift apart. Returns the total cardinality (the product of
|
|
107
|
+
* the per-column seek-key counts) for cost estimation; for a runtime set that count is
|
|
108
|
+
* its `maxCount` ceiling, the worst case the engine may deliver.
|
|
109
|
+
*
|
|
110
|
+
* Claims the FIRST role-filling filter per column, matching the positional pick
|
|
111
|
+
* `rule-select-access-path` makes — so a request carrying both a runtime set and a
|
|
112
|
+
* literal `IN` on one column seeks whichever came first in `filters` order, and the
|
|
113
|
+
* other survives as a residual.
|
|
114
|
+
*
|
|
115
|
+
* `isMultiSeek` is NOT `inCardinality > 1`: a runtime set is delivered as a multi-seek
|
|
116
|
+
* whatever its ceiling, so a `maxCount === 1` set has cardinality 1 yet still walks the
|
|
117
|
+
* index in seek-key order. {@link isMultiValueEquality} is the authority.
|
|
106
118
|
*/
|
|
107
119
|
private findEqualityMatches;
|
|
108
120
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../../src/vtab/memory/module.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,WAAW,EAAqB,MAAM,uBAAuB,CAAC;AAE9F,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,KAAK,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAC7F,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,EAAE,WAAW,EAAuD,MAAM,oBAAoB,CAAC;AAI3G,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAGpD,OAAO,KAAK,EAAE,qBAAqB,EAAE,oBAAoB,EAAqC,MAAM,wBAAwB,CAAC;AAC7H,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../../src/vtab/memory/module.ts"],"names":[],"mappings":"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"}
|