@quereus/quereus 0.17.0 → 0.18.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 +372 -361
- package/dist/src/common/errors.d.ts +2 -18
- package/dist/src/common/errors.d.ts.map +1 -1
- package/dist/src/common/errors.js +6 -29
- package/dist/src/common/errors.js.map +1 -1
- package/dist/src/common/types.d.ts +8 -0
- package/dist/src/common/types.d.ts.map +1 -1
- package/dist/src/common/types.js +20 -0
- package/dist/src/common/types.js.map +1 -1
- package/dist/src/core/database-assertions.d.ts +19 -2
- package/dist/src/core/database-assertions.d.ts.map +1 -1
- package/dist/src/core/database-assertions.js +113 -32
- package/dist/src/core/database-assertions.js.map +1 -1
- package/dist/src/core/database-events.d.ts +17 -0
- package/dist/src/core/database-events.d.ts.map +1 -1
- package/dist/src/core/database-events.js +36 -0
- package/dist/src/core/database-events.js.map +1 -1
- package/dist/src/core/database.d.ts +11 -0
- package/dist/src/core/database.d.ts.map +1 -1
- package/dist/src/core/database.js +178 -85
- package/dist/src/core/database.js.map +1 -1
- package/dist/src/core/statement.d.ts +6 -0
- package/dist/src/core/statement.d.ts.map +1 -1
- package/dist/src/core/statement.js +42 -56
- package/dist/src/core/statement.js.map +1 -1
- package/dist/src/emit/ast-stringify.d.ts +1 -0
- package/dist/src/emit/ast-stringify.d.ts.map +1 -1
- package/dist/src/emit/ast-stringify.js +12 -2
- package/dist/src/emit/ast-stringify.js.map +1 -1
- package/dist/src/func/builtins/builtin-window-functions.d.ts.map +1 -1
- package/dist/src/func/builtins/builtin-window-functions.js +75 -0
- package/dist/src/func/builtins/builtin-window-functions.js.map +1 -1
- package/dist/src/func/builtins/conversion.js +9 -12
- package/dist/src/func/builtins/conversion.js.map +1 -1
- package/dist/src/func/builtins/datetime.js +1 -1
- package/dist/src/func/builtins/datetime.js.map +1 -1
- package/dist/src/func/builtins/explain.d.ts.map +1 -1
- package/dist/src/func/builtins/explain.js +15 -3
- package/dist/src/func/builtins/explain.js.map +1 -1
- package/dist/src/func/builtins/index.d.ts.map +1 -1
- package/dist/src/func/builtins/index.js +1 -11
- package/dist/src/func/builtins/index.js.map +1 -1
- package/dist/src/func/builtins/json-helpers.js +1 -1
- package/dist/src/func/builtins/json-helpers.js.map +1 -1
- package/dist/src/func/builtins/json.d.ts.map +1 -1
- package/dist/src/func/builtins/json.js +2 -5
- package/dist/src/func/builtins/json.js.map +1 -1
- package/dist/src/func/builtins/schema.d.ts.map +1 -1
- package/dist/src/func/builtins/schema.js +30 -32
- package/dist/src/func/builtins/schema.js.map +1 -1
- package/dist/src/func/builtins/string.d.ts.map +1 -1
- package/dist/src/func/builtins/string.js +40 -64
- package/dist/src/func/builtins/string.js.map +1 -1
- package/dist/src/func/builtins/timespan.d.ts.map +1 -1
- package/dist/src/func/builtins/timespan.js.map +1 -1
- package/dist/src/index.d.ts +2 -2
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +2 -2
- package/dist/src/index.js.map +1 -1
- package/dist/src/parser/ast.d.ts +9 -2
- package/dist/src/parser/ast.d.ts.map +1 -1
- package/dist/src/parser/lexer.d.ts +1 -0
- package/dist/src/parser/lexer.d.ts.map +1 -1
- package/dist/src/parser/lexer.js +3 -0
- package/dist/src/parser/lexer.js.map +1 -1
- package/dist/src/parser/parser.d.ts +11 -1
- package/dist/src/parser/parser.d.ts.map +1 -1
- package/dist/src/parser/parser.js +75 -135
- package/dist/src/parser/parser.js.map +1 -1
- package/dist/src/planner/analysis/const-evaluator.d.ts.map +1 -1
- package/dist/src/planner/analysis/const-evaluator.js +6 -3
- package/dist/src/planner/analysis/const-evaluator.js.map +1 -1
- package/dist/src/planner/analysis/constraint-extractor.d.ts +2 -1
- package/dist/src/planner/analysis/constraint-extractor.d.ts.map +1 -1
- package/dist/src/planner/analysis/constraint-extractor.js +154 -22
- package/dist/src/planner/analysis/constraint-extractor.js.map +1 -1
- package/dist/src/planner/building/alter-table.d.ts.map +1 -1
- package/dist/src/planner/building/alter-table.js +18 -1
- package/dist/src/planner/building/alter-table.js.map +1 -1
- package/dist/src/planner/building/analyze.d.ts +5 -0
- package/dist/src/planner/building/analyze.d.ts.map +1 -0
- package/dist/src/planner/building/analyze.js +5 -0
- package/dist/src/planner/building/analyze.js.map +1 -0
- package/dist/src/planner/building/block.d.ts.map +1 -1
- package/dist/src/planner/building/block.js +3 -0
- package/dist/src/planner/building/block.js.map +1 -1
- package/dist/src/planner/building/constraint-builder.d.ts.map +1 -1
- package/dist/src/planner/building/constraint-builder.js +25 -3
- package/dist/src/planner/building/constraint-builder.js.map +1 -1
- package/dist/src/planner/building/delete.d.ts.map +1 -1
- package/dist/src/planner/building/delete.js +11 -0
- package/dist/src/planner/building/delete.js.map +1 -1
- package/dist/src/planner/building/drop-assertion.d.ts.map +1 -1
- package/dist/src/planner/building/drop-assertion.js +2 -1
- package/dist/src/planner/building/drop-assertion.js.map +1 -1
- package/dist/src/planner/building/expression.d.ts.map +1 -1
- package/dist/src/planner/building/expression.js +55 -7
- package/dist/src/planner/building/expression.js.map +1 -1
- package/dist/src/planner/building/foreign-key-builder.d.ts +16 -0
- package/dist/src/planner/building/foreign-key-builder.d.ts.map +1 -0
- package/dist/src/planner/building/foreign-key-builder.js +269 -0
- package/dist/src/planner/building/foreign-key-builder.js.map +1 -0
- package/dist/src/planner/building/function-call.d.ts.map +1 -1
- package/dist/src/planner/building/function-call.js +3 -2
- package/dist/src/planner/building/function-call.js.map +1 -1
- package/dist/src/planner/building/insert.d.ts.map +1 -1
- package/dist/src/planner/building/insert.js +91 -10
- package/dist/src/planner/building/insert.js.map +1 -1
- package/dist/src/planner/building/schema-resolution.d.ts +4 -0
- package/dist/src/planner/building/schema-resolution.d.ts.map +1 -1
- package/dist/src/planner/building/schema-resolution.js +14 -3
- package/dist/src/planner/building/schema-resolution.js.map +1 -1
- package/dist/src/planner/building/select-aggregates.d.ts +1 -0
- package/dist/src/planner/building/select-aggregates.d.ts.map +1 -1
- package/dist/src/planner/building/select-aggregates.js +118 -3
- package/dist/src/planner/building/select-aggregates.js.map +1 -1
- package/dist/src/planner/building/select-modifiers.js +3 -3
- package/dist/src/planner/building/select-modifiers.js.map +1 -1
- package/dist/src/planner/building/select-window.js +9 -8
- package/dist/src/planner/building/select-window.js.map +1 -1
- package/dist/src/planner/building/select.d.ts.map +1 -1
- package/dist/src/planner/building/select.js +21 -10
- package/dist/src/planner/building/select.js.map +1 -1
- package/dist/src/planner/building/table.d.ts.map +1 -1
- package/dist/src/planner/building/table.js +5 -3
- package/dist/src/planner/building/table.js.map +1 -1
- package/dist/src/planner/building/update.d.ts.map +1 -1
- package/dist/src/planner/building/update.js +30 -1
- package/dist/src/planner/building/update.js.map +1 -1
- package/dist/src/planner/building/with.js +1 -1
- package/dist/src/planner/building/with.js.map +1 -1
- package/dist/src/planner/cache/reference-graph.d.ts +1 -1
- package/dist/src/planner/cache/reference-graph.js +1 -1
- package/dist/src/planner/cost/index.d.ts +10 -3
- package/dist/src/planner/cost/index.d.ts.map +1 -1
- package/dist/src/planner/cost/index.js +17 -3
- package/dist/src/planner/cost/index.js.map +1 -1
- package/dist/src/planner/debug.js +1 -1
- package/dist/src/planner/debug.js.map +1 -1
- package/dist/src/planner/framework/characteristics.d.ts +1 -1
- package/dist/src/planner/framework/characteristics.d.ts.map +1 -1
- package/dist/src/planner/framework/pass.d.ts +3 -1
- package/dist/src/planner/framework/pass.d.ts.map +1 -1
- package/dist/src/planner/framework/pass.js +62 -18
- package/dist/src/planner/framework/pass.js.map +1 -1
- package/dist/src/planner/framework/physical-utils.d.ts +5 -0
- package/dist/src/planner/framework/physical-utils.d.ts.map +1 -1
- package/dist/src/planner/framework/physical-utils.js +19 -0
- package/dist/src/planner/framework/physical-utils.js.map +1 -1
- package/dist/src/planner/framework/trace.d.ts.map +1 -1
- package/dist/src/planner/framework/trace.js +3 -2
- package/dist/src/planner/framework/trace.js.map +1 -1
- package/dist/src/planner/nodes/alias-node.d.ts +2 -1
- package/dist/src/planner/nodes/alias-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/alias-node.js +8 -0
- package/dist/src/planner/nodes/alias-node.js.map +1 -1
- package/dist/src/planner/nodes/alter-table-node.d.ts +42 -0
- package/dist/src/planner/nodes/alter-table-node.d.ts.map +1 -0
- package/dist/src/planner/nodes/alter-table-node.js +55 -0
- package/dist/src/planner/nodes/alter-table-node.js.map +1 -0
- package/dist/src/planner/nodes/analyze-node.d.ts +25 -0
- package/dist/src/planner/nodes/analyze-node.d.ts.map +1 -0
- package/dist/src/planner/nodes/analyze-node.js +83 -0
- package/dist/src/planner/nodes/analyze-node.js.map +1 -0
- package/dist/src/planner/nodes/bloom-join-node.d.ts +66 -0
- package/dist/src/planner/nodes/bloom-join-node.d.ts.map +1 -0
- package/dist/src/planner/nodes/bloom-join-node.js +200 -0
- package/dist/src/planner/nodes/bloom-join-node.js.map +1 -0
- package/dist/src/planner/nodes/constraint-check-node.d.ts +1 -1
- package/dist/src/planner/nodes/constraint-check-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/cte-reference-node.js +7 -7
- package/dist/src/planner/nodes/cte-reference-node.js.map +1 -1
- package/dist/src/planner/nodes/join-node.d.ts +9 -1
- package/dist/src/planner/nodes/join-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/join-node.js +69 -79
- package/dist/src/planner/nodes/join-node.js.map +1 -1
- package/dist/src/planner/nodes/merge-join-node.d.ts +60 -0
- package/dist/src/planner/nodes/merge-join-node.d.ts.map +1 -0
- package/dist/src/planner/nodes/merge-join-node.js +207 -0
- package/dist/src/planner/nodes/merge-join-node.js.map +1 -0
- 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/project-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/project-node.js +3 -2
- package/dist/src/planner/nodes/project-node.js.map +1 -1
- package/dist/src/planner/nodes/reference.d.ts +2 -1
- package/dist/src/planner/nodes/reference.d.ts.map +1 -1
- package/dist/src/planner/nodes/reference.js +6 -2
- package/dist/src/planner/nodes/reference.js.map +1 -1
- package/dist/src/planner/nodes/returning-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/returning-node.js +3 -2
- package/dist/src/planner/nodes/returning-node.js.map +1 -1
- package/dist/src/planner/nodes/scalar.d.ts.map +1 -1
- package/dist/src/planner/nodes/subquery.js.map +1 -1
- package/dist/src/planner/nodes/table-access-nodes.js +1 -1
- package/dist/src/planner/nodes/table-access-nodes.js.map +1 -1
- package/dist/src/planner/nodes/update-node.d.ts +2 -0
- package/dist/src/planner/nodes/update-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/update-node.js +2 -1
- package/dist/src/planner/nodes/update-node.js.map +1 -1
- package/dist/src/planner/nodes/window-function.d.ts.map +1 -1
- package/dist/src/planner/nodes/window-function.js +7 -7
- package/dist/src/planner/nodes/window-function.js.map +1 -1
- package/dist/src/planner/nodes/window-node.d.ts +2 -2
- package/dist/src/planner/nodes/window-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/window-node.js +9 -14
- package/dist/src/planner/nodes/window-node.js.map +1 -1
- package/dist/src/planner/optimizer.d.ts.map +1 -1
- package/dist/src/planner/optimizer.js +40 -2
- package/dist/src/planner/optimizer.js.map +1 -1
- package/dist/src/planner/planning-context.d.ts.map +1 -1
- package/dist/src/planner/planning-context.js +1 -6
- package/dist/src/planner/planning-context.js.map +1 -1
- package/dist/src/planner/resolve.d.ts.map +1 -1
- package/dist/src/planner/resolve.js.map +1 -1
- package/dist/src/planner/rules/access/rule-select-access-path.js +157 -28
- package/dist/src/planner/rules/access/rule-select-access-path.js.map +1 -1
- package/dist/src/planner/rules/aggregate/rule-aggregate-streaming.d.ts.map +1 -1
- package/dist/src/planner/rules/aggregate/rule-aggregate-streaming.js +27 -6
- package/dist/src/planner/rules/aggregate/rule-aggregate-streaming.js.map +1 -1
- package/dist/src/planner/rules/cache/rule-in-subquery-cache.d.ts +19 -0
- package/dist/src/planner/rules/cache/rule-in-subquery-cache.d.ts.map +1 -0
- package/dist/src/planner/rules/cache/rule-in-subquery-cache.js +53 -0
- package/dist/src/planner/rules/cache/rule-in-subquery-cache.js.map +1 -0
- package/dist/src/planner/rules/cache/rule-mutating-subquery-cache.d.ts.map +1 -1
- package/dist/src/planner/rules/cache/rule-mutating-subquery-cache.js +5 -0
- package/dist/src/planner/rules/cache/rule-mutating-subquery-cache.js.map +1 -1
- package/dist/src/planner/rules/distinct/rule-distinct-elimination.d.ts +18 -0
- package/dist/src/planner/rules/distinct/rule-distinct-elimination.d.ts.map +1 -0
- package/dist/src/planner/rules/distinct/rule-distinct-elimination.js +37 -0
- package/dist/src/planner/rules/distinct/rule-distinct-elimination.js.map +1 -0
- package/dist/src/planner/rules/join/rule-join-key-inference.d.ts +8 -3
- package/dist/src/planner/rules/join/rule-join-key-inference.d.ts.map +1 -1
- package/dist/src/planner/rules/join/rule-join-key-inference.js +28 -17
- package/dist/src/planner/rules/join/rule-join-key-inference.js.map +1 -1
- package/dist/src/planner/rules/join/rule-join-physical-selection.d.ts +16 -0
- package/dist/src/planner/rules/join/rule-join-physical-selection.d.ts.map +1 -0
- package/dist/src/planner/rules/join/rule-join-physical-selection.js +216 -0
- package/dist/src/planner/rules/join/rule-join-physical-selection.js.map +1 -0
- package/dist/src/planner/rules/retrieve/rule-grow-retrieve.d.ts.map +1 -1
- package/dist/src/planner/rules/retrieve/rule-grow-retrieve.js +34 -4
- package/dist/src/planner/rules/retrieve/rule-grow-retrieve.js.map +1 -1
- package/dist/src/planner/rules/subquery/rule-subquery-decorrelation.d.ts +23 -0
- package/dist/src/planner/rules/subquery/rule-subquery-decorrelation.d.ts.map +1 -0
- package/dist/src/planner/rules/subquery/rule-subquery-decorrelation.js +293 -0
- package/dist/src/planner/rules/subquery/rule-subquery-decorrelation.js.map +1 -0
- package/dist/src/planner/scopes/multi.d.ts +3 -2
- package/dist/src/planner/scopes/multi.d.ts.map +1 -1
- package/dist/src/planner/scopes/multi.js +32 -7
- package/dist/src/planner/scopes/multi.js.map +1 -1
- package/dist/src/planner/scopes/shadow.d.ts +20 -0
- package/dist/src/planner/scopes/shadow.d.ts.map +1 -0
- package/dist/src/planner/scopes/shadow.js +31 -0
- package/dist/src/planner/scopes/shadow.js.map +1 -0
- package/dist/src/planner/stats/analyze.d.ts +17 -0
- package/dist/src/planner/stats/analyze.d.ts.map +1 -0
- package/dist/src/planner/stats/analyze.js +114 -0
- package/dist/src/planner/stats/analyze.js.map +1 -0
- package/dist/src/planner/stats/catalog-stats.d.ts +80 -0
- package/dist/src/planner/stats/catalog-stats.d.ts.map +1 -0
- package/dist/src/planner/stats/catalog-stats.js +248 -0
- package/dist/src/planner/stats/catalog-stats.js.map +1 -0
- package/dist/src/planner/stats/histogram.d.ts +24 -0
- package/dist/src/planner/stats/histogram.d.ts.map +1 -0
- package/dist/src/planner/stats/histogram.js +142 -0
- package/dist/src/planner/stats/histogram.js.map +1 -0
- package/dist/src/planner/type-utils.d.ts.map +1 -1
- package/dist/src/planner/type-utils.js +8 -2
- package/dist/src/planner/type-utils.js.map +1 -1
- package/dist/src/planner/util/key-utils.d.ts +48 -2
- package/dist/src/planner/util/key-utils.d.ts.map +1 -1
- package/dist/src/planner/util/key-utils.js +123 -0
- package/dist/src/planner/util/key-utils.js.map +1 -1
- package/dist/src/planner/validation/determinism-validator.d.ts +9 -0
- package/dist/src/planner/validation/determinism-validator.d.ts.map +1 -1
- package/dist/src/planner/validation/determinism-validator.js +11 -0
- package/dist/src/planner/validation/determinism-validator.js.map +1 -1
- package/dist/src/planner/validation/plan-validator.d.ts.map +1 -1
- package/dist/src/planner/validation/plan-validator.js +1 -0
- package/dist/src/planner/validation/plan-validator.js.map +1 -1
- package/dist/src/runtime/context-helpers.d.ts +34 -10
- package/dist/src/runtime/context-helpers.d.ts.map +1 -1
- package/dist/src/runtime/context-helpers.js +115 -39
- package/dist/src/runtime/context-helpers.js.map +1 -1
- package/dist/src/runtime/deferred-constraint-queue.d.ts +0 -1
- package/dist/src/runtime/deferred-constraint-queue.d.ts.map +1 -1
- package/dist/src/runtime/deferred-constraint-queue.js +10 -23
- package/dist/src/runtime/deferred-constraint-queue.js.map +1 -1
- package/dist/src/runtime/descriptor-helpers.d.ts +7 -0
- package/dist/src/runtime/descriptor-helpers.d.ts.map +1 -0
- package/dist/src/runtime/descriptor-helpers.js +24 -0
- package/dist/src/runtime/descriptor-helpers.js.map +1 -0
- package/dist/src/runtime/emission-context.d.ts +7 -1
- package/dist/src/runtime/emission-context.d.ts.map +1 -1
- package/dist/src/runtime/emission-context.js +16 -0
- package/dist/src/runtime/emission-context.js.map +1 -1
- package/dist/src/runtime/emit/aggregate.d.ts.map +1 -1
- package/dist/src/runtime/emit/aggregate.js +97 -93
- package/dist/src/runtime/emit/aggregate.js.map +1 -1
- package/dist/src/runtime/emit/alter-table.d.ts +5 -0
- package/dist/src/runtime/emit/alter-table.d.ts.map +1 -0
- package/dist/src/runtime/emit/alter-table.js +209 -0
- package/dist/src/runtime/emit/alter-table.js.map +1 -0
- package/dist/src/runtime/emit/analyze.d.ts +9 -0
- package/dist/src/runtime/emit/analyze.d.ts.map +1 -0
- package/dist/src/runtime/emit/analyze.js +72 -0
- package/dist/src/runtime/emit/analyze.js.map +1 -0
- package/dist/src/runtime/emit/array-index.d.ts.map +1 -1
- package/dist/src/runtime/emit/array-index.js +4 -2
- package/dist/src/runtime/emit/array-index.js.map +1 -1
- package/dist/src/runtime/emit/between.d.ts.map +1 -1
- package/dist/src/runtime/emit/between.js +8 -20
- 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 +155 -126
- package/dist/src/runtime/emit/binary.js.map +1 -1
- package/dist/src/runtime/emit/bloom-join.d.ts +12 -0
- package/dist/src/runtime/emit/bloom-join.d.ts.map +1 -0
- package/dist/src/runtime/emit/bloom-join.js +114 -0
- package/dist/src/runtime/emit/bloom-join.js.map +1 -0
- package/dist/src/runtime/emit/cache.js +2 -2
- package/dist/src/runtime/emit/cache.js.map +1 -1
- package/dist/src/runtime/emit/cast.d.ts.map +1 -1
- package/dist/src/runtime/emit/cast.js +31 -117
- 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 +2 -24
- package/dist/src/runtime/emit/constraint-check.js.map +1 -1
- package/dist/src/runtime/emit/cte-reference.d.ts.map +1 -1
- package/dist/src/runtime/emit/cte-reference.js +11 -5
- package/dist/src/runtime/emit/cte-reference.js.map +1 -1
- package/dist/src/runtime/emit/distinct.d.ts.map +1 -1
- package/dist/src/runtime/emit/distinct.js +21 -12
- 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 +5 -1
- 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 -0
- package/dist/src/runtime/emit/drop-assertion.js.map +1 -1
- package/dist/src/runtime/emit/filter.d.ts.map +1 -1
- package/dist/src/runtime/emit/filter.js +26 -7
- package/dist/src/runtime/emit/filter.js.map +1 -1
- package/dist/src/runtime/emit/internal-recursive-cte-ref.d.ts.map +1 -1
- package/dist/src/runtime/emit/internal-recursive-cte-ref.js +11 -5
- package/dist/src/runtime/emit/internal-recursive-cte-ref.js.map +1 -1
- package/dist/src/runtime/emit/join.d.ts +1 -1
- package/dist/src/runtime/emit/join.d.ts.map +1 -1
- package/dist/src/runtime/emit/join.js +44 -33
- package/dist/src/runtime/emit/join.js.map +1 -1
- package/dist/src/runtime/emit/merge-join.d.ts +14 -0
- package/dist/src/runtime/emit/merge-join.d.ts.map +1 -0
- package/dist/src/runtime/emit/merge-join.js +152 -0
- package/dist/src/runtime/emit/merge-join.js.map +1 -0
- package/dist/src/runtime/emit/parameter.d.ts.map +1 -1
- package/dist/src/runtime/emit/parameter.js +10 -32
- package/dist/src/runtime/emit/parameter.js.map +1 -1
- package/dist/src/runtime/emit/project.d.ts.map +1 -1
- package/dist/src/runtime/emit/project.js +22 -12
- 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 +5 -9
- 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 +14 -8
- package/dist/src/runtime/emit/returning.js.map +1 -1
- package/dist/src/runtime/emit/scan.d.ts.map +1 -1
- package/dist/src/runtime/emit/scan.js +4 -1
- package/dist/src/runtime/emit/scan.js.map +1 -1
- package/dist/src/runtime/emit/set-operation.d.ts.map +1 -1
- package/dist/src/runtime/emit/set-operation.js +8 -5
- package/dist/src/runtime/emit/set-operation.js.map +1 -1
- package/dist/src/runtime/emit/sort.js +2 -2
- package/dist/src/runtime/emit/sort.js.map +1 -1
- package/dist/src/runtime/emit/subquery.js +2 -2
- 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 +21 -7
- package/dist/src/runtime/emit/table-valued-function.js.map +1 -1
- package/dist/src/runtime/emit/unary.js +2 -2
- 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 +43 -21
- package/dist/src/runtime/emit/update.js.map +1 -1
- package/dist/src/runtime/emit/window.d.ts.map +1 -1
- package/dist/src/runtime/emit/window.js +368 -126
- package/dist/src/runtime/emit/window.js.map +1 -1
- package/dist/src/runtime/foreign-key-actions.d.ts +15 -0
- package/dist/src/runtime/foreign-key-actions.d.ts.map +1 -0
- package/dist/src/runtime/foreign-key-actions.js +109 -0
- package/dist/src/runtime/foreign-key-actions.js.map +1 -0
- package/dist/src/runtime/register.d.ts.map +1 -1
- package/dist/src/runtime/register.js +8 -0
- package/dist/src/runtime/register.js.map +1 -1
- package/dist/src/runtime/scheduler.d.ts.map +1 -1
- package/dist/src/runtime/scheduler.js +4 -1
- package/dist/src/runtime/scheduler.js.map +1 -1
- package/dist/src/runtime/types.d.ts +6 -5
- package/dist/src/runtime/types.d.ts.map +1 -1
- package/dist/src/runtime/types.js.map +1 -1
- package/dist/src/schema/change-events.d.ts +36 -8
- 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/column.d.ts +5 -1
- package/dist/src/schema/column.d.ts.map +1 -1
- package/dist/src/schema/column.js +1 -2
- package/dist/src/schema/column.js.map +1 -1
- package/dist/src/schema/manager.d.ts +54 -4
- package/dist/src/schema/manager.d.ts.map +1 -1
- package/dist/src/schema/manager.js +353 -313
- package/dist/src/schema/manager.js.map +1 -1
- package/dist/src/schema/schema-differ.js +3 -3
- package/dist/src/schema/schema-differ.js.map +1 -1
- package/dist/src/schema/schema.d.ts +1 -1
- package/dist/src/schema/schema.js +2 -2
- package/dist/src/schema/schema.js.map +1 -1
- package/dist/src/schema/table.d.ts +49 -0
- package/dist/src/schema/table.d.ts.map +1 -1
- package/dist/src/schema/table.js +30 -11
- package/dist/src/schema/table.js.map +1 -1
- package/dist/src/types/builtin-types.d.ts.map +1 -1
- package/dist/src/types/builtin-types.js +26 -95
- package/dist/src/types/builtin-types.js.map +1 -1
- package/dist/src/types/index.d.ts +1 -1
- package/dist/src/types/index.d.ts.map +1 -1
- package/dist/src/types/index.js +1 -1
- package/dist/src/types/index.js.map +1 -1
- package/dist/src/types/json-type.d.ts.map +1 -1
- package/dist/src/types/json-type.js +28 -40
- package/dist/src/types/json-type.js.map +1 -1
- package/dist/src/types/logical-type.d.ts +6 -0
- package/dist/src/types/logical-type.d.ts.map +1 -1
- package/dist/src/types/logical-type.js +12 -0
- package/dist/src/types/logical-type.js.map +1 -1
- package/dist/src/types/temporal-types.d.ts.map +1 -1
- package/dist/src/types/temporal-types.js +8 -37
- package/dist/src/types/temporal-types.js.map +1 -1
- package/dist/src/util/coercion.d.ts +4 -5
- package/dist/src/util/coercion.d.ts.map +1 -1
- package/dist/src/util/coercion.js +10 -14
- package/dist/src/util/coercion.js.map +1 -1
- package/dist/src/util/comparison.d.ts +34 -21
- package/dist/src/util/comparison.d.ts.map +1 -1
- package/dist/src/util/comparison.js +77 -43
- package/dist/src/util/comparison.js.map +1 -1
- package/dist/src/util/environment.d.ts +0 -8
- package/dist/src/util/environment.d.ts.map +1 -1
- package/dist/src/util/environment.js +0 -12
- package/dist/src/util/environment.js.map +1 -1
- package/dist/src/util/key-serializer.d.ts +33 -0
- package/dist/src/util/key-serializer.d.ts.map +1 -0
- package/dist/src/util/key-serializer.js +95 -0
- package/dist/src/util/key-serializer.js.map +1 -0
- package/dist/src/util/plugin-helper.d.ts.map +1 -1
- package/dist/src/util/plugin-helper.js +21 -45
- package/dist/src/util/plugin-helper.js.map +1 -1
- package/dist/src/util/serialization.d.ts +1 -0
- package/dist/src/util/serialization.d.ts.map +1 -1
- package/dist/src/util/serialization.js +8 -1
- package/dist/src/util/serialization.js.map +1 -1
- package/dist/src/util/working-table-iterable.d.ts +6 -5
- package/dist/src/util/working-table-iterable.d.ts.map +1 -1
- package/dist/src/util/working-table-iterable.js +8 -15
- package/dist/src/util/working-table-iterable.js.map +1 -1
- package/dist/src/vtab/best-access-plan.d.ts +12 -0
- package/dist/src/vtab/best-access-plan.d.ts.map +1 -1
- package/dist/src/vtab/best-access-plan.js +22 -0
- package/dist/src/vtab/best-access-plan.js.map +1 -1
- package/dist/src/vtab/manifest.d.ts +3 -1
- package/dist/src/vtab/manifest.d.ts.map +1 -1
- package/dist/src/vtab/memory/index.d.ts +2 -2
- package/dist/src/vtab/memory/index.d.ts.map +1 -1
- package/dist/src/vtab/memory/index.js +4 -7
- package/dist/src/vtab/memory/index.js.map +1 -1
- package/dist/src/vtab/memory/layer/base-cursor.d.ts.map +1 -1
- package/dist/src/vtab/memory/layer/base-cursor.js +37 -9
- package/dist/src/vtab/memory/layer/base-cursor.js.map +1 -1
- package/dist/src/vtab/memory/layer/base.js +1 -1
- package/dist/src/vtab/memory/layer/base.js.map +1 -1
- package/dist/src/vtab/memory/layer/manager.d.ts +15 -3
- package/dist/src/vtab/memory/layer/manager.d.ts.map +1 -1
- package/dist/src/vtab/memory/layer/manager.js +85 -37
- package/dist/src/vtab/memory/layer/manager.js.map +1 -1
- package/dist/src/vtab/memory/layer/scan-plan.d.ts +2 -0
- package/dist/src/vtab/memory/layer/scan-plan.d.ts.map +1 -1
- package/dist/src/vtab/memory/layer/scan-plan.js +153 -78
- package/dist/src/vtab/memory/layer/scan-plan.js.map +1 -1
- package/dist/src/vtab/memory/layer/transaction-cursor.d.ts.map +1 -1
- package/dist/src/vtab/memory/layer/transaction-cursor.js +39 -9
- package/dist/src/vtab/memory/layer/transaction-cursor.js.map +1 -1
- package/dist/src/vtab/memory/layer/transaction.d.ts.map +1 -1
- package/dist/src/vtab/memory/layer/transaction.js +1 -5
- package/dist/src/vtab/memory/layer/transaction.js.map +1 -1
- package/dist/src/vtab/memory/module.d.ts +14 -24
- package/dist/src/vtab/memory/module.d.ts.map +1 -1
- package/dist/src/vtab/memory/module.js +88 -283
- package/dist/src/vtab/memory/module.js.map +1 -1
- package/dist/src/vtab/memory/table.d.ts +9 -0
- package/dist/src/vtab/memory/table.d.ts.map +1 -1
- package/dist/src/vtab/memory/table.js +121 -18
- package/dist/src/vtab/memory/table.js.map +1 -1
- package/dist/src/vtab/memory/types.d.ts +1 -0
- package/dist/src/vtab/memory/types.d.ts.map +1 -1
- package/dist/src/vtab/memory/utils/primary-key.js.map +1 -1
- package/dist/src/vtab/module.d.ts +13 -0
- package/dist/src/vtab/module.d.ts.map +1 -1
- package/dist/src/vtab/table.d.ts +9 -0
- package/dist/src/vtab/table.d.ts.map +1 -1
- package/dist/src/vtab/table.js.map +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dml-executor.js","sourceRoot":"","sources":["../../../../src/runtime/emit/dml-executor.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dml-executor.js","sourceRoot":"","sources":["../../../../src/runtime/emit/dml-executor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"drop-assertion.d.ts","sourceRoot":"","sources":["../../../../src/runtime/emit/drop-assertion.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4CAA4C,CAAC;AACpF,OAAO,KAAK,EAAE,WAAW,EAAkC,MAAM,aAAa,CAAC;AAC/E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAO9D,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,eAAe,GAAG,WAAW,
|
|
1
|
+
{"version":3,"file":"drop-assertion.d.ts","sourceRoot":"","sources":["../../../../src/runtime/emit/drop-assertion.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4CAA4C,CAAC;AACpF,OAAO,KAAK,EAAE,WAAW,EAAkC,MAAM,aAAa,CAAC;AAC/E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAO9D,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,eAAe,GAAG,WAAW,CAyC7F"}
|
|
@@ -20,6 +20,8 @@ export function emitDropAssertion(plan, _ctx) {
|
|
|
20
20
|
if (!removed && !plan.ifExists) {
|
|
21
21
|
throw new QuereusError(`Failed to remove assertion ${plan.name}`, StatusCode.INTERNAL);
|
|
22
22
|
}
|
|
23
|
+
// Invalidate cached plan for this assertion
|
|
24
|
+
rctx.db.invalidateAssertionCache(plan.name);
|
|
23
25
|
log('Dropped assertion %s', plan.name);
|
|
24
26
|
return null;
|
|
25
27
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"drop-assertion.js","sourceRoot":"","sources":["../../../../src/runtime/emit/drop-assertion.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAY,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtD,MAAM,GAAG,GAAG,YAAY,CAAC,6BAA6B,CAAC,CAAC;AAExD,MAAM,UAAU,iBAAiB,CAAC,IAAuB,EAAE,IAAqB;IAE/E,KAAK,UAAU,GAAG,CAAC,IAAoB;QACtC,wEAAwE;QACxE,MAAM,IAAI,CAAC,EAAE,CAAC,kBAAkB,EAAE,CAAC;QAEnC,MAAM,aAAa,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC;QAC5C,MAAM,MAAM,GAAG,aAAa,CAAC,aAAa,EAAE,CAAC,CAAC,8BAA8B;QAE5E,MAAM,QAAQ,GAAG,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACf,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACnB,GAAG,CAAC,iDAAiD,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;gBAClE,OAAO,IAAI,CAAC;YACb,CAAC;YACD,MAAM,IAAI,YAAY,CACrB,aAAa,IAAI,CAAC,IAAI,YAAY,EAClC,UAAU,CAAC,QAAQ,CACnB,CAAC;QACH,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClD,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChC,MAAM,IAAI,YAAY,CACrB,8BAA8B,IAAI,CAAC,IAAI,EAAE,EACzC,UAAU,CAAC,QAAQ,CACnB,CAAC;QACH,CAAC;QAED,GAAG,CAAC,sBAAsB,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACvC,OAAO,IAAI,CAAC;IACb,CAAC;IAED,OAAO;QACN,MAAM,EAAE,EAAE;QACV,GAAG,EAAE,GAAqB;QAC1B,IAAI,EAAE,iBAAiB,IAAI,CAAC,IAAI,GAAG;KACnC,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"drop-assertion.js","sourceRoot":"","sources":["../../../../src/runtime/emit/drop-assertion.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAY,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtD,MAAM,GAAG,GAAG,YAAY,CAAC,6BAA6B,CAAC,CAAC;AAExD,MAAM,UAAU,iBAAiB,CAAC,IAAuB,EAAE,IAAqB;IAE/E,KAAK,UAAU,GAAG,CAAC,IAAoB;QACtC,wEAAwE;QACxE,MAAM,IAAI,CAAC,EAAE,CAAC,kBAAkB,EAAE,CAAC;QAEnC,MAAM,aAAa,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC;QAC5C,MAAM,MAAM,GAAG,aAAa,CAAC,aAAa,EAAE,CAAC,CAAC,8BAA8B;QAE5E,MAAM,QAAQ,GAAG,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACf,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACnB,GAAG,CAAC,iDAAiD,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;gBAClE,OAAO,IAAI,CAAC;YACb,CAAC;YACD,MAAM,IAAI,YAAY,CACrB,aAAa,IAAI,CAAC,IAAI,YAAY,EAClC,UAAU,CAAC,QAAQ,CACnB,CAAC;QACH,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClD,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChC,MAAM,IAAI,YAAY,CACrB,8BAA8B,IAAI,CAAC,IAAI,EAAE,EACzC,UAAU,CAAC,QAAQ,CACnB,CAAC;QACH,CAAC;QAED,4CAA4C;QAC5C,IAAI,CAAC,EAAE,CAAC,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE5C,GAAG,CAAC,sBAAsB,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACvC,OAAO,IAAI,CAAC;IACb,CAAC;IAED,OAAO;QACN,MAAM,EAAE,EAAE;QACV,GAAG,EAAE,GAAqB;QAC1B,IAAI,EAAE,iBAAiB,IAAI,CAAC,IAAI,GAAG;KACnC,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filter.d.ts","sourceRoot":"","sources":["../../../../src/runtime/emit/filter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,KAAK,EAAE,WAAW,EAAkC,MAAM,aAAa,CAAC;AAG/E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"filter.d.ts","sourceRoot":"","sources":["../../../../src/runtime/emit/filter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,KAAK,EAAE,WAAW,EAAkC,MAAM,aAAa,CAAC;AAG/E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAa9D,wBAAgB,UAAU,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,eAAe,GAAG,WAAW,CA2B9E"}
|
|
@@ -1,18 +1,37 @@
|
|
|
1
1
|
import { emitPlanNode, emitCallFromPlan } from '../emitters.js';
|
|
2
|
+
import { StatusCode } from '../../common/types.js';
|
|
2
3
|
import { buildRowDescriptor } from '../../util/row-descriptor.js';
|
|
3
|
-
import {
|
|
4
|
+
import { createRowSlot } from '../context-helpers.js';
|
|
5
|
+
import { QuereusError } from '../../common/errors.js';
|
|
6
|
+
import { isTruthy } from '../../util/comparison.js';
|
|
7
|
+
function asPredicateScalar(value) {
|
|
8
|
+
if (value === null)
|
|
9
|
+
return null;
|
|
10
|
+
if (typeof value === 'string' || typeof value === 'number' || typeof value === 'bigint' || typeof value === 'boolean')
|
|
11
|
+
return value;
|
|
12
|
+
if (value instanceof Uint8Array)
|
|
13
|
+
return value;
|
|
14
|
+
throw new QuereusError(`Filter predicate returned non-scalar value: ${String(value)}`, StatusCode.INTERNAL);
|
|
15
|
+
}
|
|
4
16
|
export function emitFilter(plan, ctx) {
|
|
5
17
|
const sourceInstruction = emitPlanNode(plan.source, ctx);
|
|
6
18
|
const predicateFunc = emitCallFromPlan(plan.predicate, ctx);
|
|
7
19
|
// Create row descriptor for source attributes
|
|
8
20
|
const sourceRowDescriptor = buildRowDescriptor(plan.source.getAttributes());
|
|
9
|
-
async function* run(
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
21
|
+
async function* run(rctx, source, predicate) {
|
|
22
|
+
const sourceSlot = createRowSlot(rctx, sourceRowDescriptor);
|
|
23
|
+
try {
|
|
24
|
+
for await (const sourceRow of source) {
|
|
25
|
+
sourceSlot.set(sourceRow);
|
|
26
|
+
const result = await predicate(rctx);
|
|
27
|
+
if (isTruthy(asPredicateScalar(result))) {
|
|
28
|
+
yield sourceRow;
|
|
29
|
+
}
|
|
14
30
|
}
|
|
15
|
-
}
|
|
31
|
+
}
|
|
32
|
+
finally {
|
|
33
|
+
sourceSlot.close();
|
|
34
|
+
}
|
|
16
35
|
}
|
|
17
36
|
return {
|
|
18
37
|
params: [sourceInstruction, predicateFunc],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filter.js","sourceRoot":"","sources":["../../../../src/runtime/emit/filter.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"filter.js","sourceRoot":"","sources":["../../../../src/runtime/emit/filter.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAChE,OAAO,EAAe,UAAU,EAA2B,MAAM,uBAAuB,CAAC;AAEzF,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEpD,SAAS,iBAAiB,CAAC,KAAc;IACxC,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAChC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IACpI,IAAI,KAAK,YAAY,UAAU;QAAE,OAAO,KAAK,CAAC;IAC9C,MAAM,IAAI,YAAY,CAAC,+CAA+C,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;AAC7G,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,IAAgB,EAAE,GAAoB;IAChE,MAAM,iBAAiB,GAAG,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACzD,MAAM,aAAa,GAAG,gBAAgB,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;IAE5D,8CAA8C;IAC9C,MAAM,mBAAmB,GAAG,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC;IAE5E,KAAK,SAAS,CAAC,CAAC,GAAG,CAAC,IAAoB,EAAE,MAA0B,EAAE,SAA+C;QACpH,MAAM,UAAU,GAAG,aAAa,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC;QAC5D,IAAI,CAAC;YACJ,IAAI,KAAK,EAAE,MAAM,SAAS,IAAI,MAAM,EAAE,CAAC;gBACtC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBAC1B,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,CAAC;gBACrC,IAAI,QAAQ,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;oBACzC,MAAM,SAAS,CAAC;gBACjB,CAAC;YACF,CAAC;QACF,CAAC;gBAAS,CAAC;YACV,UAAU,CAAC,KAAK,EAAE,CAAC;QACpB,CAAC;IACF,CAAC;IAED,OAAO;QACN,MAAM,EAAE,CAAC,iBAAiB,EAAE,aAAa,CAAC;QAC1C,GAAG,EAAE,GAAqB;QAC1B,IAAI,EAAE,UAAU,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,GAAG;KAC5C,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"internal-recursive-cte-ref.d.ts","sourceRoot":"","sources":["../../../../src/runtime/emit/internal-recursive-cte-ref.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,wDAAwD,CAAC;AAC1G,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE9D,OAAO,KAAK,EAAE,WAAW,EAAkB,MAAM,aAAa,CAAC;AAM/D,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,2BAA2B,EAAE,GAAG,EAAE,eAAe,GAAG,WAAW,
|
|
1
|
+
{"version":3,"file":"internal-recursive-cte-ref.d.ts","sourceRoot":"","sources":["../../../../src/runtime/emit/internal-recursive-cte-ref.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,wDAAwD,CAAC;AAC1G,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE9D,OAAO,KAAK,EAAE,WAAW,EAAkB,MAAM,aAAa,CAAC;AAM/D,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,2BAA2B,EAAE,GAAG,EAAE,eAAe,GAAG,WAAW,CA+BhH"}
|
|
@@ -2,7 +2,7 @@ import { createValidatedInstruction } from '../emitters.js';
|
|
|
2
2
|
import { QuereusError } from '../../common/errors.js';
|
|
3
3
|
import { StatusCode } from '../../common/types.js';
|
|
4
4
|
import { buildRowDescriptor } from '../../util/row-descriptor.js';
|
|
5
|
-
import {
|
|
5
|
+
import { createRowSlot } from '../context-helpers.js';
|
|
6
6
|
export function emitInternalRecursiveCTERef(plan, ctx) {
|
|
7
7
|
// Create row descriptor for output attributes
|
|
8
8
|
const rowDescriptor = buildRowDescriptor(plan.getAttributes());
|
|
@@ -12,10 +12,16 @@ export function emitInternalRecursiveCTERef(plan, ctx) {
|
|
|
12
12
|
if (!tableGetter) {
|
|
13
13
|
throw new QuereusError(`Internal recursive CTE '${plan.cteName}' working table not found in context`, StatusCode.INTERNAL);
|
|
14
14
|
}
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
15
|
+
const slot = createRowSlot(rctx, rowDescriptor);
|
|
16
|
+
try {
|
|
17
|
+
for await (const row of tableGetter()) {
|
|
18
|
+
slot.set(row);
|
|
19
|
+
yield row;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
finally {
|
|
23
|
+
slot.close();
|
|
24
|
+
}
|
|
19
25
|
}
|
|
20
26
|
return createValidatedInstruction([], // No instruction parameters - data comes from table context
|
|
21
27
|
run, ctx, `internal_recursive_ref(${plan.cteName}${plan.alias ? ` AS ${plan.alias}` : ''})`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"internal-recursive-cte-ref.js","sourceRoot":"","sources":["../../../../src/runtime/emit/internal-recursive-cte-ref.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,0BAA0B,EAAE,MAAM,gBAAgB,CAAC;AAE5D,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"internal-recursive-cte-ref.js","sourceRoot":"","sources":["../../../../src/runtime/emit/internal-recursive-cte-ref.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,0BAA0B,EAAE,MAAM,gBAAgB,CAAC;AAE5D,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEtD,MAAM,UAAU,2BAA2B,CAAC,IAAiC,EAAE,GAAoB;IAClG,8CAA8C;IAC9C,MAAM,aAAa,GAAG,kBAAkB,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;IAE/D,KAAK,SAAS,CAAC,CAAC,GAAG,CAAC,IAAoB;QACvC,2EAA2E;QAC3E,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QACxE,IAAI,CAAC,WAAW,EAAE,CAAC;YAClB,MAAM,IAAI,YAAY,CACrB,2BAA2B,IAAI,CAAC,OAAO,sCAAsC,EAC7E,UAAU,CAAC,QAAQ,CACnB,CAAC;QACH,CAAC;QAED,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;QAChD,IAAI,CAAC;YACJ,IAAI,KAAK,EAAE,MAAM,GAAG,IAAI,WAAW,EAAE,EAAE,CAAC;gBACvC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACd,MAAM,GAAG,CAAC;YACX,CAAC;QACF,CAAC;gBAAS,CAAC;YACV,IAAI,CAAC,KAAK,EAAE,CAAC;QACd,CAAC;IACF,CAAC;IAED,OAAO,0BAA0B,CAChC,EAAE,EAAE,4DAA4D;IAChE,GAAG,EACH,GAAG,EACH,0BAA0B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CACjF,CAAC;AACH,CAAC"}
|
|
@@ -3,7 +3,7 @@ import type { Instruction } from '../types.js';
|
|
|
3
3
|
import type { EmissionContext } from '../emission-context.js';
|
|
4
4
|
/**
|
|
5
5
|
* Emits a nested loop join instruction.
|
|
6
|
-
* This is a simple nested loop implementation
|
|
6
|
+
* This is a simple nested loop implementation for inner/left/cross joins.
|
|
7
7
|
*/
|
|
8
8
|
export declare function emitLoopJoin(plan: JoinNode, ctx: EmissionContext): Instruction;
|
|
9
9
|
//# sourceMappingURL=join.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"join.d.ts","sourceRoot":"","sources":["../../../../src/runtime/emit/join.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,KAAK,EAAE,WAAW,EAAkC,MAAM,aAAa,CAAC;AAG/E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"join.d.ts","sourceRoot":"","sources":["../../../../src/runtime/emit/join.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,KAAK,EAAE,WAAW,EAAkC,MAAM,aAAa,CAAC;AAG/E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAW9D;;;GAGG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,eAAe,GAAG,WAAW,CAkH9E"}
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import { emitCallFromPlan, emitPlanNode } from '../emitters.js';
|
|
2
2
|
import { createLogger } from '../../common/logger.js';
|
|
3
|
-
import {
|
|
3
|
+
import { compareSqlValuesFast, BINARY_COLLATION } from '../../util/comparison.js';
|
|
4
4
|
import { buildRowDescriptor } from '../../util/row-descriptor.js';
|
|
5
5
|
import { createRowSlot } from '../context-helpers.js';
|
|
6
|
+
import { QuereusError } from '../../common/errors.js';
|
|
7
|
+
import { StatusCode } from '../../common/types.js';
|
|
6
8
|
const log = createLogger('runtime:emit:join');
|
|
7
9
|
/**
|
|
8
10
|
* Emits a nested loop join instruction.
|
|
9
|
-
* This is a simple nested loop implementation
|
|
11
|
+
* This is a simple nested loop implementation for inner/left/cross joins.
|
|
10
12
|
*/
|
|
11
13
|
export function emitLoopJoin(plan, ctx) {
|
|
12
14
|
// Create row descriptors for left and right inputs
|
|
@@ -14,10 +16,23 @@ export function emitLoopJoin(plan, ctx) {
|
|
|
14
16
|
const leftRowDescriptor = buildRowDescriptor(leftAttributes);
|
|
15
17
|
const rightAttributes = plan.right.getAttributes();
|
|
16
18
|
const rightRowDescriptor = buildRowDescriptor(rightAttributes);
|
|
19
|
+
// Pre-resolve USING column indices and collation-based comparators at emit time
|
|
20
|
+
const usingResolved = plan.usingColumns?.map(columnName => {
|
|
21
|
+
const lowerName = columnName.toLowerCase();
|
|
22
|
+
const leftIndex = leftAttributes.findIndex(attr => attr.name.toLowerCase() === lowerName);
|
|
23
|
+
const rightIndex = rightAttributes.findIndex(attr => attr.name.toLowerCase() === lowerName);
|
|
24
|
+
const leftType = leftAttributes[leftIndex]?.type;
|
|
25
|
+
const collationFunc = leftType?.collationName ? ctx.resolveCollation(leftType.collationName) : BINARY_COLLATION;
|
|
26
|
+
return { leftIndex, rightIndex, collationFunc };
|
|
27
|
+
});
|
|
17
28
|
// NOTE: rightSource must be re-startable (optimizer facilitates through cache node)
|
|
18
29
|
async function* run(rctx, leftSource, rightCallback, conditionCallback) {
|
|
19
30
|
const joinType = plan.joinType;
|
|
31
|
+
const isSemiOrAnti = joinType === 'semi' || joinType === 'anti';
|
|
20
32
|
log('Starting %s join between %d left attrs and %d right attrs', joinType.toUpperCase(), leftAttributes.length, rightAttributes.length);
|
|
33
|
+
if (joinType === 'right' || joinType === 'full') {
|
|
34
|
+
throw new QuereusError(`${joinType.toUpperCase()} JOIN is not supported yet`, StatusCode.UNSUPPORTED);
|
|
35
|
+
}
|
|
21
36
|
// Create row slots for efficient context management
|
|
22
37
|
const leftSlot = createRowSlot(rctx, leftRowDescriptor);
|
|
23
38
|
const rightSlot = createRowSlot(rctx, rightRowDescriptor);
|
|
@@ -38,9 +53,9 @@ export function emitLoopJoin(plan, ctx) {
|
|
|
38
53
|
const conditionResult = await conditionCallback(rctx);
|
|
39
54
|
conditionMet = !!conditionResult; // Convert to boolean
|
|
40
55
|
}
|
|
41
|
-
else if (
|
|
42
|
-
// Handle USING condition
|
|
43
|
-
conditionMet = evaluateUsingCondition(leftRow, rightRow,
|
|
56
|
+
else if (usingResolved) {
|
|
57
|
+
// Handle USING condition with pre-resolved indices and typed comparators
|
|
58
|
+
conditionMet = evaluateUsingCondition(leftRow, rightRow, usingResolved);
|
|
44
59
|
}
|
|
45
60
|
else if (joinType === 'cross') {
|
|
46
61
|
// Cross join - always true
|
|
@@ -48,28 +63,31 @@ export function emitLoopJoin(plan, ctx) {
|
|
|
48
63
|
}
|
|
49
64
|
if (conditionMet) {
|
|
50
65
|
leftMatched = true;
|
|
66
|
+
if (isSemiOrAnti) {
|
|
67
|
+
// Semi: emit left row on first match and stop scanning right side
|
|
68
|
+
// Anti: just record the match, don't emit yet
|
|
69
|
+
break;
|
|
70
|
+
}
|
|
51
71
|
yield [...leftRow, ...rightRow];
|
|
52
72
|
}
|
|
53
73
|
}
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
//
|
|
74
|
+
if (isSemiOrAnti) {
|
|
75
|
+
// Semi: emit left row only if matched
|
|
76
|
+
// Anti: emit left row only if NOT matched
|
|
77
|
+
if ((joinType === 'semi' && leftMatched) || (joinType === 'anti' && !leftMatched)) {
|
|
78
|
+
yield leftRow;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
else if (!leftMatched && joinType === 'left') {
|
|
82
|
+
// Handle outer join semantics - null padding for unmatched left rows
|
|
57
83
|
const nullPadding = new Array(rightAttributes.length).fill(null);
|
|
84
|
+
// Update the right slot so downstream resolveAttribute sees
|
|
85
|
+
// nulls instead of stale data from a previous inner iteration.
|
|
86
|
+
rightSlot.set(nullPadding);
|
|
58
87
|
const outputRow = [...leftRow, ...nullPadding];
|
|
59
88
|
yield outputRow;
|
|
60
89
|
}
|
|
61
90
|
}
|
|
62
|
-
// Handle right outer join semantics - we need to track which right rows were matched
|
|
63
|
-
// For now, we'll handle this in a simpler way by iterating again for right/full outer joins
|
|
64
|
-
if (joinType === 'right' || joinType === 'full') {
|
|
65
|
-
// For right outer joins, we need to find unmatched right rows
|
|
66
|
-
// This is more complex and less efficient - a real implementation would track matches
|
|
67
|
-
// For now, we'll implement a simplified version
|
|
68
|
-
log('Right/full outer join - checking for unmatched right rows');
|
|
69
|
-
// We'd need to track which right rows were matched during the main loop
|
|
70
|
-
// For now, we'll skip this implementation detail
|
|
71
|
-
// TODO: Implement proper right outer join semantics
|
|
72
|
-
}
|
|
73
91
|
}
|
|
74
92
|
finally {
|
|
75
93
|
leftSlot.close();
|
|
@@ -91,26 +109,19 @@ export function emitLoopJoin(plan, ctx) {
|
|
|
91
109
|
};
|
|
92
110
|
}
|
|
93
111
|
/**
|
|
94
|
-
* Evaluates USING condition
|
|
112
|
+
* Evaluates USING condition using pre-resolved column indices and collation functions.
|
|
113
|
+
* All index lookups and collation resolution are done at emit time.
|
|
114
|
+
* Uses compareSqlValuesFast for safe cross-type comparison.
|
|
95
115
|
*/
|
|
96
|
-
function evaluateUsingCondition(leftRow, rightRow,
|
|
97
|
-
for (const
|
|
98
|
-
const leftColName = columnName.toLowerCase();
|
|
99
|
-
const rightColName = columnName.toLowerCase();
|
|
100
|
-
// Find column indices in left and right
|
|
101
|
-
const leftIndex = leftAttributes.findIndex(attr => attr.name.toLowerCase() === leftColName);
|
|
102
|
-
const rightIndex = rightAttributes.findIndex(attr => attr.name.toLowerCase() === rightColName);
|
|
116
|
+
function evaluateUsingCondition(leftRow, rightRow, resolved) {
|
|
117
|
+
for (const { leftIndex, rightIndex, collationFunc } of resolved) {
|
|
103
118
|
if (leftIndex === -1 || rightIndex === -1) {
|
|
104
|
-
// Column not found - should not happen if planner is correct
|
|
105
119
|
return false;
|
|
106
120
|
}
|
|
107
|
-
|
|
108
|
-
const rightValue = rightRow[rightIndex];
|
|
109
|
-
// Compare using SQL semantics
|
|
110
|
-
if (compareSqlValues(leftValue, rightValue) !== 0) {
|
|
121
|
+
if (compareSqlValuesFast(leftRow[leftIndex], rightRow[rightIndex], collationFunc) !== 0) {
|
|
111
122
|
return false;
|
|
112
123
|
}
|
|
113
124
|
}
|
|
114
|
-
return true;
|
|
125
|
+
return true;
|
|
115
126
|
}
|
|
116
127
|
//# sourceMappingURL=join.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"join.js","sourceRoot":"","sources":["../../../../src/runtime/emit/join.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAGhE,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"join.js","sourceRoot":"","sources":["../../../../src/runtime/emit/join.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { MergeJoinNode } from '../../planner/nodes/merge-join-node.js';
|
|
2
|
+
import type { Instruction } from '../types.js';
|
|
3
|
+
import type { EmissionContext } from '../emission-context.js';
|
|
4
|
+
/**
|
|
5
|
+
* Emits a merge join instruction.
|
|
6
|
+
*
|
|
7
|
+
* Classic merge-join algorithm:
|
|
8
|
+
* 1. Advance both iterators in sorted order
|
|
9
|
+
* 2. When keys match, collect the "run" of equal keys from the right side
|
|
10
|
+
* 3. Produce cross-product of matching left rows × right run
|
|
11
|
+
* 4. LEFT JOIN: emit null-padded rows for left rows with no match
|
|
12
|
+
*/
|
|
13
|
+
export declare function emitMergeJoin(plan: MergeJoinNode, ctx: EmissionContext): Instruction;
|
|
14
|
+
//# sourceMappingURL=merge-join.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"merge-join.d.ts","sourceRoot":"","sources":["../../../../src/runtime/emit/merge-join.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AAC5E,OAAO,KAAK,EAAE,WAAW,EAAkC,MAAM,aAAa,CAAC;AAG/E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AA+B9D;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,eAAe,GAAG,WAAW,CAwIpF"}
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
import { emitCallFromPlan, emitPlanNode } from '../emitters.js';
|
|
2
|
+
import { createLogger } from '../../common/logger.js';
|
|
3
|
+
import { buildRowDescriptor } from '../../util/row-descriptor.js';
|
|
4
|
+
import { createRowSlot } from '../context-helpers.js';
|
|
5
|
+
import { compareSqlValuesFast, BINARY_COLLATION } from '../../util/comparison.js';
|
|
6
|
+
const log = createLogger('runtime:emit:merge-join');
|
|
7
|
+
/**
|
|
8
|
+
* Compare two rows on the equi-join key columns.
|
|
9
|
+
* Returns < 0 if left < right, 0 if equal, > 0 if left > right.
|
|
10
|
+
* Returns null if either side has a NULL key (NULLs never match in equi-joins).
|
|
11
|
+
*/
|
|
12
|
+
function compareKeys(leftRow, rightRow, leftIndices, rightIndices, collations) {
|
|
13
|
+
for (let i = 0; i < leftIndices.length; i++) {
|
|
14
|
+
const lv = leftRow[leftIndices[i]];
|
|
15
|
+
const rv = rightRow[rightIndices[i]];
|
|
16
|
+
if (lv === null || rv === null)
|
|
17
|
+
return null;
|
|
18
|
+
const cmp = compareSqlValuesFast(lv, rv, collations[i]);
|
|
19
|
+
if (cmp !== 0)
|
|
20
|
+
return cmp;
|
|
21
|
+
}
|
|
22
|
+
return 0;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Emits a merge join instruction.
|
|
26
|
+
*
|
|
27
|
+
* Classic merge-join algorithm:
|
|
28
|
+
* 1. Advance both iterators in sorted order
|
|
29
|
+
* 2. When keys match, collect the "run" of equal keys from the right side
|
|
30
|
+
* 3. Produce cross-product of matching left rows × right run
|
|
31
|
+
* 4. LEFT JOIN: emit null-padded rows for left rows with no match
|
|
32
|
+
*/
|
|
33
|
+
export function emitMergeJoin(plan, ctx) {
|
|
34
|
+
const leftAttributes = plan.left.getAttributes();
|
|
35
|
+
const rightAttributes = plan.right.getAttributes();
|
|
36
|
+
const leftRowDescriptor = buildRowDescriptor(leftAttributes);
|
|
37
|
+
const rightRowDescriptor = buildRowDescriptor(rightAttributes);
|
|
38
|
+
// Pre-resolve equi-pair column indices and collation functions
|
|
39
|
+
const leftIndices = [];
|
|
40
|
+
const rightIndices = [];
|
|
41
|
+
const collations = [];
|
|
42
|
+
for (const pair of plan.equiPairs) {
|
|
43
|
+
const li = leftAttributes.findIndex(a => a.id === pair.leftAttrId);
|
|
44
|
+
const ri = rightAttributes.findIndex(a => a.id === pair.rightAttrId);
|
|
45
|
+
if (li === -1 || ri === -1) {
|
|
46
|
+
throw new Error(`MergeJoin: could not resolve equi-pair attr IDs ${pair.leftAttrId}=${pair.rightAttrId}`);
|
|
47
|
+
}
|
|
48
|
+
leftIndices.push(li);
|
|
49
|
+
rightIndices.push(ri);
|
|
50
|
+
const collationName = leftAttributes[li].type.collationName || rightAttributes[ri].type.collationName;
|
|
51
|
+
collations.push(collationName ? ctx.resolveCollation(collationName) : BINARY_COLLATION);
|
|
52
|
+
}
|
|
53
|
+
const rightColCount = rightAttributes.length;
|
|
54
|
+
async function* run(rctx, leftSource, rightSource, residualCallback) {
|
|
55
|
+
log('Starting %s merge join: %d equi-pairs', plan.joinType.toUpperCase(), plan.equiPairs.length);
|
|
56
|
+
const isSemiOrAnti = plan.joinType === 'semi' || plan.joinType === 'anti';
|
|
57
|
+
const leftSlot = createRowSlot(rctx, leftRowDescriptor);
|
|
58
|
+
const rightSlot = createRowSlot(rctx, rightRowDescriptor);
|
|
59
|
+
try {
|
|
60
|
+
// Materialize right side into sorted array for run detection.
|
|
61
|
+
// We need random access to handle duplicate key runs.
|
|
62
|
+
const rightRows = [];
|
|
63
|
+
for await (const row of rightSource) {
|
|
64
|
+
rightRows.push(row);
|
|
65
|
+
}
|
|
66
|
+
log('Right side materialized: %d rows', rightRows.length);
|
|
67
|
+
let rightIdx = 0;
|
|
68
|
+
for await (const leftRow of leftSource) {
|
|
69
|
+
leftSlot.set(leftRow);
|
|
70
|
+
let matched = false;
|
|
71
|
+
// Check for NULL keys on the left side
|
|
72
|
+
let leftHasNull = false;
|
|
73
|
+
for (let i = 0; i < leftIndices.length; i++) {
|
|
74
|
+
if (leftRow[leftIndices[i]] === null) {
|
|
75
|
+
leftHasNull = true;
|
|
76
|
+
break;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
if (leftHasNull) {
|
|
80
|
+
// NULL keys never match; skip ahead
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
// Advance right pointer past rows that are less than the current left key
|
|
84
|
+
while (rightIdx < rightRows.length) {
|
|
85
|
+
const cmp = compareKeys(leftRow, rightRows[rightIdx], leftIndices, rightIndices, collations);
|
|
86
|
+
if (cmp === null) {
|
|
87
|
+
// Right row has NULL key — skip it
|
|
88
|
+
rightIdx++;
|
|
89
|
+
continue;
|
|
90
|
+
}
|
|
91
|
+
if (cmp <= 0)
|
|
92
|
+
break; // right >= left, stop advancing
|
|
93
|
+
rightIdx++;
|
|
94
|
+
}
|
|
95
|
+
// Collect the run of matching right rows
|
|
96
|
+
let runStart = rightIdx;
|
|
97
|
+
while (runStart < rightRows.length) {
|
|
98
|
+
const cmp = compareKeys(leftRow, rightRows[runStart], leftIndices, rightIndices, collations);
|
|
99
|
+
if (cmp !== 0)
|
|
100
|
+
break; // No longer equal
|
|
101
|
+
runStart++;
|
|
102
|
+
}
|
|
103
|
+
const runEnd = runStart; // runEnd is exclusive
|
|
104
|
+
// Emit matches for [rightIdx, runEnd)
|
|
105
|
+
for (let ri = rightIdx; ri < runEnd; ri++) {
|
|
106
|
+
const rightRow = rightRows[ri];
|
|
107
|
+
rightSlot.set(rightRow);
|
|
108
|
+
// Evaluate residual condition if present
|
|
109
|
+
if (residualCallback) {
|
|
110
|
+
const result = await residualCallback(rctx);
|
|
111
|
+
if (!result)
|
|
112
|
+
continue;
|
|
113
|
+
}
|
|
114
|
+
matched = true;
|
|
115
|
+
if (isSemiOrAnti) {
|
|
116
|
+
break;
|
|
117
|
+
}
|
|
118
|
+
yield [...leftRow, ...rightRow];
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
if (isSemiOrAnti) {
|
|
122
|
+
if ((plan.joinType === 'semi' && matched) || (plan.joinType === 'anti' && !matched)) {
|
|
123
|
+
yield leftRow;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
else if (!matched && plan.joinType === 'left') {
|
|
127
|
+
// LEFT JOIN: emit null-padded row for unmatched left rows
|
|
128
|
+
const nullPadding = new Array(rightColCount).fill(null);
|
|
129
|
+
rightSlot.set(nullPadding);
|
|
130
|
+
yield [...leftRow, ...nullPadding];
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
finally {
|
|
135
|
+
leftSlot.close();
|
|
136
|
+
rightSlot.close();
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
const leftInstruction = emitPlanNode(plan.left, ctx);
|
|
140
|
+
const rightInstruction = emitPlanNode(plan.right, ctx);
|
|
141
|
+
const params = [leftInstruction, rightInstruction];
|
|
142
|
+
if (plan.residualCondition) {
|
|
143
|
+
const residualInstruction = emitCallFromPlan(plan.residualCondition, ctx);
|
|
144
|
+
params.push(residualInstruction);
|
|
145
|
+
}
|
|
146
|
+
return {
|
|
147
|
+
params,
|
|
148
|
+
run: run,
|
|
149
|
+
note: `${plan.joinType} join (merge)`
|
|
150
|
+
};
|
|
151
|
+
}
|
|
152
|
+
//# sourceMappingURL=merge-join.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"merge-join.js","sourceRoot":"","sources":["../../../../src/runtime/emit/merge-join.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parameter.d.ts","sourceRoot":"","sources":["../../../../src/runtime/emit/parameter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAC/E,OAAO,KAAK,EAAE,WAAW,EAAkB,MAAM,aAAa,CAAC;AAI/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE9D,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,sBAAsB,EAAE,IAAI,EAAE,eAAe,GAAG,WAAW,
|
|
1
|
+
{"version":3,"file":"parameter.d.ts","sourceRoot":"","sources":["../../../../src/runtime/emit/parameter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAC/E,OAAO,KAAK,EAAE,WAAW,EAAkB,MAAM,aAAa,CAAC;AAI/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE9D,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,sBAAsB,EAAE,IAAI,EAAE,eAAe,GAAG,WAAW,CA+BvG"}
|