@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
|
@@ -59,6 +59,23 @@ export declare class MemoryTableConnection {
|
|
|
59
59
|
* The savepoint is preserved (per SQL standard) so it can be rolled back to again.
|
|
60
60
|
*/
|
|
61
61
|
rollbackToSavepoint(targetDepth: number): void;
|
|
62
|
+
/**
|
|
63
|
+
* Re-points every LAZY savepoint marker that captured a committed-chain view at
|
|
64
|
+
* `committedHead`. Called by `MemoryTableManager.ensureSchemaChangeSafety` once a schema
|
|
65
|
+
* change has drained the committed layers into the base: a marker still naming a drained
|
|
66
|
+
* layer would, on `rollback to savepoint`, reinstate that layer's PRE-change rows as the
|
|
67
|
+
* read view — rows in the old column shape under the new schema, which then commit as
|
|
68
|
+
* permanent corruption.
|
|
69
|
+
*
|
|
70
|
+
* Only markers with `readSnapshot === null` move. A non-null `readSnapshot` means the
|
|
71
|
+
* captured `readLayer` is this connection's OWN eager savepoint snapshot, holding
|
|
72
|
+
* uncommitted rows that base does not have; re-pointing it would discard them. Those layers
|
|
73
|
+
* are instead carried across the change by the manager's open-layer adopt/reshape passes.
|
|
74
|
+
*
|
|
75
|
+
* Eager entries (`snapshot !== null`) are left alone: their rollback path restores
|
|
76
|
+
* `entry.snapshot` and never reads `entry.readLayer`.
|
|
77
|
+
*/
|
|
78
|
+
repointLazySavepointsToCommittedHead(committedHead: Layer): void;
|
|
62
79
|
/** Ends savepoint bookkeeping. Only called where the transaction itself is ending. */
|
|
63
80
|
clearSavepoints(): void;
|
|
64
81
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../../../../src/vtab/memory/layer/connection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAUvD;;;GAGG;AACH,qBAAa,qBAAqB;IACjC,SAAgB,YAAY,EAAE,MAAM,CAAC;IACrC,SAAgB,YAAY,EAAE,kBAAkB,CAAC;IAC1C,SAAS,EAAE,KAAK,CAAC;IACjB,uBAAuB,EAAE,gBAAgB,GAAG,IAAI,CAAQ;IACxD,mBAAmB,EAAE,OAAO,CAAS;IAE5C;;;;;;;;;;;;;;;;;;OAkBG;IACH,OAAO,CAAC,cAAc,CAA6G;IAEnI;;;;;;;;OAQG;IACH,OAAO,CAAC,YAAY,CAAiC;gBAEzC,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,KAAK;IAMhE,iHAAiH;IACjH,KAAK,IAAI,IAAI;IAeb,sCAAsC;IAChC,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAkB7B,yCAAyC;IACzC,QAAQ,IAAI,IAAI;IAiBhB,uDAAuD;IACvD,OAAO,CAAC,qBAAqB;IAM7B,mDAAmD;IACnD,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAkDpC,yFAAyF;IACzF,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAiB3C;;;OAGG;IACH,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAiC9C,sFAAsF;IAC/E,eAAe,IAAI,IAAI;IAK9B;;;;;;;;;;;;;;OAcG;IACI,WAAW,IAAI,OAAO;CAG7B"}
|
|
1
|
+
{"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../../../../src/vtab/memory/layer/connection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAUvD;;;GAGG;AACH,qBAAa,qBAAqB;IACjC,SAAgB,YAAY,EAAE,MAAM,CAAC;IACrC,SAAgB,YAAY,EAAE,kBAAkB,CAAC;IAC1C,SAAS,EAAE,KAAK,CAAC;IACjB,uBAAuB,EAAE,gBAAgB,GAAG,IAAI,CAAQ;IACxD,mBAAmB,EAAE,OAAO,CAAS;IAE5C;;;;;;;;;;;;;;;;;;OAkBG;IACH,OAAO,CAAC,cAAc,CAA6G;IAEnI;;;;;;;;OAQG;IACH,OAAO,CAAC,YAAY,CAAiC;gBAEzC,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,KAAK;IAMhE,iHAAiH;IACjH,KAAK,IAAI,IAAI;IAeb,sCAAsC;IAChC,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAkB7B,yCAAyC;IACzC,QAAQ,IAAI,IAAI;IAiBhB,uDAAuD;IACvD,OAAO,CAAC,qBAAqB;IAM7B,mDAAmD;IACnD,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAkDpC,yFAAyF;IACzF,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAiB3C;;;OAGG;IACH,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAiC9C;;;;;;;;;;;;;;;OAeG;IACI,oCAAoC,CAAC,aAAa,EAAE,KAAK,GAAG,IAAI;IASvE,sFAAsF;IAC/E,eAAe,IAAI,IAAI;IAK9B;;;;;;;;;;;;;;OAcG;IACI,WAAW,IAAI,OAAO;CAG7B"}
|
|
@@ -192,6 +192,32 @@ export class MemoryTableConnection {
|
|
|
192
192
|
this.savepointStack.length = targetDepth + 1;
|
|
193
193
|
debugLog(`Connection %d: Rolled back to savepoint depth %d (preserved)`, this.connectionId, targetDepth);
|
|
194
194
|
}
|
|
195
|
+
/**
|
|
196
|
+
* Re-points every LAZY savepoint marker that captured a committed-chain view at
|
|
197
|
+
* `committedHead`. Called by `MemoryTableManager.ensureSchemaChangeSafety` once a schema
|
|
198
|
+
* change has drained the committed layers into the base: a marker still naming a drained
|
|
199
|
+
* layer would, on `rollback to savepoint`, reinstate that layer's PRE-change rows as the
|
|
200
|
+
* read view — rows in the old column shape under the new schema, which then commit as
|
|
201
|
+
* permanent corruption.
|
|
202
|
+
*
|
|
203
|
+
* Only markers with `readSnapshot === null` move. A non-null `readSnapshot` means the
|
|
204
|
+
* captured `readLayer` is this connection's OWN eager savepoint snapshot, holding
|
|
205
|
+
* uncommitted rows that base does not have; re-pointing it would discard them. Those layers
|
|
206
|
+
* are instead carried across the change by the manager's open-layer adopt/reshape passes.
|
|
207
|
+
*
|
|
208
|
+
* Eager entries (`snapshot !== null`) are left alone: their rollback path restores
|
|
209
|
+
* `entry.snapshot` and never reads `entry.readLayer`.
|
|
210
|
+
*/
|
|
211
|
+
repointLazySavepointsToCommittedHead(committedHead) {
|
|
212
|
+
for (const entry of this.savepointStack) {
|
|
213
|
+
if (entry.readSnapshot !== null)
|
|
214
|
+
continue;
|
|
215
|
+
if (entry.readLayer === committedHead)
|
|
216
|
+
continue;
|
|
217
|
+
debugLog(`Connection %d: Re-pointing lazy savepoint marker to the current committed head`, this.connectionId);
|
|
218
|
+
entry.readLayer = committedHead;
|
|
219
|
+
}
|
|
220
|
+
}
|
|
195
221
|
/** Ends savepoint bookkeeping. Only called where the transaction itself is ending. */
|
|
196
222
|
clearSavepoints() {
|
|
197
223
|
this.savepointStack = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connection.js","sourceRoot":"","sources":["../../../../../src/vtab/memory/layer/connection.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEzD,IAAI,iBAAiB,GAAG,CAAC,CAAC;AAC1B,MAAM,GAAG,GAAG,YAAY,CAAC,8BAA8B,CAAC,CAAC;AACzD,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AACnC,MAAM,QAAQ,GAAG,GAAG,CAAC;AAErB;;;GAGG;AACH,MAAM,OAAO,qBAAqB;IACjB,YAAY,CAAS;IACrB,YAAY,CAAqB;IAC1C,SAAS,CAAQ;IACjB,uBAAuB,GAA4B,IAAI,CAAC;IACxD,mBAAmB,GAAY,KAAK,CAAC,CAAC,8CAA8C;IAE3F;;;;;;;;;;;;;;;;;;OAkBG;IACK,cAAc,GAA0G,EAAE,CAAC;IAEnI;;;;;;;;OAQG;IACK,YAAY,GAA4B,IAAI,CAAC;IAErD,YAAY,OAA2B,EAAE,gBAAuB;QAC/D,IAAI,CAAC,YAAY,GAAG,iBAAiB,EAAE,CAAC;QACxC,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC;QAC5B,IAAI,CAAC,SAAS,GAAG,gBAAgB,CAAC;IACnC,CAAC;IAED,iHAAiH;IACjH,KAAK;QACJ,IAAI,IAAI,CAAC,uBAAuB,EAAE,CAAC;YAClC,mEAAmE;YACnE,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,CAAC,+BAA+B;YAChE,OAAO;QACR,CAAC;QAED,sEAAsE;QACtE,qEAAqE;QACrE,mDAAmD;QACnD,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;QAEhC,QAAQ,CAAC,4CAA4C,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IAC3E,CAAC;IAED,sCAAsC;IACtC,KAAK,CAAC,MAAM;QACX,sEAAsE;QACtE,mEAAmE;QACnE,4DAA4D;QAC5D,oEAAoE;QACpE,QAAQ;QACR,IAAI,IAAI,CAAC,uBAAuB;eAC5B,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,YAAY,CAAC,qBAAqB,EAAE,CAAC;YAChE,MAAM,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;YAChD,2FAA2F;QAC5F,CAAC;QACD,uEAAuE;QACvE,yEAAyE;QACzE,sEAAsE;QACtE,6BAA6B;QAC7B,IAAI,CAAC,qBAAqB,EAAE,CAAC;IAC9B,CAAC;IAED,yCAAyC;IACzC,QAAQ;QACP,qEAAqE;QACrE,wEAAwE;QACxE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,qBAAqB,CAAC;QAEzD,4BAA4B;QAC5B,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC;QACpC,yEAAyE;QACzE,yEAAyE;QACzE,sEAAsE;QACtE,6BAA6B;QAC7B,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAE7B,QAAQ,CAAC,8DAA8D,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,EACnG,IAAI,CAAC,YAAY,CAAC,CAAC;IACrB,CAAC;IAED,uDAAuD;IAC/C,qBAAqB;QAC5B,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;QACzB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;IAClC,CAAC;IAED,mDAAmD;IACnD,eAAe,CAAC,KAAa;QAC5B,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACf,YAAY,CAAC,4BAA4B,KAAK,yBAAyB,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;QAC/F,CAAC;QAED,uEAAuE;QACvE,uEAAuE;QACvE,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC;QACtC,MAAM,iBAAiB,GAAG,IAAI,CAAC,YAAY,CAAC;QAE5C,uEAAuE;QACvE,yEAAyE;QACzE,gEAAgE;QAChE,6CAA6C;QAC7C,EAAE;QACF,kEAAkE;QAClE,mEAAmE;QACnE,mEAAmE;QACnE,kEAAkE;QAClE,gEAAgE;QAChE,sDAAsD;QACtD,6DAA6D;QAC7D,UAAU;QACV,IAAI,QAAQ,GAA4B,IAAI,CAAC;QAC7C,IAAI,IAAI,CAAC,uBAAuB,EAAE,CAAC;YAClC,QAAQ,GAAG,IAAI,CAAC,uBAAuB,CAAC;YACxC,QAAQ,CAAC,aAAa,EAAE,CAAC;QAC1B,CAAC;QACD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,cAAc,EAAE,YAAY,EAAE,iBAAiB,EAAE,CAAC,CAAC;QAEnG,uEAAuE;QACvE,mEAAmE;QACnE,uEAAuE;QACvE,uEAAuE;QACvE,oEAAoE;QACpE,iEAAiE;QACjE,IAAI,QAAQ,EAAE,CAAC;YACd,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;YAC1B,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC;YACpC,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC;QAC9B,CAAC;QAED,4EAA4E;QAC5E,iFAAiF;QACjF,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;QAEhC,QAAQ,CAAC,+DAA+D,EACvE,IAAI,CAAC,YAAY,EAAE,KAAK,EAAE,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IACxD,CAAC;IAED,yFAAyF;IACzF,gBAAgB,CAAC,WAAmB;QACnC,sEAAsE;QACtE,oEAAoE;QACpE,qBAAqB;QACrB,IAAI,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC;YAC9C,mEAAmE;YACnE,iEAAiE;YACjE,oEAAoE;YACpE,gEAAgE;YAChE,OAAO,CAAC,yEAAyE,EAChF,IAAI,CAAC,YAAY,EAAE,WAAW,EAAE,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;YAC7D,OAAO;QACR,CAAC;QACD,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,WAAW,CAAC;QACzC,QAAQ,CAAC,gDAAgD,EAAE,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;IAC5F,CAAC;IAED;;;OAGG;IACH,mBAAmB,CAAC,WAAmB;QACtC,IAAI,WAAW,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC;YAC/C,OAAO,CAAC,iEAAiE,EACxE,IAAI,CAAC,YAAY,EAAE,WAAW,EAAE,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;YAC7D,OAAO;QACR,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;QAE/C,IAAI,KAAK,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;YAC7B,mEAAmE;YACnE,6DAA6D;YAC7D,qCAAqC;YACrC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;YACjC,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC;YACpC,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC;QACxC,CAAC;aAAM,CAAC;YACP,gEAAgE;YAChE,mEAAmE;YACnE,iEAAiE;YACjE,0CAA0C;YAC1C,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC;YAChC,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC;YACpC,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,QAAQ,CAAC;QACpC,CAAC;QAED,qEAAqE;QACrE,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,WAAW,GAAG,CAAC,CAAC;QAE7C,QAAQ,CAAC,8DAA8D,EACtE,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;IAClC,CAAC;IAED,sFAAsF;IAC/E,eAAe;QACrB,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;QACzB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;IAC1B,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACI,WAAW;QACjB,OAAO,IAAI,CAAC,uBAAuB,KAAK,IAAI,IAAI,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC;IAC5E,CAAC;CACD"}
|
|
1
|
+
{"version":3,"file":"connection.js","sourceRoot":"","sources":["../../../../../src/vtab/memory/layer/connection.ts"],"names":[],"mappings":"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"}
|
|
@@ -185,7 +185,7 @@ export declare class MemoryTableManager {
|
|
|
185
185
|
private isLayerInUse;
|
|
186
186
|
lookupEffectiveRow(primaryKey: BTreeKeyForPrimary, startLayer: Layer): Row | null;
|
|
187
187
|
lookupEffectiveValue(key: BTreeKeyForPrimary, indexName: string | 'primary', startLayer: Layer): Row | null;
|
|
188
|
-
performMutation(connection: MemoryTableConnection, operation: 'insert' | 'update' | 'delete', values: Row | undefined, oldKeyValues?: Row, onConflict?: ConflictResolution): Promise<UpdateResult>;
|
|
188
|
+
performMutation(connection: MemoryTableConnection, operation: 'insert' | 'update' | 'delete', values: Row | undefined, oldKeyValues?: Row, onConflict?: ConflictResolution, preCoerced?: boolean): Promise<UpdateResult>;
|
|
189
189
|
private validateMutationPermissions;
|
|
190
190
|
private ensureTransactionLayer;
|
|
191
191
|
private performInsert;
|
|
@@ -196,6 +196,14 @@ export declare class MemoryTableManager {
|
|
|
196
196
|
* Returns true if any column covered by a UNIQUE constraint changed between
|
|
197
197
|
* old and new rows, or if any column referenced by a partial-UNIQUE predicate
|
|
198
198
|
* changed (which may transition the row into or out of the predicate's scope).
|
|
199
|
+
*
|
|
200
|
+
* NOTE: the per-column test is byte-level `compareSqlValues`, not the enforcement
|
|
201
|
+
* comparator, so it OVER-triggers for a semantic-ordering column: rewriting a
|
|
202
|
+
* TIMESPAN 'PT1H' to 'PT60M' reports "changed" and re-runs the UNIQUE check, which
|
|
203
|
+
* then excludes the row's own primary key and passes. Correct — this only gates
|
|
204
|
+
* whether to re-check — just not minimal. If UPDATE-heavy workloads over
|
|
205
|
+
* semantic-ordering UNIQUE columns ever show the redundant re-check as hot, route
|
|
206
|
+
* this through `uniqueEnforcementComparators` too.
|
|
199
207
|
*/
|
|
200
208
|
private uniqueColumnsChanged;
|
|
201
209
|
/**
|
|
@@ -346,13 +354,28 @@ export declare class MemoryTableManager {
|
|
|
346
354
|
* backing, and most maintained tables): one empty-array check.
|
|
347
355
|
*/
|
|
348
356
|
private enforceSecondaryUniqueOnMaintenance;
|
|
349
|
-
|
|
357
|
+
/**
|
|
358
|
+
* ADD COLUMN. `insertAtIndex` — when supplied — puts the new column at that slot
|
|
359
|
+
* instead of appending; every existing column at or after it shifts right by one,
|
|
360
|
+
* and each index-bearing schema field is renumbered to match (see
|
|
361
|
+
* {@link shiftSchemaIndicesForInsert}). Omitted ⇒ append, which is what SQL
|
|
362
|
+
* `alter table … add column` always asks for and which leaves the schema rebuild
|
|
363
|
+
* on exactly the path it took before positions existed.
|
|
364
|
+
*/
|
|
365
|
+
addColumn(columnDefAst: ASTColumnDef, backfillEvaluator?: (row: Row) => SqlValue | Promise<SqlValue>, insertAtIndex?: number): Promise<void>;
|
|
350
366
|
dropColumn(columnName: string): Promise<void>;
|
|
351
367
|
renameColumn(oldName: string, newColumnDefAst: ASTColumnDef): Promise<void>;
|
|
352
368
|
/**
|
|
353
369
|
* Apply a single-attribute ALTER COLUMN change (NOT NULL, DEFAULT, DATA TYPE).
|
|
354
370
|
* The caller supplies exactly one populated change; multi-attribute combinations
|
|
355
371
|
* are rejected by the runtime before reaching this method.
|
|
372
|
+
*
|
|
373
|
+
* `validateOnly` runs everything up to (and including) the pre-mutation validation
|
|
374
|
+
* passes — the effective-row NULL / conversion scans, the re-keyed UNIQUE probe, and
|
|
375
|
+
* the primary-key re-key legality/representability passes — and returns before the
|
|
376
|
+
* first mutation, throwing exactly what the real application would throw. The
|
|
377
|
+
* isolation layer uses it to pre-flight an overlay's migration before the shared
|
|
378
|
+
* underlying table mutates irreversibly (see `VirtualTable.alterSchema`).
|
|
356
379
|
*/
|
|
357
380
|
alterColumn(change: {
|
|
358
381
|
columnName: string;
|
|
@@ -360,7 +383,7 @@ export declare class MemoryTableManager {
|
|
|
360
383
|
setDataType?: string;
|
|
361
384
|
setDefault?: Expression | null;
|
|
362
385
|
setCollation?: string;
|
|
363
|
-
}, rows?: EffectiveRowSource): Promise<void>;
|
|
386
|
+
}, rows?: EffectiveRowSource, validateOnly?: boolean): Promise<void>;
|
|
364
387
|
createIndex(newIndexSchemaEntry: IndexSchema, ifNotExistsFromAst?: boolean, rows?: EffectiveRowSource): Promise<void>;
|
|
365
388
|
dropIndex(indexName: string, ifExists?: boolean): Promise<void>;
|
|
366
389
|
/**
|
|
@@ -432,6 +455,25 @@ export declare class MemoryTableManager {
|
|
|
432
455
|
* the Database registry but not in the manager's map.
|
|
433
456
|
*/
|
|
434
457
|
private repointRegisteredConnections;
|
|
458
|
+
/**
|
|
459
|
+
* Moves this manager's Database-registered connections from `<schema>.<oldName>` to
|
|
460
|
+
* `<schema>.<newName>`, for `ALTER TABLE ... RENAME TO`.
|
|
461
|
+
*
|
|
462
|
+
* `MemoryVirtualTableConnection.tableName` is set once at registration, and
|
|
463
|
+
* `Database.getConnectionsForTable` matches on exactly that string — so without this
|
|
464
|
+
* sweep a rename makes the transaction's own connection invisible to
|
|
465
|
+
* {@link registeredConnections} and everything built on it: {@link ddlConnection},
|
|
466
|
+
* {@link knownConnections}, {@link repointRegisteredConnections},
|
|
467
|
+
* {@link openTransactionLayersOldestFirst}. The visible symptom is a second ALTER in
|
|
468
|
+
* the same transaction failing with BUSY — {@link ensureSchemaChangeSafety} exempts
|
|
469
|
+
* `ddlConnection()` from its "nobody else may hold open work" sweep, and with the
|
|
470
|
+
* registry stale that is `undefined`, so the transaction's own connection is judged a
|
|
471
|
+
* stranger. `MemoryTable.ensureConnection` would likewise stop reusing it and register
|
|
472
|
+
* a second connection for the same table.
|
|
473
|
+
*
|
|
474
|
+
* Must run BEFORE `_tableName` moves — it looks the connections up under the old name.
|
|
475
|
+
*/
|
|
476
|
+
private rekeyRegisteredConnections;
|
|
435
477
|
/** Every Database-registered {@link MemoryTableConnection} backed by this manager. */
|
|
436
478
|
private registeredConnections;
|
|
437
479
|
/**
|
|
@@ -485,17 +527,31 @@ export declare class MemoryTableManager {
|
|
|
485
527
|
* the transaction's pending rows outside this manager, so only it can name the rows the
|
|
486
528
|
* issuing connection actually sees; when it supplies them, they are the judged set and this
|
|
487
529
|
* manager's own committed rows are ignored. See `vtab/module.ts` {@link EffectiveRowSource}.
|
|
530
|
+
*
|
|
531
|
+
* `mapRow` judges the rows in a form they do not yet have on disk: an `alter column` that
|
|
532
|
+
* REWRITES values passes the per-row conversion here, so the probe sees the post-ALTER
|
|
533
|
+
* values. Applied to whichever stream is used; the mapping is a read-side wrap and mutates
|
|
534
|
+
* nothing.
|
|
488
535
|
*/
|
|
489
536
|
private validateUniqueOverEffectiveRows;
|
|
490
537
|
/**
|
|
491
|
-
* `ALTER COLUMN
|
|
492
|
-
*
|
|
493
|
-
*
|
|
494
|
-
*
|
|
538
|
+
* `ALTER COLUMN` arm of {@link validateUniqueOverEffectiveRows}: rejects the change when it
|
|
539
|
+
* makes two of the DDL transaction's effective rows collide under any uniqueness-enforcing
|
|
540
|
+
* structure that covers the altered column. Runs before anything is mutated, so a rejection
|
|
541
|
+
* leaves the table and schema untouched and the transaction usable.
|
|
495
542
|
*
|
|
496
|
-
*
|
|
497
|
-
*
|
|
498
|
-
* keys
|
|
543
|
+
* Serves both families of change that can collapse two distinct values onto one:
|
|
544
|
+
*
|
|
545
|
+
* - `SET COLLATE` re-keys the structures under a new comparator; the stored values are
|
|
546
|
+
* untouched, so no `mapRow` is passed.
|
|
547
|
+
* - a value REWRITE (`SET DATA TYPE`, or a `SET NOT NULL` null → DEFAULT backfill) leaves
|
|
548
|
+
* the comparators alone but changes the values; the caller passes a `mapRow` that applies
|
|
549
|
+
* the same per-row conversion the base rewrite will, so the probe judges the post-ALTER
|
|
550
|
+
* values.
|
|
551
|
+
*
|
|
552
|
+
* `newSchema` carries the post-change per-column collations AND logical types, so each probe
|
|
553
|
+
* index compares exactly as the rebuilt structure will (it matters for e.g. `text → real`).
|
|
554
|
+
* Indexes that do not mention the column keep their keys and need no re-check.
|
|
499
555
|
*
|
|
500
556
|
* NOTE: walks `schema.indexes`, so a UNIQUE constraint covered by a row-time materialized
|
|
501
557
|
* view rather than its auto-index (`findIndexForConstraint` prefers the MV) is not re-checked
|
|
@@ -507,21 +563,35 @@ export declare class MemoryTableManager {
|
|
|
507
563
|
* PRIMARY KEY arm of the `alter column … set collate` pre-pass. Runs before anything is
|
|
508
564
|
* mutated, so a rejection leaves the table, the schema and the transaction untouched.
|
|
509
565
|
*
|
|
510
|
-
*
|
|
511
|
-
*
|
|
512
|
-
*
|
|
513
|
-
*
|
|
514
|
-
*
|
|
515
|
-
*
|
|
516
|
-
* in this transaction
|
|
517
|
-
*
|
|
518
|
-
*
|
|
519
|
-
*
|
|
520
|
-
*
|
|
521
|
-
*
|
|
522
|
-
*
|
|
523
|
-
*
|
|
524
|
-
*
|
|
566
|
+
* Asks two questions, in order, over two DIFFERENT row sets:
|
|
567
|
+
*
|
|
568
|
+
* 1. **Is the change legal at all?** — probes the rows the DDL transaction can SEE: the
|
|
569
|
+
* wrapper-supplied `rows` when a wrapper module (the isolation layer) holds the
|
|
570
|
+
* transaction's pending rows outside this manager, otherwise this manager's own
|
|
571
|
+
* layered view ({@link effectiveDdlRows}). A duplicate here is visible to a `select`
|
|
572
|
+
* in this transaction, so the change is simply illegal → `CONSTRAINT`, naming the
|
|
573
|
+
* colliding key.
|
|
574
|
+
* 2. **Can the structures physically carry it?** — probes every layer of this manager's
|
|
575
|
+
* own chain. The primary tree is a map, not a multi-map, so — unlike a secondary
|
|
576
|
+
* index — no tree that a `rollback` / `rollback to savepoint` could restore may hold
|
|
577
|
+
* two rows whose keys collapse under the new comparator. A collision confined to
|
|
578
|
+
* committed rows the transaction has DELETED is therefore refused by physical
|
|
579
|
+
* necessity, not because the data is invalid: the base must keep both rows for a
|
|
580
|
+
* rollback, and a base re-keyed under the new collation could not represent the pair
|
|
581
|
+
* at all → `BUSY` with the same "commit/rollback and retry" posture as
|
|
582
|
+
* {@link ensureSchemaChangeSafety}. The persistent store backend refuses the same
|
|
583
|
+
* shape for the same reason (its committed rows equally survive a rollback — see
|
|
584
|
+
* `backlog/bug-store-pk-collate-rejects-deleted-row-collision`); accepting it would
|
|
585
|
+
* take transaction-scoped DDL (`backlog/feat-transactional-ddl-native-backends`),
|
|
586
|
+
* which Quereus does not have.
|
|
587
|
+
*
|
|
588
|
+
* The passes judge different sets because a wrapper's effective stream and this manager's
|
|
589
|
+
* layers genuinely diverge: staged inserts exist only in the stream, deleted committed
|
|
590
|
+
* rows only in the layers. When `rows` is supplied, the view layer holds the COMMITTED
|
|
591
|
+
* rows — not a subset of what pass 1 judged — so pass 2 starts AT the view; when `rows`
|
|
592
|
+
* is absent, pass 1 judged exactly the view's rows and pass 2 starts at its parent.
|
|
593
|
+
*
|
|
594
|
+
* Pass 2 is deliberately conservative. The chain holds one immutable layer per statement
|
|
525
595
|
* boundary (see `MemoryTableConnection.createSavepoint`'s eager path), so it rejects any
|
|
526
596
|
* transaction that has held a colliding pair at ANY statement boundary — even one whose
|
|
527
597
|
* final view is clean and whose intermediate layer no savepoint can reach. Narrowing that
|
|
@@ -535,14 +605,35 @@ export declare class MemoryTableManager {
|
|
|
535
605
|
*/
|
|
536
606
|
private validateRekeyedPrimaryKey;
|
|
537
607
|
/**
|
|
538
|
-
*
|
|
608
|
+
* A duplicate-key detector over the new primary key functions: feed it rows, and it returns
|
|
609
|
+
* the key the moment one repeats. Shared by both arms of {@link validateRekeyedPrimaryKey}
|
|
610
|
+
* so the async (effective-row) arm and the sync (layer-tree) arm cannot disagree about what
|
|
611
|
+
* counts as a collision.
|
|
612
|
+
*
|
|
613
|
+
* NOTE: the probe holds every row it has seen, because the BTree derives its key from the
|
|
614
|
+
* stored value — so an ALTER over a large table transiently doubles that table's row
|
|
615
|
+
* references. If a wide table ever makes this the memory peak, key the probe by the PK
|
|
616
|
+
* encoding (`primaryKeyFunctions.encode`) into a `Set` instead of by the row.
|
|
617
|
+
*/
|
|
618
|
+
private makePrimaryKeyProbe;
|
|
619
|
+
/**
|
|
620
|
+
* Legality arm of {@link validateRekeyedPrimaryKey}: raises `CONSTRAINT`, naming the key,
|
|
621
|
+
* when two of the rows the DDL transaction can SEE share a primary key under `pkFunctions`.
|
|
622
|
+
* Takes a wrapper's merged async stream or this manager's own synchronous layered view.
|
|
623
|
+
*/
|
|
624
|
+
private assertNoPrimaryKeyCollisionInRows;
|
|
625
|
+
/**
|
|
626
|
+
* Representability arm of {@link validateRekeyedPrimaryKey}: raises `BUSY` when two of
|
|
627
|
+
* `layer`'s physical rows share a primary key under `pkFunctions`. Its rows are ones a
|
|
628
|
+
* rollback could restore, not ones the transaction can see, so this is never a statement
|
|
629
|
+
* about the data's validity — hence the retryable status and wording.
|
|
539
630
|
*
|
|
540
631
|
* NOTE: O(rows) per layer, so O(layers × rows) for a whole chain — one more full pass than
|
|
541
632
|
* the base rebuild the caller is about to do anyway. Fine for a statement this rare; if a
|
|
542
633
|
* deep savepoint stack over a large table ever makes an ALTER slow, note that a layer's rows
|
|
543
634
|
* differ from its parent's only at the keys it wrote, so the walk can be narrowed to those.
|
|
544
635
|
*/
|
|
545
|
-
private
|
|
636
|
+
private assertNoPrimaryKeyCollisionInLayer;
|
|
546
637
|
/**
|
|
547
638
|
* Propagates a schema change — a new index and/or UNIQUE constraint, or a set of structures
|
|
548
639
|
* re-keyed by `alter column … set collate` — into every {@link TransactionLayer} the DDL
|
|
@@ -571,19 +662,53 @@ export declare class MemoryTableManager {
|
|
|
571
662
|
* `convertNulls` routes null own-values through `convert` (the SET NOT NULL null → DEFAULT map);
|
|
572
663
|
* SET DATA TYPE leaves them untouched. No-op in autocommit.
|
|
573
664
|
*
|
|
574
|
-
* PRIMARY-KEY columns never reach here —
|
|
665
|
+
* PRIMARY-KEY columns never reach here — any retype of a key column is rejected before
|
|
575
666
|
* any mutation, and SET NOT NULL leaves the key bytes unchanged — so the primary tree's keys are
|
|
576
667
|
* stable and no re-key is needed.
|
|
577
668
|
*/
|
|
578
669
|
private convertColumnOnOpenLayers;
|
|
670
|
+
/**
|
|
671
|
+
* Phase 1 of propagating `add column` / `drop column` into every open transaction layer:
|
|
672
|
+
* computes each layer's net own-writes rewritten to the new column set, WITHOUT mutating
|
|
673
|
+
* anything (see {@link TransactionLayer.prepareReshapedColumns}). Runs BEFORE the base is
|
|
674
|
+
* touched, because `reshapeRow` can throw — ADD COLUMN's per-row backfill evaluates an
|
|
675
|
+
* engine-supplied `default (new.<col>)` expression against each pending row, and enforces
|
|
676
|
+
* NOT NULL on the result — and a failure part-way through a mutation pass would leave the
|
|
677
|
+
* base and the already-visited layers at the new arity with the rest at the old, with no
|
|
678
|
+
* undo. Failing here instead rejects the ALTER with every structure untouched, exactly like
|
|
679
|
+
* the pre-mutation validation passes of `alterColumn`.
|
|
680
|
+
*
|
|
681
|
+
* The returned plans pin the layer set: {@link installReshapeOnOpenLayers} walks the plans,
|
|
682
|
+
* not a fresh chain snapshot, so the two phases cannot disagree about which layers exist.
|
|
683
|
+
* Reading each layer's effective rows here — before the base rebuild — yields the same rows
|
|
684
|
+
* the single-pass prototype read after it: a layer's pre-reshape tree resolves against the
|
|
685
|
+
* parent's OLD tree either way (the base rebuild REPLACES the base's tree object; it never
|
|
686
|
+
* mutates the one the layers inherit from).
|
|
687
|
+
*/
|
|
688
|
+
private prepareReshapeOnOpenLayers;
|
|
689
|
+
/**
|
|
690
|
+
* Phase 2: installs the prepared reshape into each open transaction layer, oldest-first
|
|
691
|
+
* (the plans were gathered in that order), after the base has been rebuilt at the new arity
|
|
692
|
+
* — each layer's rebuilt tree inherits copy-on-write from its parent's NEW one. Synchronous
|
|
693
|
+
* and mutation-only; everything fallible ran in {@link prepareReshapeOnOpenLayers}.
|
|
694
|
+
*
|
|
695
|
+
* Beyond keeping the transaction's own reads correct, this is what makes the
|
|
696
|
+
* `commitTransaction` snapshot-wrap identity check (`readLayer.getSchema() ===
|
|
697
|
+
* this.tableSchema`) pass after a `rollback to savepoint`: without it the eager savepoint
|
|
698
|
+
* snapshot keeps its frozen pre-ALTER schema, the wrap is skipped, and the snapshot's rows
|
|
699
|
+
* are silently dropped at commit.
|
|
700
|
+
*/
|
|
701
|
+
private installReshapeOnOpenLayers;
|
|
579
702
|
/**
|
|
580
703
|
* The DDL connection's open {@link TransactionLayer}s, oldest-first, base excluded — its
|
|
581
704
|
* pending layer and every savepoint snapshot below it, the layers on the view's parent chain
|
|
582
705
|
* above the base. Empty in autocommit (no connection, or the view IS the base).
|
|
583
706
|
*
|
|
584
|
-
*
|
|
585
|
-
* ({@link convertColumnOnOpenLayers})
|
|
586
|
-
*
|
|
707
|
+
* Schema adoption ({@link adoptSchemaOnOpenLayers}), value conversion
|
|
708
|
+
* ({@link convertColumnOnOpenLayers}), and column-set reshape
|
|
709
|
+
* ({@link prepareReshapeOnOpenLayers} / {@link installReshapeOnOpenLayers}) MUST all apply
|
|
710
|
+
* oldest-first: each layer rebuilds its structures over its parent's, so the parent's must
|
|
711
|
+
* already be the new/converted/reshaped ones.
|
|
587
712
|
*
|
|
588
713
|
* NOTE: the walk takes every TransactionLayer below the view, which normally means the pending
|
|
589
714
|
* layer and its savepoint snapshots. A committed layer already drained into the base by
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../../../../src/vtab/memory/layer/manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,WAAW,EAAE,KAAK,sBAAsB,EAA2H,MAAM,0BAA0B,CAAC;AACpO,OAAO,
|
|
1
|
+
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../../../../src/vtab/memory/layer/manager.ts"],"names":[],"mappings":"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"}
|