@quereus/quereus 2.9.0 → 3.0.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 +224 -222
- package/dist/src/core/database-assertions.d.ts +36 -16
- package/dist/src/core/database-assertions.d.ts.map +1 -1
- package/dist/src/core/database-assertions.js +222 -118
- package/dist/src/core/database-assertions.js.map +1 -1
- package/dist/src/core/database-transaction.d.ts +96 -13
- package/dist/src/core/database-transaction.d.ts.map +1 -1
- package/dist/src/core/database-transaction.js +294 -35
- package/dist/src/core/database-transaction.js.map +1 -1
- package/dist/src/core/database-watchers.d.ts +58 -0
- package/dist/src/core/database-watchers.d.ts.map +1 -0
- package/dist/src/core/database-watchers.js +206 -0
- package/dist/src/core/database-watchers.js.map +1 -0
- package/dist/src/core/database.d.ts +78 -5
- package/dist/src/core/database.d.ts.map +1 -1
- package/dist/src/core/database.js +120 -20
- package/dist/src/core/database.js.map +1 -1
- package/dist/src/core/statement.d.ts +9 -0
- package/dist/src/core/statement.d.ts.map +1 -1
- package/dist/src/core/statement.js +29 -0
- package/dist/src/core/statement.js.map +1 -1
- package/dist/src/core/table-handle.d.ts +45 -0
- package/dist/src/core/table-handle.d.ts.map +1 -0
- package/dist/src/core/table-handle.js +54 -0
- package/dist/src/core/table-handle.js.map +1 -0
- package/dist/src/func/builtins/conversion.d.ts.map +1 -1
- package/dist/src/func/builtins/conversion.js +12 -1
- package/dist/src/func/builtins/conversion.js.map +1 -1
- package/dist/src/func/builtins/explain.d.ts.map +1 -1
- package/dist/src/func/builtins/explain.js +22 -8
- package/dist/src/func/builtins/explain.js.map +1 -1
- package/dist/src/func/builtins/generation.d.ts.map +1 -1
- package/dist/src/func/builtins/generation.js +26 -1
- package/dist/src/func/builtins/generation.js.map +1 -1
- package/dist/src/func/builtins/index.d.ts.map +1 -1
- package/dist/src/func/builtins/index.js +5 -1
- package/dist/src/func/builtins/index.js.map +1 -1
- package/dist/src/func/builtins/json-tvf.d.ts.map +1 -1
- package/dist/src/func/builtins/json-tvf.js +16 -2
- package/dist/src/func/builtins/json-tvf.js.map +1 -1
- package/dist/src/func/builtins/schema.d.ts +4 -0
- package/dist/src/func/builtins/schema.d.ts.map +1 -1
- package/dist/src/func/builtins/schema.js +270 -11
- package/dist/src/func/builtins/schema.js.map +1 -1
- package/dist/src/func/registration.d.ts +19 -1
- package/dist/src/func/registration.d.ts.map +1 -1
- package/dist/src/func/registration.js +8 -3
- package/dist/src/func/registration.js.map +1 -1
- package/dist/src/index.d.ts +7 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +5 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/parser/parser.d.ts.map +1 -1
- package/dist/src/parser/parser.js +12 -4
- package/dist/src/parser/parser.js.map +1 -1
- package/dist/src/planner/analysis/assertion-classifier.d.ts +71 -0
- package/dist/src/planner/analysis/assertion-classifier.d.ts.map +1 -0
- package/dist/src/planner/analysis/assertion-classifier.js +286 -0
- package/dist/src/planner/analysis/assertion-classifier.js.map +1 -0
- package/dist/src/planner/analysis/assertion-hoist-cache.d.ts +34 -0
- package/dist/src/planner/analysis/assertion-hoist-cache.d.ts.map +1 -0
- package/dist/src/planner/analysis/assertion-hoist-cache.js +119 -0
- package/dist/src/planner/analysis/assertion-hoist-cache.js.map +1 -0
- package/dist/src/planner/analysis/binding-extractor.d.ts +58 -0
- package/dist/src/planner/analysis/binding-extractor.d.ts.map +1 -0
- package/dist/src/planner/analysis/binding-extractor.js +110 -0
- package/dist/src/planner/analysis/binding-extractor.js.map +1 -0
- package/dist/src/planner/analysis/change-scope.d.ts +184 -0
- package/dist/src/planner/analysis/change-scope.d.ts.map +1 -0
- package/dist/src/planner/analysis/change-scope.js +825 -0
- package/dist/src/planner/analysis/change-scope.js.map +1 -0
- package/dist/src/planner/analysis/check-extraction.d.ts +29 -0
- package/dist/src/planner/analysis/check-extraction.d.ts.map +1 -0
- package/dist/src/planner/analysis/check-extraction.js +420 -0
- package/dist/src/planner/analysis/check-extraction.js.map +1 -0
- package/dist/src/planner/analysis/constraint-extractor.d.ts +47 -7
- package/dist/src/planner/analysis/constraint-extractor.d.ts.map +1 -1
- package/dist/src/planner/analysis/constraint-extractor.js +169 -92
- package/dist/src/planner/analysis/constraint-extractor.js.map +1 -1
- package/dist/src/planner/analysis/partial-unique-extraction.d.ts +68 -0
- package/dist/src/planner/analysis/partial-unique-extraction.d.ts.map +1 -0
- package/dist/src/planner/analysis/partial-unique-extraction.js +347 -0
- package/dist/src/planner/analysis/partial-unique-extraction.js.map +1 -0
- package/dist/src/planner/analysis/predicate-conjuncts.d.ts +14 -0
- package/dist/src/planner/analysis/predicate-conjuncts.d.ts.map +1 -0
- package/dist/src/planner/analysis/predicate-conjuncts.js +31 -0
- package/dist/src/planner/analysis/predicate-conjuncts.js.map +1 -0
- package/dist/src/planner/analysis/predicate-shape.d.ts +52 -0
- package/dist/src/planner/analysis/predicate-shape.d.ts.map +1 -0
- package/dist/src/planner/analysis/predicate-shape.js +119 -0
- package/dist/src/planner/analysis/predicate-shape.js.map +1 -0
- package/dist/src/planner/analysis/sat-checker.d.ts +43 -0
- package/dist/src/planner/analysis/sat-checker.d.ts.map +1 -0
- package/dist/src/planner/analysis/sat-checker.js +393 -0
- package/dist/src/planner/analysis/sat-checker.js.map +1 -0
- package/dist/src/planner/building/table.d.ts.map +1 -1
- package/dist/src/planner/building/table.js +1 -1
- package/dist/src/planner/building/table.js.map +1 -1
- package/dist/src/planner/framework/characteristics.d.ts +10 -1
- package/dist/src/planner/framework/characteristics.d.ts.map +1 -1
- package/dist/src/planner/framework/characteristics.js +24 -5
- package/dist/src/planner/framework/characteristics.js.map +1 -1
- package/dist/src/planner/framework/pass.d.ts.map +1 -1
- package/dist/src/planner/framework/pass.js +46 -16
- package/dist/src/planner/framework/pass.js.map +1 -1
- package/dist/src/planner/framework/physical-utils.d.ts +0 -9
- package/dist/src/planner/framework/physical-utils.d.ts.map +1 -1
- package/dist/src/planner/framework/physical-utils.js +0 -31
- package/dist/src/planner/framework/physical-utils.js.map +1 -1
- package/dist/src/planner/nodes/aggregate-node.d.ts +25 -0
- package/dist/src/planner/nodes/aggregate-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/aggregate-node.js +75 -8
- 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 +6 -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 +17 -3
- package/dist/src/planner/nodes/asof-scan-node.js.map +1 -1
- package/dist/src/planner/nodes/bloom-join-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/bloom-join-node.js +19 -9
- package/dist/src/planner/nodes/bloom-join-node.js.map +1 -1
- package/dist/src/planner/nodes/distinct-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/distinct-node.js +10 -6
- package/dist/src/planner/nodes/distinct-node.js.map +1 -1
- package/dist/src/planner/nodes/empty-relation-node.d.ts +27 -0
- package/dist/src/planner/nodes/empty-relation-node.d.ts.map +1 -0
- package/dist/src/planner/nodes/empty-relation-node.js +61 -0
- package/dist/src/planner/nodes/empty-relation-node.js.map +1 -0
- package/dist/src/planner/nodes/filter.d.ts.map +1 -1
- package/dist/src/planner/nodes/filter.js +65 -5
- package/dist/src/planner/nodes/filter.js.map +1 -1
- package/dist/src/planner/nodes/hash-aggregate.d.ts +1 -1
- package/dist/src/planner/nodes/hash-aggregate.d.ts.map +1 -1
- package/dist/src/planner/nodes/hash-aggregate.js +8 -6
- package/dist/src/planner/nodes/hash-aggregate.js.map +1 -1
- package/dist/src/planner/nodes/join-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/join-node.js +12 -9
- package/dist/src/planner/nodes/join-node.js.map +1 -1
- package/dist/src/planner/nodes/join-utils.d.ts +24 -1
- package/dist/src/planner/nodes/join-utils.d.ts.map +1 -1
- package/dist/src/planner/nodes/join-utils.js +86 -0
- package/dist/src/planner/nodes/join-utils.js.map +1 -1
- package/dist/src/planner/nodes/limit-offset.d.ts.map +1 -1
- package/dist/src/planner/nodes/limit-offset.js +6 -1
- package/dist/src/planner/nodes/limit-offset.js.map +1 -1
- package/dist/src/planner/nodes/merge-join-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/merge-join-node.js +19 -9
- 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 +5 -2
- package/dist/src/planner/nodes/ordinal-slice-node.js.map +1 -1
- package/dist/src/planner/nodes/plan-node-type.d.ts +1 -0
- package/dist/src/planner/nodes/plan-node-type.d.ts.map +1 -1
- package/dist/src/planner/nodes/plan-node-type.js +1 -0
- package/dist/src/planner/nodes/plan-node-type.js.map +1 -1
- package/dist/src/planner/nodes/plan-node.d.ts +186 -4
- package/dist/src/planner/nodes/plan-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/plan-node.js.map +1 -1
- package/dist/src/planner/nodes/project-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/project-node.js +75 -30
- package/dist/src/planner/nodes/project-node.js.map +1 -1
- package/dist/src/planner/nodes/reference.d.ts +24 -2
- package/dist/src/planner/nodes/reference.d.ts.map +1 -1
- package/dist/src/planner/nodes/reference.js +101 -1
- package/dist/src/planner/nodes/reference.js.map +1 -1
- package/dist/src/planner/nodes/retrieve-node.d.ts +9 -1
- package/dist/src/planner/nodes/retrieve-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/retrieve-node.js +21 -0
- package/dist/src/planner/nodes/retrieve-node.js.map +1 -1
- package/dist/src/planner/nodes/returning-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/returning-node.js +64 -28
- package/dist/src/planner/nodes/returning-node.js.map +1 -1
- package/dist/src/planner/nodes/scalar.d.ts +1 -0
- package/dist/src/planner/nodes/scalar.d.ts.map +1 -1
- package/dist/src/planner/nodes/scalar.js +12 -0
- package/dist/src/planner/nodes/scalar.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 +15 -0
- package/dist/src/planner/nodes/set-operation-node.js.map +1 -1
- package/dist/src/planner/nodes/single-row.d.ts.map +1 -1
- package/dist/src/planner/nodes/single-row.js +3 -1
- package/dist/src/planner/nodes/single-row.js.map +1 -1
- package/dist/src/planner/nodes/sort.d.ts.map +1 -1
- package/dist/src/planner/nodes/sort.js +10 -3
- package/dist/src/planner/nodes/sort.js.map +1 -1
- package/dist/src/planner/nodes/stream-aggregate.d.ts +1 -1
- package/dist/src/planner/nodes/stream-aggregate.d.ts.map +1 -1
- package/dist/src/planner/nodes/stream-aggregate.js +8 -8
- package/dist/src/planner/nodes/stream-aggregate.js.map +1 -1
- package/dist/src/planner/nodes/table-access-nodes.d.ts +3 -3
- package/dist/src/planner/nodes/table-access-nodes.d.ts.map +1 -1
- package/dist/src/planner/nodes/table-access-nodes.js +26 -8
- package/dist/src/planner/nodes/table-access-nodes.js.map +1 -1
- package/dist/src/planner/nodes/table-function-call.d.ts +4 -1
- package/dist/src/planner/nodes/table-function-call.d.ts.map +1 -1
- package/dist/src/planner/nodes/table-function-call.js +224 -14
- package/dist/src/planner/nodes/table-function-call.js.map +1 -1
- package/dist/src/planner/nodes/window-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/window-node.js +9 -2
- package/dist/src/planner/nodes/window-node.js.map +1 -1
- package/dist/src/planner/optimizer-tuning.d.ts +29 -1
- package/dist/src/planner/optimizer-tuning.d.ts.map +1 -1
- package/dist/src/planner/optimizer-tuning.js +3 -0
- package/dist/src/planner/optimizer-tuning.js.map +1 -1
- package/dist/src/planner/optimizer.d.ts.map +1 -1
- package/dist/src/planner/optimizer.js +187 -0
- 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 +22 -7
- package/dist/src/planner/rules/access/rule-select-access-path.js.map +1 -1
- package/dist/src/planner/rules/aggregate/rule-groupby-fd-simplification.d.ts +30 -0
- package/dist/src/planner/rules/aggregate/rule-groupby-fd-simplification.d.ts.map +1 -0
- package/dist/src/planner/rules/aggregate/rule-groupby-fd-simplification.js +116 -0
- package/dist/src/planner/rules/aggregate/rule-groupby-fd-simplification.js.map +1 -0
- package/dist/src/planner/rules/distinct/rule-distinct-elimination.d.ts +7 -7
- package/dist/src/planner/rules/distinct/rule-distinct-elimination.d.ts.map +1 -1
- package/dist/src/planner/rules/distinct/rule-distinct-elimination.js +18 -16
- package/dist/src/planner/rules/distinct/rule-distinct-elimination.js.map +1 -1
- package/dist/src/planner/rules/join/rule-join-elimination.d.ts +56 -0
- package/dist/src/planner/rules/join/rule-join-elimination.d.ts.map +1 -0
- package/dist/src/planner/rules/join/rule-join-elimination.js +326 -0
- package/dist/src/planner/rules/join/rule-join-elimination.js.map +1 -0
- package/dist/src/planner/rules/join/rule-join-greedy-commute.d.ts.map +1 -1
- package/dist/src/planner/rules/join/rule-join-greedy-commute.js +10 -2
- package/dist/src/planner/rules/join/rule-join-greedy-commute.js.map +1 -1
- package/dist/src/planner/rules/predicate/rule-aggregate-predicate-pushdown.d.ts +20 -0
- package/dist/src/planner/rules/predicate/rule-aggregate-predicate-pushdown.d.ts.map +1 -0
- package/dist/src/planner/rules/predicate/rule-aggregate-predicate-pushdown.js +181 -0
- package/dist/src/planner/rules/predicate/rule-aggregate-predicate-pushdown.js.map +1 -0
- package/dist/src/planner/rules/predicate/rule-empty-relation-folding.d.ts +46 -0
- package/dist/src/planner/rules/predicate/rule-empty-relation-folding.d.ts.map +1 -0
- package/dist/src/planner/rules/predicate/rule-empty-relation-folding.js +156 -0
- package/dist/src/planner/rules/predicate/rule-empty-relation-folding.js.map +1 -0
- package/dist/src/planner/rules/predicate/rule-filter-contradiction.d.ts +30 -0
- package/dist/src/planner/rules/predicate/rule-filter-contradiction.d.ts.map +1 -0
- package/dist/src/planner/rules/predicate/rule-filter-contradiction.js +60 -0
- package/dist/src/planner/rules/predicate/rule-filter-contradiction.js.map +1 -0
- package/dist/src/planner/rules/predicate/rule-predicate-inference-equivalence.d.ts +45 -0
- package/dist/src/planner/rules/predicate/rule-predicate-inference-equivalence.d.ts.map +1 -0
- package/dist/src/planner/rules/predicate/rule-predicate-inference-equivalence.js +210 -0
- package/dist/src/planner/rules/predicate/rule-predicate-inference-equivalence.js.map +1 -0
- package/dist/src/planner/rules/predicate/rule-sargable-range-rewrite.d.ts +29 -0
- package/dist/src/planner/rules/predicate/rule-sargable-range-rewrite.d.ts.map +1 -0
- package/dist/src/planner/rules/predicate/rule-sargable-range-rewrite.js +161 -0
- package/dist/src/planner/rules/predicate/rule-sargable-range-rewrite.js.map +1 -0
- package/dist/src/planner/rules/sort/rule-orderby-fd-pruning.d.ts +39 -0
- package/dist/src/planner/rules/sort/rule-orderby-fd-pruning.d.ts.map +1 -0
- package/dist/src/planner/rules/sort/rule-orderby-fd-pruning.js +91 -0
- package/dist/src/planner/rules/sort/rule-orderby-fd-pruning.js.map +1 -0
- package/dist/src/planner/rules/subquery/rule-anti-join-fk-empty.d.ts +35 -0
- package/dist/src/planner/rules/subquery/rule-anti-join-fk-empty.d.ts.map +1 -0
- package/dist/src/planner/rules/subquery/rule-anti-join-fk-empty.js +74 -0
- package/dist/src/planner/rules/subquery/rule-anti-join-fk-empty.js.map +1 -0
- package/dist/src/planner/rules/subquery/rule-semi-join-fk-trivial.d.ts +27 -0
- package/dist/src/planner/rules/subquery/rule-semi-join-fk-trivial.d.ts.map +1 -0
- package/dist/src/planner/rules/subquery/rule-semi-join-fk-trivial.js +103 -0
- package/dist/src/planner/rules/subquery/rule-semi-join-fk-trivial.js.map +1 -0
- package/dist/src/planner/rules/subquery/rule-subquery-decorrelation.d.ts.map +1 -1
- package/dist/src/planner/rules/subquery/rule-subquery-decorrelation.js +1 -25
- package/dist/src/planner/rules/subquery/rule-subquery-decorrelation.js.map +1 -1
- package/dist/src/planner/scopes/global.js +2 -2
- package/dist/src/planner/scopes/global.js.map +1 -1
- package/dist/src/planner/type-utils.d.ts.map +1 -1
- package/dist/src/planner/type-utils.js +11 -0
- package/dist/src/planner/type-utils.js.map +1 -1
- package/dist/src/planner/util/fd-utils.d.ts +245 -0
- package/dist/src/planner/util/fd-utils.d.ts.map +1 -0
- package/dist/src/planner/util/fd-utils.js +1416 -0
- package/dist/src/planner/util/fd-utils.js.map +1 -0
- package/dist/src/planner/util/ind-utils.d.ts +79 -0
- package/dist/src/planner/util/ind-utils.d.ts.map +1 -0
- package/dist/src/planner/util/ind-utils.js +146 -0
- package/dist/src/planner/util/ind-utils.js.map +1 -0
- package/dist/src/planner/util/key-utils.d.ts +75 -14
- package/dist/src/planner/util/key-utils.d.ts.map +1 -1
- package/dist/src/planner/util/key-utils.js +234 -57
- package/dist/src/planner/util/key-utils.js.map +1 -1
- package/dist/src/runtime/delta-executor.d.ts +134 -0
- package/dist/src/runtime/delta-executor.d.ts.map +1 -0
- package/dist/src/runtime/delta-executor.js +382 -0
- package/dist/src/runtime/delta-executor.js.map +1 -0
- package/dist/src/runtime/emit/alter-table.d.ts.map +1 -1
- package/dist/src/runtime/emit/alter-table.js +52 -16
- package/dist/src/runtime/emit/alter-table.js.map +1 -1
- package/dist/src/runtime/emit/create-assertion.d.ts.map +1 -1
- package/dist/src/runtime/emit/create-assertion.js +3 -2
- package/dist/src/runtime/emit/create-assertion.js.map +1 -1
- package/dist/src/runtime/emit/dml-executor.d.ts.map +1 -1
- package/dist/src/runtime/emit/dml-executor.js +40 -13
- package/dist/src/runtime/emit/dml-executor.js.map +1 -1
- package/dist/src/runtime/emit/drop-assertion.js +1 -1
- package/dist/src/runtime/emit/drop-assertion.js.map +1 -1
- package/dist/src/runtime/emit/empty-relation.d.ts +5 -0
- package/dist/src/runtime/emit/empty-relation.d.ts.map +1 -0
- package/dist/src/runtime/emit/empty-relation.js +11 -0
- package/dist/src/runtime/emit/empty-relation.js.map +1 -0
- package/dist/src/runtime/foreign-key-actions.d.ts +16 -0
- package/dist/src/runtime/foreign-key-actions.d.ts.map +1 -1
- package/dist/src/runtime/foreign-key-actions.js +81 -1
- package/dist/src/runtime/foreign-key-actions.js.map +1 -1
- package/dist/src/runtime/register.d.ts.map +1 -1
- package/dist/src/runtime/register.js +2 -0
- package/dist/src/runtime/register.js.map +1 -1
- package/dist/src/schema/assertion.d.ts +8 -0
- package/dist/src/schema/assertion.d.ts.map +1 -1
- package/dist/src/schema/change-events.d.ts +5 -1
- package/dist/src/schema/change-events.d.ts.map +1 -1
- package/dist/src/schema/change-events.js.map +1 -1
- package/dist/src/schema/function.d.ts +65 -1
- package/dist/src/schema/function.d.ts.map +1 -1
- package/dist/src/schema/function.js +31 -0
- package/dist/src/schema/function.js.map +1 -1
- package/dist/src/schema/manager.d.ts +33 -0
- package/dist/src/schema/manager.d.ts.map +1 -1
- package/dist/src/schema/manager.js +95 -4
- package/dist/src/schema/manager.js.map +1 -1
- package/dist/src/schema/rename-rewriter.d.ts.map +1 -1
- package/dist/src/schema/rename-rewriter.js +303 -102
- package/dist/src/schema/rename-rewriter.js.map +1 -1
- package/dist/src/schema/table.d.ts +21 -2
- package/dist/src/schema/table.d.ts.map +1 -1
- package/dist/src/schema/table.js +17 -8
- package/dist/src/schema/table.js.map +1 -1
- package/dist/src/types/temporal-types.d.ts.map +1 -1
- package/dist/src/types/temporal-types.js +32 -0
- package/dist/src/types/temporal-types.js.map +1 -1
- package/dist/src/vtab/events.d.ts +9 -0
- package/dist/src/vtab/events.d.ts.map +1 -1
- package/dist/src/vtab/events.js +19 -0
- package/dist/src/vtab/events.js.map +1 -1
- package/dist/src/vtab/memory/layer/manager.d.ts.map +1 -1
- package/dist/src/vtab/memory/layer/manager.js +24 -5
- package/dist/src/vtab/memory/layer/manager.js.map +1 -1
- package/dist/src/vtab/memory/utils/predicate.d.ts +2 -1
- package/dist/src/vtab/memory/utils/predicate.d.ts.map +1 -1
- package/dist/src/vtab/memory/utils/predicate.js +32 -1
- package/dist/src/vtab/memory/utils/predicate.js.map +1 -1
- package/package.json +3 -3
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Binding-key extraction for incremental delta planning.
|
|
3
|
+
*
|
|
4
|
+
* Wraps `analyzeRowSpecific` and packages its per-relation classifications
|
|
5
|
+
* into a `BindingMode` per `TableReferenceNode` instance. The shape is
|
|
6
|
+
* consumer-neutral — assertions, materialized views, and any other change-
|
|
7
|
+
* driven consumer can register a `DeltaSubscription` against the same
|
|
8
|
+
* `PlanBindings`.
|
|
9
|
+
*
|
|
10
|
+
* - 'row' bindings carry the unique-key columns to bind on (PK preferred,
|
|
11
|
+
* else the lex-min covered key under FD closure).
|
|
12
|
+
* - 'group' bindings carry the minimal GROUP BY columns recovered from
|
|
13
|
+
* `analyzeRowSpecific.groupKeys`.
|
|
14
|
+
* - 'global' bindings carry no extra metadata — the consumer evaluates its
|
|
15
|
+
* plan once for any dependency change.
|
|
16
|
+
*/
|
|
17
|
+
import { TableReferenceNode } from '../nodes/reference.js';
|
|
18
|
+
import { analyzeRowSpecific, extractCoveredKeysForTable } from './constraint-extractor.js';
|
|
19
|
+
/**
|
|
20
|
+
* Walk a plan and emit the per-`TableReferenceNode` binding modes the runtime
|
|
21
|
+
* needs to parameterize a delta-driven consumer over the same plan.
|
|
22
|
+
*
|
|
23
|
+
* The selection rule for `'row'` matches what the assertion path already
|
|
24
|
+
* picks: prefer the primary key when it's covered, else fall back to the
|
|
25
|
+
* first covered unique key (lex-min by column index). For `'group'`,
|
|
26
|
+
* `groupKeys.get(relKey)` from `analyzeRowSpecific` is copied through
|
|
27
|
+
* verbatim — already in the table reference's output-column space.
|
|
28
|
+
*/
|
|
29
|
+
export function extractBindings(plan) {
|
|
30
|
+
const { classifications, groupKeys } = analyzeRowSpecific(plan);
|
|
31
|
+
const perRelation = new Map();
|
|
32
|
+
const relationToBase = new Map();
|
|
33
|
+
const tableRefByRelKey = new Map();
|
|
34
|
+
collectTableRefs(plan, tableRefByRelKey, relationToBase);
|
|
35
|
+
for (const [relKey, classification] of classifications) {
|
|
36
|
+
if (classification === 'global') {
|
|
37
|
+
perRelation.set(relKey, { kind: 'global' });
|
|
38
|
+
continue;
|
|
39
|
+
}
|
|
40
|
+
if (classification === 'group') {
|
|
41
|
+
const groupColumns = groupKeys.get(relKey);
|
|
42
|
+
if (groupColumns && groupColumns.length > 0) {
|
|
43
|
+
perRelation.set(relKey, { kind: 'group', groupColumns: [...groupColumns] });
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
// Should not happen — analyzeRowSpecific guarantees groupKeys
|
|
47
|
+
// for every 'group' classification. Fall back to global so
|
|
48
|
+
// the consumer doesn't silently bind on nothing.
|
|
49
|
+
perRelation.set(relKey, { kind: 'global' });
|
|
50
|
+
}
|
|
51
|
+
continue;
|
|
52
|
+
}
|
|
53
|
+
// 'row': pick the same key the assertion path picks today: PK first,
|
|
54
|
+
// else first covered unique key.
|
|
55
|
+
const tableRef = tableRefByRelKey.get(relKey);
|
|
56
|
+
if (!tableRef) {
|
|
57
|
+
perRelation.set(relKey, { kind: 'global' });
|
|
58
|
+
continue;
|
|
59
|
+
}
|
|
60
|
+
const pkIndices = tableRef.tableSchema.primaryKeyDefinition.map(d => d.index);
|
|
61
|
+
const covered = extractCoveredKeysForTable(plan, relKey);
|
|
62
|
+
const chosen = chooseRowKey(pkIndices, covered);
|
|
63
|
+
if (chosen.length === 0) {
|
|
64
|
+
// Classification said 'row' but no covered key — defensive fallback.
|
|
65
|
+
perRelation.set(relKey, { kind: 'global' });
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
perRelation.set(relKey, { kind: 'row', keyColumns: chosen });
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
return { perRelation, relationToBase };
|
|
72
|
+
}
|
|
73
|
+
/** Choose the key for a 'row' binding: PK if it's among covered, else
|
|
74
|
+
* the lex-min covered key (sort by length, then by joined indices). */
|
|
75
|
+
function chooseRowKey(pkIndices, coveredKeys) {
|
|
76
|
+
if (coveredKeys.length === 0)
|
|
77
|
+
return [];
|
|
78
|
+
if (pkIndices.length > 0) {
|
|
79
|
+
const pkKey = [...pkIndices].sort((a, b) => a - b).join(',');
|
|
80
|
+
for (const k of coveredKeys) {
|
|
81
|
+
if ([...k].sort((a, b) => a - b).join(',') === pkKey)
|
|
82
|
+
return [...pkIndices];
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
// Lex-min covered key for determinism: shortest first, then lexicographic
|
|
86
|
+
// by column indices.
|
|
87
|
+
const sorted = [...coveredKeys].map(k => [...k]).sort((a, b) => {
|
|
88
|
+
if (a.length !== b.length)
|
|
89
|
+
return a.length - b.length;
|
|
90
|
+
for (let i = 0; i < a.length; i++) {
|
|
91
|
+
if (a[i] !== b[i])
|
|
92
|
+
return a[i] - b[i];
|
|
93
|
+
}
|
|
94
|
+
return 0;
|
|
95
|
+
});
|
|
96
|
+
return sorted[0];
|
|
97
|
+
}
|
|
98
|
+
function collectTableRefs(node, out, relationToBase) {
|
|
99
|
+
if (node instanceof TableReferenceNode) {
|
|
100
|
+
const schema = node.tableSchema;
|
|
101
|
+
const base = `${schema.schemaName}.${schema.name}`.toLowerCase();
|
|
102
|
+
const relKey = `${base}#${node.id ?? 'unknown'}`;
|
|
103
|
+
out.set(relKey, node);
|
|
104
|
+
relationToBase.set(relKey, base);
|
|
105
|
+
}
|
|
106
|
+
for (const child of node.getChildren()) {
|
|
107
|
+
collectTableRefs(child, out, relationToBase);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
//# sourceMappingURL=binding-extractor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"binding-extractor.js","sourceRoot":"","sources":["../../../../src/planner/analysis/binding-extractor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Public change-scope data contract and analyzer.
|
|
3
|
+
*
|
|
4
|
+
* `ChangeScope` is the external, serializable projection of the internal
|
|
5
|
+
* `BindingMode` shape from `binding-extractor.ts`. It tells a caller what
|
|
6
|
+
* base-table state a prepared `Statement` may read from, with as much
|
|
7
|
+
* narrowing as the optimizer can prove statically (binding keys, group
|
|
8
|
+
* keys, parameter placeholders).
|
|
9
|
+
*
|
|
10
|
+
* The data contract is plain JSON (after sorted-array normalization of the
|
|
11
|
+
* `columns` set), so callers can serialize a scope, ship it over a wire,
|
|
12
|
+
* and deserialize it on the other side.
|
|
13
|
+
*
|
|
14
|
+
* Companion watcher (`Database.watch`) ships separately and consumes the
|
|
15
|
+
* same shape.
|
|
16
|
+
*/
|
|
17
|
+
import type { SqlValue, SqlParameters } from '../../common/types.js';
|
|
18
|
+
import type { ScalarType } from '../../common/datatype.js';
|
|
19
|
+
import type { PlanNode } from '../nodes/plan-node.js';
|
|
20
|
+
/** Qualified base-table name, lowercased. */
|
|
21
|
+
export interface QualifiedName {
|
|
22
|
+
readonly schema: string;
|
|
23
|
+
readonly table: string;
|
|
24
|
+
}
|
|
25
|
+
/** A non-deterministic input that means "watching state alone won't tell you when the result changes." */
|
|
26
|
+
export type NonDetSource = {
|
|
27
|
+
readonly kind: 'time';
|
|
28
|
+
} | {
|
|
29
|
+
readonly kind: 'random';
|
|
30
|
+
} | {
|
|
31
|
+
readonly kind: 'volatileUdf';
|
|
32
|
+
readonly name: string;
|
|
33
|
+
} | {
|
|
34
|
+
readonly kind: 'parameter';
|
|
35
|
+
readonly index: number | string;
|
|
36
|
+
};
|
|
37
|
+
/** A bound or unbound value pinning a key column. */
|
|
38
|
+
export type ScopeValue = SqlValue | ParamScopeValue;
|
|
39
|
+
/**
|
|
40
|
+
* Portable, clone- and JSON-safe description of a parameter's declared scalar
|
|
41
|
+
* type. Carries the logical type's *name* (resolvable against the global type
|
|
42
|
+
* registry) plus the metadata flags that callers typically need at the
|
|
43
|
+
* boundary. The full {@link ScalarType} can be reconstructed with
|
|
44
|
+
* {@link scalarTypeFromPortable}.
|
|
45
|
+
*/
|
|
46
|
+
export interface PortableScalarType {
|
|
47
|
+
readonly typeName: string;
|
|
48
|
+
readonly nullable: boolean;
|
|
49
|
+
readonly collationName?: string;
|
|
50
|
+
readonly isReadOnly?: boolean;
|
|
51
|
+
}
|
|
52
|
+
/** An unbound parameter placeholder inside a `ScopeValue` tuple. */
|
|
53
|
+
export interface ParamScopeValue {
|
|
54
|
+
readonly kind: 'param';
|
|
55
|
+
readonly index: number | string;
|
|
56
|
+
readonly type: PortableScalarType;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Reconstruct a full {@link ScalarType} from a {@link PortableScalarType} by
|
|
60
|
+
* resolving the logical type through the global type registry. Useful for
|
|
61
|
+
* callers that received a deserialized {@link ChangeScope} and need to feed
|
|
62
|
+
* the parameter type into other planner APIs.
|
|
63
|
+
*/
|
|
64
|
+
export declare function scalarTypeFromPortable(p: PortableScalarType): ScalarType;
|
|
65
|
+
/** How the scope narrows reads on a single base table. */
|
|
66
|
+
export type WatchScope = {
|
|
67
|
+
readonly kind: 'full';
|
|
68
|
+
} | {
|
|
69
|
+
readonly kind: 'rows';
|
|
70
|
+
readonly key: readonly string[];
|
|
71
|
+
readonly values: ReadonlyArray<ReadonlyArray<ScopeValue>>;
|
|
72
|
+
} | {
|
|
73
|
+
readonly kind: 'groups';
|
|
74
|
+
readonly groupBy: readonly string[];
|
|
75
|
+
} | {
|
|
76
|
+
readonly kind: 'rowsByGroup';
|
|
77
|
+
readonly groupBy: readonly string[];
|
|
78
|
+
readonly values: ReadonlyArray<ReadonlyArray<ScopeValue>>;
|
|
79
|
+
};
|
|
80
|
+
/** A watch on one base table referenced by the plan. */
|
|
81
|
+
export interface TableWatch {
|
|
82
|
+
readonly table: QualifiedName;
|
|
83
|
+
/**
|
|
84
|
+
* Columns of the table actually read by the plan. `'all'` is reserved for
|
|
85
|
+
* count-style plans that read nothing column-specific.
|
|
86
|
+
*/
|
|
87
|
+
readonly columns: ReadonlySet<string> | 'all';
|
|
88
|
+
readonly scope: WatchScope;
|
|
89
|
+
}
|
|
90
|
+
/** Top-level result: per-table watches plus non-deterministic inputs. */
|
|
91
|
+
export interface ChangeScope {
|
|
92
|
+
readonly watches: ReadonlyArray<TableWatch>;
|
|
93
|
+
readonly nonDeterministicSources: ReadonlyArray<NonDetSource>;
|
|
94
|
+
readonly unboundParameters: ReadonlyArray<number | string>;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Handle returned by `Database.watch(scope, handler)`. Calling
|
|
98
|
+
* `unsubscribe()` stops further firings and releases any capture-spec
|
|
99
|
+
* demand the subscription registered. Idempotent.
|
|
100
|
+
*/
|
|
101
|
+
export interface Subscription {
|
|
102
|
+
readonly id: string;
|
|
103
|
+
unsubscribe(): void;
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Per-watch hit produced for a single fired `WatchEvent`.
|
|
107
|
+
*
|
|
108
|
+
* - For a `rows` / `rowsByGroup` watch, `hits` lists the bound tuples
|
|
109
|
+
* from the watch's `values` that intersected the changes in this txn.
|
|
110
|
+
* - For a `groups` watch, `hits` lists the distinct group-key tuples
|
|
111
|
+
* touched in this txn.
|
|
112
|
+
* - For a `full` watch, `hits` is always empty (the watch describes the
|
|
113
|
+
* whole table — there is no narrower set of keys to report).
|
|
114
|
+
*/
|
|
115
|
+
export interface MatchedWatch {
|
|
116
|
+
readonly watch: TableWatch;
|
|
117
|
+
readonly hits: ReadonlyArray<ReadonlyArray<SqlValue>>;
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Event delivered to a `WatchHandler` after a transaction commits.
|
|
121
|
+
*
|
|
122
|
+
* `matched` contains one entry per `TableWatch` in the subscription's
|
|
123
|
+
* scope that actually saw a change in this transaction; watches that
|
|
124
|
+
* weren't touched are omitted. The handler is not invoked at all when
|
|
125
|
+
* `matched` would be empty.
|
|
126
|
+
*/
|
|
127
|
+
export interface WatchEvent {
|
|
128
|
+
readonly matched: ReadonlyArray<MatchedWatch>;
|
|
129
|
+
readonly txnId: string;
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Handler signature for `Database.watch`. May be sync or async. A
|
|
133
|
+
* Promise return is awaited before the watcher proceeds to the next
|
|
134
|
+
* subscription; rejections are logged and swallowed (watcher errors
|
|
135
|
+
* do not roll back the commit — assertions own that contract).
|
|
136
|
+
*/
|
|
137
|
+
export type WatchHandler = (event: WatchEvent) => void | Promise<void>;
|
|
138
|
+
/**
|
|
139
|
+
* Walk a (post-analysis) plan and produce its `ChangeScope`. If `params`
|
|
140
|
+
* is supplied, parameter placeholders are substituted in-place and the
|
|
141
|
+
* corresponding indices are dropped from `unboundParameters`.
|
|
142
|
+
*/
|
|
143
|
+
export declare function analyzeChangeScope(plan: PlanNode, options?: {
|
|
144
|
+
params?: SqlParameters | SqlValue[];
|
|
145
|
+
}): ChangeScope;
|
|
146
|
+
export declare function unionScopes(a: ChangeScope, b: ChangeScope): ChangeScope;
|
|
147
|
+
export declare function intersectScopes(a: ChangeScope, b: ChangeScope): ChangeScope;
|
|
148
|
+
export declare function bindParameters(scope: ChangeScope, params: SqlParameters | SqlValue[]): ChangeScope;
|
|
149
|
+
export declare function isEmpty(scope: ChangeScope): boolean;
|
|
150
|
+
export declare function describesEverything(scope: ChangeScope): boolean;
|
|
151
|
+
type SerializedWatchScope = {
|
|
152
|
+
kind: 'full';
|
|
153
|
+
} | {
|
|
154
|
+
kind: 'rows';
|
|
155
|
+
key: string[];
|
|
156
|
+
values: SerializedScopeValue[][];
|
|
157
|
+
} | {
|
|
158
|
+
kind: 'groups';
|
|
159
|
+
groupBy: string[];
|
|
160
|
+
} | {
|
|
161
|
+
kind: 'rowsByGroup';
|
|
162
|
+
groupBy: string[];
|
|
163
|
+
values: SerializedScopeValue[][];
|
|
164
|
+
};
|
|
165
|
+
type SerializedScopeValue = {
|
|
166
|
+
v: SqlValue;
|
|
167
|
+
} | {
|
|
168
|
+
p: number | string;
|
|
169
|
+
t: PortableScalarType;
|
|
170
|
+
};
|
|
171
|
+
interface SerializedTableWatch {
|
|
172
|
+
table: QualifiedName;
|
|
173
|
+
columns: string[] | 'all';
|
|
174
|
+
scope: SerializedWatchScope;
|
|
175
|
+
}
|
|
176
|
+
export interface SerializedChangeScope {
|
|
177
|
+
watches: SerializedTableWatch[];
|
|
178
|
+
nonDeterministicSources: NonDetSource[];
|
|
179
|
+
unboundParameters: ReadonlyArray<number | string>;
|
|
180
|
+
}
|
|
181
|
+
export declare function serializeChangeScope(scope: ChangeScope): SerializedChangeScope;
|
|
182
|
+
export declare function deserializeChangeScope(obj: SerializedChangeScope): ChangeScope;
|
|
183
|
+
export {};
|
|
184
|
+
//# sourceMappingURL=change-scope.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"change-scope.d.ts","sourceRoot":"","sources":["../../../../src/planner/analysis/change-scope.ts"],"names":[],"mappings":"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"}
|