@quereus/quereus 4.4.0 → 4.5.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 +6 -1
- package/dist/src/common/types.d.ts +9 -0
- package/dist/src/common/types.d.ts.map +1 -1
- package/dist/src/common/types.js.map +1 -1
- package/dist/src/core/database-events.d.ts +49 -0
- package/dist/src/core/database-events.d.ts.map +1 -1
- package/dist/src/core/database-events.js +148 -0
- 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 +2 -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 +26 -5
- package/dist/src/core/database-materialized-views-plan-builders.js.map +1 -1
- package/dist/src/core/database-materialized-views-plans.d.ts +6 -3
- package/dist/src/core/database-materialized-views-plans.d.ts.map +1 -1
- package/dist/src/core/database-materialized-views.d.ts +3 -2
- package/dist/src/core/database-materialized-views.d.ts.map +1 -1
- package/dist/src/core/database-materialized-views.js +26 -5
- package/dist/src/core/database-materialized-views.js.map +1 -1
- package/dist/src/core/database.d.ts +5 -0
- package/dist/src/core/database.d.ts.map +1 -1
- package/dist/src/core/database.js +21 -1
- package/dist/src/core/database.js.map +1 -1
- package/dist/src/core/internal-statement-cache.d.ts +18 -0
- package/dist/src/core/internal-statement-cache.d.ts.map +1 -0
- package/dist/src/core/internal-statement-cache.js +211 -0
- package/dist/src/core/internal-statement-cache.js.map +1 -0
- package/dist/src/func/builtins/aggregate.d.ts +13 -12
- package/dist/src/func/builtins/aggregate.d.ts.map +1 -1
- package/dist/src/func/builtins/aggregate.js +45 -67
- 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 +63 -48
- package/dist/src/func/builtins/builtin-window-functions.js.map +1 -1
- package/dist/src/func/builtins/scalar.d.ts.map +1 -1
- package/dist/src/func/builtins/scalar.js +92 -3
- package/dist/src/func/builtins/scalar.js.map +1 -1
- package/dist/src/func/registration.d.ts +18 -1
- package/dist/src/func/registration.d.ts.map +1 -1
- package/dist/src/func/registration.js +26 -0
- package/dist/src/func/registration.js.map +1 -1
- package/dist/src/index.d.ts +10 -10
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +13 -12
- package/dist/src/index.js.map +1 -1
- package/dist/src/parser/parser.d.ts +6 -0
- package/dist/src/parser/parser.d.ts.map +1 -1
- package/dist/src/parser/parser.js +45 -34
- package/dist/src/parser/parser.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 +35 -3
- package/dist/src/planner/analysis/comparison-collation.d.ts.map +1 -1
- package/dist/src/planner/analysis/comparison-collation.js +37 -3
- package/dist/src/planner/analysis/comparison-collation.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/expression-fingerprint.d.ts.map +1 -1
- package/dist/src/planner/analysis/expression-fingerprint.js +29 -0
- package/dist/src/planner/analysis/expression-fingerprint.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 +6 -0
- package/dist/src/planner/analysis/query-rewrite-matcher.d.ts.map +1 -1
- package/dist/src/planner/analysis/query-rewrite-matcher.js +19 -29
- package/dist/src/planner/analysis/query-rewrite-matcher.js.map +1 -1
- package/dist/src/planner/analysis/sat-checker.d.ts.map +1 -1
- package/dist/src/planner/analysis/sat-checker.js +43 -4
- package/dist/src/planner/analysis/sat-checker.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/coercion.d.ts +78 -0
- package/dist/src/planner/building/coercion.d.ts.map +1 -0
- package/dist/src/planner/building/coercion.js +137 -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/delete.d.ts.map +1 -1
- package/dist/src/planner/building/delete.js +10 -3
- package/dist/src/planner/building/delete.js.map +1 -1
- package/dist/src/planner/building/expression.d.ts.map +1 -1
- package/dist/src/planner/building/expression.js +13 -35
- package/dist/src/planner/building/expression.js.map +1 -1
- package/dist/src/planner/building/foreign-key-builder.d.ts +44 -1
- package/dist/src/planner/building/foreign-key-builder.d.ts.map +1 -1
- package/dist/src/planner/building/foreign-key-builder.js +54 -0
- package/dist/src/planner/building/foreign-key-builder.js.map +1 -1
- package/dist/src/planner/building/function-call.d.ts.map +1 -1
- package/dist/src/planner/building/function-call.js +8 -0
- package/dist/src/planner/building/function-call.js.map +1 -1
- package/dist/src/planner/building/insert.d.ts.map +1 -1
- package/dist/src/planner/building/insert.js +9 -12
- package/dist/src/planner/building/insert.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/update.d.ts.map +1 -1
- package/dist/src/planner/building/update.js +13 -4
- package/dist/src/planner/building/update.js.map +1 -1
- package/dist/src/planner/cost/conjunct-cost.d.ts +42 -0
- package/dist/src/planner/cost/conjunct-cost.d.ts.map +1 -0
- package/dist/src/planner/cost/conjunct-cost.js +62 -0
- package/dist/src/planner/cost/conjunct-cost.js.map +1 -0
- package/dist/src/planner/framework/pass.js +3 -3
- 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/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 +10 -5
- package/dist/src/planner/nodes/bloom-join-node.js.map +1 -1
- package/dist/src/planner/nodes/dml-executor-node.d.ts +0 -9
- package/dist/src/planner/nodes/dml-executor-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/dml-executor-node.js.map +1 -1
- package/dist/src/planner/nodes/join-node.d.ts +5 -0
- package/dist/src/planner/nodes/join-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/join-node.js +8 -1
- package/dist/src/planner/nodes/join-node.js.map +1 -1
- package/dist/src/planner/nodes/join-utils.d.ts +57 -0
- package/dist/src/planner/nodes/join-utils.d.ts.map +1 -1
- package/dist/src/planner/nodes/join-utils.js +47 -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 +137 -0
- package/dist/src/planner/nodes/key-set-semi-join-node.js.map +1 -0
- 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 +14 -6
- package/dist/src/planner/nodes/merge-join-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/scalar.d.ts.map +1 -1
- package/dist/src/planner/nodes/scalar.js +26 -3
- 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/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 +13 -2
- package/dist/src/planner/nodes/table-access-nodes.js.map +1 -1
- package/dist/src/planner/optimizer.d.ts.map +1 -1
- package/dist/src/planner/optimizer.js +54 -12
- 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 +408 -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 +27 -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 +74 -29
- package/dist/src/planner/rules/access/rule-select-access-path.js.map +1 -1
- package/dist/src/planner/rules/cache/rule-materialized-view-rewrite.d.ts.map +1 -1
- package/dist/src/planner/rules/cache/rule-materialized-view-rewrite.js +23 -4
- package/dist/src/planner/rules/cache/rule-materialized-view-rewrite.js.map +1 -1
- package/dist/src/planner/rules/cache/rule-scalar-subquery-cache.d.ts +10 -8
- package/dist/src/planner/rules/cache/rule-scalar-subquery-cache.d.ts.map +1 -1
- package/dist/src/planner/rules/cache/rule-scalar-subquery-cache.js +10 -8
- package/dist/src/planner/rules/cache/rule-scalar-subquery-cache.js.map +1 -1
- package/dist/src/planner/rules/join/equi-pair-extractor.d.ts +67 -41
- package/dist/src/planner/rules/join/equi-pair-extractor.d.ts.map +1 -1
- package/dist/src/planner/rules/join/equi-pair-extractor.js +72 -36
- package/dist/src/planner/rules/join/equi-pair-extractor.js.map +1 -1
- 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 +14 -2
- 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 +11 -1
- 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 +30 -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 +63 -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 +17 -1
- package/dist/src/planner/rules/predicate/rule-filter-selectivity.d.ts.map +1 -1
- package/dist/src/planner/rules/predicate/rule-filter-selectivity.js +206 -12
- package/dist/src/planner/rules/predicate/rule-filter-selectivity.js.map +1 -1
- package/dist/src/planner/rules/predicate/rule-predicate-inference-equivalence.js +8 -1
- 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 +3 -1
- package/dist/src/planner/rules/predicate/rule-predicate-pushdown.d.ts.map +1 -1
- package/dist/src/planner/rules/predicate/rule-predicate-pushdown.js +13 -1
- 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/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-scalar-agg-decorrelation.js +4 -0
- package/dist/src/planner/rules/subquery/rule-scalar-agg-decorrelation.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 +175 -60
- package/dist/src/planner/rules/subquery/rule-subquery-decorrelation.js.map +1 -1
- package/dist/src/planner/stats/catalog-stats.d.ts +52 -0
- package/dist/src/planner/stats/catalog-stats.d.ts.map +1 -1
- package/dist/src/planner/stats/catalog-stats.js +151 -5
- package/dist/src/planner/stats/catalog-stats.js.map +1 -1
- package/dist/src/planner/stats/index.d.ts +15 -0
- 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/util/column-origins.d.ts +58 -0
- package/dist/src/planner/util/column-origins.d.ts.map +1 -0
- package/dist/src/planner/util/column-origins.js +90 -0
- package/dist/src/planner/util/column-origins.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 +91 -0
- package/dist/src/runtime/deferred-constraint-queue.js.map +1 -1
- package/dist/src/runtime/emit/aggregate-setup.d.ts +49 -0
- package/dist/src/runtime/emit/aggregate-setup.d.ts.map +1 -0
- package/dist/src/runtime/emit/aggregate-setup.js +99 -0
- package/dist/src/runtime/emit/aggregate-setup.js.map +1 -0
- package/dist/src/runtime/emit/aggregate.d.ts.map +1 -1
- package/dist/src/runtime/emit/aggregate.js +4 -69
- package/dist/src/runtime/emit/aggregate.js.map +1 -1
- package/dist/src/runtime/emit/alter-table.d.ts.map +1 -1
- package/dist/src/runtime/emit/alter-table.js +354 -165
- package/dist/src/runtime/emit/alter-table.js.map +1 -1
- package/dist/src/runtime/emit/asof-scan.d.ts.map +1 -1
- package/dist/src/runtime/emit/asof-scan.js +11 -0
- 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 +7 -12
- 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 +24 -25
- 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 +8 -16
- 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 +10 -23
- 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 +72 -51
- package/dist/src/runtime/emit/constraint-check.js.map +1 -1
- package/dist/src/runtime/emit/create-view.d.ts.map +1 -1
- package/dist/src/runtime/emit/create-view.js +6 -0
- package/dist/src/runtime/emit/create-view.js.map +1 -1
- package/dist/src/runtime/emit/distinct.d.ts.map +1 -1
- package/dist/src/runtime/emit/distinct.js +6 -3
- package/dist/src/runtime/emit/distinct.js.map +1 -1
- package/dist/src/runtime/emit/dml-executor.d.ts.map +1 -1
- package/dist/src/runtime/emit/dml-executor.js +188 -84
- package/dist/src/runtime/emit/dml-executor.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 +16 -65
- package/dist/src/runtime/emit/hash-aggregate.js.map +1 -1
- package/dist/src/runtime/emit/insert.d.ts.map +1 -1
- package/dist/src/runtime/emit/insert.js +18 -7
- package/dist/src/runtime/emit/insert.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 +37 -11
- 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 +143 -0
- package/dist/src/runtime/emit/key-set-semi-join.js.map +1 -0
- package/dist/src/runtime/emit/materialized-view-helpers.d.ts +14 -1
- package/dist/src/runtime/emit/materialized-view-helpers.d.ts.map +1 -1
- package/dist/src/runtime/emit/materialized-view-helpers.js +33 -3
- package/dist/src/runtime/emit/materialized-view-helpers.js.map +1 -1
- package/dist/src/runtime/emit/materialized-view.d.ts.map +1 -1
- package/dist/src/runtime/emit/materialized-view.js +47 -6
- package/dist/src/runtime/emit/materialized-view.js.map +1 -1
- package/dist/src/runtime/emit/merge-join.d.ts.map +1 -1
- package/dist/src/runtime/emit/merge-join.js +32 -15
- package/dist/src/runtime/emit/merge-join.js.map +1 -1
- package/dist/src/runtime/emit/operand-comparator.d.ts +40 -0
- package/dist/src/runtime/emit/operand-comparator.d.ts.map +1 -0
- package/dist/src/runtime/emit/operand-comparator.js +59 -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/set-object-tags.d.ts +8 -0
- package/dist/src/runtime/emit/set-object-tags.d.ts.map +1 -1
- package/dist/src/runtime/emit/set-object-tags.js +8 -0
- package/dist/src/runtime/emit/set-object-tags.js.map +1 -1
- package/dist/src/runtime/emit/set-operation.d.ts.map +1 -1
- package/dist/src/runtime/emit/set-operation.js +7 -4
- package/dist/src/runtime/emit/set-operation.js.map +1 -1
- package/dist/src/runtime/emit/sort.d.ts.map +1 -1
- package/dist/src/runtime/emit/sort.js +5 -2
- package/dist/src/runtime/emit/sort.js.map +1 -1
- package/dist/src/runtime/emit/subquery.d.ts.map +1 -1
- package/dist/src/runtime/emit/subquery.js +113 -13
- package/dist/src/runtime/emit/subquery.js.map +1 -1
- package/dist/src/runtime/emit/temporal-arithmetic.d.ts +7 -0
- package/dist/src/runtime/emit/temporal-arithmetic.d.ts.map +1 -1
- package/dist/src/runtime/emit/temporal-arithmetic.js +15 -7
- package/dist/src/runtime/emit/temporal-arithmetic.js.map +1 -1
- package/dist/src/runtime/emit/update.d.ts.map +1 -1
- package/dist/src/runtime/emit/update.js +44 -3
- package/dist/src/runtime/emit/update.js.map +1 -1
- package/dist/src/runtime/emit/window.d.ts.map +1 -1
- package/dist/src/runtime/emit/window.js +72 -55
- package/dist/src/runtime/emit/window.js.map +1 -1
- package/dist/src/runtime/foreign-key-actions.d.ts +36 -1
- package/dist/src/runtime/foreign-key-actions.d.ts.map +1 -1
- package/dist/src/runtime/foreign-key-actions.js +238 -116
- package/dist/src/runtime/foreign-key-actions.js.map +1 -1
- package/dist/src/runtime/parallel-driver.d.ts +10 -2
- package/dist/src/runtime/parallel-driver.d.ts.map +1 -1
- package/dist/src/runtime/parallel-driver.js +12 -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 +25 -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 +58 -0
- package/dist/src/schema/catalog-persistability.d.ts.map +1 -0
- package/dist/src/schema/catalog-persistability.js +87 -0
- package/dist/src/schema/catalog-persistability.js.map +1 -0
- package/dist/src/schema/catalog.d.ts +17 -1
- package/dist/src/schema/catalog.d.ts.map +1 -1
- package/dist/src/schema/catalog.js +25 -3
- package/dist/src/schema/catalog.js.map +1 -1
- package/dist/src/schema/constraint-builder.d.ts +20 -22
- package/dist/src/schema/constraint-builder.d.ts.map +1 -1
- package/dist/src/schema/constraint-builder.js +43 -36
- package/dist/src/schema/constraint-builder.js.map +1 -1
- package/dist/src/schema/ddl-generator.d.ts +23 -0
- package/dist/src/schema/ddl-generator.d.ts.map +1 -1
- package/dist/src/schema/ddl-generator.js +27 -0
- package/dist/src/schema/ddl-generator.js.map +1 -1
- package/dist/src/schema/function.d.ts +39 -1
- package/dist/src/schema/function.d.ts.map +1 -1
- package/dist/src/schema/function.js.map +1 -1
- package/dist/src/schema/manager.d.ts +28 -0
- package/dist/src/schema/manager.d.ts.map +1 -1
- package/dist/src/schema/manager.js +82 -14
- 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 +51 -12
- package/dist/src/schema/schema-differ.js.map +1 -1
- package/dist/src/schema/unique-enforcement.d.ts +31 -0
- package/dist/src/schema/unique-enforcement.d.ts.map +1 -1
- package/dist/src/schema/unique-enforcement.js +37 -1
- package/dist/src/schema/unique-enforcement.js.map +1 -1
- package/dist/src/schema/window-function.d.ts +30 -10
- package/dist/src/schema/window-function.d.ts.map +1 -1
- package/dist/src/schema/window-function.js +20 -16
- package/dist/src/schema/window-function.js.map +1 -1
- package/dist/src/types/builtin-types.d.ts.map +1 -1
- package/dist/src/types/builtin-types.js +30 -4
- package/dist/src/types/builtin-types.js.map +1 -1
- package/dist/src/types/cast-semantics.d.ts +43 -0
- package/dist/src/types/cast-semantics.d.ts.map +1 -0
- package/dist/src/types/cast-semantics.js +59 -0
- package/dist/src/types/cast-semantics.js.map +1 -0
- package/dist/src/types/index.d.ts +1 -1
- package/dist/src/types/index.d.ts.map +1 -1
- package/dist/src/types/index.js +1 -1
- package/dist/src/types/index.js.map +1 -1
- package/dist/src/types/json-type.d.ts.map +1 -1
- package/dist/src/types/json-type.js +31 -10
- package/dist/src/types/json-type.js.map +1 -1
- package/dist/src/types/logical-type.d.ts +22 -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/temporal-types.d.ts.map +1 -1
- package/dist/src/types/temporal-types.js +33 -11
- package/dist/src/types/temporal-types.js.map +1 -1
- package/dist/src/types/validation.d.ts +39 -1
- package/dist/src/types/validation.d.ts.map +1 -1
- package/dist/src/types/validation.js +60 -0
- package/dist/src/types/validation.js.map +1 -1
- package/dist/src/util/ast-spine-clone.d.ts +23 -0
- package/dist/src/util/ast-spine-clone.d.ts.map +1 -0
- package/dist/src/util/ast-spine-clone.js +41 -0
- package/dist/src/util/ast-spine-clone.js.map +1 -0
- package/dist/src/util/coercion.d.ts +13 -0
- package/dist/src/util/coercion.d.ts.map +1 -1
- package/dist/src/util/coercion.js +10 -1
- package/dist/src/util/coercion.js.map +1 -1
- package/dist/src/util/comparison.d.ts +114 -0
- package/dist/src/util/comparison.d.ts.map +1 -1
- package/dist/src/util/comparison.js +187 -27
- package/dist/src/util/comparison.js.map +1 -1
- 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/manifest.d.ts +7 -0
- package/dist/src/vtab/manifest.d.ts.map +1 -1
- package/dist/src/vtab/memory/connection.d.ts +14 -1
- package/dist/src/vtab/memory/connection.d.ts.map +1 -1
- package/dist/src/vtab/memory/connection.js +20 -2
- package/dist/src/vtab/memory/connection.js.map +1 -1
- package/dist/src/vtab/memory/layer/base.d.ts +12 -5
- package/dist/src/vtab/memory/layer/base.d.ts.map +1 -1
- package/dist/src/vtab/memory/layer/base.js +20 -9
- package/dist/src/vtab/memory/layer/base.js.map +1 -1
- package/dist/src/vtab/memory/layer/connection.d.ts +17 -0
- package/dist/src/vtab/memory/layer/connection.d.ts.map +1 -1
- package/dist/src/vtab/memory/layer/connection.js +26 -0
- package/dist/src/vtab/memory/layer/connection.js.map +1 -1
- package/dist/src/vtab/memory/layer/manager.d.ts +156 -31
- package/dist/src/vtab/memory/layer/manager.d.ts.map +1 -1
- package/dist/src/vtab/memory/layer/manager.js +695 -158
- package/dist/src/vtab/memory/layer/manager.js.map +1 -1
- package/dist/src/vtab/memory/layer/plan-filter.d.ts +41 -20
- package/dist/src/vtab/memory/layer/plan-filter.d.ts.map +1 -1
- package/dist/src/vtab/memory/layer/plan-filter.js +57 -27
- package/dist/src/vtab/memory/layer/plan-filter.js.map +1 -1
- package/dist/src/vtab/memory/layer/row-convert.d.ts +21 -0
- package/dist/src/vtab/memory/layer/row-convert.d.ts.map +1 -0
- package/dist/src/vtab/memory/layer/row-convert.js +30 -0
- package/dist/src/vtab/memory/layer/row-convert.js.map +1 -0
- package/dist/src/vtab/memory/layer/scan-layer.d.ts +6 -3
- package/dist/src/vtab/memory/layer/scan-layer.d.ts.map +1 -1
- package/dist/src/vtab/memory/layer/scan-layer.js +48 -34
- package/dist/src/vtab/memory/layer/scan-layer.js.map +1 -1
- package/dist/src/vtab/memory/layer/transaction.d.ts +142 -19
- package/dist/src/vtab/memory/layer/transaction.d.ts.map +1 -1
- package/dist/src/vtab/memory/layer/transaction.js +237 -73
- 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 +60 -41
- 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 +12 -4
- package/dist/src/vtab/memory/table.js.map +1 -1
- package/dist/src/vtab/memory/types.d.ts +27 -1
- package/dist/src/vtab/memory/types.d.ts.map +1 -1
- package/dist/src/vtab/memory/types.js +16 -1
- package/dist/src/vtab/memory/types.js.map +1 -1
- package/dist/src/vtab/memory/utils/primary-key.d.ts +9 -0
- package/dist/src/vtab/memory/utils/primary-key.d.ts.map +1 -1
- package/dist/src/vtab/memory/utils/primary-key.js +11 -0
- package/dist/src/vtab/memory/utils/primary-key.js.map +1 -1
- package/dist/src/vtab/module.d.ts +63 -0
- package/dist/src/vtab/module.d.ts.map +1 -1
- package/dist/src/vtab/table.d.ts +33 -7
- package/dist/src/vtab/table.d.ts.map +1 -1
- package/dist/src/vtab/table.js.map +1 -1
- package/package.json +3 -3
- package/dist/src/planner/rules/cache/rule-in-subquery-cache.d.ts +0 -26
- package/dist/src/planner/rules/cache/rule-in-subquery-cache.d.ts.map +0 -1
- package/dist/src/planner/rules/cache/rule-in-subquery-cache.js +0 -66
- package/dist/src/planner/rules/cache/rule-in-subquery-cache.js.map +0 -1
|
@@ -4,6 +4,7 @@ import { createLogger } from '../../../common/logger.js';
|
|
|
4
4
|
import { createPrimaryKeyFunctions } from '../utils/primary-key.js';
|
|
5
5
|
import { QuereusError } from '../../../common/errors.js';
|
|
6
6
|
import { StatusCode } from '../../../common/types.js';
|
|
7
|
+
import { convertRowAtIndex } from './row-convert.js';
|
|
7
8
|
const log = createLogger('vtab:memory:layer:transaction');
|
|
8
9
|
const warnLog = log.extend('warn');
|
|
9
10
|
let transactionLayerCounter = 1000;
|
|
@@ -26,8 +27,10 @@ export class TransactionLayer {
|
|
|
26
27
|
* Schema when this layer was started. Replaced when DDL runs inside this layer's own
|
|
27
28
|
* transaction: by {@link adoptSchema} for additive index/constraint DDL, a secondary-index
|
|
28
29
|
* re-key from `alter column … set collate`, and index/constraint removal (`drop index` /
|
|
29
|
-
* `drop constraint`)
|
|
30
|
-
* primary-key column
|
|
30
|
+
* `drop constraint`); by {@link rekeyPrimaryKey} when that collate change lands on a
|
|
31
|
+
* primary-key column; and by {@link installReshapedColumns} when `add column` / `drop
|
|
32
|
+
* column` changes the column set itself. Every swap except the last keeps the column set
|
|
33
|
+
* identical.
|
|
31
34
|
*/
|
|
32
35
|
tableSchemaAtCreation;
|
|
33
36
|
/**
|
|
@@ -104,12 +107,17 @@ export class TransactionLayer {
|
|
|
104
107
|
* `IndexSchema` (so an index scan raises "Secondary index not found") nor the derived
|
|
105
108
|
* `uniqueConstraints` entry (so `checkUniqueConstraints` silently skips it and a
|
|
106
109
|
* colliding insert is accepted).
|
|
107
|
-
* - **Re-keying** (`alter column … set collate
|
|
108
|
-
*
|
|
109
|
-
*
|
|
110
|
-
*
|
|
111
|
-
*
|
|
112
|
-
*
|
|
110
|
+
* - **Re-keying** (`alter column … set collate`, or an `alter column … set data type` that
|
|
111
|
+
* keeps the physical storage class but moves to a differently-ordering logical type —
|
|
112
|
+
* text ↔ timespan, where 'PT1H' and 'PT60M' are one value): an index whose `IndexSchema`
|
|
113
|
+
* object is no longer the one this layer holds is REPLACED.
|
|
114
|
+
* `BaseLayer.rebuildAllSecondaryIndexes` hands every index a fresh BTree under the new
|
|
115
|
+
* comparator, so a layer that kept its old `MemoryIndex` would go on comparing the old way
|
|
116
|
+
* over an orphaned tree — and, once it becomes the committed head at commit, would shadow
|
|
117
|
+
* the base's rebuilt structures entirely. The retype has no index-column field to change
|
|
118
|
+
* (an index column carries no logical type; it reads the column's), so
|
|
119
|
+
* `MemoryTableManager.alterColumn` rebuilds the `IndexSchema` objects purely to raise this
|
|
120
|
+
* signal — see its `structuresRekeyed` branch.
|
|
113
121
|
* - **Removal** (`drop index` / `drop constraint`): an index whose name the new schema no
|
|
114
122
|
* longer declares is DROPPED from {@link secondaryIndexes}. Without it the layer keeps the
|
|
115
123
|
* derived `uniqueConstraints` entry in its frozen schema and goes on enforcing a constraint
|
|
@@ -130,8 +138,10 @@ export class TransactionLayer {
|
|
|
130
138
|
*
|
|
131
139
|
* Never applied to a column-set or primary-key change: either would invalidate
|
|
132
140
|
* {@link pkFunctions} and the primary tree. A PK-column collation change goes to
|
|
133
|
-
* {@link rekeyPrimaryKey} instead,
|
|
134
|
-
*
|
|
141
|
+
* {@link rekeyPrimaryKey} instead, a column-set change (`add column` / `drop column`) to
|
|
142
|
+
* {@link prepareReshapedColumns} / {@link installReshapedColumns}, and
|
|
143
|
+
* `ensureSchemaChangeSafety` raises BUSY when any connection other than the DDL issuer
|
|
144
|
+
* holds a pending layer.
|
|
135
145
|
*/
|
|
136
146
|
adoptSchema(newSchema) {
|
|
137
147
|
const oldSchema = this.tableSchemaAtCreation;
|
|
@@ -186,21 +196,26 @@ export class TransactionLayer {
|
|
|
186
196
|
* in the parent, so a deletion removes exactly the row this layer removed and an upsert
|
|
187
197
|
* lands at exactly one key.
|
|
188
198
|
*
|
|
189
|
-
*
|
|
190
|
-
*
|
|
191
|
-
*
|
|
192
|
-
*
|
|
193
|
-
*
|
|
194
|
-
*
|
|
199
|
+
* The deletion replay verifies, under the OLD comparator, that the row it finds is the row
|
|
200
|
+
* it removed (see {@link installNetOwnWrites}'s `deletionTargets`). Without that check a
|
|
201
|
+
* deletion whose old key collapses onto a DIFFERENT row's new key deletes that other row:
|
|
202
|
+
* stage an upsert at key `'a'` in one layer, delete the colliding `'A'` from a LATER layer,
|
|
203
|
+
* and the later layer's replayed deletion lands on the parent's `'a'` — silently removing
|
|
204
|
+
* the row the transaction just wrote. `validateRekeyedPrimaryKey`'s chain walk refuses any
|
|
205
|
+
* chain that holds a colliding pair before this method runs, which makes a cross-row land
|
|
206
|
+
* unreachable today — the verify is insurance, so the replay's own correctness does not
|
|
207
|
+
* hinge on that caller-side pass staying exactly as conservative as it is.
|
|
195
208
|
*/
|
|
196
209
|
rekeyPrimaryKey(newSchema) {
|
|
210
|
+
// The pending-change EVENT log is deliberately NOT rewritten here: a collation
|
|
211
|
+
// change moves only the comparator — every stored value and every key value is
|
|
212
|
+
// untouched — so the recorded `pk`/`oldRow`/`newRow` images stay accurate as-is.
|
|
213
|
+
// (Contrast convertColumn / installReshapedColumns, which do rewrite the log.)
|
|
197
214
|
const preRekeyTree = this.primaryModifications;
|
|
198
|
-
const
|
|
215
|
+
const preRekeyFunctions = this.pkFunctions;
|
|
216
|
+
const preRekeyEncode = preRekeyFunctions.encode;
|
|
199
217
|
this.tableSchemaAtCreation = newSchema;
|
|
200
218
|
this.pkFunctions = createPrimaryKeyFunctions(newSchema, this.collationResolver);
|
|
201
|
-
const { extractFromRow, compare } = this.pkFunctions;
|
|
202
|
-
const parentPrimaryTree = this.parentLayer.getModificationTree('primary');
|
|
203
|
-
const rekeyed = new BTree((value) => extractFromRow(value), compare, { base: parentPrimaryTree || undefined });
|
|
204
219
|
// Net per-key effect of this layer's own writes, read out of the pre-rekey tree
|
|
205
220
|
// (`get` traverses the inheritance chain, so it yields the layer's EFFECTIVE row).
|
|
206
221
|
const deletions = [];
|
|
@@ -217,29 +232,66 @@ export class TransactionLayer {
|
|
|
217
232
|
else
|
|
218
233
|
upserts.push(effectiveRow);
|
|
219
234
|
}
|
|
235
|
+
// Only the re-key can make a deletion's find() land on a colliding OTHER row, so only
|
|
236
|
+
// this caller passes the old-comparator identity check (see the method doc above).
|
|
237
|
+
this.installNetOwnWrites(deletions, upserts, (deletionKey, foundRow) => preRekeyFunctions.compare(deletionKey, preRekeyFunctions.extractFromRow(foundRow)) === 0);
|
|
238
|
+
}
|
|
239
|
+
/**
|
|
240
|
+
* A fresh primary tree inheriting copy-on-write from the parent's CURRENT one, keyed by this
|
|
241
|
+
* layer's current {@link pkFunctions}. Callers must have installed the post-DDL `pkFunctions`
|
|
242
|
+
* first, and the parent must already carry the DDL (every whole-layer rebuild runs oldest-first).
|
|
243
|
+
*/
|
|
244
|
+
newPrimaryTreeOverParent() {
|
|
245
|
+
const { extractFromRow, compare } = this.pkFunctions;
|
|
246
|
+
return new BTree((value) => extractFromRow(value), compare, { base: this.parentLayer.getModificationTree('primary') || undefined });
|
|
247
|
+
}
|
|
248
|
+
/**
|
|
249
|
+
* Shared tail of the three whole-layer rebuilds — {@link rekeyPrimaryKey},
|
|
250
|
+
* {@link convertColumn}, {@link installReshapedColumns}. Each has already swapped in its new
|
|
251
|
+
* schema (and, where the key changed, its new {@link pkFunctions}) and collapsed
|
|
252
|
+
* {@link ownWrites} to the net per-key effect passed here; this replays that effect into a
|
|
253
|
+
* tree built over the parent's fresh one, installs it, rewrites the own-write log to match,
|
|
254
|
+
* and rebuilds every secondary index.
|
|
255
|
+
*
|
|
256
|
+
* Every index is rebuilt unconditionally, not only those over an altered column: each inherits
|
|
257
|
+
* the parent's freshly-rebuilt tree, and each index's key encoding and PK bookkeeping derive
|
|
258
|
+
* from `pkFunctions`.
|
|
259
|
+
*
|
|
260
|
+
* A deletion an upsert has since re-occupied is dropped from the log — keeping it would make
|
|
261
|
+
* the log claim both a deletion and an upsert of the same key. Only {@link rekeyPrimaryKey}
|
|
262
|
+
* can produce that collision (two old keys collapsing under the new comparator); where key
|
|
263
|
+
* values are invariant a key is classified as either a deletion or an upsert, never both, so
|
|
264
|
+
* the filter is a no-op.
|
|
265
|
+
*
|
|
266
|
+
* `deletionTargets` guards each deletion's replay: `find(key)` runs under the NEW comparator,
|
|
267
|
+
* so a re-key can land it on a colliding row this layer never removed — a row a PARENT layer
|
|
268
|
+
* upserted at what is now the same key. Only {@link rekeyPrimaryKey} passes it (an
|
|
269
|
+
* old-comparator identity check); the column-set/value rebuilds leave key values untouched,
|
|
270
|
+
* where find() can only land on the deleted key itself.
|
|
271
|
+
*/
|
|
272
|
+
installNetOwnWrites(deletions, upserts, deletionTargets) {
|
|
273
|
+
const rebuilt = this.newPrimaryTreeOverParent();
|
|
220
274
|
for (const primaryKey of deletions) {
|
|
221
|
-
const path =
|
|
222
|
-
if (path.on)
|
|
223
|
-
|
|
275
|
+
const path = rebuilt.find(primaryKey);
|
|
276
|
+
if (!path.on)
|
|
277
|
+
continue;
|
|
278
|
+
if (deletionTargets && !deletionTargets(primaryKey, rebuilt.at(path)))
|
|
279
|
+
continue;
|
|
280
|
+
rebuilt.deleteAt(path);
|
|
224
281
|
}
|
|
225
282
|
for (const row of upserts) {
|
|
226
|
-
|
|
283
|
+
rebuilt.upsert(row);
|
|
227
284
|
}
|
|
228
|
-
this.primaryModifications =
|
|
229
|
-
|
|
230
|
-
// NOCASE) is no longer a deletion of anything: keeping it would make the log claim both
|
|
231
|
-
// a deletion and an upsert of the same key.
|
|
232
|
-
const survivingDeletions = deletions.filter(primaryKey => rekeyed.get(primaryKey) === undefined);
|
|
285
|
+
this.primaryModifications = rebuilt;
|
|
286
|
+
const { extractFromRow } = this.pkFunctions;
|
|
233
287
|
this.ownWrites.length = 0;
|
|
234
|
-
for (const primaryKey of
|
|
235
|
-
|
|
288
|
+
for (const primaryKey of deletions) {
|
|
289
|
+
if (rebuilt.get(primaryKey) === undefined)
|
|
290
|
+
this.ownWrites.push({ type: 'delete', primaryKey });
|
|
236
291
|
}
|
|
237
292
|
for (const row of upserts) {
|
|
238
293
|
this.ownWrites.push({ type: 'upsert', primaryKey: extractFromRow(row), newRow: row });
|
|
239
294
|
}
|
|
240
|
-
// Every secondary index's key encoding and PK bookkeeping derive from `pkFunctions`,
|
|
241
|
-
// and each inherits the parent's freshly-rebuilt tree — so all of them are rebuilt,
|
|
242
|
-
// including ones the altered column does not appear in.
|
|
243
295
|
this.secondaryIndexes = new Map();
|
|
244
296
|
this.initializeSecondaryIndexes();
|
|
245
297
|
for (const index of this.secondaryIndexes.values()) {
|
|
@@ -255,11 +307,16 @@ export class TransactionLayer {
|
|
|
255
307
|
* layer, not the base.
|
|
256
308
|
*
|
|
257
309
|
* NON-primary-key column, or a key column whose bytes are unchanged. `MemoryTableManager.alterColumn`
|
|
258
|
-
* rejects
|
|
310
|
+
* rejects any retype of a key column before any mutation, and SET NOT NULL leaves the key
|
|
259
311
|
* bytes intact, so the primary key encoding is unchanged: {@link pkFunctions} and the primary tree
|
|
260
312
|
* keep their keys, and only the value at `colIndex` moves. (Contrast {@link rekeyPrimaryKey}, which
|
|
261
313
|
* must rebuild the tree because the keys themselves change.)
|
|
262
314
|
*
|
|
315
|
+
* Subsumes {@link adoptSchema} for a same-storage-class retype that ALSO moves the comparator
|
|
316
|
+
* (text → date/timespan): `tableSchemaAtCreation` is swapped to `newSchema` and every secondary
|
|
317
|
+
* index is rebuilt from scratch against it below, so the layer's structures pick up the new
|
|
318
|
+
* comparators along with the converted values.
|
|
319
|
+
*
|
|
263
320
|
* Like {@link adoptSchema} / {@link rekeyPrimaryKey}, the caller MUST apply this oldest-first
|
|
264
321
|
* (base already converted): the layer's copy-on-write base inherits the parent's already-converted
|
|
265
322
|
* rows, so only this layer's OWN writes are rewritten here.
|
|
@@ -280,15 +337,12 @@ export class TransactionLayer {
|
|
|
280
337
|
this.tableSchemaAtCreation = newSchema;
|
|
281
338
|
// The parent's primary tree has been REPLACED by the conversion (base rebuilt from fresh
|
|
282
339
|
// rows, or a parent layer already converted oldest-first), so this layer's own tree — which
|
|
283
|
-
// derived from the OLD one — must be rebuilt over the parent's NEW tree
|
|
284
|
-
//
|
|
285
|
-
// pkFunctions and the keys stay; only the value at colIndex moves
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
// Net per-key effect of this layer's own writes, read out of the pre-conversion tree. The PK
|
|
290
|
-
// is unchanged, so a key is either finally-deleted or finally-upserted, never both — no key
|
|
291
|
-
// can collapse onto another (unlike rekeyPrimaryKey).
|
|
340
|
+
// derived from the OLD one — must be rebuilt over the parent's NEW tree; installNetOwnWrites
|
|
341
|
+
// below does that. The PK is unchanged (a key-column retype is rejected upstream), so
|
|
342
|
+
// pkFunctions and the keys stay; only the value at colIndex moves — which also means a key
|
|
343
|
+
// is either finally-deleted or finally-upserted, never both, and no key can collapse onto
|
|
344
|
+
// another (unlike rekeyPrimaryKey). The net per-key effect is read out of the
|
|
345
|
+
// pre-conversion tree.
|
|
292
346
|
const seen = new Set();
|
|
293
347
|
const survivingDeletions = [];
|
|
294
348
|
const upserts = [];
|
|
@@ -304,42 +358,139 @@ export class TransactionLayer {
|
|
|
304
358
|
survivingDeletions.push(write.primaryKey);
|
|
305
359
|
continue;
|
|
306
360
|
}
|
|
307
|
-
const oldVal = effectiveRow[colIndex];
|
|
308
361
|
let newRow = effectiveRow;
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
catch {
|
|
315
|
-
// Shadowed unconvertible own value — leave as-is (see method doc).
|
|
316
|
-
}
|
|
362
|
+
try {
|
|
363
|
+
newRow = convertRowAtIndex(effectiveRow, colIndex, convert, convertNulls);
|
|
364
|
+
}
|
|
365
|
+
catch {
|
|
366
|
+
// Shadowed unconvertible own value — leave as-is (see method doc).
|
|
317
367
|
}
|
|
318
368
|
upserts.push(newRow);
|
|
319
369
|
}
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
370
|
+
this.installNetOwnWrites(survivingDeletions, upserts);
|
|
371
|
+
// Rewrite the pending-change EVENT log's images too, so the events emitted at this
|
|
372
|
+
// table's commit carry the post-conversion values the committed rows hold. Best-effort,
|
|
373
|
+
// per image: the log holds historical images (including superseded intermediate ones the
|
|
374
|
+
// net rewrite above never touches), so an unconvertible value keeps its raw form rather
|
|
375
|
+
// than failing the ALTER. One entry per recorded write is kept — no dedup, unlike the
|
|
376
|
+
// own-write collapse — because every recorded write is a separately delivered event.
|
|
377
|
+
if (this.pendingChanges) {
|
|
378
|
+
this.pendingChanges = this.pendingChanges.map(change => {
|
|
379
|
+
const remapImage = (row) => {
|
|
380
|
+
if (!row)
|
|
381
|
+
return row;
|
|
382
|
+
try {
|
|
383
|
+
return convertRowAtIndex(row, colIndex, convert, convertNulls);
|
|
384
|
+
}
|
|
385
|
+
catch {
|
|
386
|
+
return row;
|
|
387
|
+
}
|
|
388
|
+
};
|
|
389
|
+
return { ...change, oldRow: remapImage(change.oldRow), newRow: remapImage(change.newRow) };
|
|
390
|
+
});
|
|
327
391
|
}
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
392
|
+
}
|
|
393
|
+
/**
|
|
394
|
+
* Computes — without mutating anything — what {@link installReshapedColumns} will install
|
|
395
|
+
* for an `alter table … add column` / `drop column` applied while THIS layer's transaction
|
|
396
|
+
* is still open: the net per-key effect of the layer's own writes, with each surviving row
|
|
397
|
+
* run through `reshapeRow` to the new column set.
|
|
398
|
+
*
|
|
399
|
+
* Split from the install (unlike {@link convertColumn}, which mutates in one pass) because
|
|
400
|
+
* this rewrite can FAIL: an ADD COLUMN with a per-row `default (new.<col>)` expression
|
|
401
|
+
* evaluates that expression against each pending row, and it can throw — or produce NULL
|
|
402
|
+
* for a NOT NULL column — on a pending row even when every committed row backfilled cleanly.
|
|
403
|
+
* The rewrite is async for the same reason (`convertColumn`'s value map is a pure function;
|
|
404
|
+
* a backfill evaluator is engine-supplied and may await). `MemoryTableManager` therefore runs
|
|
405
|
+
* every prepare — one per open layer — BEFORE the first mutation anywhere (base included), so
|
|
406
|
+
* a failure rejects the whole ALTER with every structure untouched; there is no undo for a
|
|
407
|
+
* half-reshaped layer chain.
|
|
408
|
+
*
|
|
409
|
+
* Own writes collapse to one entry per key exactly as {@link convertColumn}'s pass does: a
|
|
410
|
+
* column-set change leaves every primary key VALUE untouched (ADD introduces a column no key
|
|
411
|
+
* reads — even when it is inserted ahead of one, which only renumbers the key's *indices*;
|
|
412
|
+
* dropping a PK column is rejected upstream), so a key is either finally-deleted or
|
|
413
|
+
* finally-upserted, never both, and no key can collapse onto another.
|
|
414
|
+
*/
|
|
415
|
+
async prepareReshapedColumns(reshapeRow, reshapeEventRow) {
|
|
416
|
+
const seen = new Set();
|
|
417
|
+
const survivingDeletions = [];
|
|
418
|
+
const upserts = [];
|
|
419
|
+
for (const write of this.ownWrites) {
|
|
420
|
+
const encoded = this.pkFunctions.encode(write.primaryKey);
|
|
421
|
+
if (seen.has(encoded))
|
|
422
|
+
continue;
|
|
423
|
+
seen.add(encoded);
|
|
424
|
+
// `get` traverses the inheritance chain, so this is the layer's EFFECTIVE row:
|
|
425
|
+
// undefined when the layer deleted the key, the layer's own row otherwise.
|
|
426
|
+
const effectiveRow = this.primaryModifications.get(write.primaryKey);
|
|
427
|
+
if (effectiveRow === undefined) {
|
|
428
|
+
survivingDeletions.push(write.primaryKey);
|
|
429
|
+
continue;
|
|
430
|
+
}
|
|
431
|
+
upserts.push(await reshapeRow(effectiveRow));
|
|
332
432
|
}
|
|
333
|
-
|
|
334
|
-
|
|
433
|
+
// Reshape the pending-change EVENT log alongside — through `reshapeEventRow`, the
|
|
434
|
+
// BEST-EFFORT variant of `reshapeRow`, deliberately the opposite posture: `reshapeRow`
|
|
435
|
+
// rewrites the layer's net effective rows and its failure MUST reject the ALTER, while
|
|
436
|
+
// the log holds historical images (including superseded intermediate ones the net
|
|
437
|
+
// rewrite never touches) that a backfill evaluator can legitimately fail on. The
|
|
438
|
+
// caller supplies a `reshapeEventRow` that falls back rather than throws (ADD COLUMN
|
|
439
|
+
// fills NULL when the evaluator fails); a throw that still escapes leaves that image
|
|
440
|
+
// at the old arity (logged) and never rejects the ALTER. One entry per recorded write
|
|
441
|
+
// is kept — no dedup, unlike the own-write collapse above — because every recorded
|
|
442
|
+
// write is a separately delivered event.
|
|
443
|
+
let reshapedPendingChanges = null;
|
|
444
|
+
if (this.pendingChanges) {
|
|
445
|
+
reshapedPendingChanges = [];
|
|
446
|
+
for (const change of this.pendingChanges) {
|
|
447
|
+
const next = { ...change };
|
|
448
|
+
try {
|
|
449
|
+
if (change.oldRow)
|
|
450
|
+
next.oldRow = await reshapeEventRow(change.oldRow);
|
|
451
|
+
if (change.newRow)
|
|
452
|
+
next.newRow = await reshapeEventRow(change.newRow);
|
|
453
|
+
}
|
|
454
|
+
catch (e) {
|
|
455
|
+
warnLog('Pending-change reshape failed on %s; leaving image at the old arity: %O', this.tableSchemaAtCreation.name, e);
|
|
456
|
+
}
|
|
457
|
+
reshapedPendingChanges.push(next);
|
|
458
|
+
}
|
|
335
459
|
}
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
460
|
+
return { survivingDeletions, upserts, reshapedPendingChanges };
|
|
461
|
+
}
|
|
462
|
+
/**
|
|
463
|
+
* Adopts an `alter table … add column` / `drop column` applied while THIS layer's
|
|
464
|
+
* transaction is still open, installing what {@link prepareReshapedColumns} computed:
|
|
465
|
+
* swaps in the new schema, rebuilds the primary tree over the parent's already-reshaped
|
|
466
|
+
* one, replays the layer's net own-writes at the new arity, and rebuilds every secondary
|
|
467
|
+
* index. Synchronous and mutation-only — everything fallible ran in the prepare phase.
|
|
468
|
+
*
|
|
469
|
+
* {@link pkFunctions} is REBUILT (unlike {@link convertColumn}, which keeps it): a column-set
|
|
470
|
+
* change can shift the primary key's column *indices* — DROP COLUMN renumbers
|
|
471
|
+
* `primaryKeyDefinition` past the dropped slot, and an ADD COLUMN placed AHEAD of a key
|
|
472
|
+
* column (`insertAtIndex`, module-API only) renumbers it past the inserted slot — so the row
|
|
473
|
+
* extractor changes even though the key *values* do not. Because the values are invariant
|
|
474
|
+
* under both ADD (the new column is not part of any key, wherever it lands) and DROP
|
|
475
|
+
* (dropping a PK column is rejected upstream), tree ordering is preserved and the
|
|
476
|
+
* `primaryKey` values recorded in {@link ownWrites} stay valid — no re-key of the kind
|
|
477
|
+
* {@link rekeyPrimaryKey} performs is needed, and the prepared deletions apply verbatim.
|
|
478
|
+
*
|
|
479
|
+
* Like every other open-layer adoption, the caller MUST apply this to the whole parent
|
|
480
|
+
* chain oldest-first (base already reshaped): the rebuilt tree inherits copy-on-write from
|
|
481
|
+
* the parent's NEW tree, so the parent's must already hold rows at the new arity. The
|
|
482
|
+
* rewritten {@link ownWrites} log — carrying reshaped rows — is what the commit-time rebase
|
|
483
|
+
* and any later `create index` ({@link reindexOwnWrites}) replay.
|
|
484
|
+
*/
|
|
485
|
+
installReshapedColumns(newSchema, prepared) {
|
|
486
|
+
this.tableSchemaAtCreation = newSchema;
|
|
487
|
+
this.pkFunctions = createPrimaryKeyFunctions(newSchema, this.collationResolver);
|
|
488
|
+
this.installNetOwnWrites(prepared.survivingDeletions, prepared.upserts);
|
|
489
|
+
// Install the reshaped event log the prepare phase computed (null ⇔ tracking
|
|
490
|
+
// disabled), so the events emitted at this table's commit describe rows in the
|
|
491
|
+
// post-ALTER column set.
|
|
492
|
+
if (prepared.reshapedPendingChanges !== null) {
|
|
493
|
+
this.pendingChanges = prepared.reshapedPendingChanges;
|
|
343
494
|
}
|
|
344
495
|
}
|
|
345
496
|
/**
|
|
@@ -414,6 +565,19 @@ export class TransactionLayer {
|
|
|
414
565
|
getPendingChanges() {
|
|
415
566
|
return this.pendingChanges ?? [];
|
|
416
567
|
}
|
|
568
|
+
/**
|
|
569
|
+
* Drops the pending-change event log (tracking stays enabled). Called when this
|
|
570
|
+
* layer's content is drained into the base by ALTER's consolidation
|
|
571
|
+
* (`MemoryTableManager.consolidateToBaseLayer`): its events were already delivered
|
|
572
|
+
* when the layer originally committed, but the layer can remain in the DDL
|
|
573
|
+
* connection's open-transaction parent chain — and once the base becomes the
|
|
574
|
+
* committed head, the commit-time collection (`collectPendingChanges`) walks that
|
|
575
|
+
* chain all the way down to the base and would re-deliver them.
|
|
576
|
+
*/
|
|
577
|
+
clearPendingChanges() {
|
|
578
|
+
if (this.pendingChanges)
|
|
579
|
+
this.pendingChanges = [];
|
|
580
|
+
}
|
|
417
581
|
/** This layer's own structural writes, oldest-first — the rebase replay source. */
|
|
418
582
|
getOwnWrites() {
|
|
419
583
|
return this.ownWrites;
|
|
@@ -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;
|
|
1
|
+
{"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../../src/vtab/memory/module.ts"],"names":[],"mappings":"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"}
|