@quereus/quereus 4.3.0 → 4.3.2
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 +1 -1
- package/dist/src/core/database-external-changes.js +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 +280 -0
- package/dist/src/core/database-materialized-views-apply.d.ts.map +1 -0
- package/dist/src/core/database-materialized-views-apply.js +624 -0
- package/dist/src/core/database-materialized-views-apply.js.map +1 -0
- package/dist/src/core/database-materialized-views-plan-builders.d.ts +203 -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 +1084 -0
- package/dist/src/core/database-materialized-views-plan-builders.js.map +1 -0
- package/dist/src/core/database-materialized-views-plans.d.ts +417 -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 +11 -819
- package/dist/src/core/database-materialized-views.d.ts.map +1 -1
- package/dist/src/core/database-materialized-views.js +60 -2069
- 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 +250 -33
- 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/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/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/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/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.d.ts.map +1 -1
- package/dist/src/planner/building/delete.js +13 -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-aggregates.d.ts.map +1 -1
- package/dist/src/planner/building/select-aggregates.js +72 -4
- package/dist/src/planner/building/select-aggregates.js.map +1 -1
- package/dist/src/planner/building/select.js +3 -3
- package/dist/src/planner/building/select.js.map +1 -1
- package/dist/src/planner/building/update.d.ts.map +1 -1
- package/dist/src/planner/building/update.js +16 -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/cache/materialization-advisory.d.ts +1 -2
- package/dist/src/planner/cache/materialization-advisory.d.ts.map +1 -1
- package/dist/src/planner/cache/materialization-advisory.js +21 -14
- package/dist/src/planner/cache/materialization-advisory.js.map +1 -1
- package/dist/src/planner/cache/reference-graph.d.ts +14 -1
- package/dist/src/planner/cache/reference-graph.d.ts.map +1 -1
- package/dist/src/planner/cache/reference-graph.js +26 -26
- package/dist/src/planner/cache/reference-graph.js.map +1 -1
- package/dist/src/planner/cost/index.d.ts +7 -3
- package/dist/src/planner/cost/index.d.ts.map +1 -1
- 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 +1 -0
- package/dist/src/planner/nodes/cache-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/cache-node.js +1 -0
- package/dist/src/planner/nodes/cache-node.js.map +1 -1
- package/dist/src/planner/nodes/cte-node.d.ts +1 -0
- package/dist/src/planner/nodes/cte-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/cte-node.js +4 -1
- 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.map +1 -1
- package/dist/src/planner/nodes/recursive-cte-node.js +8 -2
- 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 +885 -894
- 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-materialized-view-rewrite.d.ts +2 -2
- package/dist/src/planner/rules/cache/rule-materialized-view-rewrite.js +2 -2
- 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/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-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 +90 -26
- 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/scopes/registered.d.ts +21 -0
- package/dist/src/planner/scopes/registered.d.ts.map +1 -1
- package/dist/src/planner/scopes/registered.js +31 -1
- package/dist/src/planner/scopes/registered.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/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.map +1 -1
- package/dist/src/runtime/emit/aggregate.js +17 -13
- 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.map +1 -1
- package/dist/src/runtime/emit/cache.js +2 -1
- 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 +2 -1
- 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 +147 -34
- 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 +123 -12
- 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 +2 -1
- 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 +18 -4
- package/dist/src/runtime/parallel-driver.d.ts.map +1 -1
- package/dist/src/runtime/parallel-driver.js +72 -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 +66 -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/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 +38 -22
- 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 +21 -4
- package/dist/src/vtab/memory/module.d.ts.map +1 -1
- package/dist/src/vtab/memory/module.js +45 -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 +64 -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
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
* {@link makePoisonedDerivedRowValidator} handles the one rebuild that cannot
|
|
26
26
|
* recompile (the subquery-CHECK target was dropped).
|
|
27
27
|
*
|
|
28
|
-
* Semantics (documented in `docs/
|
|
28
|
+
* Semantics (documented in `docs/mv-constraints.md` § Derived-row
|
|
29
29
|
* constraint validation):
|
|
30
30
|
* - **op-mask collapse** — a derived row image is neither a user INSERT nor
|
|
31
31
|
* UPDATE (which op maintenance realizes is an artifact of backing-key
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"derived-row-validator.d.ts","sourceRoot":"","sources":["../../../src/core/derived-row-validator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwDG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAE9C,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAKrE,OAAO,EAAY,KAAK,aAAa,EAAuB,MAAM,+BAA+B,CAAC;AAWlG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAc,KAAK,GAAG,EAAE,KAAK,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"derived-row-validator.d.ts","sourceRoot":"","sources":["../../../src/core/derived-row-validator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwDG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAE9C,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAKrE,OAAO,EAAY,KAAK,aAAa,EAAuB,MAAM,+BAA+B,CAAC;AAWlG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAc,KAAK,GAAG,EAAE,KAAK,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAInD,wEAAwE;AACxE,UAAU,uBAAuB;IAChC,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,UAAU,CAAC;IACpC,sGAAsG;IACtG,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,2FAA2F;IAC3F,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAChC;;yEAEqE;IACrE,QAAQ,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;CAChE;AAED;;;;;GAKG;AACH,MAAM,WAAW,6BAA6B;IAC7C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B;qDACiD;IACjD,QAAQ,CAAC,iBAAiB,EAAE,aAAa,CAAC;IAC1C,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,uBAAuB,CAAC,CAAC;IACxD;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,gBAAgB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CAC/C;AAiED;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,qBAAqB,GAAG,6BAA6B,GAAG,SAAS,CAqF3H;AA8BD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,+BAA+B,CAC9C,KAAK,EAAE,6BAA6B,EACpC,KAAK,EAAE,YAAY,GACjB,6BAA6B,CAc/B;AAED;;;;;;;GAOG;AACH,wBAAsB,uBAAuB,CAC5C,EAAE,EAAE,QAAQ,EACZ,SAAS,EAAE,6BAA6B,EACxC,MAAM,EAAE,GAAG,EACX,YAAY,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC,CAyCf"}
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
* {@link makePoisonedDerivedRowValidator} handles the one rebuild that cannot
|
|
26
26
|
* recompile (the subquery-CHECK target was dropped).
|
|
27
27
|
*
|
|
28
|
-
* Semantics (documented in `docs/
|
|
28
|
+
* Semantics (documented in `docs/mv-constraints.md` § Derived-row
|
|
29
29
|
* constraint validation):
|
|
30
30
|
* - **op-mask collapse** — a derived row image is neither a user INSERT nor
|
|
31
31
|
* UPDATE (which op maintenance realizes is an artifact of backing-key
|
|
@@ -73,6 +73,7 @@ import { createStrictRowContextMap, wrapTableContextsStrict } from '../runtime/s
|
|
|
73
73
|
import { StatusCode } from '../common/types.js';
|
|
74
74
|
import { QuereusError } from '../common/errors.js';
|
|
75
75
|
import { expressionToString } from '../emit/ast-stringify.js';
|
|
76
|
+
import { isTruthy } from '../util/comparison.js';
|
|
76
77
|
/**
|
|
77
78
|
* True when the expression tree contains a column reference qualified `old.` /
|
|
78
79
|
* `new.` (case-insensitive). A structural walk over the plain-data AST graph so
|
|
@@ -123,8 +124,9 @@ function compileDerivedRowCheck(db, plan, kind, constraintName, violation) {
|
|
|
123
124
|
const scheduler = new Scheduler(emitPlanNode(optimized, new EmissionContext(db)));
|
|
124
125
|
const evaluator = async (rctx) => {
|
|
125
126
|
const value = await scheduler.run(rctx);
|
|
126
|
-
// The constraint-check truthy/NULL-pass rule
|
|
127
|
-
|
|
127
|
+
// The constraint-check truthy/NULL-pass rule (shared isTruthy semantics):
|
|
128
|
+
// NULL passes, everything else fails unless truthy.
|
|
129
|
+
if (value !== null && !isTruthy(value))
|
|
128
130
|
throw violation();
|
|
129
131
|
return value;
|
|
130
132
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"derived-row-validator.js","sourceRoot":"","sources":["../../../src/core/derived-row-validator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwDG;AAGH,OAAO,EAA8C,SAAS,EAAkB,MAAM,oBAAoB,CAAC;AAE3G,OAAO,EAAE,kCAAkC,EAAE,+BAA+B,EAAE,MAAM,iCAAiC,CAAC;AACtH,OAAO,EAAE,qBAAqB,EAAE,MAAM,2CAA2C,CAAC;AAClF,OAAO,EAAE,sBAAsB,EAAE,MAAM,4CAA4C,CAAC;AAEpF,OAAO,EAAE,QAAQ,EAA2C,MAAM,+BAA+B,CAAC;AAClG,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,0BAA0B,EAAwB,MAAM,gCAAgC,CAAC;AAClG,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,yBAAyB,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAE/F,OAAO,EAAE,UAAU,EAA2B,MAAM,oBAAoB,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"derived-row-validator.js","sourceRoot":"","sources":["../../../src/core/derived-row-validator.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,6 +17,14 @@ export declare class Statement {
|
|
|
17
17
|
private boundArgs;
|
|
18
18
|
private plan;
|
|
19
19
|
private emissionContext;
|
|
20
|
+
/**
|
|
21
|
+
* Cached scheduler for the emitted instruction tree. Emit + schedule are
|
|
22
|
+
* value-independent (emitters see only `(plan, EmissionContext)`, never bound
|
|
23
|
+
* params), so this is built once and reused across executions. Its lifetime is
|
|
24
|
+
* exactly the emission context's: nulled in lockstep with `this.emissionContext`
|
|
25
|
+
* at every invalidation site, and rebuilt lazily in `_iterateRowsRawInternal`.
|
|
26
|
+
*/
|
|
27
|
+
private scheduler;
|
|
20
28
|
private needsCompile;
|
|
21
29
|
private columnDefCache;
|
|
22
30
|
private schemaChangeUnsubscriber;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"statement.d.ts","sourceRoot":"","sources":["../../../src/core/statement.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,QAAQ,EAAc,KAAK,GAAG,EAAE,KAAK,aAAa,EAAE,KAAK,gBAAgB,EAAE,KAAK,YAAY,EAAyC,MAAM,oBAAoB,CAAC;AAE9K,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAkB,KAAK,SAAS,EAAE,KAAK,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAExF,OAAO,KAAK,EAAE,SAAS,IAAI,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAIlE,OAAO,KAAK,EAAE,iBAAiB,EAAkB,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"statement.d.ts","sourceRoot":"","sources":["../../../src/core/statement.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,7 +7,7 @@ import { emitPlanNode } from '../runtime/emitters.js';
|
|
|
7
7
|
import { Scheduler } from '../runtime/scheduler.js';
|
|
8
8
|
import { createStrictRowContextMap, wrapTableContextsStrict } from '../runtime/strict-fork.js';
|
|
9
9
|
import { Cached } from '../util/cached.js';
|
|
10
|
-
import { isAsyncIterable } from '../runtime/utils.js';
|
|
10
|
+
import { isAsyncIterable, disconnectVTable } from '../runtime/utils.js';
|
|
11
11
|
import { generateInstructionProgram, serializePlanTree } from '../planner/debug.js';
|
|
12
12
|
import { EmissionContext } from '../runtime/emission-context.js';
|
|
13
13
|
import { getParameterTypes } from './param.js';
|
|
@@ -17,9 +17,9 @@ import { wrapAsyncIterator } from '../util/async-iterator.js';
|
|
|
17
17
|
import { analyzeChangeScope } from '../planner/analysis/change-scope.js';
|
|
18
18
|
import { collectScalarRequiredParams } from '../planner/analysis/scalar-param-usage.js';
|
|
19
19
|
import { isObjectClassValue } from '../util/comparison.js';
|
|
20
|
+
import { astToString } from '../emit/ast-stringify.js';
|
|
20
21
|
const log = createLogger('core:statement');
|
|
21
22
|
const errorLog = log.extend('error');
|
|
22
|
-
const warnLog = log.extend('warn');
|
|
23
23
|
/**
|
|
24
24
|
* Represents a prepared SQL statement.
|
|
25
25
|
*/
|
|
@@ -33,6 +33,14 @@ export class Statement {
|
|
|
33
33
|
boundArgs = {};
|
|
34
34
|
plan = null;
|
|
35
35
|
emissionContext = null;
|
|
36
|
+
/**
|
|
37
|
+
* Cached scheduler for the emitted instruction tree. Emit + schedule are
|
|
38
|
+
* value-independent (emitters see only `(plan, EmissionContext)`, never bound
|
|
39
|
+
* params), so this is built once and reused across executions. Its lifetime is
|
|
40
|
+
* exactly the emission context's: nulled in lockstep with `this.emissionContext`
|
|
41
|
+
* at every invalidation site, and rebuilt lazily in `_iterateRowsRawInternal`.
|
|
42
|
+
*/
|
|
43
|
+
scheduler = null;
|
|
36
44
|
needsCompile = true;
|
|
37
45
|
columnDefCache = new Cached(() => this.getColumnDefs());
|
|
38
46
|
schemaChangeUnsubscriber = null;
|
|
@@ -64,7 +72,7 @@ export class Statement {
|
|
|
64
72
|
else {
|
|
65
73
|
this.astBatch = sqlOrAstBatch;
|
|
66
74
|
// Try to reconstruct originalSql if possible, or set a generic name
|
|
67
|
-
this.originalSql = this.astBatch.map(s => s
|
|
75
|
+
this.originalSql = this.astBatch.map(s => astToString(s)).join('; ');
|
|
68
76
|
}
|
|
69
77
|
// Handle explicit parameter types or initial values
|
|
70
78
|
if (paramsOrTypes instanceof Map) {
|
|
@@ -106,6 +114,7 @@ export class Statement {
|
|
|
106
114
|
this.astBatchIndex++;
|
|
107
115
|
this.plan = null;
|
|
108
116
|
this.emissionContext = null;
|
|
117
|
+
this.scheduler = null;
|
|
109
118
|
this.needsCompile = true;
|
|
110
119
|
this.columnDefCache.clear();
|
|
111
120
|
this.parameterTypes = undefined;
|
|
@@ -120,7 +129,7 @@ export class Statement {
|
|
|
120
129
|
if (this.astBatchIndex < 0 || this.astBatchIndex >= this.astBatch.length) {
|
|
121
130
|
return "";
|
|
122
131
|
}
|
|
123
|
-
return this.getAstStatement()
|
|
132
|
+
return astToString(this.getAstStatement());
|
|
124
133
|
}
|
|
125
134
|
/** @internal Plans the current AST statement */
|
|
126
135
|
compile() {
|
|
@@ -145,12 +154,15 @@ export class Statement {
|
|
|
145
154
|
// seeks (which erases the comparison node). See validateParameterTypes.
|
|
146
155
|
this.scalarRequiredParams = collectScalarRequiredParams(rawPlan);
|
|
147
156
|
plan = this.db.optimizer.optimize(rawPlan, this.db);
|
|
148
|
-
//
|
|
157
|
+
// Always drop the previous listener before (re)compiling, even when the new
|
|
158
|
+
// plan has no dependencies — otherwise a zero-dependency recompile leaks the
|
|
159
|
+
// old listener on the schema-change notifier.
|
|
160
|
+
if (this.schemaChangeUnsubscriber) {
|
|
161
|
+
this.schemaChangeUnsubscriber();
|
|
162
|
+
this.schemaChangeUnsubscriber = null;
|
|
163
|
+
}
|
|
164
|
+
// Set up schema change invalidation only when we have dependencies
|
|
149
165
|
if (dependencies && dependencies.hasAnyDependencies()) {
|
|
150
|
-
// Remove any existing listener
|
|
151
|
-
if (this.schemaChangeUnsubscriber) {
|
|
152
|
-
this.schemaChangeUnsubscriber();
|
|
153
|
-
}
|
|
154
166
|
// Add new listener for schema changes that affect our dependencies
|
|
155
167
|
this.schemaChangeUnsubscriber = this.db.schemaManager.getChangeNotifier().addListener(event => {
|
|
156
168
|
// Map event type to the dependency type(s) it can affect
|
|
@@ -193,6 +205,7 @@ export class Statement {
|
|
|
193
205
|
this.needsCompile = true;
|
|
194
206
|
this.plan = null;
|
|
195
207
|
this.emissionContext = null;
|
|
208
|
+
this.scheduler = null;
|
|
196
209
|
this.columnDefCache.clear();
|
|
197
210
|
}
|
|
198
211
|
});
|
|
@@ -298,17 +311,36 @@ export class Statement {
|
|
|
298
311
|
// Validate parameter types before execution
|
|
299
312
|
this.validateParameterTypes();
|
|
300
313
|
this.busy = true;
|
|
314
|
+
// Per-execution cache of connected inner-scan vtab instances (see
|
|
315
|
+
// runtime/emit/scan.ts). Declared out here so the teardown `finally` can
|
|
316
|
+
// disconnect every instance exactly once on all exit paths (normal completion,
|
|
317
|
+
// break, error, abort). `runtimeCtx` is likewise hoisted so `finally` can reach
|
|
318
|
+
// it after the try body assigns it.
|
|
319
|
+
const scanConnections = new Map();
|
|
320
|
+
let runtimeCtx;
|
|
301
321
|
try {
|
|
302
322
|
const blockPlanNode = this.compile();
|
|
303
323
|
if (!blockPlanNode.statements.length)
|
|
304
324
|
return;
|
|
305
325
|
const emissionContext = this.getEmissionContext();
|
|
306
|
-
|
|
307
|
-
|
|
326
|
+
// Emit + schedule once and reuse across executions — the instruction tree is
|
|
327
|
+
// value-independent (bound params resolve from ctx.params at run time, not at
|
|
328
|
+
// emit time), and its validity is exactly the emission context's, which is
|
|
329
|
+
// nulled together with `this.scheduler` on any schema-dependency change.
|
|
330
|
+
// NOTE: the emission context (and thus this scheduler) is cached, so toggling
|
|
331
|
+
// the `trace_plan_stack` db option mid-life is ignored until the plan is
|
|
332
|
+
// recompiled — the tracing wrap is baked at emit time. Pre-existing behavior,
|
|
333
|
+
// unchanged here; caching the scheduler does not regress it (per-run tracer
|
|
334
|
+
// wrapping lives in the scheduler hooks, not baked). Recompile to pick up a toggle.
|
|
335
|
+
if (!this.scheduler) {
|
|
336
|
+
const rootInstruction = emitPlanNode(blockPlanNode, emissionContext);
|
|
337
|
+
this.scheduler = new Scheduler(rootInstruction);
|
|
338
|
+
}
|
|
339
|
+
const scheduler = this.scheduler;
|
|
308
340
|
const tracer = runtimeOverrides?.tracer ?? this.db.getInstructionTracer();
|
|
309
341
|
const enableMetrics = runtimeOverrides?.enableMetrics ?? Boolean(this.db.getOption('runtime_metrics'));
|
|
310
342
|
const signal = runtimeOverrides?.signal;
|
|
311
|
-
|
|
343
|
+
runtimeCtx = {
|
|
312
344
|
db: this.db,
|
|
313
345
|
stmt: this,
|
|
314
346
|
params: this.boundArgs,
|
|
@@ -317,7 +349,15 @@ export class Statement {
|
|
|
317
349
|
tracer,
|
|
318
350
|
enableMetrics,
|
|
319
351
|
signal,
|
|
352
|
+
scanConnections,
|
|
320
353
|
};
|
|
354
|
+
// Validate captured schema objects once per execution — hoisted out of every
|
|
355
|
+
// capturing instruction's run (see createValidatedInstruction). Runs after any
|
|
356
|
+
// schema-change listener would have fired; a defensive existence check for a
|
|
357
|
+
// schema change racing execution setup. Skip when nothing was captured.
|
|
358
|
+
if (emissionContext.getCapturedObjectCount() > 0) {
|
|
359
|
+
emissionContext.validateCapturedSchemaObjects();
|
|
360
|
+
}
|
|
321
361
|
const results = await scheduler.run(runtimeCtx);
|
|
322
362
|
if (results) {
|
|
323
363
|
if (Array.isArray(results) && results.length) {
|
|
@@ -339,6 +379,18 @@ export class Statement {
|
|
|
339
379
|
throw new QuereusError(`Execution error: ${message}`, StatusCode.ERROR, e instanceof Error ? e : undefined);
|
|
340
380
|
}
|
|
341
381
|
finally {
|
|
382
|
+
// Disconnect every inner-scan instance connected during this execution,
|
|
383
|
+
// exactly once. This `finally` runs after the consumer finishes draining
|
|
384
|
+
// (normal completion, `break`, error, or abort — the async generator's
|
|
385
|
+
// teardown), so the cached instances stay live for the whole streaming
|
|
386
|
+
// window and are released here. `runtimeCtx` is undefined only on the
|
|
387
|
+
// no-statements early return, where the map is empty anyway.
|
|
388
|
+
if (runtimeCtx) {
|
|
389
|
+
for (const vtab of scanConnections.values()) {
|
|
390
|
+
await disconnectVTable(runtimeCtx, vtab);
|
|
391
|
+
}
|
|
392
|
+
}
|
|
393
|
+
scanConnections.clear();
|
|
342
394
|
this.busy = false;
|
|
343
395
|
}
|
|
344
396
|
}
|
|
@@ -371,7 +423,30 @@ export class Statement {
|
|
|
371
423
|
* boundary so iteration can be interrupted on a request timeout).
|
|
372
424
|
*/
|
|
373
425
|
iterateRows(params, options) {
|
|
374
|
-
return wrapAsyncIterator(this.
|
|
426
|
+
return wrapAsyncIterator(this._iterateRowsGenerator(params, options?.signal), (commit, error) => this.db._finalizeImplicitTransaction(commit, error));
|
|
427
|
+
}
|
|
428
|
+
/**
|
|
429
|
+
* Internal generator for iterateRows() that holds the exec mutex for the whole
|
|
430
|
+
* iteration, so two public iterations over the same db can't interleave the
|
|
431
|
+
* implicit-transaction lifecycle. Mirrors {@link _allGenerator}, but yields raw
|
|
432
|
+
* `Row` (no `rowToObject`). Transaction finalization is handled by the wrapper
|
|
433
|
+
* returned by iterateRows().
|
|
434
|
+
*
|
|
435
|
+
* NOTE: on normal completion wrapAsyncIterator runs the transaction-finalize
|
|
436
|
+
* cleanup after this generator's finally (mutex release), so the implicit-txn
|
|
437
|
+
* commit lands just outside the mutex — same ordering as all()/`_allGenerator`.
|
|
438
|
+
* @internal
|
|
439
|
+
*/
|
|
440
|
+
async *_iterateRowsGenerator(params, signal) {
|
|
441
|
+
// Pre-flight cancellation before acquiring the mutex, mirroring _allGenerator/eval().
|
|
442
|
+
throwIfAborted(signal);
|
|
443
|
+
const releaseMutex = await this.db._acquireExecMutex();
|
|
444
|
+
try {
|
|
445
|
+
yield* this._iterateRowsRaw(params, signal);
|
|
446
|
+
}
|
|
447
|
+
finally {
|
|
448
|
+
releaseMutex();
|
|
449
|
+
}
|
|
375
450
|
}
|
|
376
451
|
/**
|
|
377
452
|
* Iterates over result rows while forcing instruction tracing for this execution.
|
|
@@ -389,10 +464,12 @@ export class Statement {
|
|
|
389
464
|
*/
|
|
390
465
|
async reset() {
|
|
391
466
|
this.validateStatement("reset");
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
467
|
+
// Refuse while an iteration is in flight, matching bind/bindAll/clearBindings/
|
|
468
|
+
// nextStatement. Clearing `busy` here would let a second iteration slip past the
|
|
469
|
+
// guard in _iterateRowsRawInternal → two concurrent iterations over one statement.
|
|
470
|
+
// finalize() remains the escape hatch that force-clears `busy`.
|
|
471
|
+
if (this.busy)
|
|
472
|
+
throw new MisuseError("Statement busy, cannot reset an in-flight iteration; complete or finalize it first.");
|
|
396
473
|
}
|
|
397
474
|
/**
|
|
398
475
|
* Clears all bound parameter values.
|
|
@@ -417,6 +494,7 @@ export class Statement {
|
|
|
417
494
|
this.boundArgs = {};
|
|
418
495
|
this.plan = null;
|
|
419
496
|
this.emissionContext = null;
|
|
497
|
+
this.scheduler = null;
|
|
420
498
|
this.columnDefCache.clear();
|
|
421
499
|
this.astBatchIndex = -1;
|
|
422
500
|
// Clean up schema change listener
|
|
@@ -603,8 +681,10 @@ export class Statement {
|
|
|
603
681
|
// silently return no rows. The set is collected structurally at plan time
|
|
604
682
|
// (JSON-vs-JSON comparisons are excluded), so this never over-fires.
|
|
605
683
|
for (const key of this.scalarRequiredParams) {
|
|
684
|
+
// Presence check, not `??`: a parameter legitimately bound to `null` must
|
|
685
|
+
// use that binding, not fall through to the `:`-prefixed alternate key.
|
|
606
686
|
const value = typeof key === 'string'
|
|
607
|
-
? (this.boundArgs[key]
|
|
687
|
+
? (Object.hasOwn(this.boundArgs, key) ? this.boundArgs[key] : this.boundArgs[`:${key}`])
|
|
608
688
|
: this.boundArgs[key];
|
|
609
689
|
if (value !== undefined && isObjectClassValue(value)) {
|
|
610
690
|
throw new QuereusError(`parameter ${typeof key === 'number' ? `?${key}` : `:${key}`} ` +
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"statement.js","sourceRoot":"","sources":["../../../src/core/statement.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"statement.js","sourceRoot":"","sources":["../../../src/core/statement.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ast-stringify.d.ts","sourceRoot":"","sources":["../../../src/emit/ast-stringify.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,OAAO,KAAK,KAAK,GAAG,MAAM,kBAAkB,CAAC;AAI7C,OAAO,KAAK,EAAE,QAAQ,EAAS,MAAM,oBAAoB,CAAC;AAS1D;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAKpD;AAuBD,wBAAgB,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC,OAAO,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"ast-stringify.d.ts","sourceRoot":"","sources":["../../../src/emit/ast-stringify.ts"],"names":[],"mappings":"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"}
|
|
@@ -133,6 +133,9 @@ export function astToString(node) {
|
|
|
133
133
|
case 'explainSchema':
|
|
134
134
|
return `explain schema ${quoteIdentifier(node.schemaName || 'main')}`;
|
|
135
135
|
default:
|
|
136
|
+
// NOTE: switch is not compiler-enforced exhaustive; a new Statement/Expression AST
|
|
137
|
+
// variant added without a matching case falls through here and renders as `[type]`
|
|
138
|
+
// (e.g. surfaces via getBlockSql()/originalSql). If that ever bites, make this throw.
|
|
136
139
|
return `[${node.type}]`; // Fallback for unknown node types
|
|
137
140
|
}
|
|
138
141
|
}
|
|
@@ -289,21 +292,30 @@ const POSTFIX_IS_OPERATORS = new Set([
|
|
|
289
292
|
function unaryBodyNeedsParens(expr) {
|
|
290
293
|
return expr.expr.type === 'binary';
|
|
291
294
|
}
|
|
295
|
+
// Binary-operator precedence for round-trip parenthesization; higher binds tighter.
|
|
296
|
+
// Module-level (built once) because `needsParens` runs hot during canonical-DDL /
|
|
297
|
+
// body-hash stringification. These are the emitter's own round-trip precedences (NOT
|
|
298
|
+
// SQLite's exact grammar table) — do not renumber existing operators or emitted SQL
|
|
299
|
+
// shifts. The keys must match the `operator` strings the parser actually stores on a
|
|
300
|
+
// `binary` node: `<>` is normalized to `!=` at parse time (never stored), and `IS` /
|
|
301
|
+
// `IS NOT` only ever form *unary* nodes (`IS NULL` / `IS [NOT] TRUE|FALSE`) — there is
|
|
302
|
+
// no binary distinct-from operator — so none of those appear here.
|
|
303
|
+
const BINARY_OPERATOR_PRECEDENCE = {
|
|
304
|
+
'OR': 1, 'XOR': 1,
|
|
305
|
+
'AND': 2,
|
|
306
|
+
'=': 3, '==': 3, '!=': 3,
|
|
307
|
+
'<': 4, '<=': 4, '>': 4, '>=': 4, 'LIKE': 4, 'GLOB': 4, 'MATCH': 4, 'REGEXP': 4,
|
|
308
|
+
'+': 5, '-': 5,
|
|
309
|
+
'*': 6, '/': 6, '%': 6,
|
|
310
|
+
'||': 7,
|
|
311
|
+
};
|
|
312
|
+
const ASSOCIATIVE_BINARY_OPERATORS = new Set(['AND', 'OR', 'XOR', '+', '*', '||']);
|
|
292
313
|
// Helper to determine if parentheses are needed for binary operations
|
|
293
314
|
function needsParens(expr, parentOp, side) {
|
|
294
315
|
if (expr.type !== 'binary')
|
|
295
316
|
return false;
|
|
296
|
-
const
|
|
297
|
-
|
|
298
|
-
'AND': 2,
|
|
299
|
-
'=': 3, '==': 3, '!=': 3,
|
|
300
|
-
'<': 4, '<=': 4, '>': 4, '>=': 4, 'LIKE': 4, 'GLOB': 4, 'MATCH': 4, 'REGEXP': 4,
|
|
301
|
-
'+': 5, '-': 5,
|
|
302
|
-
'*': 6, '/': 6, '%': 6,
|
|
303
|
-
'||': 7,
|
|
304
|
-
};
|
|
305
|
-
const parentPrec = precedence[parentOp.toUpperCase()] || 0;
|
|
306
|
-
const childPrec = precedence[expr.operator.toUpperCase()] || 0;
|
|
317
|
+
const parentPrec = BINARY_OPERATOR_PRECEDENCE[parentOp.toUpperCase()] || 0;
|
|
318
|
+
const childPrec = BINARY_OPERATOR_PRECEDENCE[expr.operator.toUpperCase()] || 0;
|
|
307
319
|
if (childPrec < parentPrec)
|
|
308
320
|
return true;
|
|
309
321
|
if (childPrec === parentPrec && side === 'right' && !isAssociative(parentOp))
|
|
@@ -311,8 +323,7 @@ function needsParens(expr, parentOp, side) {
|
|
|
311
323
|
return false;
|
|
312
324
|
}
|
|
313
325
|
function isAssociative(op) {
|
|
314
|
-
|
|
315
|
-
return associativeOps.includes(op.toUpperCase());
|
|
326
|
+
return ASSOCIATIVE_BINARY_OPERATORS.has(op.toUpperCase());
|
|
316
327
|
}
|
|
317
328
|
// Helper for window definitions
|
|
318
329
|
function windowDefinitionToString(win) {
|