@quereus/quereus 4.3.1 → 4.4.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 +25 -7
- package/dist/src/common/types.d.ts +9 -59
- package/dist/src/common/types.d.ts.map +1 -1
- package/dist/src/common/types.js.map +1 -1
- package/dist/src/core/database-assertions.d.ts +2 -2
- package/dist/src/core/database-assertions.d.ts.map +1 -1
- package/dist/src/core/database-assertions.js +4 -3
- package/dist/src/core/database-assertions.js.map +1 -1
- package/dist/src/core/database-external-changes.d.ts +3 -3
- package/dist/src/core/database-external-changes.d.ts.map +1 -1
- package/dist/src/core/database-external-changes.js +13 -10
- package/dist/src/core/database-external-changes.js.map +1 -1
- package/dist/src/core/database-internal.d.ts.map +1 -1
- package/dist/src/core/database-materialized-views-analysis.d.ts +199 -0
- package/dist/src/core/database-materialized-views-analysis.d.ts.map +1 -0
- package/dist/src/core/database-materialized-views-analysis.js +502 -0
- package/dist/src/core/database-materialized-views-analysis.js.map +1 -0
- package/dist/src/core/database-materialized-views-apply.d.ts +422 -0
- package/dist/src/core/database-materialized-views-apply.d.ts.map +1 -0
- package/dist/src/core/database-materialized-views-apply.js +929 -0
- package/dist/src/core/database-materialized-views-apply.js.map +1 -0
- package/dist/src/core/database-materialized-views-plan-builders.d.ts +267 -0
- package/dist/src/core/database-materialized-views-plan-builders.d.ts.map +1 -0
- package/dist/src/core/database-materialized-views-plan-builders.js +1423 -0
- package/dist/src/core/database-materialized-views-plan-builders.js.map +1 -0
- package/dist/src/core/database-materialized-views-plans.d.ts +641 -0
- package/dist/src/core/database-materialized-views-plans.d.ts.map +1 -0
- package/dist/src/core/database-materialized-views-plans.js +13 -0
- package/dist/src/core/database-materialized-views-plans.js.map +1 -0
- package/dist/src/core/database-materialized-views.d.ts +108 -860
- package/dist/src/core/database-materialized-views.d.ts.map +1 -1
- package/dist/src/core/database-materialized-views.js +212 -2165
- package/dist/src/core/database-materialized-views.js.map +1 -1
- package/dist/src/core/database-transaction.d.ts +10 -1
- package/dist/src/core/database-transaction.d.ts.map +1 -1
- package/dist/src/core/database-transaction.js +16 -4
- package/dist/src/core/database-transaction.js.map +1 -1
- package/dist/src/core/database-watchers.d.ts.map +1 -1
- package/dist/src/core/database-watchers.js +2 -1
- package/dist/src/core/database-watchers.js.map +1 -1
- package/dist/src/core/database.d.ts +99 -13
- package/dist/src/core/database.d.ts.map +1 -1
- package/dist/src/core/database.js +270 -50
- package/dist/src/core/database.js.map +1 -1
- package/dist/src/core/derived-row-validator.d.ts +1 -1
- package/dist/src/core/derived-row-validator.d.ts.map +1 -1
- package/dist/src/core/derived-row-validator.js +5 -3
- package/dist/src/core/derived-row-validator.js.map +1 -1
- package/dist/src/core/statement.d.ts +8 -0
- package/dist/src/core/statement.d.ts.map +1 -1
- package/dist/src/core/statement.js +98 -18
- package/dist/src/core/statement.js.map +1 -1
- package/dist/src/emit/ast-stringify.d.ts.map +1 -1
- package/dist/src/emit/ast-stringify.js +24 -13
- package/dist/src/emit/ast-stringify.js.map +1 -1
- package/dist/src/func/builtins/aggregate.d.ts.map +1 -1
- package/dist/src/func/builtins/aggregate.js +127 -21
- package/dist/src/func/builtins/aggregate.js.map +1 -1
- package/dist/src/func/builtins/explain.d.ts.map +1 -1
- package/dist/src/func/builtins/explain.js +2 -1
- package/dist/src/func/builtins/explain.js.map +1 -1
- package/dist/src/func/builtins/json.d.ts.map +1 -1
- package/dist/src/func/builtins/json.js +2 -1
- package/dist/src/func/builtins/json.js.map +1 -1
- package/dist/src/func/builtins/mutation.d.ts.map +1 -1
- package/dist/src/func/builtins/mutation.js +3 -2
- package/dist/src/func/builtins/mutation.js.map +1 -1
- package/dist/src/func/registration.d.ts +6 -1
- package/dist/src/func/registration.d.ts.map +1 -1
- package/dist/src/func/registration.js +16 -0
- package/dist/src/func/registration.js.map +1 -1
- package/dist/src/index.d.ts +16 -6
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +33 -7
- package/dist/src/index.js.map +1 -1
- package/dist/src/parser/ast.d.ts +2 -2
- package/dist/src/parser/lexer.d.ts +11 -1
- package/dist/src/parser/lexer.d.ts.map +1 -1
- package/dist/src/parser/lexer.js +40 -34
- package/dist/src/parser/lexer.js.map +1 -1
- package/dist/src/parser/parser.d.ts.map +1 -1
- package/dist/src/parser/parser.js +16 -9
- package/dist/src/parser/parser.js.map +1 -1
- package/dist/src/planner/analysis/authored-inverse.js +1 -1
- package/dist/src/planner/analysis/comparison-collation.d.ts +52 -0
- package/dist/src/planner/analysis/comparison-collation.d.ts.map +1 -1
- package/dist/src/planner/analysis/comparison-collation.js +84 -7
- package/dist/src/planner/analysis/comparison-collation.js.map +1 -1
- package/dist/src/planner/analysis/constraint-extractor.d.ts.map +1 -1
- package/dist/src/planner/analysis/constraint-extractor.js +64 -17
- package/dist/src/planner/analysis/constraint-extractor.js.map +1 -1
- package/dist/src/planner/analysis/coverage-prover.d.ts +1 -1
- package/dist/src/planner/analysis/coverage-prover.js +1 -1
- package/dist/src/planner/analysis/equi-correlation.d.ts +26 -0
- package/dist/src/planner/analysis/equi-correlation.d.ts.map +1 -0
- package/dist/src/planner/analysis/equi-correlation.js +62 -0
- package/dist/src/planner/analysis/equi-correlation.js.map +1 -0
- package/dist/src/planner/analysis/query-rewrite-matcher.d.ts +54 -18
- package/dist/src/planner/analysis/query-rewrite-matcher.d.ts.map +1 -1
- package/dist/src/planner/analysis/query-rewrite-matcher.js +86 -42
- package/dist/src/planner/analysis/query-rewrite-matcher.js.map +1 -1
- package/dist/src/planner/analysis/sat-checker.d.ts +8 -1
- package/dist/src/planner/analysis/sat-checker.d.ts.map +1 -1
- package/dist/src/planner/analysis/sat-checker.js +117 -22
- package/dist/src/planner/analysis/sat-checker.js.map +1 -1
- package/dist/src/planner/analysis/scalar-invertibility.d.ts +13 -4
- package/dist/src/planner/analysis/scalar-invertibility.d.ts.map +1 -1
- package/dist/src/planner/analysis/scalar-invertibility.js +12 -3
- package/dist/src/planner/analysis/scalar-invertibility.js.map +1 -1
- package/dist/src/planner/analysis/scalar-subqueries.d.ts +28 -0
- package/dist/src/planner/analysis/scalar-subqueries.d.ts.map +1 -0
- package/dist/src/planner/analysis/scalar-subqueries.js +60 -0
- package/dist/src/planner/analysis/scalar-subqueries.js.map +1 -0
- package/dist/src/planner/analysis/update-lineage.d.ts +1 -1
- package/dist/src/planner/analysis/update-lineage.js +1 -1
- package/dist/src/planner/analysis/update-lineage.js.map +1 -1
- package/dist/src/planner/analysis/view-complement.d.ts +2 -2
- package/dist/src/planner/building/delete.js +2 -2
- package/dist/src/planner/building/delete.js.map +1 -1
- package/dist/src/planner/building/dml-target.d.ts +2 -2
- package/dist/src/planner/building/dml-target.js +2 -2
- package/dist/src/planner/building/insert.d.ts.map +1 -1
- package/dist/src/planner/building/insert.js +53 -2
- package/dist/src/planner/building/insert.js.map +1 -1
- package/dist/src/planner/building/schema-resolution.d.ts +3 -0
- package/dist/src/planner/building/schema-resolution.d.ts.map +1 -1
- package/dist/src/planner/building/schema-resolution.js +4 -5
- package/dist/src/planner/building/schema-resolution.js.map +1 -1
- package/dist/src/planner/building/select.d.ts.map +1 -1
- package/dist/src/planner/building/select.js +18 -4
- package/dist/src/planner/building/select.js.map +1 -1
- package/dist/src/planner/building/update.js +2 -2
- package/dist/src/planner/building/update.js.map +1 -1
- package/dist/src/planner/building/view-mutation-builder.js +7 -7
- package/dist/src/planner/building/view-mutation-builder.js.map +1 -1
- package/dist/src/planner/building/with.d.ts.map +1 -1
- package/dist/src/planner/building/with.js +5 -8
- package/dist/src/planner/building/with.js.map +1 -1
- package/dist/src/planner/cache/materialization-advisory.d.ts +34 -2
- package/dist/src/planner/cache/materialization-advisory.d.ts.map +1 -1
- package/dist/src/planner/cache/materialization-advisory.js +185 -42
- package/dist/src/planner/cache/materialization-advisory.js.map +1 -1
- package/dist/src/planner/cache/reference-graph.d.ts +14 -5
- package/dist/src/planner/cache/reference-graph.d.ts.map +1 -1
- package/dist/src/planner/cache/reference-graph.js +31 -39
- package/dist/src/planner/cache/reference-graph.js.map +1 -1
- package/dist/src/planner/cost/index.d.ts +30 -5
- package/dist/src/planner/cost/index.d.ts.map +1 -1
- package/dist/src/planner/cost/index.js +26 -0
- package/dist/src/planner/cost/index.js.map +1 -1
- package/dist/src/planner/debug.d.ts +3 -2
- package/dist/src/planner/debug.d.ts.map +1 -1
- package/dist/src/planner/debug.js +9 -3
- package/dist/src/planner/debug.js.map +1 -1
- package/dist/src/planner/framework/characteristics.d.ts +46 -19
- package/dist/src/planner/framework/characteristics.d.ts.map +1 -1
- package/dist/src/planner/framework/characteristics.js +50 -134
- package/dist/src/planner/framework/characteristics.js.map +1 -1
- package/dist/src/planner/framework/context.d.ts +8 -44
- package/dist/src/planner/framework/context.d.ts.map +1 -1
- package/dist/src/planner/framework/context.js +0 -91
- package/dist/src/planner/framework/context.js.map +1 -1
- package/dist/src/planner/framework/pass.d.ts +7 -0
- package/dist/src/planner/framework/pass.d.ts.map +1 -1
- package/dist/src/planner/framework/pass.js +84 -0
- package/dist/src/planner/framework/pass.js.map +1 -1
- package/dist/src/planner/framework/registry.d.ts +13 -42
- package/dist/src/planner/framework/registry.d.ts.map +1 -1
- package/dist/src/planner/framework/registry.js +14 -182
- package/dist/src/planner/framework/registry.js.map +1 -1
- package/dist/src/planner/mutation/backward-body.d.ts +2 -2
- package/dist/src/planner/mutation/cte-flatten.js +1 -1
- package/dist/src/planner/mutation/decomposition.d.ts +2 -2
- package/dist/src/planner/mutation/decomposition.js +1 -1
- package/dist/src/planner/mutation/lens-enforcement.d.ts.map +1 -1
- package/dist/src/planner/mutation/lens-enforcement.js +2 -1
- package/dist/src/planner/mutation/lens-enforcement.js.map +1 -1
- package/dist/src/planner/mutation/multi-source.d.ts +8 -8
- package/dist/src/planner/mutation/multi-source.js +11 -11
- package/dist/src/planner/mutation/multi-source.js.map +1 -1
- package/dist/src/planner/mutation/propagate.d.ts +1 -1
- package/dist/src/planner/mutation/propagate.js +1 -1
- package/dist/src/planner/mutation/scope-transform.d.ts +2 -2
- package/dist/src/planner/mutation/scope-transform.js +3 -3
- package/dist/src/planner/mutation/scope-transform.js.map +1 -1
- package/dist/src/planner/mutation/set-op.d.ts +1 -1
- package/dist/src/planner/mutation/set-op.d.ts.map +1 -1
- package/dist/src/planner/mutation/set-op.js +3 -2
- package/dist/src/planner/mutation/set-op.js.map +1 -1
- package/dist/src/planner/mutation/single-source.d.ts +3 -3
- package/dist/src/planner/mutation/single-source.js +9 -9
- package/dist/src/planner/mutation/single-source.js.map +1 -1
- package/dist/src/planner/nodes/aggregate-function.d.ts +3 -1
- package/dist/src/planner/nodes/aggregate-function.d.ts.map +1 -1
- package/dist/src/planner/nodes/aggregate-function.js +1 -0
- package/dist/src/planner/nodes/aggregate-function.js.map +1 -1
- package/dist/src/planner/nodes/aggregate-node.d.ts +1 -0
- package/dist/src/planner/nodes/aggregate-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/aggregate-node.js +8 -1
- package/dist/src/planner/nodes/aggregate-node.js.map +1 -1
- package/dist/src/planner/nodes/alias-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/alias-node.js +3 -1
- package/dist/src/planner/nodes/alias-node.js.map +1 -1
- package/dist/src/planner/nodes/asof-scan-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/asof-scan-node.js +3 -2
- package/dist/src/planner/nodes/asof-scan-node.js.map +1 -1
- package/dist/src/planner/nodes/asserted-keys-node.d.ts +1 -1
- package/dist/src/planner/nodes/asserted-keys-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/asserted-keys-node.js +5 -2
- package/dist/src/planner/nodes/asserted-keys-node.js.map +1 -1
- package/dist/src/planner/nodes/async-gather-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/async-gather-node.js +3 -1
- package/dist/src/planner/nodes/async-gather-node.js.map +1 -1
- package/dist/src/planner/nodes/block.js +3 -3
- package/dist/src/planner/nodes/block.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 +5 -1
- package/dist/src/planner/nodes/bloom-join-node.js.map +1 -1
- package/dist/src/planner/nodes/cache-node.d.ts +19 -2
- package/dist/src/planner/nodes/cache-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/cache-node.js +43 -3
- package/dist/src/planner/nodes/cache-node.js.map +1 -1
- package/dist/src/planner/nodes/cte-node.d.ts +16 -1
- package/dist/src/planner/nodes/cte-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/cte-node.js +16 -3
- package/dist/src/planner/nodes/cte-node.js.map +1 -1
- package/dist/src/planner/nodes/distinct-node.js +3 -3
- package/dist/src/planner/nodes/distinct-node.js.map +1 -1
- package/dist/src/planner/nodes/dml-executor-node.d.ts +21 -0
- 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/envelope-scan-node.d.ts +1 -1
- package/dist/src/planner/nodes/envelope-scan-node.js +1 -1
- package/dist/src/planner/nodes/fanout-lookup-join-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/fanout-lookup-join-node.js +4 -2
- package/dist/src/planner/nodes/fanout-lookup-join-node.js.map +1 -1
- package/dist/src/planner/nodes/filter.d.ts +10 -2
- package/dist/src/planner/nodes/filter.d.ts.map +1 -1
- package/dist/src/planner/nodes/filter.js +81 -14
- package/dist/src/planner/nodes/filter.js.map +1 -1
- package/dist/src/planner/nodes/hash-aggregate.d.ts +12 -1
- package/dist/src/planner/nodes/hash-aggregate.d.ts.map +1 -1
- package/dist/src/planner/nodes/hash-aggregate.js +28 -1
- package/dist/src/planner/nodes/hash-aggregate.js.map +1 -1
- package/dist/src/planner/nodes/internal-recursive-cte-ref-node.d.ts +3 -1
- package/dist/src/planner/nodes/internal-recursive-cte-ref-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/internal-recursive-cte-ref-node.js +1 -0
- package/dist/src/planner/nodes/internal-recursive-cte-ref-node.js.map +1 -1
- package/dist/src/planner/nodes/join-node.d.ts +3 -1
- package/dist/src/planner/nodes/join-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/join-node.js +5 -5
- package/dist/src/planner/nodes/join-node.js.map +1 -1
- package/dist/src/planner/nodes/lens-auxiliary-access-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/lens-auxiliary-access-node.js +4 -1
- package/dist/src/planner/nodes/lens-auxiliary-access-node.js.map +1 -1
- package/dist/src/planner/nodes/limit-offset.d.ts +1 -0
- package/dist/src/planner/nodes/limit-offset.d.ts.map +1 -1
- package/dist/src/planner/nodes/limit-offset.js +4 -3
- package/dist/src/planner/nodes/limit-offset.js.map +1 -1
- package/dist/src/planner/nodes/merge-join-node.d.ts +2 -0
- package/dist/src/planner/nodes/merge-join-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/merge-join-node.js +6 -1
- package/dist/src/planner/nodes/merge-join-node.js.map +1 -1
- package/dist/src/planner/nodes/ordinal-slice-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/ordinal-slice-node.js +3 -1
- package/dist/src/planner/nodes/ordinal-slice-node.js.map +1 -1
- package/dist/src/planner/nodes/plan-node.d.ts +68 -5
- package/dist/src/planner/nodes/plan-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/plan-node.js +137 -24
- package/dist/src/planner/nodes/plan-node.js.map +1 -1
- package/dist/src/planner/nodes/project-node.d.ts +3 -2
- package/dist/src/planner/nodes/project-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/project-node.js +1 -0
- package/dist/src/planner/nodes/project-node.js.map +1 -1
- package/dist/src/planner/nodes/recursive-cte-node.d.ts +30 -1
- package/dist/src/planner/nodes/recursive-cte-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/recursive-cte-node.js +38 -5
- package/dist/src/planner/nodes/recursive-cte-node.js.map +1 -1
- package/dist/src/planner/nodes/reference.d.ts +5 -1
- package/dist/src/planner/nodes/reference.d.ts.map +1 -1
- package/dist/src/planner/nodes/reference.js +3 -0
- package/dist/src/planner/nodes/reference.js.map +1 -1
- package/dist/src/planner/nodes/remote-query-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/remote-query-node.js +3 -1
- package/dist/src/planner/nodes/remote-query-node.js.map +1 -1
- package/dist/src/planner/nodes/retrieve-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/retrieve-node.js +3 -1
- package/dist/src/planner/nodes/retrieve-node.js.map +1 -1
- package/dist/src/planner/nodes/set-operation-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/set-operation-node.js +3 -1
- package/dist/src/planner/nodes/set-operation-node.js.map +1 -1
- package/dist/src/planner/nodes/sink-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/sink-node.js +3 -1
- package/dist/src/planner/nodes/sink-node.js.map +1 -1
- package/dist/src/planner/nodes/sort.d.ts +2 -1
- package/dist/src/planner/nodes/sort.d.ts.map +1 -1
- package/dist/src/planner/nodes/sort.js +9 -5
- package/dist/src/planner/nodes/sort.js.map +1 -1
- package/dist/src/planner/nodes/stream-aggregate.d.ts +12 -1
- package/dist/src/planner/nodes/stream-aggregate.d.ts.map +1 -1
- package/dist/src/planner/nodes/stream-aggregate.js +32 -3
- package/dist/src/planner/nodes/stream-aggregate.js.map +1 -1
- package/dist/src/planner/nodes/table-access-nodes.d.ts +2 -1
- package/dist/src/planner/nodes/table-access-nodes.d.ts.map +1 -1
- package/dist/src/planner/nodes/table-access-nodes.js +2 -0
- package/dist/src/planner/nodes/table-access-nodes.js.map +1 -1
- package/dist/src/planner/nodes/view-mutation-node.d.ts +2 -2
- package/dist/src/planner/nodes/view-mutation-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/view-mutation-node.js +5 -1
- package/dist/src/planner/nodes/view-mutation-node.js.map +1 -1
- package/dist/src/planner/nodes/window-function.d.ts +3 -1
- package/dist/src/planner/nodes/window-function.d.ts.map +1 -1
- package/dist/src/planner/nodes/window-function.js +1 -0
- package/dist/src/planner/nodes/window-function.js.map +1 -1
- package/dist/src/planner/optimizer.d.ts +52 -8
- package/dist/src/planner/optimizer.d.ts.map +1 -1
- package/dist/src/planner/optimizer.js +1014 -895
- package/dist/src/planner/optimizer.js.map +1 -1
- 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 +235 -202
- package/dist/src/planner/rules/access/rule-select-access-path.js.map +1 -1
- package/dist/src/planner/rules/cache/rule-cte-optimization.d.ts.map +1 -1
- package/dist/src/planner/rules/cache/rule-cte-optimization.js +8 -1
- package/dist/src/planner/rules/cache/rule-cte-optimization.js.map +1 -1
- package/dist/src/planner/rules/cache/rule-in-subquery-cache.d.ts +7 -0
- package/dist/src/planner/rules/cache/rule-in-subquery-cache.d.ts.map +1 -1
- package/dist/src/planner/rules/cache/rule-in-subquery-cache.js +14 -1
- package/dist/src/planner/rules/cache/rule-in-subquery-cache.js.map +1 -1
- package/dist/src/planner/rules/cache/rule-materialized-view-rewrite.d.ts +2 -2
- 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 +55 -56
- package/dist/src/planner/rules/cache/rule-materialized-view-rewrite.js.map +1 -1
- package/dist/src/planner/rules/cache/rule-mutating-subquery-cache.d.ts.map +1 -1
- package/dist/src/planner/rules/cache/rule-mutating-subquery-cache.js +6 -0
- package/dist/src/planner/rules/cache/rule-mutating-subquery-cache.js.map +1 -1
- package/dist/src/planner/rules/cache/rule-nested-loop-right-cache.d.ts +25 -0
- package/dist/src/planner/rules/cache/rule-nested-loop-right-cache.d.ts.map +1 -0
- package/dist/src/planner/rules/cache/rule-nested-loop-right-cache.js +176 -0
- package/dist/src/planner/rules/cache/rule-nested-loop-right-cache.js.map +1 -0
- package/dist/src/planner/rules/cache/rule-scalar-cse.d.ts +1 -1
- package/dist/src/planner/rules/cache/rule-scalar-cse.js +1 -1
- package/dist/src/planner/rules/cache/rule-scalar-subquery-cache.d.ts +29 -0
- package/dist/src/planner/rules/cache/rule-scalar-subquery-cache.d.ts.map +1 -0
- package/dist/src/planner/rules/cache/rule-scalar-subquery-cache.js +66 -0
- package/dist/src/planner/rules/cache/rule-scalar-subquery-cache.js.map +1 -0
- package/dist/src/planner/rules/join/rule-fanout-batched-outer.d.ts +1 -1
- package/dist/src/planner/rules/join/rule-fanout-batched-outer.js +1 -1
- package/dist/src/planner/rules/join/rule-fanout-lookup-join.d.ts.map +1 -1
- package/dist/src/planner/rules/join/rule-fanout-lookup-join.js +1 -54
- package/dist/src/planner/rules/join/rule-fanout-lookup-join.js.map +1 -1
- package/dist/src/planner/rules/join/rule-inner-join-existence-recovery.d.ts +1 -1
- package/dist/src/planner/rules/join/rule-inner-join-existence-recovery.js +1 -1
- package/dist/src/planner/rules/join/rule-join-elimination.d.ts +1 -1
- package/dist/src/planner/rules/join/rule-join-elimination.js +1 -1
- package/dist/src/planner/rules/parallel/rule-async-gather-zip-by-key.js +5 -6
- package/dist/src/planner/rules/parallel/rule-async-gather-zip-by-key.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-contradiction.d.ts +2 -2
- package/dist/src/planner/rules/predicate/rule-filter-contradiction.d.ts.map +1 -1
- package/dist/src/planner/rules/predicate/rule-filter-contradiction.js +4 -3
- package/dist/src/planner/rules/predicate/rule-filter-contradiction.js.map +1 -1
- package/dist/src/planner/rules/predicate/rule-filter-selectivity.d.ts +19 -0
- package/dist/src/planner/rules/predicate/rule-filter-selectivity.d.ts.map +1 -0
- package/dist/src/planner/rules/predicate/rule-filter-selectivity.js +48 -0
- package/dist/src/planner/rules/predicate/rule-filter-selectivity.js.map +1 -0
- package/dist/src/planner/rules/predicate/rule-sargable-range-rewrite.js +12 -1
- package/dist/src/planner/rules/predicate/rule-sargable-range-rewrite.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 +22 -20
- package/dist/src/planner/rules/retrieve/rule-grow-retrieve.js.map +1 -1
- package/dist/src/planner/rules/shared/index-style-context.d.ts +39 -0
- package/dist/src/planner/rules/shared/index-style-context.d.ts.map +1 -0
- package/dist/src/planner/rules/shared/index-style-context.js +26 -0
- package/dist/src/planner/rules/shared/index-style-context.js.map +1 -0
- package/dist/src/planner/rules/sort/rule-orderby-fd-pruning.d.ts +1 -1
- package/dist/src/planner/rules/sort/rule-orderby-fd-pruning.js +1 -1
- package/dist/src/planner/rules/subquery/rule-anti-join-fk-empty.d.ts +1 -1
- package/dist/src/planner/rules/subquery/rule-anti-join-fk-empty.js +1 -1
- package/dist/src/planner/rules/subquery/rule-scalar-agg-decorrelation.d.ts +191 -0
- package/dist/src/planner/rules/subquery/rule-scalar-agg-decorrelation.d.ts.map +1 -0
- package/dist/src/planner/rules/subquery/rule-scalar-agg-decorrelation.js +623 -0
- package/dist/src/planner/rules/subquery/rule-scalar-agg-decorrelation.js.map +1 -0
- package/dist/src/planner/rules/subquery/rule-subquery-decorrelation.d.ts +10 -1
- package/dist/src/planner/rules/subquery/rule-subquery-decorrelation.d.ts.map +1 -1
- package/dist/src/planner/rules/subquery/rule-subquery-decorrelation.js +242 -51
- package/dist/src/planner/rules/subquery/rule-subquery-decorrelation.js.map +1 -1
- package/dist/src/planner/stats/analyze.d.ts.map +1 -1
- package/dist/src/planner/stats/analyze.js +2 -20
- package/dist/src/planner/stats/analyze.js.map +1 -1
- package/dist/src/planner/stats/histogram.d.ts.map +1 -1
- package/dist/src/planner/stats/histogram.js +4 -0
- package/dist/src/planner/stats/histogram.js.map +1 -1
- package/dist/src/planner/util/fd-utils.d.ts +2 -3
- package/dist/src/planner/util/fd-utils.d.ts.map +1 -1
- package/dist/src/planner/util/fd-utils.js +2 -3
- package/dist/src/planner/util/fd-utils.js.map +1 -1
- package/dist/src/planner/validation/plan-validator.d.ts +16 -0
- package/dist/src/planner/validation/plan-validator.d.ts.map +1 -1
- package/dist/src/planner/validation/plan-validator.js +36 -0
- package/dist/src/planner/validation/plan-validator.js.map +1 -1
- package/dist/src/runtime/async-util.d.ts +26 -0
- package/dist/src/runtime/async-util.d.ts.map +1 -1
- package/dist/src/runtime/async-util.js +139 -55
- package/dist/src/runtime/async-util.js.map +1 -1
- package/dist/src/runtime/cache/shared-cache.d.ts +7 -0
- package/dist/src/runtime/cache/shared-cache.d.ts.map +1 -1
- package/dist/src/runtime/cache/shared-cache.js +34 -1
- package/dist/src/runtime/cache/shared-cache.js.map +1 -1
- package/dist/src/runtime/context-helpers.d.ts +32 -4
- package/dist/src/runtime/context-helpers.d.ts.map +1 -1
- package/dist/src/runtime/context-helpers.js +26 -9
- package/dist/src/runtime/context-helpers.js.map +1 -1
- package/dist/src/runtime/deferred-constraint-queue.d.ts.map +1 -1
- package/dist/src/runtime/deferred-constraint-queue.js +2 -1
- package/dist/src/runtime/deferred-constraint-queue.js.map +1 -1
- package/dist/src/runtime/emission-context.d.ts +27 -3
- package/dist/src/runtime/emission-context.d.ts.map +1 -1
- package/dist/src/runtime/emission-context.js +38 -7
- package/dist/src/runtime/emission-context.js.map +1 -1
- package/dist/src/runtime/emit/add-constraint.d.ts.map +1 -1
- package/dist/src/runtime/emit/add-constraint.js +7 -1
- package/dist/src/runtime/emit/add-constraint.js.map +1 -1
- package/dist/src/runtime/emit/aggregate.d.ts +2 -3
- package/dist/src/runtime/emit/aggregate.d.ts.map +1 -1
- package/dist/src/runtime/emit/aggregate.js +23 -28
- 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 +98 -9
- package/dist/src/runtime/emit/alter-table.js.map +1 -1
- package/dist/src/runtime/emit/analyze.d.ts.map +1 -1
- package/dist/src/runtime/emit/analyze.js +2 -1
- package/dist/src/runtime/emit/analyze.js.map +1 -1
- package/dist/src/runtime/emit/asof-scan.d.ts.map +1 -1
- package/dist/src/runtime/emit/asof-scan.js +13 -10
- package/dist/src/runtime/emit/asof-scan.js.map +1 -1
- package/dist/src/runtime/emit/async-gather.d.ts.map +1 -1
- package/dist/src/runtime/emit/async-gather.js +4 -3
- package/dist/src/runtime/emit/async-gather.js.map +1 -1
- package/dist/src/runtime/emit/between.d.ts.map +1 -1
- package/dist/src/runtime/emit/between.js +2 -1
- 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 +122 -14
- package/dist/src/runtime/emit/binary.js.map +1 -1
- package/dist/src/runtime/emit/block.d.ts.map +1 -1
- package/dist/src/runtime/emit/block.js +2 -1
- package/dist/src/runtime/emit/block.js.map +1 -1
- package/dist/src/runtime/emit/bloom-join.d.ts.map +1 -1
- package/dist/src/runtime/emit/bloom-join.js +20 -8
- package/dist/src/runtime/emit/bloom-join.js.map +1 -1
- package/dist/src/runtime/emit/cache.d.ts +7 -3
- package/dist/src/runtime/emit/cache.d.ts.map +1 -1
- package/dist/src/runtime/emit/cache.js +25 -7
- package/dist/src/runtime/emit/cache.js.map +1 -1
- package/dist/src/runtime/emit/case.d.ts.map +1 -1
- package/dist/src/runtime/emit/case.js +66 -45
- 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 +2 -1
- 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 +13 -7
- package/dist/src/runtime/emit/constraint-check.js.map +1 -1
- package/dist/src/runtime/emit/create-assertion.d.ts.map +1 -1
- package/dist/src/runtime/emit/create-assertion.js +2 -1
- package/dist/src/runtime/emit/create-assertion.js.map +1 -1
- package/dist/src/runtime/emit/create-index.d.ts.map +1 -1
- package/dist/src/runtime/emit/create-index.js +12 -1
- package/dist/src/runtime/emit/create-index.js.map +1 -1
- package/dist/src/runtime/emit/create-table.d.ts.map +1 -1
- package/dist/src/runtime/emit/create-table.js +12 -1
- package/dist/src/runtime/emit/create-table.js.map +1 -1
- package/dist/src/runtime/emit/cte-reference.d.ts.map +1 -1
- package/dist/src/runtime/emit/cte-reference.js +2 -1
- package/dist/src/runtime/emit/cte-reference.js.map +1 -1
- package/dist/src/runtime/emit/cte.d.ts.map +1 -1
- package/dist/src/runtime/emit/cte.js +45 -21
- package/dist/src/runtime/emit/cte.js.map +1 -1
- package/dist/src/runtime/emit/ddl-transaction-policy.d.ts +50 -0
- package/dist/src/runtime/emit/ddl-transaction-policy.d.ts.map +1 -0
- package/dist/src/runtime/emit/ddl-transaction-policy.js +69 -0
- package/dist/src/runtime/emit/ddl-transaction-policy.js.map +1 -0
- package/dist/src/runtime/emit/delete.d.ts.map +1 -1
- package/dist/src/runtime/emit/delete.js +2 -1
- package/dist/src/runtime/emit/delete.js.map +1 -1
- package/dist/src/runtime/emit/distinct.d.ts.map +1 -1
- package/dist/src/runtime/emit/distinct.js +2 -1
- 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 +138 -74
- package/dist/src/runtime/emit/dml-executor.js.map +1 -1
- package/dist/src/runtime/emit/drop-assertion.d.ts.map +1 -1
- package/dist/src/runtime/emit/drop-assertion.js +2 -1
- package/dist/src/runtime/emit/drop-assertion.js.map +1 -1
- package/dist/src/runtime/emit/drop-index.d.ts.map +1 -1
- package/dist/src/runtime/emit/drop-index.js +17 -1
- package/dist/src/runtime/emit/drop-index.js.map +1 -1
- package/dist/src/runtime/emit/drop-table.d.ts.map +1 -1
- package/dist/src/runtime/emit/drop-table.js +11 -1
- package/dist/src/runtime/emit/drop-table.js.map +1 -1
- package/dist/src/runtime/emit/eager-prefetch.d.ts.map +1 -1
- package/dist/src/runtime/emit/eager-prefetch.js +2 -1
- package/dist/src/runtime/emit/eager-prefetch.js.map +1 -1
- package/dist/src/runtime/emit/envelope-scan.d.ts.map +1 -1
- package/dist/src/runtime/emit/envelope-scan.js +2 -1
- package/dist/src/runtime/emit/envelope-scan.js.map +1 -1
- package/dist/src/runtime/emit/fanout-lookup-join.d.ts.map +1 -1
- package/dist/src/runtime/emit/fanout-lookup-join.js +3 -2
- package/dist/src/runtime/emit/fanout-lookup-join.js.map +1 -1
- package/dist/src/runtime/emit/filter.d.ts.map +1 -1
- package/dist/src/runtime/emit/filter.js +8 -3
- 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 -11
- 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 +2 -1
- package/dist/src/runtime/emit/insert.js.map +1 -1
- package/dist/src/runtime/emit/join.d.ts.map +1 -1
- package/dist/src/runtime/emit/join.js +20 -6
- package/dist/src/runtime/emit/join.js.map +1 -1
- package/dist/src/runtime/emit/limit-offset.d.ts.map +1 -1
- package/dist/src/runtime/emit/limit-offset.js +2 -1
- package/dist/src/runtime/emit/limit-offset.js.map +1 -1
- package/dist/src/runtime/emit/literal.d.ts.map +1 -1
- package/dist/src/runtime/emit/literal.js +2 -1
- package/dist/src/runtime/emit/literal.js.map +1 -1
- package/dist/src/runtime/emit/materialized-view-helpers.d.ts +22 -0
- package/dist/src/runtime/emit/materialized-view-helpers.d.ts.map +1 -1
- package/dist/src/runtime/emit/materialized-view-helpers.js +128 -16
- 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 +6 -0
- 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 +14 -4
- package/dist/src/runtime/emit/merge-join.js.map +1 -1
- package/dist/src/runtime/emit/ordinal-slice.d.ts.map +1 -1
- package/dist/src/runtime/emit/ordinal-slice.js +2 -1
- package/dist/src/runtime/emit/ordinal-slice.js.map +1 -1
- package/dist/src/runtime/emit/pragma.d.ts.map +1 -1
- package/dist/src/runtime/emit/pragma.js +2 -1
- package/dist/src/runtime/emit/pragma.js.map +1 -1
- package/dist/src/runtime/emit/project.d.ts.map +1 -1
- package/dist/src/runtime/emit/project.js +7 -2
- package/dist/src/runtime/emit/project.js.map +1 -1
- package/dist/src/runtime/emit/recursive-cte.d.ts.map +1 -1
- package/dist/src/runtime/emit/recursive-cte.js +61 -2
- package/dist/src/runtime/emit/recursive-cte.js.map +1 -1
- package/dist/src/runtime/emit/returning.d.ts.map +1 -1
- package/dist/src/runtime/emit/returning.js +7 -2
- package/dist/src/runtime/emit/returning.js.map +1 -1
- package/dist/src/runtime/emit/scalar-function.d.ts.map +1 -1
- package/dist/src/runtime/emit/scalar-function.js +2 -1
- package/dist/src/runtime/emit/scalar-function.js.map +1 -1
- package/dist/src/runtime/emit/scan.d.ts.map +1 -1
- package/dist/src/runtime/emit/scan.js +55 -17
- package/dist/src/runtime/emit/scan.js.map +1 -1
- package/dist/src/runtime/emit/schema-declarative.d.ts.map +1 -1
- package/dist/src/runtime/emit/schema-declarative.js +6 -5
- package/dist/src/runtime/emit/schema-declarative.js.map +1 -1
- package/dist/src/runtime/emit/sequencing.d.ts.map +1 -1
- package/dist/src/runtime/emit/sequencing.js +2 -1
- package/dist/src/runtime/emit/sequencing.js.map +1 -1
- package/dist/src/runtime/emit/set-operation.d.ts.map +1 -1
- package/dist/src/runtime/emit/set-operation.js +6 -5
- package/dist/src/runtime/emit/set-operation.js.map +1 -1
- package/dist/src/runtime/emit/sink.d.ts.map +1 -1
- package/dist/src/runtime/emit/sink.js +2 -1
- package/dist/src/runtime/emit/sink.js.map +1 -1
- package/dist/src/runtime/emit/sort.d.ts.map +1 -1
- package/dist/src/runtime/emit/sort.js +2 -1
- 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 +42 -23
- package/dist/src/runtime/emit/subquery.js.map +1 -1
- package/dist/src/runtime/emit/table-valued-function.d.ts.map +1 -1
- package/dist/src/runtime/emit/table-valued-function.js +2 -1
- package/dist/src/runtime/emit/table-valued-function.js.map +1 -1
- package/dist/src/runtime/emit/temporal-arithmetic.d.ts.map +1 -1
- package/dist/src/runtime/emit/temporal-arithmetic.js +2 -1
- package/dist/src/runtime/emit/temporal-arithmetic.js.map +1 -1
- package/dist/src/runtime/emit/transaction.d.ts.map +1 -1
- package/dist/src/runtime/emit/transaction.js +2 -1
- package/dist/src/runtime/emit/transaction.js.map +1 -1
- package/dist/src/runtime/emit/unary.d.ts.map +1 -1
- package/dist/src/runtime/emit/unary.js +2 -1
- package/dist/src/runtime/emit/unary.js.map +1 -1
- package/dist/src/runtime/emit/update.d.ts.map +1 -1
- package/dist/src/runtime/emit/update.js +2 -1
- package/dist/src/runtime/emit/update.js.map +1 -1
- package/dist/src/runtime/emit/values.d.ts.map +1 -1
- package/dist/src/runtime/emit/values.js +2 -1
- package/dist/src/runtime/emit/values.js.map +1 -1
- package/dist/src/runtime/emit/view-mutation.d.ts +1 -1
- package/dist/src/runtime/emit/view-mutation.d.ts.map +1 -1
- package/dist/src/runtime/emit/view-mutation.js +6 -3
- package/dist/src/runtime/emit/view-mutation.js.map +1 -1
- package/dist/src/runtime/emit/window.d.ts.map +1 -1
- package/dist/src/runtime/emit/window.js +26 -9
- package/dist/src/runtime/emit/window.js.map +1 -1
- package/dist/src/runtime/emitters.d.ts +11 -3
- package/dist/src/runtime/emitters.d.ts.map +1 -1
- package/dist/src/runtime/emitters.js +13 -22
- package/dist/src/runtime/emitters.js.map +1 -1
- package/dist/src/runtime/foreign-key-actions.d.ts.map +1 -1
- package/dist/src/runtime/foreign-key-actions.js +39 -13
- package/dist/src/runtime/foreign-key-actions.js.map +1 -1
- package/dist/src/runtime/parallel-driver.d.ts +32 -4
- package/dist/src/runtime/parallel-driver.d.ts.map +1 -1
- package/dist/src/runtime/parallel-driver.js +88 -18
- package/dist/src/runtime/parallel-driver.js.map +1 -1
- package/dist/src/runtime/scheduler.d.ts +56 -7
- package/dist/src/runtime/scheduler.d.ts.map +1 -1
- package/dist/src/runtime/scheduler.js +223 -200
- package/dist/src/runtime/scheduler.js.map +1 -1
- package/dist/src/runtime/strict-flags.d.ts +22 -0
- package/dist/src/runtime/strict-flags.d.ts.map +1 -0
- package/dist/src/runtime/strict-flags.js +26 -0
- package/dist/src/runtime/strict-flags.js.map +1 -0
- package/dist/src/runtime/strict-fork.d.ts +4 -4
- package/dist/src/runtime/strict-fork.d.ts.map +1 -1
- package/dist/src/runtime/strict-fork.js +175 -31
- package/dist/src/runtime/strict-fork.js.map +1 -1
- package/dist/src/runtime/types.d.ts +102 -4
- package/dist/src/runtime/types.d.ts.map +1 -1
- package/dist/src/runtime/types.js +37 -0
- package/dist/src/runtime/types.js.map +1 -1
- package/dist/src/runtime/utils.d.ts.map +1 -1
- package/dist/src/runtime/utils.js +8 -17
- package/dist/src/runtime/utils.js.map +1 -1
- package/dist/src/schema/column.d.ts +8 -0
- package/dist/src/schema/column.d.ts.map +1 -1
- package/dist/src/schema/column.js.map +1 -1
- package/dist/src/schema/ddl-generator.js +5 -0
- package/dist/src/schema/ddl-generator.js.map +1 -1
- package/dist/src/schema/function.d.ts +79 -0
- package/dist/src/schema/function.d.ts.map +1 -1
- package/dist/src/schema/function.js.map +1 -1
- package/dist/src/schema/lens-compiler.js +2 -2
- package/dist/src/schema/lens-compiler.js.map +1 -1
- package/dist/src/schema/lens-prover.d.ts.map +1 -1
- package/dist/src/schema/lens-prover.js +2 -3
- package/dist/src/schema/lens-prover.js.map +1 -1
- package/dist/src/schema/lens.d.ts +1 -1
- package/dist/src/schema/manager.d.ts.map +1 -1
- package/dist/src/schema/manager.js +7 -2
- package/dist/src/schema/manager.js.map +1 -1
- package/dist/src/schema/rename-rewriter.d.ts +61 -0
- package/dist/src/schema/rename-rewriter.d.ts.map +1 -1
- package/dist/src/schema/rename-rewriter.js +77 -0
- package/dist/src/schema/rename-rewriter.js.map +1 -1
- package/dist/src/schema/table.d.ts +36 -8
- package/dist/src/schema/table.d.ts.map +1 -1
- package/dist/src/schema/table.js +61 -11
- package/dist/src/schema/table.js.map +1 -1
- package/dist/src/schema/unique-enforcement.d.ts +28 -5
- package/dist/src/schema/unique-enforcement.d.ts.map +1 -1
- package/dist/src/schema/unique-enforcement.js +37 -5
- package/dist/src/schema/unique-enforcement.js.map +1 -1
- package/dist/src/schema/view.d.ts +1 -1
- package/dist/src/schema/view.js +1 -1
- package/dist/src/types/json-type.d.ts.map +1 -1
- package/dist/src/types/json-type.js +18 -8
- package/dist/src/types/json-type.js.map +1 -1
- package/dist/src/types/logical-type.d.ts +26 -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/util/comparison.d.ts +83 -59
- package/dist/src/util/comparison.d.ts.map +1 -1
- package/dist/src/util/comparison.js +191 -131
- package/dist/src/util/comparison.js.map +1 -1
- package/dist/src/util/json-canonical.d.ts +34 -0
- package/dist/src/util/json-canonical.d.ts.map +1 -0
- package/dist/src/util/json-canonical.js +32 -0
- package/dist/src/util/json-canonical.js.map +1 -0
- package/dist/src/util/key-serializer.d.ts +10 -3
- package/dist/src/util/key-serializer.d.ts.map +1 -1
- package/dist/src/util/key-serializer.js +43 -17
- package/dist/src/util/key-serializer.js.map +1 -1
- package/dist/src/util/key-tuple-codec.d.ts +37 -0
- package/dist/src/util/key-tuple-codec.d.ts.map +1 -0
- package/dist/src/util/key-tuple-codec.js +65 -0
- package/dist/src/util/key-tuple-codec.js.map +1 -0
- package/dist/src/util/latches.d.ts +29 -3
- package/dist/src/util/latches.d.ts.map +1 -1
- package/dist/src/util/latches.js +60 -6
- package/dist/src/util/latches.js.map +1 -1
- package/dist/src/util/patterns.d.ts +22 -8
- package/dist/src/util/patterns.d.ts.map +1 -1
- package/dist/src/util/patterns.js +87 -16
- package/dist/src/util/patterns.js.map +1 -1
- package/dist/src/util/qualified-name.d.ts +10 -0
- package/dist/src/util/qualified-name.d.ts.map +1 -0
- package/dist/src/util/qualified-name.js +15 -0
- package/dist/src/util/qualified-name.js.map +1 -0
- package/dist/src/vtab/backing-host.d.ts +8 -1
- package/dist/src/vtab/backing-host.d.ts.map +1 -1
- package/dist/src/vtab/backing-host.js +7 -0
- package/dist/src/vtab/backing-host.js.map +1 -1
- package/dist/src/vtab/best-access-plan.d.ts +18 -0
- package/dist/src/vtab/best-access-plan.d.ts.map +1 -1
- package/dist/src/vtab/best-access-plan.js +15 -0
- package/dist/src/vtab/best-access-plan.js.map +1 -1
- package/dist/src/vtab/capabilities.d.ts +44 -0
- package/dist/src/vtab/capabilities.d.ts.map +1 -1
- package/dist/src/vtab/filter-info.d.ts +42 -0
- package/dist/src/vtab/filter-info.d.ts.map +1 -1
- package/dist/src/vtab/filter-info.js +137 -1
- package/dist/src/vtab/filter-info.js.map +1 -1
- package/dist/src/vtab/idx-str.d.ts +62 -0
- package/dist/src/vtab/idx-str.d.ts.map +1 -0
- package/dist/src/vtab/idx-str.js +130 -0
- package/dist/src/vtab/idx-str.js.map +1 -0
- package/dist/src/vtab/index-descriptor.d.ts +122 -0
- package/dist/src/vtab/index-descriptor.d.ts.map +1 -0
- package/dist/src/vtab/index-descriptor.js +104 -0
- package/dist/src/vtab/index-descriptor.js.map +1 -0
- package/dist/src/vtab/mapping-advertisement.d.ts +1 -1
- package/dist/src/vtab/memory/index.d.ts +12 -4
- package/dist/src/vtab/memory/index.d.ts.map +1 -1
- package/dist/src/vtab/memory/index.js +17 -9
- package/dist/src/vtab/memory/index.js.map +1 -1
- package/dist/src/vtab/memory/layer/base.d.ts +85 -31
- package/dist/src/vtab/memory/layer/base.d.ts.map +1 -1
- package/dist/src/vtab/memory/layer/base.js +127 -86
- package/dist/src/vtab/memory/layer/base.js.map +1 -1
- package/dist/src/vtab/memory/layer/connection.d.ts +27 -0
- package/dist/src/vtab/memory/layer/connection.d.ts.map +1 -1
- package/dist/src/vtab/memory/layer/connection.js +36 -1
- package/dist/src/vtab/memory/layer/connection.js.map +1 -1
- package/dist/src/vtab/memory/layer/interface.d.ts +24 -4
- package/dist/src/vtab/memory/layer/interface.d.ts.map +1 -1
- package/dist/src/vtab/memory/layer/manager.d.ts +212 -16
- package/dist/src/vtab/memory/layer/manager.d.ts.map +1 -1
- package/dist/src/vtab/memory/layer/manager.js +754 -170
- package/dist/src/vtab/memory/layer/manager.js.map +1 -1
- package/dist/src/vtab/memory/layer/plan-filter.d.ts +26 -1
- package/dist/src/vtab/memory/layer/plan-filter.d.ts.map +1 -1
- package/dist/src/vtab/memory/layer/plan-filter.js +29 -11
- package/dist/src/vtab/memory/layer/plan-filter.js.map +1 -1
- package/dist/src/vtab/memory/layer/safe-iterate.d.ts +2 -2
- package/dist/src/vtab/memory/layer/safe-iterate.d.ts.map +1 -1
- package/dist/src/vtab/memory/layer/safe-iterate.js +2 -2
- package/dist/src/vtab/memory/layer/safe-iterate.js.map +1 -1
- package/dist/src/vtab/memory/layer/scan-layer.d.ts +5 -1
- package/dist/src/vtab/memory/layer/scan-layer.d.ts.map +1 -1
- package/dist/src/vtab/memory/layer/scan-layer.js +59 -24
- package/dist/src/vtab/memory/layer/scan-layer.js.map +1 -1
- package/dist/src/vtab/memory/layer/scan-plan.d.ts.map +1 -1
- package/dist/src/vtab/memory/layer/scan-plan.js +13 -21
- package/dist/src/vtab/memory/layer/scan-plan.js.map +1 -1
- package/dist/src/vtab/memory/layer/transaction.d.ts +169 -7
- package/dist/src/vtab/memory/layer/transaction.d.ts.map +1 -1
- package/dist/src/vtab/memory/layer/transaction.js +334 -9
- package/dist/src/vtab/memory/layer/transaction.js.map +1 -1
- package/dist/src/vtab/memory/module.d.ts +11 -4
- package/dist/src/vtab/memory/module.d.ts.map +1 -1
- package/dist/src/vtab/memory/module.js +35 -16
- package/dist/src/vtab/memory/module.js.map +1 -1
- package/dist/src/vtab/memory/table.d.ts +30 -4
- package/dist/src/vtab/memory/table.d.ts.map +1 -1
- package/dist/src/vtab/memory/table.js +63 -15
- package/dist/src/vtab/memory/table.js.map +1 -1
- package/dist/src/vtab/memory/utils/predicate.d.ts +9 -1
- package/dist/src/vtab/memory/utils/predicate.d.ts.map +1 -1
- package/dist/src/vtab/memory/utils/predicate.js +35 -14
- package/dist/src/vtab/memory/utils/predicate.js.map +1 -1
- package/dist/src/vtab/memory/utils/primary-key-encode.d.ts.map +1 -1
- package/dist/src/vtab/memory/utils/primary-key-encode.js +12 -6
- package/dist/src/vtab/memory/utils/primary-key-encode.js.map +1 -1
- package/dist/src/vtab/memory/utils/primary-key.d.ts +6 -1
- package/dist/src/vtab/memory/utils/primary-key.d.ts.map +1 -1
- package/dist/src/vtab/memory/utils/primary-key.js +12 -8
- package/dist/src/vtab/memory/utils/primary-key.js.map +1 -1
- package/dist/src/vtab/module.d.ts +38 -14
- package/dist/src/vtab/module.d.ts.map +1 -1
- package/dist/src/vtab/table.d.ts +41 -2
- package/dist/src/vtab/table.d.ts.map +1 -1
- package/dist/src/vtab/table.js +19 -0
- package/dist/src/vtab/table.js.map +1 -1
- package/package.json +5 -4
- package/dist/src/planner/rules/cache/rule-materialization-advisory.d.ts +0 -18
- package/dist/src/planner/rules/cache/rule-materialization-advisory.d.ts.map +0 -1
- package/dist/src/planner/rules/cache/rule-materialization-advisory.js +0 -65
- package/dist/src/planner/rules/cache/rule-materialization-advisory.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scan-layer.d.ts","sourceRoot":"","sources":["../../../../../src/vtab/memory/layer/scan-layer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"scan-layer.d.ts","sourceRoot":"","sources":["../../../../../src/vtab/memory/layer/scan-layer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAI5C,OAAO,EAAc,KAAK,GAAG,EAAE,MAAM,0BAA0B,CAAC;AAehE;;;;;;;GAOG;AACH,wBAAiB,SAAS,CACzB,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,QAAQ,GACZ,QAAQ,CAAC,GAAG,CAAC,CAEf"}
|
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import { BTree } from 'inheritree';
|
|
2
1
|
import { IndexConstraintOp } from '../../../common/constants.js';
|
|
3
|
-
import {
|
|
2
|
+
import { compareSqlValuesFast } from '../../../util/comparison.js';
|
|
4
3
|
import { StatusCode } from '../../../common/types.js';
|
|
5
4
|
import { safeIterate } from './safe-iterate.js';
|
|
6
5
|
import { QuereusError } from '../../../common/errors.js';
|
|
7
|
-
import { planAppliesToKey } from './plan-filter.js';
|
|
6
|
+
import { planAppliesToKey, resolveScanCollations } from './plan-filter.js';
|
|
8
7
|
/**
|
|
9
8
|
* True if a multi-seek key is SQL NULL (scalar) or contains any NULL component
|
|
10
9
|
* (composite tuple). Such a key contributes no match: `x IN (…, NULL)` is TRUE on
|
|
@@ -17,8 +16,21 @@ function seekKeyHasNull(key) {
|
|
|
17
16
|
/**
|
|
18
17
|
* Scans a layer (base or transaction) according to a ScanPlan, yielding matching rows.
|
|
19
18
|
* Operates on the Layer interface — the inherited BTrees handle data inheritance transparently.
|
|
19
|
+
*
|
|
20
|
+
* The plan's collation *names* are resolved against the layer's database exactly once
|
|
21
|
+
* here; {@link scanLayerResolved} does the work and passes the functions down its own
|
|
22
|
+
* recursion, so a multi-seek or multi-range plan never re-resolves per sub-scan or per row.
|
|
20
23
|
*/
|
|
21
|
-
export
|
|
24
|
+
export function* scanLayer(layer, plan) {
|
|
25
|
+
yield* scanLayerResolved(layer, plan, resolveScanCollations(plan, layer.collationResolver));
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* The scan body. `collations` holds the plan's already-resolved collation functions;
|
|
29
|
+
* narrowing a plan (multi-seek → single key, multi-range → single range) never changes
|
|
30
|
+
* which columns the prefix/bound collations describe, so the same functions are reused
|
|
31
|
+
* down the recursion.
|
|
32
|
+
*/
|
|
33
|
+
function* scanLayerResolved(layer, plan, collations) {
|
|
22
34
|
// Multi-seek: iterate over multiple equality keys (e.g. `col IN (v1, v2, …)`).
|
|
23
35
|
// This is set-membership, not a bag, so two faults must be avoided:
|
|
24
36
|
// - A duplicate seek key (`IN (5, 5)`, or two case-variant literals that hit the
|
|
@@ -29,18 +41,22 @@ export async function* scanLayer(layer, plan) {
|
|
|
29
41
|
// (the point-seek branches gate on `equalityKey != null`).
|
|
30
42
|
if (plan.equalityKeys && plan.equalityKeys.length > 0) {
|
|
31
43
|
const seekSchema = layer.getSchema();
|
|
32
|
-
|
|
33
|
-
|
|
44
|
+
// Dedup by encoded primary key. Membership is all we need (ordered iteration
|
|
45
|
+
// of the seen-set is not), so a Set of the lossless, type-aware PK encoding
|
|
46
|
+
// (collation-independent — see utils/primary-key-encode.ts) is lighter than a
|
|
47
|
+
// full BTree and keys on the same value-identity the PK comparator would.
|
|
48
|
+
const { primaryKeyExtractorFromRow, primaryKeyEncoder: encodePk } = layer.getPkExtractorsAndComparators(seekSchema);
|
|
49
|
+
const seen = new Set();
|
|
34
50
|
for (const key of plan.equalityKeys) {
|
|
35
51
|
if (seekKeyHasNull(key))
|
|
36
52
|
continue;
|
|
37
53
|
const singlePlan = { ...plan, equalityKey: key, equalityKeys: undefined };
|
|
38
|
-
for
|
|
39
|
-
const
|
|
40
|
-
//
|
|
41
|
-
|
|
42
|
-
if (!seen.insert(pk).on)
|
|
54
|
+
for (const row of scanLayerResolved(layer, singlePlan, collations)) {
|
|
55
|
+
const encoded = encodePk(primaryKeyExtractorFromRow(row));
|
|
56
|
+
// A key already in `seen` means this row was yielded by an earlier seek.
|
|
57
|
+
if (seen.has(encoded))
|
|
43
58
|
continue;
|
|
59
|
+
seen.add(encoded);
|
|
44
60
|
yield row;
|
|
45
61
|
}
|
|
46
62
|
}
|
|
@@ -55,7 +71,7 @@ export async function* scanLayer(layer, plan) {
|
|
|
55
71
|
lowerBound: range.lowerBound,
|
|
56
72
|
upperBound: range.upperBound,
|
|
57
73
|
};
|
|
58
|
-
yield*
|
|
74
|
+
yield* scanLayerResolved(layer, singlePlan, collations);
|
|
59
75
|
}
|
|
60
76
|
return;
|
|
61
77
|
}
|
|
@@ -101,7 +117,16 @@ export async function* scanLayer(layer, plan) {
|
|
|
101
117
|
const compositeStart = [...plan.equalityPrefix];
|
|
102
118
|
if (plan.lowerBound)
|
|
103
119
|
compositeStart.push(plan.lowerBound.value);
|
|
104
|
-
|
|
120
|
+
// A non-composite PK stores SCALAR keys: an array-shaped seek key would
|
|
121
|
+
// position PAST the scalar match (the comparator orders the wrapped form
|
|
122
|
+
// after its scalar), silently skipping the row a full-PK-length prefix
|
|
123
|
+
// (the delta-aggregate point read) targets. Unwrap the single-element
|
|
124
|
+
// prefix to the scalar; composite trees keep the array form.
|
|
125
|
+
startKey = {
|
|
126
|
+
value: (!isComposite && compositeStart.length === 1
|
|
127
|
+
? compositeStart[0]
|
|
128
|
+
: compositeStart),
|
|
129
|
+
};
|
|
105
130
|
}
|
|
106
131
|
else {
|
|
107
132
|
// Composite PKs store array-shaped keys; wrap the scalar leading-column
|
|
@@ -113,16 +138,16 @@ export async function* scanLayer(layer, plan) {
|
|
|
113
138
|
startKey = { value: seekValue };
|
|
114
139
|
}
|
|
115
140
|
}
|
|
116
|
-
for
|
|
141
|
+
for (const value of safeIterate(tree, isAscending, startKey, primaryKeyExtractorFromRow)) {
|
|
117
142
|
const row = value;
|
|
118
143
|
const primaryKey = primaryKeyExtractorFromRow(row);
|
|
119
|
-
if (!planAppliesToKey(plan, primaryKey, primaryKeyComparator)) {
|
|
144
|
+
if (!planAppliesToKey(plan, primaryKey, primaryKeyComparator, collations)) {
|
|
120
145
|
// Early termination for prefix-range: break when prefix no longer matches
|
|
121
146
|
if (plan.equalityPrefix) {
|
|
122
147
|
const keyArr = Array.isArray(primaryKey) ? primaryKey : [primaryKey];
|
|
123
148
|
let prefixMismatch = false;
|
|
124
149
|
for (let i = 0; i < plan.equalityPrefix.length; i++) {
|
|
125
|
-
if (
|
|
150
|
+
if (compareSqlValuesFast(keyArr[i], plan.equalityPrefix[i], collations.equalityPrefix[i]) !== 0) {
|
|
126
151
|
prefixMismatch = true;
|
|
127
152
|
break;
|
|
128
153
|
}
|
|
@@ -138,13 +163,13 @@ export async function* scanLayer(layer, plan) {
|
|
|
138
163
|
// non-BINARY walk terminates at the collation-correct boundary.
|
|
139
164
|
const keyForComparison = Array.isArray(primaryKey) ? primaryKey[0] : primaryKey;
|
|
140
165
|
if (!seekFromUpper && plan.upperBound) {
|
|
141
|
-
const cmp =
|
|
166
|
+
const cmp = compareSqlValuesFast(keyForComparison, plan.upperBound.value, collations.bound);
|
|
142
167
|
if (cmp > 0 || (cmp === 0 && plan.upperBound.op === IndexConstraintOp.LT)) {
|
|
143
168
|
break;
|
|
144
169
|
}
|
|
145
170
|
}
|
|
146
171
|
else if (seekFromUpper && plan.lowerBound) {
|
|
147
|
-
const cmp =
|
|
172
|
+
const cmp = compareSqlValuesFast(keyForComparison, plan.lowerBound.value, collations.bound);
|
|
148
173
|
if (cmp < 0 || (cmp === 0 && plan.lowerBound.op === IndexConstraintOp.GT)) {
|
|
149
174
|
break;
|
|
150
175
|
}
|
|
@@ -204,7 +229,17 @@ export async function* scanLayer(layer, plan) {
|
|
|
204
229
|
const compositeStart = [...plan.equalityPrefix];
|
|
205
230
|
if (plan.lowerBound)
|
|
206
231
|
compositeStart.push(plan.lowerBound.value);
|
|
207
|
-
|
|
232
|
+
// Mirror the primary branch: a non-composite index stores SCALAR keys, so
|
|
233
|
+
// a single-element prefix must seek with the scalar (see above).
|
|
234
|
+
// NOTE: latent mirror — no consumer today emits a single-column secondary-index
|
|
235
|
+
// equalityPrefix seek (single-column equality goes through `equalityKey`), so
|
|
236
|
+
// this branch has no direct test. If one ever does, add a targeted prefix-scan
|
|
237
|
+
// test; the primary branch is exercised by every delta-aggregate flush.
|
|
238
|
+
startKey = {
|
|
239
|
+
value: (!isComposite && compositeStart.length === 1
|
|
240
|
+
? compositeStart[0]
|
|
241
|
+
: compositeStart),
|
|
242
|
+
};
|
|
208
243
|
}
|
|
209
244
|
else {
|
|
210
245
|
const seekBound = seekFromUpper ? plan.upperBound : plan.lowerBound;
|
|
@@ -213,14 +248,14 @@ export async function* scanLayer(layer, plan) {
|
|
|
213
248
|
startKey = { value: seekValue };
|
|
214
249
|
}
|
|
215
250
|
}
|
|
216
|
-
for
|
|
217
|
-
if (!planAppliesToKey(plan, indexEntry.indexKey, primaryKeyComparator)) {
|
|
251
|
+
for (const indexEntry of safeIterate(indexTree, isAscending, startKey, entry => entry.indexKey)) {
|
|
252
|
+
if (!planAppliesToKey(plan, indexEntry.indexKey, primaryKeyComparator, collations)) {
|
|
218
253
|
// Early termination for prefix-range: break when prefix no longer matches
|
|
219
254
|
if (plan.equalityPrefix) {
|
|
220
255
|
const keyArr = Array.isArray(indexEntry.indexKey) ? indexEntry.indexKey : [indexEntry.indexKey];
|
|
221
256
|
let prefixMismatch = false;
|
|
222
257
|
for (let i = 0; i < plan.equalityPrefix.length; i++) {
|
|
223
|
-
if (
|
|
258
|
+
if (compareSqlValuesFast(keyArr[i], plan.equalityPrefix[i], collations.equalityPrefix[i]) !== 0) {
|
|
224
259
|
prefixMismatch = true;
|
|
225
260
|
break;
|
|
226
261
|
}
|
|
@@ -235,13 +270,13 @@ export async function* scanLayer(layer, plan) {
|
|
|
235
270
|
// so a non-BINARY index walk terminates at the collation-correct boundary.
|
|
236
271
|
const keyForComparison = Array.isArray(indexEntry.indexKey) ? indexEntry.indexKey[0] : indexEntry.indexKey;
|
|
237
272
|
if (!seekFromUpper && plan.upperBound) {
|
|
238
|
-
const cmp =
|
|
273
|
+
const cmp = compareSqlValuesFast(keyForComparison, plan.upperBound.value, collations.bound);
|
|
239
274
|
if (cmp > 0 || (cmp === 0 && plan.upperBound.op === IndexConstraintOp.LT)) {
|
|
240
275
|
break;
|
|
241
276
|
}
|
|
242
277
|
}
|
|
243
278
|
else if (seekFromUpper && plan.lowerBound) {
|
|
244
|
-
const cmp =
|
|
279
|
+
const cmp = compareSqlValuesFast(keyForComparison, plan.lowerBound.value, collations.bound);
|
|
245
280
|
if (cmp < 0 || (cmp === 0 && plan.lowerBound.op === IndexConstraintOp.GT)) {
|
|
246
281
|
break;
|
|
247
282
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scan-layer.js","sourceRoot":"","sources":["../../../../../src/vtab/memory/layer/scan-layer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"scan-layer.js","sourceRoot":"","sources":["../../../../../src/vtab/memory/layer/scan-layer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scan-plan.d.ts","sourceRoot":"","sources":["../../../../../src/vtab/memory/layer/scan-plan.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"scan-plan.d.ts","sourceRoot":"","sources":["../../../../../src/vtab/memory/layer/scan-plan.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAQ5D,uDAAuD;AACvD,MAAM,WAAW,oBAAoB;IACpC,EAAE,EAAE,iBAAiB,CAAC,EAAE,CAAC;IACzB,KAAK,EAAE,QAAQ,CAAC;CAChB;AAED,8CAA8C;AAC9C,MAAM,WAAW,kBAAkB;IAClC,EAAE,EAAE,iBAAiB,CAAC,EAAE,GAAG,iBAAiB,CAAC,EAAE,GAAG,iBAAiB,CAAC,EAAE,GAAG,iBAAiB,CAAC,EAAE,CAAC;IAC9F,KAAK,EAAE,QAAQ,CAAC;CAChB;AAED,wDAAwD;AACxD,MAAM,WAAW,aAAa;IAC7B,UAAU,CAAC,EAAE,kBAAkB,CAAC;IAChC,UAAU,CAAC,EAAE,kBAAkB,CAAC;CAChC;AAED;;;GAGG;AACH,MAAM,WAAW,QAAQ;IACxB,oEAAoE;IACpE,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,qBAAqB;IACrB,UAAU,EAAE,OAAO,CAAC;IACpB,iEAAiE;IACjE,WAAW,CAAC,EAAE,QAAQ,CAAC;IACvB,yEAAyE;IACzE,YAAY,CAAC,EAAE,QAAQ,EAAE,CAAC;IAC1B,6DAA6D;IAC7D,cAAc,CAAC,EAAE,QAAQ,EAAE,CAAC;IAC5B;;;;OAIG;IACH,wBAAwB,CAAC,EAAE,MAAM,EAAE,CAAC;IACpC;;;;;;OAMG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iEAAiE;IACjE,UAAU,CAAC,EAAE,kBAAkB,CAAC;IAChC,iEAAiE;IACjE,UAAU,CAAC,EAAE,kBAAkB,CAAC;IAChC,uDAAuD;IACvD,MAAM,CAAC,EAAE,aAAa,EAAE,CAAC;IACzB,+EAA+E;IAC/E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,4EAA4E;IAC5E,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAkMD,wBAAgB,2BAA2B,CAAC,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,GAAG,QAAQ,CA0HtG"}
|
|
@@ -1,17 +1,9 @@
|
|
|
1
1
|
import { IndexConstraintOp as ActualIndexConstraintOp } from '../../../common/constants.js';
|
|
2
2
|
import { normalizeCollationName } from '../../../util/comparison.js';
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
for (const part of idxStr.split(';')) {
|
|
8
|
-
const [key, value] = part.split('=', 2);
|
|
9
|
-
if (key && value !== undefined) {
|
|
10
|
-
params.set(key, value);
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
return params;
|
|
14
|
-
}
|
|
3
|
+
import { decodeIdxStr } from '../../idx-str.js';
|
|
4
|
+
import { PRIMARY_INDEX_NAME } from '../../index-descriptor.js';
|
|
5
|
+
/** No decoded parameters — shared so the degenerate path allocates nothing. */
|
|
6
|
+
const NO_PARAMS = new Map();
|
|
15
7
|
function parseArgvMappings(raw) {
|
|
16
8
|
const mappings = new Map();
|
|
17
9
|
if (!raw)
|
|
@@ -25,12 +17,6 @@ function parseArgvMappings(raw) {
|
|
|
25
17
|
}
|
|
26
18
|
return mappings;
|
|
27
19
|
}
|
|
28
|
-
function resolveIndexName(idxParam) {
|
|
29
|
-
const match = idxParam?.match(/^(.*?)\((\d+)\)$/);
|
|
30
|
-
if (!match)
|
|
31
|
-
return 'primary';
|
|
32
|
-
return match[1] === '_primary_' ? 'primary' : match[1];
|
|
33
|
-
}
|
|
34
20
|
function resolveIndexSchema(indexName, tableSchema) {
|
|
35
21
|
if (indexName === 'primary') {
|
|
36
22
|
return {
|
|
@@ -144,9 +130,15 @@ function extractRangeBounds(indexSchema, argvMap, args, constraints, indexInfoOu
|
|
|
144
130
|
}
|
|
145
131
|
export function buildScanPlanFromFilterInfo(filterInfo, tableSchema) {
|
|
146
132
|
const { idxNum, idxStr, constraints, args, indexInfoOutput } = filterInfo;
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
133
|
+
// An idxStr that names no index (null, `fullscan`, `empty`, or any string this
|
|
134
|
+
// engine never emitted) degenerates to an unbounded primary-key walk — the
|
|
135
|
+
// behaviour this builder has always had for an unparseable idxStr.
|
|
136
|
+
const spec = decodeIdxStr(idxStr);
|
|
137
|
+
const params = spec?.params ?? NO_PARAMS;
|
|
138
|
+
const indexName = spec
|
|
139
|
+
? (spec.indexName === PRIMARY_INDEX_NAME ? 'primary' : spec.indexName)
|
|
140
|
+
: 'primary';
|
|
141
|
+
const planType = spec?.plan ?? 0;
|
|
150
142
|
const descending = isDescendingScan(params, planType);
|
|
151
143
|
const argvMap = parseArgvMappings(params.get('argvMap'));
|
|
152
144
|
const indexSchema = resolveIndexSchema(indexName, tableSchema);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scan-plan.js","sourceRoot":"","sources":["../../../../../src/vtab/memory/layer/scan-plan.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"scan-plan.js","sourceRoot":"","sources":["../../../../../src/vtab/memory/layer/scan-plan.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { BTree } from 'inheritree';
|
|
2
2
|
import type { TableSchema } from '../../../schema/table.js';
|
|
3
3
|
import { MemoryIndex } from '../index.js';
|
|
4
|
-
import type { Row } from '../../../common/types.js';
|
|
4
|
+
import type { Row, SqlValue } from '../../../common/types.js';
|
|
5
5
|
import type { BTreeKeyForPrimary, BTreeKeyForIndex, MemoryIndexEntry } from '../types.js';
|
|
6
|
-
import type { Layer } from './interface.js';
|
|
6
|
+
import type { Layer, PkExtractorsAndComparators } from './interface.js';
|
|
7
|
+
import type { CollationResolver } from '../../../types/logical-type.js';
|
|
7
8
|
/**
|
|
8
9
|
* Pending change for event emission.
|
|
9
10
|
*/
|
|
@@ -13,6 +14,19 @@ interface PendingChange {
|
|
|
13
14
|
oldRow?: Row;
|
|
14
15
|
newRow?: Row;
|
|
15
16
|
}
|
|
17
|
+
/**
|
|
18
|
+
* A single structural write this layer made, captured unconditionally (unlike
|
|
19
|
+
* {@link PendingChange}, which records only when change-tracking is enabled).
|
|
20
|
+
* Serves as the replay source when a sibling connection's commit advances the
|
|
21
|
+
* committed head past this layer's fork point and the layer must be rebased —
|
|
22
|
+
* see `MemoryTableManager.commitTransaction`.
|
|
23
|
+
*/
|
|
24
|
+
export interface OwnWrite {
|
|
25
|
+
type: 'upsert' | 'delete';
|
|
26
|
+
primaryKey: BTreeKeyForPrimary;
|
|
27
|
+
/** New row for an upsert; absent for a delete. */
|
|
28
|
+
newRow?: Row;
|
|
29
|
+
}
|
|
16
30
|
/**
|
|
17
31
|
* Represents a set of modifications (inserts, updates, deletes) applied
|
|
18
32
|
* on top of a parent Layer using inherited BTrees with copy-on-write semantics.
|
|
@@ -21,15 +35,164 @@ interface PendingChange {
|
|
|
21
35
|
export declare class TransactionLayer implements Layer {
|
|
22
36
|
private readonly layerId;
|
|
23
37
|
readonly parentLayer: Layer;
|
|
24
|
-
|
|
38
|
+
/**
|
|
39
|
+
* Inherited verbatim from the parent layer: this layer's secondary BTrees are
|
|
40
|
+
* built over the parent's (`new MemoryIndex(..., parentSecondaryTree)`), so the
|
|
41
|
+
* child's `compareKeys` must come from the same collation function the parent
|
|
42
|
+
* ordered those nodes with.
|
|
43
|
+
*/
|
|
44
|
+
readonly collationResolver: CollationResolver;
|
|
45
|
+
/**
|
|
46
|
+
* Schema when this layer was started. Replaced when DDL runs inside this layer's own
|
|
47
|
+
* transaction: by {@link adoptSchema} for additive index/constraint DDL, a secondary-index
|
|
48
|
+
* re-key from `alter column … set collate`, and index/constraint removal (`drop index` /
|
|
49
|
+
* `drop constraint`), and by {@link rekeyPrimaryKey} when that collate change lands on a
|
|
50
|
+
* primary-key column. The column set is identical across every such swap.
|
|
51
|
+
*/
|
|
52
|
+
private tableSchemaAtCreation;
|
|
53
|
+
/**
|
|
54
|
+
* Derived from {@link tableSchemaAtCreation}'s primary key definition, so the primary
|
|
55
|
+
* tree, every inherited secondary index, and every scan share one comparator/encoder
|
|
56
|
+
* set — and one pass of collation resolution. Rebuilt only by {@link rekeyPrimaryKey},
|
|
57
|
+
* which rebuilds the structures keyed by them in the same call.
|
|
58
|
+
*/
|
|
59
|
+
private pkFunctions;
|
|
25
60
|
private primaryModifications;
|
|
26
61
|
private secondaryIndexes;
|
|
27
62
|
private _isCommitted;
|
|
28
63
|
private _hasModifications;
|
|
29
64
|
/** Pending changes for event emission. Null if tracking disabled. */
|
|
30
65
|
private pendingChanges;
|
|
66
|
+
/** Always-maintained log of this layer's own structural writes (see {@link OwnWrite}). */
|
|
67
|
+
private readonly ownWrites;
|
|
31
68
|
constructor(parent: Layer);
|
|
32
69
|
private initializeSecondaryIndexes;
|
|
70
|
+
/**
|
|
71
|
+
* Adopts a schema change that was applied to the table while THIS layer's transaction
|
|
72
|
+
* is still open, so the rest of that transaction reads and enforces the new structures.
|
|
73
|
+
* Three kinds of change reach here:
|
|
74
|
+
*
|
|
75
|
+
* - **Additive** (`create index` / `create unique index` / `add constraint … unique`):
|
|
76
|
+
* a name absent from {@link secondaryIndexes} is built and added. Without it, a layer
|
|
77
|
+
* created before the DDL keeps its creation-time schema: it has neither the new
|
|
78
|
+
* `IndexSchema` (so an index scan raises "Secondary index not found") nor the derived
|
|
79
|
+
* `uniqueConstraints` entry (so `checkUniqueConstraints` silently skips it and a
|
|
80
|
+
* colliding insert is accepted).
|
|
81
|
+
* - **Re-keying** (`alter column … set collate`): an index whose `IndexSchema` object
|
|
82
|
+
* is no longer the one this layer holds is REPLACED. `BaseLayer.rebuildAllSecondaryIndexes`
|
|
83
|
+
* hands every index a fresh BTree under the new collation, so a layer that kept its old
|
|
84
|
+
* `MemoryIndex` would go on comparing under the old collation over an orphaned tree —
|
|
85
|
+
* and, once it becomes the committed head at commit, would shadow the base's rebuilt
|
|
86
|
+
* structures entirely.
|
|
87
|
+
* - **Removal** (`drop index` / `drop constraint`): an index whose name the new schema no
|
|
88
|
+
* longer declares is DROPPED from {@link secondaryIndexes}. Without it the layer keeps the
|
|
89
|
+
* derived `uniqueConstraints` entry in its frozen schema and goes on enforcing a constraint
|
|
90
|
+
* that no longer exists, and an index scan can still reach the orphaned tree via
|
|
91
|
+
* {@link getSecondaryIndexTree}. An empty/undefined `newSchema.indexes` drops all of them.
|
|
92
|
+
* Like the additive side, a removal is NOT undone by `rollback to savepoint`: every layer in
|
|
93
|
+
* the chain adopts it, so the restored snapshot has the index dropped too (DDL is not
|
|
94
|
+
* transactional here — see `feat-ddl-transaction-capability`).
|
|
95
|
+
*
|
|
96
|
+
* An index is considered unchanged only when the NEW schema's `IndexSchema` is the very
|
|
97
|
+
* object the old schema carried. Every DDL path that re-keys rebuilds those objects, and
|
|
98
|
+
* every additive path preserves them, so identity is the exact discriminator.
|
|
99
|
+
*
|
|
100
|
+
* The caller MUST apply this to a whole parent chain oldest-first: each layer builds its
|
|
101
|
+
* `MemoryIndex` over its parent's tree for that index, so the parent's must already be the
|
|
102
|
+
* new one. Only the layer's OWN writes are re-indexed — everything below is inherited
|
|
103
|
+
* copy-on-write, exactly as {@link initializeSecondaryIndexes} does at construction.
|
|
104
|
+
*
|
|
105
|
+
* Never applied to a column-set or primary-key change: either would invalidate
|
|
106
|
+
* {@link pkFunctions} and the primary tree. A PK-column collation change goes to
|
|
107
|
+
* {@link rekeyPrimaryKey} instead, and `ensureSchemaChangeSafety` raises BUSY when any
|
|
108
|
+
* connection other than the DDL issuer holds a pending layer.
|
|
109
|
+
*/
|
|
110
|
+
adoptSchema(newSchema: TableSchema): void;
|
|
111
|
+
/**
|
|
112
|
+
* Adopts a schema change that re-keys the PRIMARY KEY — `alter column … set collate` on a
|
|
113
|
+
* PK column — applied while THIS layer's transaction is still open. Rebuilds
|
|
114
|
+
* {@link pkFunctions}, the primary tree, and every secondary index (each of which derives
|
|
115
|
+
* its `primaryKeyComparator` / `encode` from the PK definition), so nothing this layer owns
|
|
116
|
+
* survives the ALTER still keyed under the old collation.
|
|
117
|
+
*
|
|
118
|
+
* Like {@link adoptSchema}, the caller MUST apply this to a whole parent chain oldest-first
|
|
119
|
+
* (base layer already re-keyed): the new tree inherits copy-on-write from the parent's new
|
|
120
|
+
* one, so the parent's must already exist.
|
|
121
|
+
*
|
|
122
|
+
* ### Why {@link ownWrites} is rewritten to its net effect
|
|
123
|
+
*
|
|
124
|
+
* `ownWrites` is an ordered log that may touch one key repeatedly, and under the new
|
|
125
|
+
* comparator two keys that were distinct in that log can collapse into one. Replaying it
|
|
126
|
+
* verbatim would let a later write land on an earlier write's row, or a deletion remove a
|
|
127
|
+
* row a subsequent upsert had already placed. So the log is REWRITTEN here, in place, to
|
|
128
|
+
* one entry per key: the layer's effective row (read out of the pre-rekey tree), or a
|
|
129
|
+
* deletion — deletions first, and a deletion whose key an upsert now occupies is dropped
|
|
130
|
+
* entirely. The rewritten log is what every later reader of it replays: this method's own
|
|
131
|
+
* index rebuild, a `create index` later in the same transaction ({@link adoptSchema} →
|
|
132
|
+
* {@link reindexOwnWrites}), and `MemoryTableManager.commitTransaction`'s rebase.
|
|
133
|
+
*
|
|
134
|
+
* Soundness rests on a precondition `MemoryTableManager.validateRekeyedPrimaryKey` enforces
|
|
135
|
+
* before any of this runs: NO layer in the chain — base included — holds two rows that
|
|
136
|
+
* collide under the new comparator. Given that, every key here resolves to at most one row
|
|
137
|
+
* in the parent, so a deletion removes exactly the row this layer removed and an upsert
|
|
138
|
+
* lands at exactly one key.
|
|
139
|
+
*
|
|
140
|
+
* NOTE: the deletion replay assumes a key this layer deleted was a key the PARENT held.
|
|
141
|
+
* That holds because every DML operation gets its own layer (`MemoryTableConnection`'s
|
|
142
|
+
* statement savepoints), so no layer both creates and destroys a key. If a single layer
|
|
143
|
+
* ever does, `rekeyed.find(key)` can land on a *colliding* parent row and delete it: at
|
|
144
|
+
* that point the deletion needs to verify, under the OLD comparator, that the row it found
|
|
145
|
+
* is the row it removed.
|
|
146
|
+
*/
|
|
147
|
+
rekeyPrimaryKey(newSchema: TableSchema): void;
|
|
148
|
+
/**
|
|
149
|
+
* Adopts an `alter column … set data type` / `set not null` backfill conversion applied while
|
|
150
|
+
* THIS layer's transaction is still open: swaps in the new schema and rewrites the CONVERTED value
|
|
151
|
+
* into every own-written row at `colIndex`, so the rest of the transaction — and, at commit, the
|
|
152
|
+
* committed head — read the new value instead of the raw one the transaction wrote. This is what
|
|
153
|
+
* fills the transaction's OWN pending NULL rows for SET NOT NULL backfill, which live in this
|
|
154
|
+
* layer, not the base.
|
|
155
|
+
*
|
|
156
|
+
* NON-primary-key column, or a key column whose bytes are unchanged. `MemoryTableManager.alterColumn`
|
|
157
|
+
* rejects a physical retype of a key column before any mutation, and SET NOT NULL leaves the key
|
|
158
|
+
* bytes intact, so the primary key encoding is unchanged: {@link pkFunctions} and the primary tree
|
|
159
|
+
* keep their keys, and only the value at `colIndex` moves. (Contrast {@link rekeyPrimaryKey}, which
|
|
160
|
+
* must rebuild the tree because the keys themselves change.)
|
|
161
|
+
*
|
|
162
|
+
* Like {@link adoptSchema} / {@link rekeyPrimaryKey}, the caller MUST apply this oldest-first
|
|
163
|
+
* (base already converted): the layer's copy-on-write base inherits the parent's already-converted
|
|
164
|
+
* rows, so only this layer's OWN writes are rewritten here.
|
|
165
|
+
*
|
|
166
|
+
* `ownWrites` is collapsed to its net per-key effect (as {@link rekeyPrimaryKey} does) so an
|
|
167
|
+
* intermediate value a later write overwrote never reaches `convert`, and the rewritten log —
|
|
168
|
+
* carrying converted values — is what the rebase (`MemoryTableManager.rebaseLayerOntoHead`) and
|
|
169
|
+
* any later `create index` ({@link reindexOwnWrites}) replay.
|
|
170
|
+
*
|
|
171
|
+
* NULL own-values pass through untouched UNLESS `convertNulls` is set (the SET NOT NULL backfill
|
|
172
|
+
* maps null → DEFAULT). A value that fails to convert is left as-is (not an error): the manager
|
|
173
|
+
* validated every value in the effective VIEW before calling, so an unconvertible own value here is
|
|
174
|
+
* one a higher layer has shadowed — it is never read through this layer, and re-converting it would
|
|
175
|
+
* double-fault a value the transaction cannot see. It matches the base rewrite's same-reasoned skip.
|
|
176
|
+
*/
|
|
177
|
+
convertColumn(colIndex: number, convert: (v: SqlValue) => SqlValue, newSchema: TableSchema, convertNulls?: boolean): void;
|
|
178
|
+
/**
|
|
179
|
+
* Brings a newly-inherited `MemoryIndex` (built over the parent's tree, which
|
|
180
|
+
* already covers the parent chain's effective rows) up to date with this layer's own
|
|
181
|
+
* writes: for each primary key this layer touched, drop the parent's entry and add
|
|
182
|
+
* this layer's effective row, if any. Both operations copy-on-write into this
|
|
183
|
+
* layer's tree, leaving the parent's entries untouched.
|
|
184
|
+
*
|
|
185
|
+
* Driven by {@link ownWrites} (deduplicated by primary key — the log is an ordered
|
|
186
|
+
* list that may touch one key repeatedly) rather than a full scan, so the cost is
|
|
187
|
+
* proportional to the transaction's writes, not the table's size.
|
|
188
|
+
*
|
|
189
|
+
* The parent's entry is dropped under the PARENT row's own primary key, not under the
|
|
190
|
+
* key the write names. After {@link rekeyPrimaryKey} the two can differ — a write of
|
|
191
|
+
* `'A'` resolves, under NOCASE, to a parent row keyed `'a'` — and filing the removal
|
|
192
|
+
* under the write's key would leave the parent's entry in place, so an index scan would
|
|
193
|
+
* return the row twice.
|
|
194
|
+
*/
|
|
195
|
+
private reindexOwnWrites;
|
|
33
196
|
getLayerId(): number;
|
|
34
197
|
getParent(): Layer;
|
|
35
198
|
getSchema(): TableSchema;
|
|
@@ -45,10 +208,9 @@ export declare class TransactionLayer implements Layer {
|
|
|
45
208
|
* Get pending changes for event emission.
|
|
46
209
|
*/
|
|
47
210
|
getPendingChanges(): readonly PendingChange[];
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
};
|
|
211
|
+
/** This layer's own structural writes, oldest-first — the rebase replay source. */
|
|
212
|
+
getOwnWrites(): readonly OwnWrite[];
|
|
213
|
+
getPkExtractorsAndComparators(schema: TableSchema): PkExtractorsAndComparators;
|
|
52
214
|
getModificationTree(indexName: string | 'primary'): BTree<BTreeKeyForPrimary, Row> | null;
|
|
53
215
|
getSecondaryIndexTree(indexName: string): BTree<BTreeKeyForIndex, MemoryIndexEntry> | null;
|
|
54
216
|
getSecondaryIndex(indexName: string): MemoryIndex | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../../../../src/vtab/memory/layer/transaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../../../../src/vtab/memory/layer/transaction.ts"],"names":[],"mappings":"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"}
|