@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
|
@@ -0,0 +1,422 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Materialized-view maintenance — **delta apply**. The per-row / per-flush appliers that
|
|
3
|
+
* take a compiled {@link MaintenancePlan} plus a source {@link BackingRowChange}, compute the
|
|
4
|
+
* bounded backing delta (or the full-rebuild diff), and write it through the backing table's
|
|
5
|
+
* coordinated transaction connection — plus the residual runners, backing-host / connection
|
|
6
|
+
* resolvers, derived-row and parent-side referential enforcement, and the small key-compare
|
|
7
|
+
* helpers they share. Extracted from database-materialized-views.ts as free functions over
|
|
8
|
+
* {@link MaterializedViewManagerContext}; the manager's orchestration methods
|
|
9
|
+
* (`maintainRowTime`, `flushDeferredMaintenance`, `lookupCoveringConflicts`) call in.
|
|
10
|
+
*/
|
|
11
|
+
import { type SqlValue, type Row } from '../common/types.js';
|
|
12
|
+
import { Scheduler } from '../runtime/scheduler.js';
|
|
13
|
+
import { type DerivedRowConstraintValidator } from './derived-row-validator.js';
|
|
14
|
+
import type { BackingHost, BackingRowChange, MaintenanceOp } from '../vtab/backing-host.js';
|
|
15
|
+
import type { VirtualTableConnection } from '../vtab/connection.js';
|
|
16
|
+
import type { TableSchema } from '../schema/table.js';
|
|
17
|
+
import type { MaterializedViewManagerContext, MaintenancePlan, InverseProjectionPlan, ForwardResidualPlan, JoinResidualPlan, PrefixDeletePlan, ResidualMaintenancePlan, ResidualRecomputePlan, ForwardResidualKey, PrefixDeleteKey, ResidualKeyBatch, ResidualKeyBatchEntry, BackingConnectionCache, BackingPkColumn } from './database-materialized-views-plans.js';
|
|
18
|
+
/**
|
|
19
|
+
* Resolve a plan's backing table to its {@link BackingHost} + coordinated
|
|
20
|
+
* {@link VirtualTableConnection} — the two handles every apply path writes through.
|
|
21
|
+
* Shared by the per-row appliers, the batched residual flush, and the full-rebuild
|
|
22
|
+
* `'replace-all'` diff; throws INTERNAL when the backing table has vanished (an MV in a
|
|
23
|
+
* broken state).
|
|
24
|
+
*/
|
|
25
|
+
export declare function resolveBackingApplyTarget(ctx: MaterializedViewManagerContext, plan: Pick<MaintenancePlan, 'mv' | 'backingSchema' | 'backingTableName'>, cache?: BackingConnectionCache): Promise<{
|
|
26
|
+
host: BackingHost;
|
|
27
|
+
connection: VirtualTableConnection;
|
|
28
|
+
}>;
|
|
29
|
+
/**
|
|
30
|
+
* Compute an `'inverse-projection'` plan's per-row backing delta, apply it, and
|
|
31
|
+
* return the **effective** {@link BackingRowChange}(s) the backing layer realized.
|
|
32
|
+
* An out-of-scope row (or a delete of an absent backing key) yields no change. This
|
|
33
|
+
* body is the shipped covering-index maintenance, lifted verbatim from the former
|
|
34
|
+
* `applyRowTimeChange`, plus the equal-image short-circuit: an UPDATE whose old and
|
|
35
|
+
* new projected images are value-identical (both in scope) projects to NO backing
|
|
36
|
+
* delta — the dominant no-op echo (a source update touching only unprojected columns,
|
|
37
|
+
* or rewriting a projected column to its existing value) is suppressed before any
|
|
38
|
+
* backing-connection work. Accurate by the maintenance invariant (the backing row IS
|
|
39
|
+
* the old image's projection), so nothing would have changed; the host's
|
|
40
|
+
* value-identical upsert skip (vtab/backing-host.ts) remains the effective-state
|
|
41
|
+
* backstop for the paths that do emit ops.
|
|
42
|
+
*/
|
|
43
|
+
export declare function applyInverseProjection(ctx: MaterializedViewManagerContext, plan: InverseProjectionPlan, change: BackingRowChange, cache?: BackingConnectionCache): Promise<BackingRowChange[]>;
|
|
44
|
+
/**
|
|
45
|
+
* Validate the row images a maintenance apply WROTE (insert/update
|
|
46
|
+
* {@link BackingRowChange}s — a delete writes no image) against the plan's
|
|
47
|
+
* compiled {@link DerivedRowConstraintValidator}. Inline checks abort the
|
|
48
|
+
* writing statement with the maintained-table-attributed CONSTRAINT error;
|
|
49
|
+
* auto-deferred checks (subquery CHECK, every child-side FK) queue to the
|
|
50
|
+
* deferred-constraint queue and validate at commit. Deferred entries are
|
|
51
|
+
* pinned to the backing connection the maintenance write used (resolved from
|
|
52
|
+
* the per-statement cache, or re-resolved deterministically — the same
|
|
53
|
+
* connection either way) so commit-time evaluation reads the same pending
|
|
54
|
+
* state, mirroring the DML pipeline's active-connection capture.
|
|
55
|
+
*/
|
|
56
|
+
export declare function validateDerivedChanges(ctx: MaterializedViewManagerContext, plan: MaintenancePlan, validator: DerivedRowConstraintValidator, changes: readonly BackingRowChange[], cache?: BackingConnectionCache): Promise<void>;
|
|
57
|
+
/**
|
|
58
|
+
* Row-time guard: reject a maintenance write that would store a NULL into a backing column
|
|
59
|
+
* the schema declares NOT NULL *and* that is a physical-PK member whose re-derived body
|
|
60
|
+
* output turned nullable — the row-time analogue of the refresh-path
|
|
61
|
+
* `assertNoNullInNotNullSeededPk` (runtime/emit/materialized-view-helpers.ts). Row-time
|
|
62
|
+
* maintenance is the PRIMARY silent-corruption vector: it fires at the source
|
|
63
|
+
* insert/update, before any refresh, so without this guard a NULL lands in a
|
|
64
|
+
* declared-NOT-NULL PK column with no error.
|
|
65
|
+
*
|
|
66
|
+
* The offending skew (a NOT-NULL ordering-seeded PK column over a loosened source) is
|
|
67
|
+
* precomputed once at plan build into {@link MaintenancePlanCommon.nullGuardColumns}
|
|
68
|
+
* (`undefined` for nearly every MV — the zero-overhead gate), so the common path pays a
|
|
69
|
+
* single boolean check per maintained write and only the rare skewed MV scans its guarded
|
|
70
|
+
* columns per change. A `delete` writes no image and is skipped. The throw unwinds the source
|
|
71
|
+
* statement with nothing committed — the backing write rides the pending layer, discarded on
|
|
72
|
+
* a throw before commit, exactly like {@link validateDerivedChanges}. Called BEFORE the
|
|
73
|
+
* MV-over-MV cascade so a NULL row never reaches a consumer. See
|
|
74
|
+
* fix/bug-mv-rowtime-null-into-notnull-seeded-pk.
|
|
75
|
+
*/
|
|
76
|
+
export declare function assertNoNullInNotNullSeededPkRowTime(plan: MaintenancePlan, changes: readonly BackingRowChange[]): void;
|
|
77
|
+
/**
|
|
78
|
+
* Fire **parent-side** referential enforcement over the backing rows a maintenance
|
|
79
|
+
* apply REMOVED or re-keyed (delete / key-update {@link BackingRowChange}s — an insert
|
|
80
|
+
* has no parent-side action). When the maintained table `M` is the PARENT (FK target)
|
|
81
|
+
* of an FK declared on an ordinary table `C` (`create table C (… references M(col) …)`),
|
|
82
|
+
* a maintenance-driven delete/key-update of the referenced `M` row would silently orphan
|
|
83
|
+
* `C`'s rows, bypassing the declared RESTRICT / referential action. This is the
|
|
84
|
+
* **dual** of {@link validateDerivedChanges} (constraints declared *on* `M`); the FK here
|
|
85
|
+
* lives on `C` and references `M`, so it is invisible to `M`'s own plan/validator.
|
|
86
|
+
*
|
|
87
|
+
* It reuses the SAME shared referential-action engine the DML executor and the
|
|
88
|
+
* external-change ingestion seam use — no third copy — applying its two functions over
|
|
89
|
+
* each backing change exactly as `database-external-changes.ts` does:
|
|
90
|
+
* - {@link assertTransitiveRestrictsForParentMutation} — pre-walk the transitive cascade
|
|
91
|
+
* closure and throw a CONSTRAINT error naming `M` on any surviving RESTRICT child;
|
|
92
|
+
* - {@link executeForeignKeyActionsAndLens} — run declared CASCADE / SET NULL / SET DEFAULT,
|
|
93
|
+
* re-entering the DML executor (the already-holding-the-mutex variant) for each cascaded
|
|
94
|
+
* child write, so `C`'s own constraints, watches, nested cascades, and (if `C` is itself
|
|
95
|
+
* an MV source) its own maintenance all fire.
|
|
96
|
+
*
|
|
97
|
+
* Ordering: called AFTER the backing delta has landed in the pending layer (the RESTRICT
|
|
98
|
+
* walk runs POST-application — the child rows it keys off still exist because the cascade
|
|
99
|
+
* has not run yet) and AFTER `M`'s own image is validated, matching the DML executor's
|
|
100
|
+
* per-change order (capture → MV maintenance → FK actions) and the external-changes seam.
|
|
101
|
+
* `lensRouted = false`: a maintenance backing write is a physical basis write (maintained
|
|
102
|
+
* tables are not lens basis spines). A surviving RESTRICT throws up through
|
|
103
|
+
* {@link maintainRowTime} → the DML executor → the statement, rolling back the source write
|
|
104
|
+
* attributed to `M`.
|
|
105
|
+
*
|
|
106
|
+
* Gate: a cheap `foreign_keys`-pragma early-return keeps the pragma-off path free (the
|
|
107
|
+
* engine also early-returns, but skipping the `getTable` + loop avoids all per-change work).
|
|
108
|
+
* NOT gated on `plan.derivedRowValidator` — that gate is child-side (constraints *on* `M`);
|
|
109
|
+
* an inbound FK lives on `C` and leaves `M`'s plan untouched. Beyond the gate it fires
|
|
110
|
+
* unconditionally per delete/update change, but the engine no longer pays an `O(catalog)`
|
|
111
|
+
* scan: both calls route through `SchemaManager.getReferencingForeignKeys`, the precomputed
|
|
112
|
+
* reverse-FK index, so an `M` that nothing references resolves to the shared empty bucket and
|
|
113
|
+
* each call early-returns in O(1) — a maintained table with no inbound FK (the common case)
|
|
114
|
+
* pays only the pragma check plus one map lookup per delete/key-update change.
|
|
115
|
+
*/
|
|
116
|
+
export declare function enforceParentSideReferentialActions(ctx: MaterializedViewManagerContext, plan: MaintenancePlan, changes: readonly BackingRowChange[]): Promise<void>;
|
|
117
|
+
/**
|
|
118
|
+
* Resolve the {@link BackingHost} capability surface for a backing table —
|
|
119
|
+
* see `vtab/backing-host.ts` for the contract. The host is resolved fresh per
|
|
120
|
+
* use (a map lookup on the owning module), so a drop+recreate of the backing
|
|
121
|
+
* always yields the new incarnation's host.
|
|
122
|
+
*/
|
|
123
|
+
export declare function backingHost(ctx: MaterializedViewManagerContext, backing: TableSchema): BackingHost;
|
|
124
|
+
/**
|
|
125
|
+
* Obtain (lazily create + register) the backing table's
|
|
126
|
+
* {@link VirtualTableConnection} for the current transaction. Reuses the same
|
|
127
|
+
* connection a `select` from the MV resolves to (so reads-own-writes holds) —
|
|
128
|
+
* matched among the Database's registered connections by
|
|
129
|
+
* {@link BackingHost.ownsConnection}, which is pinned to the live backing
|
|
130
|
+
* incarnation; a freshly created connection is registered with the Database so
|
|
131
|
+
* the coordinated commit/rollback covers its pending state in lockstep with the
|
|
132
|
+
* source write.
|
|
133
|
+
*
|
|
134
|
+
* When an optional per-statement {@link BackingConnectionCache} is supplied, the
|
|
135
|
+
* scan over the Database's active connections (the dominant per-row cost on a bulk
|
|
136
|
+
* write) is paid once per (statement, backing): a hit returns the cached connection
|
|
137
|
+
* directly, and a miss caches whichever connection the scan resolves — or the one it
|
|
138
|
+
* lazily creates + registers. Caching the resolved/created connection is sound
|
|
139
|
+
* because the scan is deterministic within a statement (nothing interleaves between
|
|
140
|
+
* a statement's rows to change which connection a `select` from the MV picks), so the
|
|
141
|
+
* cache holds exactly what an uncached re-resolution would return.
|
|
142
|
+
*/
|
|
143
|
+
export declare function getBackingConnection(ctx: MaterializedViewManagerContext, host: BackingHost, qualifiedName: string, cache?: BackingConnectionCache): Promise<VirtualTableConnection>;
|
|
144
|
+
/**
|
|
145
|
+
* Execute a cached key-filtered residual for one affected key tuple, returning its
|
|
146
|
+
* result rows (0 or 1 for the aggregate shape; 0..N for the lateral-TVF fan-out shape).
|
|
147
|
+
* Bound through a fresh {@link RuntimeContext} on the live `db` so the residual's source
|
|
148
|
+
* scan reuses `T`'s transaction connection and reads this statement's pending writes
|
|
149
|
+
* (reads-own-writes) — the synchronous analogue of
|
|
150
|
+
* `database-assertions.ts:executeResidualPerTuple`. Shared by the residual-recompute
|
|
151
|
+
* (`'gk'`) and prefix-delete (`'pk'`) arms.
|
|
152
|
+
*/
|
|
153
|
+
export declare function runResidual(ctx: MaterializedViewManagerContext, residualScheduler: Scheduler, bindParamPrefix: 'gk' | 'pk', keyTuple: readonly SqlValue[]): Promise<Row[]>;
|
|
154
|
+
/**
|
|
155
|
+
* Run a cached maintenance scheduler to completion against **live mid-transaction source
|
|
156
|
+
* state** and collect its result rows. Bound through a fresh strict {@link RuntimeContext}
|
|
157
|
+
* on the live `db` so the scan reuses the source's transaction connection and reads this
|
|
158
|
+
* statement's pending writes (reads-own-writes). The no-`stmt`, fresh-context shape is the
|
|
159
|
+
* synchronous analogue of `database-assertions.ts:executeResidualPerTuple`. Shared by the
|
|
160
|
+
* key-filtered residual arms ({@link runResidual}, parameterized) and the whole-body
|
|
161
|
+
* full-rebuild arm ({@link applyFullRebuild}, no params).
|
|
162
|
+
*/
|
|
163
|
+
export declare function runScheduler(ctx: MaterializedViewManagerContext, scheduler: Scheduler, params: Record<string, SqlValue>): Promise<Row[]>;
|
|
164
|
+
/**
|
|
165
|
+
* Compute a **forward** key-filtered residual plan's per-row backing delta and apply it:
|
|
166
|
+
* derive the affected binding key(s) from the changed row (OLD ∪ NEW, deduped), re-run
|
|
167
|
+
* the key-filtered residual against live source state for each, and apply the **keyed
|
|
168
|
+
* diff**: a non-empty recomputed slice is upserted (the backing key IS the affected key,
|
|
169
|
+
* so the upsert replaces the old row wholesale — no delete-first — and the host's
|
|
170
|
+
* value-identical upsert skip turns a no-op recompute into ZERO effective changes
|
|
171
|
+
* instead of delete+insert churn); an emptied slice (residual returns nothing) emits the
|
|
172
|
+
* point delete, removing the stale backing row (nothing reported if it was already
|
|
173
|
+
* absent). Returns the effective {@link BackingRowChange}(s) the backing layer realized,
|
|
174
|
+
* for the MV-over-MV cascade — a real same-key change now reports one `update`.
|
|
175
|
+
*
|
|
176
|
+
* Shared by the single-source aggregate (`'residual-recompute'`, group key, ≤1 row per
|
|
177
|
+
* key) and the 1:1-join (`'join-residual'`, the driving table `T`'s PK, exactly the one
|
|
178
|
+
* joined row per key) arms — both bind on the forward driving source via
|
|
179
|
+
* {@link ForwardResidualPlan}; the only difference is the binding (group vs PK).
|
|
180
|
+
*
|
|
181
|
+
* This is the **cold** (no statement batch in scope) inline path. A statement-batched
|
|
182
|
+
* caller instead accumulates the same deduped keys via
|
|
183
|
+
* {@link collectForwardResidualKeys} and recomputes each distinct key once at the
|
|
184
|
+
* end-of-statement flush ({@link computeForwardResidualOps}) — sound for the same
|
|
185
|
+
* last-write-wins reason: every recompute reads live (reads-own-writes) state, so
|
|
186
|
+
* running it once at flush produces exactly what the last per-row run would have.
|
|
187
|
+
*/
|
|
188
|
+
export declare function applyForwardResidual(ctx: MaterializedViewManagerContext, plan: ForwardResidualPlan, change: BackingRowChange, cache?: BackingConnectionCache): Promise<BackingRowChange[]>;
|
|
189
|
+
/**
|
|
190
|
+
* Derive one changed source row's affected forward binding key(s) (OLD ∪ NEW) and add
|
|
191
|
+
* them to `into`, deduped on the canonical backing-key values: a non-key-changing update
|
|
192
|
+
* recomputes the group once; a key-changing update recomputes both the old and the new
|
|
193
|
+
* group. `into` may span a whole statement (the per-statement {@link ResidualKeyBatch})
|
|
194
|
+
* or a single change (the cold inline path) — the dedup is identical either way.
|
|
195
|
+
*/
|
|
196
|
+
export declare function collectForwardResidualKeys(plan: ForwardResidualPlan, change: BackingRowChange, into: Map<string, ForwardResidualKey>): void;
|
|
197
|
+
/**
|
|
198
|
+
* Run the forward key-filtered residual once per affected key and build the keyed-diff
|
|
199
|
+
* ops: upsert the recomputed slice, or point-delete an emptied key. Pure op computation —
|
|
200
|
+
* the caller owns connection resolution and the single {@link BackingHost.applyMaintenance}
|
|
201
|
+
* call, so a statement flush can batch many keys' ops into one host call.
|
|
202
|
+
*/
|
|
203
|
+
export declare function computeForwardResidualOps(ctx: MaterializedViewManagerContext, plan: ForwardResidualPlan, keys: Iterable<ForwardResidualKey>): Promise<MaintenanceOp[]>;
|
|
204
|
+
/**
|
|
205
|
+
* True iff `row`'s backing primary-key columns equal `keyVals` (the affected binding
|
|
206
|
+
* key, in `backingPkDefinition` order), under each column's collation. Used to keep
|
|
207
|
+
* only the residual row(s) belonging to the recomputed key — see
|
|
208
|
+
* {@link applyForwardResidual}.
|
|
209
|
+
*/
|
|
210
|
+
export declare function residualRowMatchesKey(plan: ForwardResidualPlan, row: Row, keyVals: readonly SqlValue[]): boolean;
|
|
211
|
+
/**
|
|
212
|
+
* Dispatch a `'join-residual'` plan on **which source changed**. A write to the driving
|
|
213
|
+
* table `T` (`changedBase === plan.sourceBase`) is the forward case — recompute the one
|
|
214
|
+
* joined row keyed on `T`'s PK, identical to a size-1 `'row'`-binding residual — so it
|
|
215
|
+
* delegates straight to {@link applyForwardResidual} (delete old backing slice → run the
|
|
216
|
+
* `T`-keyed residual → upsert). A write to the lookup table `P` is the reverse case,
|
|
217
|
+
* handled by {@link applyLookupResidual}.
|
|
218
|
+
*/
|
|
219
|
+
export declare function applyJoinResidual(ctx: MaterializedViewManagerContext, plan: JoinResidualPlan, change: BackingRowChange, changedBase: string, cache?: BackingConnectionCache): Promise<BackingRowChange[]>;
|
|
220
|
+
/**
|
|
221
|
+
* Maintain a `'join-residual'` MV for a **lookup-side (`P`)** change: refresh the joined
|
|
222
|
+
* rows referencing each affected `P` key. Derive the affected `P` key(s) from the changed
|
|
223
|
+
* row (OLD ∪ NEW, deduped on `P`'s PK), and for each run the in-scope lookup-keyed residual
|
|
224
|
+
* (`… where P.pk = :pk0`, the body's WHERE retained) against live source state — returning
|
|
225
|
+
* every currently in-scope joined row, each carrying its `T.pk` backing key — and **upsert**
|
|
226
|
+
* each.
|
|
227
|
+
*
|
|
228
|
+
* **Upsert-only is sound for a no-WHERE / `T`-only-WHERE body.** For an inner/cross join with
|
|
229
|
+
* enforced RI and a predicate that cannot reference `P`, the *set* of backing rows referencing
|
|
230
|
+
* a given `P` row is `{ T : T.fk = P.pk }`, determined entirely by `T.fk` (a `T` column the
|
|
231
|
+
* `P` write cannot change), and the WHERE — over `T` only — cannot flip on a `P` write. So a
|
|
232
|
+
* `P` change can only re-derive the lookup-projected columns of those existing backing rows
|
|
233
|
+
* (an upsert at the unchanged `T.pk` key), never add or remove one: a `P` insert with no
|
|
234
|
+
* referencing `T` rows yields an empty residual (no-op); a `P` delete is only admissible (RI)
|
|
235
|
+
* when no `T` references it (empty residual); a `P` payload update upserts the affected rows
|
|
236
|
+
* with the new value.
|
|
237
|
+
*
|
|
238
|
+
* **A `P`-referencing WHERE needs the delete-capable pass.** When the body WHERE references
|
|
239
|
+
* `P`, a `P` write can flip a joined row's WHERE truth and so add or remove its backing row —
|
|
240
|
+
* which the in-scope upsert above (it returns *only* in-scope rows) could never delete. The
|
|
241
|
+
* builder then supplies `lookupMembershipResidualScheduler` (the body with the WHERE stripped,
|
|
242
|
+
* keyed on `P`). Per affected `P` key this runs both residuals against the same live state and
|
|
243
|
+
* applies the **keyed diff**: it **deletes** only the membership keys the in-scope recompute no
|
|
244
|
+
* longer produces (rows that left scope — the delete keys come from live `T` via the join, so
|
|
245
|
+
* they match existing backing keys and touch nothing belonging to another `P`; membership and
|
|
246
|
+
* in-scope rows read the same live state, so their key bytes match exactly), and **upserts**
|
|
247
|
+
* every in-scope row. A row leaving scope is deleted (removed); a row entering scope is
|
|
248
|
+
* upserted (added); an unchanged in-scope row's upsert is suppressed by the host's
|
|
249
|
+
* value-identical skip (vtab/backing-host.ts) — ZERO effective changes instead of the former
|
|
250
|
+
* delete+insert refresh churn; a changed in-scope row reports one `update`. The membership
|
|
251
|
+
* residual MUST ignore the WHERE — else a row leaving scope would never be deleted.
|
|
252
|
+
*
|
|
253
|
+
* A `T`-side membership change (insert/delete/FK-move) is the *forward* path's job and fires
|
|
254
|
+
* its own maintenance. Returns the effective {@link BackingRowChange}(s) for the MV-over-MV
|
|
255
|
+
* cascade. This is the cold inline path; a statement-batched caller accumulates via
|
|
256
|
+
* {@link collectLookupResidualKeys} and recomputes at flush ({@link computeLookupResidualOps})
|
|
257
|
+
* — sound for the same last-write-wins-against-live-state reason as
|
|
258
|
+
* {@link applyForwardResidual}.
|
|
259
|
+
*/
|
|
260
|
+
export declare function applyLookupResidual(ctx: MaterializedViewManagerContext, plan: JoinResidualPlan, change: BackingRowChange, cache?: BackingConnectionCache): Promise<BackingRowChange[]>;
|
|
261
|
+
/**
|
|
262
|
+
* Derive one changed lookup-side (`P`) row's affected lookup key(s) (OLD ∪ NEW) and add
|
|
263
|
+
* them to `into`, deduped on `P`'s canonical PK values. The statement-batch counterpart
|
|
264
|
+
* of the derivation inside {@link applyLookupResidual}.
|
|
265
|
+
*/
|
|
266
|
+
export declare function collectLookupResidualKeys(plan: JoinResidualPlan, change: BackingRowChange, into: Map<string, SqlValue[]>): void;
|
|
267
|
+
/**
|
|
268
|
+
* Run the lookup-keyed residual variant once per affected `P` key and build the ops —
|
|
269
|
+
* the delete-capable membership diff when the plan carries
|
|
270
|
+
* `lookupMembershipResidualScheduler`, upsert-only otherwise (see
|
|
271
|
+
* {@link applyLookupResidual} for the soundness argument). Pure op computation; the
|
|
272
|
+
* caller owns connection resolution and the single applyMaintenance call.
|
|
273
|
+
*/
|
|
274
|
+
export declare function computeLookupResidualOps(ctx: MaterializedViewManagerContext, plan: JoinResidualPlan, keys: Iterable<SqlValue[]>): Promise<MaintenanceOp[]>;
|
|
275
|
+
/**
|
|
276
|
+
* Compute a `'prefix-delete'` plan's per-row backing delta and apply it: derive the
|
|
277
|
+
* affected base key(s) from the changed row (OLD ∪ NEW, deduped on the base key), and
|
|
278
|
+
* for each — re-run the base-PK-keyed residual against live source state and apply the
|
|
279
|
+
* **keyed diff against the existing effective fan-out slice** (read via the host's
|
|
280
|
+
* `scanEffective` with the base prefix, pending over committed — the same contiguous
|
|
281
|
+
* range the former wholesale `'delete-by-prefix'` removed): delete ONLY the existing
|
|
282
|
+
* keys the recompute no longer produces, upsert every recomputed row (the host's
|
|
283
|
+
* value-identical skip suppresses the unchanged ones). A base-PK-changing UPDATE
|
|
284
|
+
* recomputes both the OLD base key (slice diffs to all-deletes; the residual returns
|
|
285
|
+
* nothing for the now-absent old PK) and the NEW base key (new fan-out upserted); a
|
|
286
|
+
* DELETE diffs the old slice to all-deletes; an INSERT diffs against an empty slice
|
|
287
|
+
* (all upserts). An emptied/shrunk fan-out keeps the delete-without-upsert exactly —
|
|
288
|
+
* a disappearance is never "skipped". Returns the effective
|
|
289
|
+
* {@link BackingRowChange}(s) the backing layer realized, for the MV-over-MV cascade.
|
|
290
|
+
*
|
|
291
|
+
* Prefix-scan soundness is unchanged from the wholesale arm: the diff's slice read
|
|
292
|
+
* uses the same binary `equalityPrefix` scan `'delete-by-prefix'` used, sound under
|
|
293
|
+
* the build-time collation gate (the backing base-PK prefix inherits the source PK
|
|
294
|
+
* collation, and source-PK uniqueness collapses each collation class to one binary
|
|
295
|
+
* value). The stored slice's prefix bytes always equal the OLD image's (the slice was
|
|
296
|
+
* projected from that very source row), and OLD ∪ NEW both iterate, so a case-only
|
|
297
|
+
* base-PK rewrite still converges: the OLD-prefix pass pairs the slice with the
|
|
298
|
+
* recomputed rows (key pairing is collation-aware — the btree's identity — so a
|
|
299
|
+
* collation-equal key is REPLACED by its upsert, never also deleted) and the byte
|
|
300
|
+
* change surfaces as `update`s that re-key the stored bytes.
|
|
301
|
+
*
|
|
302
|
+
* Structurally the same as {@link applyForwardResidual}, differing only in the
|
|
303
|
+
* **prefix-slice** diff (one base row owns N backing rows sharing the prefix) and the
|
|
304
|
+
* **N-row** residual. This is the cold inline path; a statement-batched caller
|
|
305
|
+
* accumulates the same deduped base keys via {@link collectPrefixDeleteKeys} and diffs
|
|
306
|
+
* each distinct key once at flush ({@link computePrefixDeleteOps}) — sound because the
|
|
307
|
+
* residual and the effective-slice read both see live (reads-own-writes) state, so the
|
|
308
|
+
* flush-time diff is exactly what the last per-row diff would have produced.
|
|
309
|
+
*/
|
|
310
|
+
export declare function applyPrefixDelete(ctx: MaterializedViewManagerContext, plan: PrefixDeletePlan, change: BackingRowChange, cache?: BackingConnectionCache): Promise<BackingRowChange[]>;
|
|
311
|
+
/**
|
|
312
|
+
* Derive one changed base row's affected base key(s) (OLD ∪ NEW) and add them to
|
|
313
|
+
* `into`, deduped on the canonical base-PK values. `keyTuple` binds the residual
|
|
314
|
+
* (`pk{i}`); `prefix` is the slice's leading-PK equality key (the base-PK values in
|
|
315
|
+
* backing-PK order — identical here since the base PK leads the backing PK, but kept
|
|
316
|
+
* distinct for clarity). The statement-batch counterpart of the derivation inside
|
|
317
|
+
* {@link applyPrefixDelete}.
|
|
318
|
+
*/
|
|
319
|
+
export declare function collectPrefixDeleteKeys(plan: PrefixDeletePlan, change: BackingRowChange, into: Map<string, PrefixDeleteKey>): void;
|
|
320
|
+
/**
|
|
321
|
+
* Per affected base key: run the fan-out residual, read the existing effective slice for
|
|
322
|
+
* the base prefix, and build the keyed-diff ops (delete disappeared keys, upsert the
|
|
323
|
+
* recomputed rows). Pure op computation over the supplied host/connection; the caller
|
|
324
|
+
* owns the single applyMaintenance call, so a statement flush batches many base keys'
|
|
325
|
+
* ops into one host call.
|
|
326
|
+
*/
|
|
327
|
+
export declare function computePrefixDeleteOps(ctx: MaterializedViewManagerContext, plan: PrefixDeletePlan, keys: Iterable<PrefixDeleteKey>, host: BackingHost, connection: VirtualTableConnection): Promise<MaintenanceOp[]>;
|
|
328
|
+
/**
|
|
329
|
+
* True iff two backing rows agree on every backing-PK column under that column's
|
|
330
|
+
* collation — the btree's key identity. Pairs an existing slice row with the
|
|
331
|
+
* recomputed row that replaces it in {@link applyPrefixDelete}'s keyed diff.
|
|
332
|
+
*/
|
|
333
|
+
export declare function backingPkEqual(pkDef: ReadonlyArray<BackingPkColumn>, a: Row, b: Row): boolean;
|
|
334
|
+
/**
|
|
335
|
+
* True iff `row`'s **leading** (base-prefix) backing-PK columns equal `prefixVals` (the
|
|
336
|
+
* affected base key, in backing-PK order), under each column's collation. Keeps only the
|
|
337
|
+
* residual fan-out row(s) belonging to the recomputed base key — see
|
|
338
|
+
* {@link applyPrefixDelete}.
|
|
339
|
+
*/
|
|
340
|
+
export declare function residualRowMatchesBasePrefix(plan: PrefixDeletePlan, row: Row, prefixVals: readonly SqlValue[]): boolean;
|
|
341
|
+
/**
|
|
342
|
+
* Accumulate one source change's affected binding key(s) for a residual-arm plan into
|
|
343
|
+
* the per-statement {@link ResidualKeyBatch}, deduped across the whole statement —
|
|
344
|
+
* the deferred-accumulate counterpart of the cold per-row appliers above. Which
|
|
345
|
+
* variant map receives the keys follows the plan kind; a `'join-residual'` change
|
|
346
|
+
* routes on **which source changed** (forward for the driving `T`, lookup for `P`),
|
|
347
|
+
* exactly as {@link applyJoinResidual} dispatches. `planKey` is the MV key
|
|
348
|
+
* (lowercased `schema.name`) the manager indexes the plan under.
|
|
349
|
+
*/
|
|
350
|
+
export declare function accumulateResidualKeys(plan: ResidualMaintenancePlan, change: BackingRowChange, changedBase: string, batch: ResidualKeyBatch, planKey: string): void;
|
|
351
|
+
/**
|
|
352
|
+
* Compute the flush-time ops for one residual-arm MV's accumulated statement keys: run
|
|
353
|
+
* the appropriate residual variant once per distinct key against live post-statement
|
|
354
|
+
* state and concatenate the keyed-diff ops. Distinct keys touch disjoint backing slices
|
|
355
|
+
* — except a `'join-residual'` statement that accumulated both forward and lookup keys,
|
|
356
|
+
* where an overlapping backing row is recomputed twice from the SAME live state, so the
|
|
357
|
+
* duplicate upsert is value-identical and the host suppresses it. The caller owns the
|
|
358
|
+
* single {@link BackingHost.applyMaintenance} call over the combined array — one host
|
|
359
|
+
* round-trip per (MV, flush round) instead of one per source row.
|
|
360
|
+
*/
|
|
361
|
+
export declare function computeResidualBatchOps(ctx: MaterializedViewManagerContext, plan: ResidualMaintenancePlan, entry: ResidualKeyBatchEntry, host: BackingHost, connection: VirtualTableConnection): Promise<MaintenanceOp[]>;
|
|
362
|
+
/**
|
|
363
|
+
* Fold one source change's per-column aggregate contributions into the statement's
|
|
364
|
+
* delta accumulation ({@link ResidualKeyBatchEntry.delta}) — the delta-aggregate
|
|
365
|
+
* counterpart of {@link collectForwardResidualKeys}, called right after it (the
|
|
366
|
+
* residual keys remain the fallback record). Per contributing row image:
|
|
367
|
+
* `step(identity, row[arg])` (zero-arg → `step(identity)`) is the row's contribution;
|
|
368
|
+
* an insert `merge`s it in, a delete `merge`s its `negate`, an update retracts the OLD
|
|
369
|
+
* image into its group and inserts the NEW into its (possibly different) group. A row
|
|
370
|
+
* whose body-WHERE predicate is not unambiguously TRUE contributes nothing — but the
|
|
371
|
+
* raw column value (including NULL) IS fed to `step`, never pre-filtered: NULL-handling
|
|
372
|
+
* is the aggregate's own (law 2), and the row still counts toward the zero-arg
|
|
373
|
+
* multiplicity witness.
|
|
374
|
+
*/
|
|
375
|
+
export declare function accumulateDeltaAggregates(plan: ResidualRecomputePlan, change: BackingRowChange, entry: ResidualKeyBatchEntry): void;
|
|
376
|
+
/**
|
|
377
|
+
* Flush-time op computation for a delta-aggregate MV's accumulated statement deltas —
|
|
378
|
+
* the arithmetic read-modify-write that replaces the per-group residual re-execution.
|
|
379
|
+
* Per affected group:
|
|
380
|
+
* 1. read the group's current EFFECTIVE backing row by its full PK (the host's
|
|
381
|
+
* `scanEffective` equality-prefix point read — pending over committed, so a group
|
|
382
|
+
* written by an earlier statement of this transaction folds correctly);
|
|
383
|
+
* 2. per aggregate column: base = stored ? `decode(stored[col])` : a fresh identity
|
|
384
|
+
* accumulator; finalized = `finalize(merge(base, delta))`;
|
|
385
|
+
* 3. the multiplicity witness finalizing to 0 ⇔ the group emptied → `delete-key`
|
|
386
|
+
* (skipped when no row was stored); otherwise upsert the rebuilt row (group-key
|
|
387
|
+
* values + finalized aggregates) — the host's value-identical skip suppresses a
|
|
388
|
+
* net-identity delta (MV-016).
|
|
389
|
+
*
|
|
390
|
+
* **Retraction fallback.** A group that accumulated a retraction re-derives from its
|
|
391
|
+
* residual key (always accumulated alongside, same canonical map key) instead of the
|
|
392
|
+
* arithmetic, in two cases:
|
|
393
|
+
* - the descriptor has a **tighten** column (min/max — merge, no negate): a retraction
|
|
394
|
+
* cannot be undone by merge, so the whole group re-derives from live source state
|
|
395
|
+
* **whether or not a row is stored** (an intra-statement delete of the extreme poisons
|
|
396
|
+
* even a from-identity net-fold). The residual recomputes every column of the row
|
|
397
|
+
* (count/sum included), so a mixed group+tighten row is maintained by ONE path — no
|
|
398
|
+
* double-maintenance;
|
|
399
|
+
* - otherwise the descriptor is not retraction-safe (an abelian column whose decode is
|
|
400
|
+
* only an insert-observational witness — a nullable-argument sum) AND a stored row
|
|
401
|
+
* exists: the stored value cannot prove the true contribution count survives the
|
|
402
|
+
* retraction, so decoding it is unsound. A group with no stored row needs no fallback
|
|
403
|
+
* here — a pure abelian net-fold from identity is exact.
|
|
404
|
+
*
|
|
405
|
+
* Zero source reads, no residual execution on the arithmetic path — this is why the
|
|
406
|
+
* delta path also BYPASSES the per-statement degrade-to-rebuild crossover (it is
|
|
407
|
+
* already O(affected groups)).
|
|
408
|
+
*/
|
|
409
|
+
export declare function computeDeltaAggregateOps(ctx: MaterializedViewManagerContext, plan: ResidualRecomputePlan, entry: ResidualKeyBatchEntry, host: BackingHost, connection: VirtualTableConnection): Promise<MaintenanceOp[]>;
|
|
410
|
+
/**
|
|
411
|
+
* Invalidate every accumulated delta in the per-statement batch — called by the DML
|
|
412
|
+
* executor when an OR FAIL per-row savepoint ROLLS BACK: the savepoint undoes the
|
|
413
|
+
* failing row's source (and backing) writes, but the JS-side accumulation cannot be
|
|
414
|
+
* unwound, so the folded deltas may carry the reverted row's contribution. The residual
|
|
415
|
+
* keys are unaffected (a reverted key's recompute reads surviving live state and is
|
|
416
|
+
* value-identical → suppressed), so poisoning simply drops the fast path: the flush in
|
|
417
|
+
* the executor's catch routes those entries through the plain residual. One-way for the
|
|
418
|
+
* statement — `deltaPoisoned` also stops later (cascade-driven) delta re-accumulation
|
|
419
|
+
* into the same entry from mixing with an already-flushed-around state.
|
|
420
|
+
*/
|
|
421
|
+
export declare function poisonResidualDeltaAccumulations(batch: ResidualKeyBatch): void;
|
|
422
|
+
//# sourceMappingURL=database-materialized-views-apply.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"database-materialized-views-apply.d.ts","sourceRoot":"","sources":["../../../src/core/database-materialized-views-apply.ts"],"names":[],"mappings":"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"}
|