@quereus/quereus 4.4.1 → 4.5.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 +1 -1
- package/dist/src/core/database-materialized-views-analysis.d.ts.map +1 -1
- package/dist/src/core/database-materialized-views-analysis.js +1 -0
- package/dist/src/core/database-materialized-views-analysis.js.map +1 -1
- package/dist/src/func/builtins/scalar.d.ts.map +1 -1
- package/dist/src/func/builtins/scalar.js +92 -3
- package/dist/src/func/builtins/scalar.js.map +1 -1
- package/dist/src/func/registration.d.ts +4 -0
- package/dist/src/func/registration.d.ts.map +1 -1
- package/dist/src/func/registration.js +1 -0
- package/dist/src/func/registration.js.map +1 -1
- package/dist/src/index.d.ts +3 -3
- 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/planner/analysis/coarsened-key.d.ts +4 -3
- package/dist/src/planner/analysis/coarsened-key.d.ts.map +1 -1
- package/dist/src/planner/analysis/coarsened-key.js +37 -3
- package/dist/src/planner/analysis/coarsened-key.js.map +1 -1
- package/dist/src/planner/analysis/comparison-collation.d.ts +33 -3
- package/dist/src/planner/analysis/comparison-collation.d.ts.map +1 -1
- package/dist/src/planner/analysis/comparison-collation.js +36 -2
- package/dist/src/planner/analysis/comparison-collation.js.map +1 -1
- package/dist/src/planner/analysis/coverage-prover.d.ts +13 -2
- package/dist/src/planner/analysis/coverage-prover.d.ts.map +1 -1
- package/dist/src/planner/analysis/coverage-prover.js +10 -14
- package/dist/src/planner/analysis/coverage-prover.js.map +1 -1
- package/dist/src/planner/analysis/predicate-conjuncts.d.ts +10 -4
- package/dist/src/planner/analysis/predicate-conjuncts.d.ts.map +1 -1
- package/dist/src/planner/analysis/predicate-conjuncts.js +28 -7
- package/dist/src/planner/analysis/predicate-conjuncts.js.map +1 -1
- package/dist/src/planner/analysis/query-rewrite-matcher.d.ts.map +1 -1
- package/dist/src/planner/analysis/query-rewrite-matcher.js +8 -27
- package/dist/src/planner/analysis/query-rewrite-matcher.js.map +1 -1
- package/dist/src/planner/analysis/scalar-subqueries.d.ts +22 -3
- package/dist/src/planner/analysis/scalar-subqueries.d.ts.map +1 -1
- package/dist/src/planner/analysis/scalar-subqueries.js +32 -3
- package/dist/src/planner/analysis/scalar-subqueries.js.map +1 -1
- package/dist/src/planner/analysis/set-op-type-merge.d.ts +64 -0
- package/dist/src/planner/analysis/set-op-type-merge.d.ts.map +1 -0
- package/dist/src/planner/analysis/set-op-type-merge.js +97 -0
- package/dist/src/planner/analysis/set-op-type-merge.js.map +1 -0
- package/dist/src/planner/building/coercion.d.ts +78 -0
- package/dist/src/planner/building/coercion.d.ts.map +1 -0
- package/dist/src/planner/building/coercion.js +137 -0
- package/dist/src/planner/building/coercion.js.map +1 -0
- package/dist/src/planner/building/constraint-builder.d.ts.map +1 -1
- package/dist/src/planner/building/constraint-builder.js +5 -18
- package/dist/src/planner/building/constraint-builder.js.map +1 -1
- package/dist/src/planner/building/expression.d.ts.map +1 -1
- package/dist/src/planner/building/expression.js +1 -104
- package/dist/src/planner/building/expression.js.map +1 -1
- package/dist/src/planner/building/function-call.d.ts.map +1 -1
- package/dist/src/planner/building/function-call.js +8 -0
- package/dist/src/planner/building/function-call.js.map +1 -1
- package/dist/src/planner/building/select-compound.d.ts.map +1 -1
- package/dist/src/planner/building/select-compound.js +10 -6
- package/dist/src/planner/building/select-compound.js.map +1 -1
- package/dist/src/planner/cost/conjunct-cost.d.ts +42 -0
- package/dist/src/planner/cost/conjunct-cost.d.ts.map +1 -0
- package/dist/src/planner/cost/conjunct-cost.js +62 -0
- package/dist/src/planner/cost/conjunct-cost.js.map +1 -0
- package/dist/src/planner/mutation/propagate.d.ts.map +1 -1
- package/dist/src/planner/mutation/propagate.js +1 -0
- package/dist/src/planner/mutation/propagate.js.map +1 -1
- package/dist/src/planner/nodes/async-gather-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/async-gather-node.js +19 -8
- package/dist/src/planner/nodes/async-gather-node.js.map +1 -1
- package/dist/src/planner/nodes/bloom-join-node.d.ts +2 -0
- package/dist/src/planner/nodes/bloom-join-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/bloom-join-node.js +10 -5
- package/dist/src/planner/nodes/bloom-join-node.js.map +1 -1
- package/dist/src/planner/nodes/join-node.d.ts +5 -0
- package/dist/src/planner/nodes/join-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/join-node.js +8 -1
- package/dist/src/planner/nodes/join-node.js.map +1 -1
- package/dist/src/planner/nodes/join-utils.d.ts +57 -0
- package/dist/src/planner/nodes/join-utils.d.ts.map +1 -1
- package/dist/src/planner/nodes/join-utils.js +47 -0
- package/dist/src/planner/nodes/join-utils.js.map +1 -1
- package/dist/src/planner/nodes/key-set-semi-join-node.d.ts +87 -0
- package/dist/src/planner/nodes/key-set-semi-join-node.d.ts.map +1 -0
- package/dist/src/planner/nodes/key-set-semi-join-node.js +137 -0
- package/dist/src/planner/nodes/key-set-semi-join-node.js.map +1 -0
- package/dist/src/planner/nodes/merge-join-node.d.ts +2 -0
- package/dist/src/planner/nodes/merge-join-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/merge-join-node.js +14 -6
- package/dist/src/planner/nodes/merge-join-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/set-operation-node.d.ts +68 -16
- package/dist/src/planner/nodes/set-operation-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/set-operation-node.js +147 -26
- package/dist/src/planner/nodes/set-operation-node.js.map +1 -1
- package/dist/src/planner/nodes/table-access-nodes.d.ts +19 -1
- package/dist/src/planner/nodes/table-access-nodes.d.ts.map +1 -1
- package/dist/src/planner/nodes/table-access-nodes.js +13 -2
- package/dist/src/planner/nodes/table-access-nodes.js.map +1 -1
- package/dist/src/planner/optimizer.d.ts.map +1 -1
- package/dist/src/planner/optimizer.js +49 -0
- package/dist/src/planner/optimizer.js.map +1 -1
- package/dist/src/planner/rules/access/rule-key-set-seek.d.ts +68 -0
- package/dist/src/planner/rules/access/rule-key-set-seek.d.ts.map +1 -0
- package/dist/src/planner/rules/access/rule-key-set-seek.js +408 -0
- package/dist/src/planner/rules/access/rule-key-set-seek.js.map +1 -0
- package/dist/src/planner/rules/access/rule-monotonic-range-access.d.ts.map +1 -1
- package/dist/src/planner/rules/access/rule-monotonic-range-access.js +2 -2
- package/dist/src/planner/rules/access/rule-monotonic-range-access.js.map +1 -1
- package/dist/src/planner/rules/access/rule-select-access-path.d.ts +27 -0
- 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 +31 -11
- package/dist/src/planner/rules/access/rule-select-access-path.js.map +1 -1
- package/dist/src/planner/rules/join/equi-pair-extractor.d.ts +67 -41
- package/dist/src/planner/rules/join/equi-pair-extractor.d.ts.map +1 -1
- package/dist/src/planner/rules/join/equi-pair-extractor.js +72 -36
- package/dist/src/planner/rules/join/equi-pair-extractor.js.map +1 -1
- package/dist/src/planner/rules/join/rule-join-physical-selection.d.ts.map +1 -1
- package/dist/src/planner/rules/join/rule-join-physical-selection.js +14 -2
- package/dist/src/planner/rules/join/rule-join-physical-selection.js.map +1 -1
- package/dist/src/planner/rules/join/rule-monotonic-merge-join.d.ts.map +1 -1
- package/dist/src/planner/rules/join/rule-monotonic-merge-join.js +11 -1
- package/dist/src/planner/rules/join/rule-monotonic-merge-join.js.map +1 -1
- package/dist/src/planner/rules/predicate/rule-empty-relation-folding.d.ts +1 -1
- package/dist/src/planner/rules/predicate/rule-empty-relation-folding.js +1 -1
- package/dist/src/planner/rules/predicate/rule-filter-conjunct-ordering.d.ts +30 -0
- package/dist/src/planner/rules/predicate/rule-filter-conjunct-ordering.d.ts.map +1 -0
- package/dist/src/planner/rules/predicate/rule-filter-conjunct-ordering.js +63 -0
- package/dist/src/planner/rules/predicate/rule-filter-conjunct-ordering.js.map +1 -0
- package/dist/src/planner/rules/predicate/rule-filter-selectivity.d.ts +17 -1
- package/dist/src/planner/rules/predicate/rule-filter-selectivity.d.ts.map +1 -1
- package/dist/src/planner/rules/predicate/rule-filter-selectivity.js +206 -12
- package/dist/src/planner/rules/predicate/rule-filter-selectivity.js.map +1 -1
- package/dist/src/planner/rules/predicate/rule-predicate-pushdown.d.ts +3 -1
- package/dist/src/planner/rules/predicate/rule-predicate-pushdown.d.ts.map +1 -1
- package/dist/src/planner/rules/predicate/rule-predicate-pushdown.js +13 -1
- package/dist/src/planner/rules/predicate/rule-predicate-pushdown.js.map +1 -1
- package/dist/src/planner/rules/retrieve/rule-grow-retrieve.d.ts.map +1 -1
- package/dist/src/planner/rules/retrieve/rule-grow-retrieve.js +18 -3
- package/dist/src/planner/rules/retrieve/rule-grow-retrieve.js.map +1 -1
- package/dist/src/planner/rules/shared/index-style-context.d.ts +17 -0
- package/dist/src/planner/rules/shared/index-style-context.d.ts.map +1 -1
- package/dist/src/planner/rules/shared/index-style-context.js +7 -0
- package/dist/src/planner/rules/shared/index-style-context.js.map +1 -1
- package/dist/src/planner/rules/subquery/rule-subquery-decorrelation.d.ts +24 -6
- package/dist/src/planner/rules/subquery/rule-subquery-decorrelation.d.ts.map +1 -1
- package/dist/src/planner/rules/subquery/rule-subquery-decorrelation.js +175 -60
- package/dist/src/planner/rules/subquery/rule-subquery-decorrelation.js.map +1 -1
- package/dist/src/planner/stats/catalog-stats.d.ts +52 -0
- package/dist/src/planner/stats/catalog-stats.d.ts.map +1 -1
- package/dist/src/planner/stats/catalog-stats.js +151 -5
- package/dist/src/planner/stats/catalog-stats.js.map +1 -1
- package/dist/src/planner/stats/index.d.ts +15 -0
- package/dist/src/planner/stats/index.d.ts.map +1 -1
- package/dist/src/planner/stats/index.js.map +1 -1
- package/dist/src/planner/stats/selectivity-combine.d.ts +53 -0
- package/dist/src/planner/stats/selectivity-combine.d.ts.map +1 -0
- package/dist/src/planner/stats/selectivity-combine.js +75 -0
- package/dist/src/planner/stats/selectivity-combine.js.map +1 -0
- package/dist/src/planner/util/column-origins.d.ts +58 -0
- package/dist/src/planner/util/column-origins.d.ts.map +1 -0
- package/dist/src/planner/util/column-origins.js +90 -0
- package/dist/src/planner/util/column-origins.js.map +1 -0
- package/dist/src/runtime/deferred-constraint-queue.d.ts +40 -0
- package/dist/src/runtime/deferred-constraint-queue.d.ts.map +1 -1
- package/dist/src/runtime/deferred-constraint-queue.js +90 -9
- package/dist/src/runtime/deferred-constraint-queue.js.map +1 -1
- package/dist/src/runtime/emit/alter-table.d.ts.map +1 -1
- package/dist/src/runtime/emit/alter-table.js +6 -0
- package/dist/src/runtime/emit/alter-table.js.map +1 -1
- package/dist/src/runtime/emit/asof-scan.d.ts.map +1 -1
- package/dist/src/runtime/emit/asof-scan.js +8 -3
- package/dist/src/runtime/emit/asof-scan.js.map +1 -1
- package/dist/src/runtime/emit/between.d.ts.map +1 -1
- package/dist/src/runtime/emit/between.js +4 -38
- 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 +2 -23
- package/dist/src/runtime/emit/binary.js.map +1 -1
- package/dist/src/runtime/emit/bloom-join.d.ts.map +1 -1
- package/dist/src/runtime/emit/bloom-join.js +6 -35
- package/dist/src/runtime/emit/bloom-join.js.map +1 -1
- package/dist/src/runtime/emit/case.d.ts.map +1 -1
- package/dist/src/runtime/emit/case.js +40 -6
- package/dist/src/runtime/emit/case.js.map +1 -1
- package/dist/src/runtime/emit/constraint-check.d.ts.map +1 -1
- package/dist/src/runtime/emit/constraint-check.js +32 -8
- package/dist/src/runtime/emit/constraint-check.js.map +1 -1
- package/dist/src/runtime/emit/dml-executor.d.ts.map +1 -1
- package/dist/src/runtime/emit/dml-executor.js +26 -23
- package/dist/src/runtime/emit/dml-executor.js.map +1 -1
- package/dist/src/runtime/emit/filter.d.ts +18 -0
- package/dist/src/runtime/emit/filter.d.ts.map +1 -1
- package/dist/src/runtime/emit/filter.js +52 -10
- package/dist/src/runtime/emit/filter.js.map +1 -1
- package/dist/src/runtime/emit/join-key-extractor.d.ts +46 -0
- package/dist/src/runtime/emit/join-key-extractor.d.ts.map +1 -0
- package/dist/src/runtime/emit/join-key-extractor.js +60 -0
- package/dist/src/runtime/emit/join-key-extractor.js.map +1 -0
- package/dist/src/runtime/emit/join.d.ts.map +1 -1
- package/dist/src/runtime/emit/join.js +36 -15
- package/dist/src/runtime/emit/join.js.map +1 -1
- package/dist/src/runtime/emit/key-set-semi-join.d.ts +29 -0
- package/dist/src/runtime/emit/key-set-semi-join.d.ts.map +1 -0
- package/dist/src/runtime/emit/key-set-semi-join.js +143 -0
- package/dist/src/runtime/emit/key-set-semi-join.js.map +1 -0
- package/dist/src/runtime/emit/merge-join.d.ts.map +1 -1
- package/dist/src/runtime/emit/merge-join.js +15 -8
- package/dist/src/runtime/emit/merge-join.js.map +1 -1
- package/dist/src/runtime/emit/operand-comparator.d.ts +40 -0
- package/dist/src/runtime/emit/operand-comparator.d.ts.map +1 -0
- package/dist/src/runtime/emit/operand-comparator.js +59 -0
- package/dist/src/runtime/emit/operand-comparator.js.map +1 -0
- package/dist/src/runtime/emit/scan.d.ts.map +1 -1
- package/dist/src/runtime/emit/scan.js +11 -2
- package/dist/src/runtime/emit/scan.js.map +1 -1
- package/dist/src/runtime/parallel-driver.d.ts +5 -2
- package/dist/src/runtime/parallel-driver.d.ts.map +1 -1
- package/dist/src/runtime/parallel-driver.js +6 -2
- package/dist/src/runtime/parallel-driver.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/runtime/types.d.ts +7 -0
- package/dist/src/runtime/types.d.ts.map +1 -1
- package/dist/src/runtime/types.js.map +1 -1
- package/dist/src/schema/function.d.ts +9 -0
- package/dist/src/schema/function.d.ts.map +1 -1
- package/dist/src/schema/function.js.map +1 -1
- package/dist/src/types/builtin-types.d.ts.map +1 -1
- package/dist/src/types/builtin-types.js +30 -4
- package/dist/src/types/builtin-types.js.map +1 -1
- package/dist/src/util/comparison.d.ts +25 -0
- package/dist/src/util/comparison.d.ts.map +1 -1
- package/dist/src/util/comparison.js +31 -0
- package/dist/src/util/comparison.js.map +1 -1
- package/dist/src/vtab/best-access-plan.d.ts +87 -0
- package/dist/src/vtab/best-access-plan.d.ts.map +1 -1
- package/dist/src/vtab/best-access-plan.js +87 -0
- package/dist/src/vtab/best-access-plan.js.map +1 -1
- package/dist/src/vtab/memory/layer/base.d.ts +6 -4
- package/dist/src/vtab/memory/layer/base.d.ts.map +1 -1
- package/dist/src/vtab/memory/layer/base.js +6 -4
- package/dist/src/vtab/memory/layer/base.js.map +1 -1
- package/dist/src/vtab/memory/layer/manager.d.ts +60 -18
- package/dist/src/vtab/memory/layer/manager.d.ts.map +1 -1
- package/dist/src/vtab/memory/layer/manager.js +100 -39
- package/dist/src/vtab/memory/layer/manager.js.map +1 -1
- package/dist/src/vtab/memory/layer/transaction.d.ts +15 -6
- package/dist/src/vtab/memory/layer/transaction.d.ts.map +1 -1
- package/dist/src/vtab/memory/layer/transaction.js +26 -11
- package/dist/src/vtab/memory/layer/transaction.js.map +1 -1
- package/dist/src/vtab/memory/module.d.ts +14 -2
- package/dist/src/vtab/memory/module.d.ts.map +1 -1
- package/dist/src/vtab/memory/module.js +51 -39
- package/dist/src/vtab/memory/module.js.map +1 -1
- package/dist/src/vtab/memory/table.d.ts +1 -1
- package/dist/src/vtab/memory/table.d.ts.map +1 -1
- package/dist/src/vtab/memory/table.js +9 -2
- package/dist/src/vtab/memory/table.js.map +1 -1
- package/dist/src/vtab/table.d.ts +9 -1
- package/dist/src/vtab/table.d.ts.map +1 -1
- package/dist/src/vtab/table.js.map +1 -1
- package/package.json +3 -3
|
@@ -106,6 +106,13 @@ export function ruleGrowRetrieve(node, context) {
|
|
|
106
106
|
let newBindings = [...(retrieveChild.bindings ?? []), ...collectBindingsInPlan(node, retrieveChild.tableRef)];
|
|
107
107
|
if (isIndexStyleContext(assessment.ctx)) {
|
|
108
108
|
// Index-style fallback: only place supported fragments under Retrieve; keep residuals above
|
|
109
|
+
// NOTE: the Filter built below never executes — `ruleSelectAccessPath`'s index-style
|
|
110
|
+
// branch physicalizes from moduleCtx alone and never reads `Retrieve.source`. It is
|
|
111
|
+
// written anyway because two later readers walk it: `collectBindingsInPlan` (below)
|
|
112
|
+
// gathers correlated bindings from it, and `trySortAbsorbViaIndexOrdering` sweeps it
|
|
113
|
+
// for constraints when deciding whether a Sort can be absorbed. Any rule that writes
|
|
114
|
+
// a predicate into a committed Retrieve's `source` expecting it to EXECUTE will lose
|
|
115
|
+
// it (see rule-predicate-pushdown's guard).
|
|
109
116
|
newPipeline = candidatePipeline;
|
|
110
117
|
if (node instanceof FilterNode) {
|
|
111
118
|
const tableInfo = createTableInfoFromNode(retrieveChild.tableRef, tableSchema.name);
|
|
@@ -366,12 +373,16 @@ function fallbackIndexSupports(node, context, tableRef, existingCtx) {
|
|
|
366
373
|
log('Added %d unhandled constraint expressions to residual', unhandledExprs.length);
|
|
367
374
|
}
|
|
368
375
|
}
|
|
369
|
-
// Store context for later use in ruleSelectAccessPath
|
|
376
|
+
// Store context for later use in ruleSelectAccessPath. A re-grow over a
|
|
377
|
+
// Retrieve whose ordering already absorbed a Sort must keep the
|
|
378
|
+
// load-bearing marker — the Sort is gone either way.
|
|
370
379
|
const indexCtx = {
|
|
371
380
|
kind: 'index-style',
|
|
372
381
|
accessPlan,
|
|
373
382
|
residualPredicate,
|
|
374
|
-
originalConstraints: plannerConstraints ? [...plannerConstraints] : []
|
|
383
|
+
originalConstraints: plannerConstraints ? [...plannerConstraints] : [],
|
|
384
|
+
...(isIndexStyleContext(existingCtx) && existingCtx.orderingLoadBearing
|
|
385
|
+
? { orderingLoadBearing: true } : {}),
|
|
375
386
|
};
|
|
376
387
|
return {
|
|
377
388
|
cost: accessPlan.cost,
|
|
@@ -501,12 +512,16 @@ function trySortAbsorbViaIndexOrdering(sort, context) {
|
|
|
501
512
|
}
|
|
502
513
|
// Equip the Retrieve with index-style context so rule-select-access-path
|
|
503
514
|
// uses this plan. Existing source pipeline (which may already contain
|
|
504
|
-
// pushed-down filters) is preserved.
|
|
515
|
+
// pushed-down filters) is preserved. The dropped Sort makes the plan's
|
|
516
|
+
// ordering load-bearing: the physical leaf's emission order is now the only
|
|
517
|
+
// thing producing the requested ORDER BY, so leaf rewrites that change
|
|
518
|
+
// emission order must see the marker and decline.
|
|
505
519
|
const indexCtx = {
|
|
506
520
|
kind: 'index-style',
|
|
507
521
|
accessPlan,
|
|
508
522
|
residualPredicate,
|
|
509
523
|
originalConstraints: [...constraints],
|
|
524
|
+
orderingLoadBearing: true,
|
|
510
525
|
};
|
|
511
526
|
const newRetrieve = retrieveNode.withPipeline(retrieveNode.source, indexCtx, retrieveNode.bindings);
|
|
512
527
|
// Rebuild the chain on top of the equipped Retrieve, dropping the Sort.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rule-grow-retrieve.js","sourceRoot":"","sources":["../../../../../src/planner/rules/retrieve/rule-grow-retrieve.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"rule-grow-retrieve.js","sourceRoot":"","sources":["../../../../../src/planner/rules/retrieve/rule-grow-retrieve.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,6 +10,13 @@
|
|
|
10
10
|
*
|
|
11
11
|
* Use {@link isIndexStyleContext} at the retrieval site to validate the shape and
|
|
12
12
|
* narrow `moduleCtx` from `unknown` — never blind-cast.
|
|
13
|
+
*
|
|
14
|
+
* NOTE: once this context is present on a Retrieve, it is the SOLE authority for what
|
|
15
|
+
* the table access applies — `ruleSelectAccessPath` builds the physical leaf from
|
|
16
|
+
* `accessPlan` + `residualPredicate` and never reads `RetrieveNode.source`. Rules must
|
|
17
|
+
* therefore not push a predicate into a committed Retrieve's `source`; it would be
|
|
18
|
+
* silently dropped. Amend this context instead, or leave the Filter above the Retrieve
|
|
19
|
+
* so `ruleGrowRetrieve` can re-probe the module with it.
|
|
13
20
|
*/
|
|
14
21
|
import type { BestAccessPlanResult } from '../../../vtab/best-access-plan.js';
|
|
15
22
|
import type { ScalarPlanNode } from '../../nodes/plan-node.js';
|
|
@@ -29,6 +36,16 @@ export interface IndexStyleContext {
|
|
|
29
36
|
residualPredicate?: ScalarPlanNode;
|
|
30
37
|
/** Constraints extracted from the pushed-down predicate. */
|
|
31
38
|
originalConstraints: PredicateConstraint[];
|
|
39
|
+
/**
|
|
40
|
+
* True when a SortNode was DROPPED on the strength of this plan's
|
|
41
|
+
* `providesOrdering` (`trySortAbsorbViaIndexOrdering`): the leaf's emission
|
|
42
|
+
* order is now the only thing standing between the query and a wrong ORDER
|
|
43
|
+
* BY. Re-grows must carry it forward, and the physical leaf lifts it as
|
|
44
|
+
* `IndexScanNode.orderingLoadBearing` so later rewrites that would change
|
|
45
|
+
* the leaf's emission order (`rule-key-set-seek`) know to decline. Absent /
|
|
46
|
+
* false ⇒ any advertised ordering is vacuous — nothing consumed it.
|
|
47
|
+
*/
|
|
48
|
+
orderingLoadBearing?: boolean;
|
|
32
49
|
}
|
|
33
50
|
/**
|
|
34
51
|
* Type guard narrowing an untyped `moduleCtx` to {@link IndexStyleContext}.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-style-context.d.ts","sourceRoot":"","sources":["../../../../../src/planner/rules/shared/index-style-context.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index-style-context.d.ts","sourceRoot":"","sources":["../../../../../src/planner/rules/shared/index-style-context.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAC9E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAC;AAElF;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IACjC,IAAI,EAAE,aAAa,CAAC;IACpB,mEAAmE;IACnE,UAAU,EAAE,oBAAoB,CAAC;IACjC;;;OAGG;IACH,iBAAiB,CAAC,EAAE,cAAc,CAAC;IACnC,4DAA4D;IAC5D,mBAAmB,EAAE,mBAAmB,EAAE,CAAC;IAC3C;;;;;;;;OAQG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,iBAAiB,CAM1E"}
|
|
@@ -10,6 +10,13 @@
|
|
|
10
10
|
*
|
|
11
11
|
* Use {@link isIndexStyleContext} at the retrieval site to validate the shape and
|
|
12
12
|
* narrow `moduleCtx` from `unknown` — never blind-cast.
|
|
13
|
+
*
|
|
14
|
+
* NOTE: once this context is present on a Retrieve, it is the SOLE authority for what
|
|
15
|
+
* the table access applies — `ruleSelectAccessPath` builds the physical leaf from
|
|
16
|
+
* `accessPlan` + `residualPredicate` and never reads `RetrieveNode.source`. Rules must
|
|
17
|
+
* therefore not push a predicate into a committed Retrieve's `source`; it would be
|
|
18
|
+
* silently dropped. Amend this context instead, or leave the Filter above the Retrieve
|
|
19
|
+
* so `ruleGrowRetrieve` can re-probe the module with it.
|
|
13
20
|
*/
|
|
14
21
|
/**
|
|
15
22
|
* Type guard narrowing an untyped `moduleCtx` to {@link IndexStyleContext}.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-style-context.js","sourceRoot":"","sources":["../../../../../src/planner/rules/shared/index-style-context.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index-style-context.js","sourceRoot":"","sources":["../../../../../src/planner/rules/shared/index-style-context.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAiCH;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,GAAY;IAC/C,qFAAqF;IACrF,0EAA0E;IAC1E,gFAAgF;IAChF,wFAAwF;IACxF,OAAO,CAAC,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAK,GAAyB,CAAC,IAAI,KAAK,aAAa,CAAC;AAC9F,CAAC"}
|
|
@@ -1,21 +1,39 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Rule: Subquery Decorrelation
|
|
3
3
|
*
|
|
4
|
-
* Transforms
|
|
5
|
-
*
|
|
6
|
-
*
|
|
4
|
+
* Transforms EXISTS and IN subqueries in WHERE-clause FilterNode predicates
|
|
5
|
+
* into equivalent semi/anti joins, enabling hash join selection and
|
|
6
|
+
* eliminating per-row re-execution (correlated) or set-probe evaluation
|
|
7
|
+
* (uncorrelated) of the inner query.
|
|
7
8
|
*
|
|
8
9
|
* Transformations:
|
|
9
10
|
* Filter[EXISTS(correlated)](outer) → SemiJoin[corr_pred](outer, inner)
|
|
10
11
|
* Filter[NOT EXISTS(correlated)](outer) → AntiJoin[corr_pred](outer, inner)
|
|
11
12
|
* Filter[col IN (correlated subquery)](outer) → SemiJoin[col = inner.col](outer, inner)
|
|
13
|
+
* Filter[col IN (uncorrelated subquery)](outer) → SemiJoin[col = inner.col0](outer, inner)
|
|
12
14
|
*
|
|
13
15
|
* Applicability:
|
|
14
16
|
* - FilterNode with top-level ExistsNode, NOT ExistsNode, or InNode (subquery variant)
|
|
15
|
-
* -
|
|
16
|
-
*
|
|
17
|
+
* - Correlated arms: subquery references outer attributes and the correlation
|
|
18
|
+
* predicate is a simple equi-join condition (col = col across inner/outer)
|
|
19
|
+
* - Uncorrelated IN arm: bare outer column on the left of IN, deterministic
|
|
20
|
+
* read-only inner, hashable synthesized equi-pair, and agreeing IN/`=`
|
|
21
|
+
* collation resolutions (see `extractUncorrelatedIn`). The inner tree is used
|
|
22
|
+
* VERBATIM as the join's right side — no descent, so inner LIMIT / DISTINCT /
|
|
23
|
+
* set-ops / CTE bodies are preserved as-is.
|
|
17
24
|
*
|
|
18
|
-
*
|
|
25
|
+
* Why the uncorrelated IN rewrite is sound in WHERE position ONLY: `x IN S` is
|
|
26
|
+
* three-valued — it yields NULL (not FALSE) when `x` is NULL, or when there is
|
|
27
|
+
* no match and `S` contains a NULL. A FilterNode predicate collapses NULL to
|
|
28
|
+
* "drop the row", and a semi join also drops a row with no match (NULL never
|
|
29
|
+
* equals under `=`), so under a WHERE filter the two agree on every case.
|
|
30
|
+
* Projection-position IN must keep its three-valued answer and stays on the
|
|
31
|
+
* runtime set-probe path (`emitIn`), which also remains the fallback whenever
|
|
32
|
+
* any gate declines.
|
|
33
|
+
*
|
|
34
|
+
* NOT IN is deferred due to NULL semantics complexity (the parser builds it as
|
|
35
|
+
* UnaryOp(NOT) over the InNode, so it never matches these top-level-conjunct
|
|
36
|
+
* shapes).
|
|
19
37
|
*
|
|
20
38
|
* A SECOND ANCHOR (`ruleExistsInSelectDecorrelation`, ProjectNode) handles the
|
|
21
39
|
* same subqueries appearing in a SELECT list, where a semi/anti join cannot be
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rule-subquery-decorrelation.d.ts","sourceRoot":"","sources":["../../../../../src/planner/rules/subquery/rule-subquery-decorrelation.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"rule-subquery-decorrelation.d.ts","sourceRoot":"","sources":["../../../../../src/planner/rules/subquery/rule-subquery-decorrelation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AAIH,OAAO,EAAoB,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAua7D,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,GAAG,QAAQ,GAAG,IAAI,CAkB/F;AAmCD,wBAAgB,+BAA+B,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,GAAG,QAAQ,GAAG,IAAI,CAkCrG"}
|
|
@@ -1,21 +1,39 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Rule: Subquery Decorrelation
|
|
3
3
|
*
|
|
4
|
-
* Transforms
|
|
5
|
-
*
|
|
6
|
-
*
|
|
4
|
+
* Transforms EXISTS and IN subqueries in WHERE-clause FilterNode predicates
|
|
5
|
+
* into equivalent semi/anti joins, enabling hash join selection and
|
|
6
|
+
* eliminating per-row re-execution (correlated) or set-probe evaluation
|
|
7
|
+
* (uncorrelated) of the inner query.
|
|
7
8
|
*
|
|
8
9
|
* Transformations:
|
|
9
10
|
* Filter[EXISTS(correlated)](outer) → SemiJoin[corr_pred](outer, inner)
|
|
10
11
|
* Filter[NOT EXISTS(correlated)](outer) → AntiJoin[corr_pred](outer, inner)
|
|
11
12
|
* Filter[col IN (correlated subquery)](outer) → SemiJoin[col = inner.col](outer, inner)
|
|
13
|
+
* Filter[col IN (uncorrelated subquery)](outer) → SemiJoin[col = inner.col0](outer, inner)
|
|
12
14
|
*
|
|
13
15
|
* Applicability:
|
|
14
16
|
* - FilterNode with top-level ExistsNode, NOT ExistsNode, or InNode (subquery variant)
|
|
15
|
-
* -
|
|
16
|
-
*
|
|
17
|
+
* - Correlated arms: subquery references outer attributes and the correlation
|
|
18
|
+
* predicate is a simple equi-join condition (col = col across inner/outer)
|
|
19
|
+
* - Uncorrelated IN arm: bare outer column on the left of IN, deterministic
|
|
20
|
+
* read-only inner, hashable synthesized equi-pair, and agreeing IN/`=`
|
|
21
|
+
* collation resolutions (see `extractUncorrelatedIn`). The inner tree is used
|
|
22
|
+
* VERBATIM as the join's right side — no descent, so inner LIMIT / DISTINCT /
|
|
23
|
+
* set-ops / CTE bodies are preserved as-is.
|
|
17
24
|
*
|
|
18
|
-
*
|
|
25
|
+
* Why the uncorrelated IN rewrite is sound in WHERE position ONLY: `x IN S` is
|
|
26
|
+
* three-valued — it yields NULL (not FALSE) when `x` is NULL, or when there is
|
|
27
|
+
* no match and `S` contains a NULL. A FilterNode predicate collapses NULL to
|
|
28
|
+
* "drop the row", and a semi join also drops a row with no match (NULL never
|
|
29
|
+
* equals under `=`), so under a WHERE filter the two agree on every case.
|
|
30
|
+
* Projection-position IN must keep its three-valued answer and stays on the
|
|
31
|
+
* runtime set-probe path (`emitIn`), which also remains the fallback whenever
|
|
32
|
+
* any gate declines.
|
|
33
|
+
*
|
|
34
|
+
* NOT IN is deferred due to NULL semantics complexity (the parser builds it as
|
|
35
|
+
* UnaryOp(NOT) over the InNode, so it never matches these top-level-conjunct
|
|
36
|
+
* shapes).
|
|
19
37
|
*
|
|
20
38
|
* A SECOND ANCHOR (`ruleExistsInSelectDecorrelation`, ProjectNode) handles the
|
|
21
39
|
* same subqueries appearing in a SELECT list, where a semi/anti join cannot be
|
|
@@ -41,6 +59,8 @@ import { PlanNodeType } from '../../nodes/plan-node-type.js';
|
|
|
41
59
|
import { splitConjuncts, combineConjuncts } from '../../analysis/predicate-conjuncts.js';
|
|
42
60
|
import { isEquiCorrelation, collectDefinedAttrIds, referencesAnyAttr } from '../../analysis/equi-correlation.js';
|
|
43
61
|
import { PlanNodeCharacteristics } from '../../framework/characteristics.js';
|
|
62
|
+
import { extractEquiPairs } from '../join/equi-pair-extractor.js';
|
|
63
|
+
import { resolveComparisonCollation, resolveInCollationForNode } from '../../analysis/comparison-collation.js';
|
|
44
64
|
const log = createLogger('optimizer:rule:subquery-decorrelation');
|
|
45
65
|
/**
|
|
46
66
|
* Identify a decorrelation candidate from a single conjunct.
|
|
@@ -49,7 +69,7 @@ function identifyCandidate(node) {
|
|
|
49
69
|
// EXISTS(subquery)
|
|
50
70
|
if (node instanceof ExistsNode) {
|
|
51
71
|
if (isCorrelatedSubquery(node.subquery)) {
|
|
52
|
-
return { subqueryNode: node, joinType: 'semi'
|
|
72
|
+
return { subqueryNode: node, joinType: 'semi' };
|
|
53
73
|
}
|
|
54
74
|
return null;
|
|
55
75
|
}
|
|
@@ -58,17 +78,20 @@ function identifyCandidate(node) {
|
|
|
58
78
|
if (node.operand instanceof ExistsNode) {
|
|
59
79
|
const exists = node.operand;
|
|
60
80
|
if (isCorrelatedSubquery(exists.subquery)) {
|
|
61
|
-
return { subqueryNode: exists, joinType: 'anti'
|
|
81
|
+
return { subqueryNode: exists, joinType: 'anti' };
|
|
62
82
|
}
|
|
63
83
|
}
|
|
64
84
|
return null;
|
|
65
85
|
}
|
|
66
|
-
// col IN (correlated
|
|
86
|
+
// col IN (subquery) — correlated and uncorrelated take different extractions
|
|
67
87
|
if (node instanceof InNode && node.source && !node.values) {
|
|
68
88
|
if (isCorrelatedSubquery(node.source)) {
|
|
69
|
-
return { subqueryNode: node, joinType: 'semi'
|
|
89
|
+
return { subqueryNode: node, joinType: 'semi' };
|
|
70
90
|
}
|
|
71
|
-
|
|
91
|
+
// Uncorrelated filter-position IN: semi join ≡ IN under WHERE's NULL
|
|
92
|
+
// collapse (see the rule header). Gates live in extractUncorrelatedIn;
|
|
93
|
+
// any decline leaves the InNode on the runtime set-probe path.
|
|
94
|
+
return { subqueryNode: node, joinType: 'semi', uncorrelatedIn: true };
|
|
72
95
|
}
|
|
73
96
|
return null;
|
|
74
97
|
}
|
|
@@ -211,65 +234,157 @@ function extractInCorrelation(inNode, outerAttrIds) {
|
|
|
211
234
|
residualInnerFilter: null,
|
|
212
235
|
};
|
|
213
236
|
}
|
|
214
|
-
|
|
215
|
-
|
|
237
|
+
/**
|
|
238
|
+
* Recognize an uncorrelated filter-position `col IN (subquery)` and build the
|
|
239
|
+
* semi-join right side + condition. Every gate declines to `null`, leaving the
|
|
240
|
+
* InNode on the runtime set-probe path (`emitIn`) — the O(K + N·log K) floor;
|
|
241
|
+
* a decline only costs the better plan, never correctness.
|
|
242
|
+
*/
|
|
243
|
+
function extractUncorrelatedIn(inNode, outerAttrIds) {
|
|
244
|
+
const right = inNode.source;
|
|
245
|
+
if (!right)
|
|
246
|
+
return null;
|
|
247
|
+
// Gate: bare outer column on the left of IN. A non-column left side would
|
|
248
|
+
// fail the equi-pair gate below anyway; requiring it up front keeps the
|
|
249
|
+
// decline reason in one place.
|
|
250
|
+
if (!(inNode.condition instanceof ColumnReferenceNode))
|
|
251
|
+
return null;
|
|
252
|
+
const outerColRef = inNode.condition;
|
|
253
|
+
if (!outerAttrIds.has(outerColRef.attributeId))
|
|
254
|
+
return null;
|
|
255
|
+
// Gate: mirror the runtime set probe's own admission (emitIn's uncorrelated
|
|
256
|
+
// arm requires a functional source) so the two paths accept the same shapes.
|
|
257
|
+
// A non-deterministic inner must keep its per-outer-row evaluation
|
|
258
|
+
// semantics; side effects were already refused by the caller.
|
|
259
|
+
if (!PlanNodeCharacteristics.isFunctional(right))
|
|
260
|
+
return null;
|
|
261
|
+
// Build-time validation guarantees an IN subquery exposes exactly one column.
|
|
262
|
+
const innerAttr = right.getAttributes()[0];
|
|
263
|
+
if (!innerAttr)
|
|
216
264
|
return null;
|
|
265
|
+
// Synthesize `outer.col = inner.col0`, giving the inner reference its OWN
|
|
266
|
+
// AST rather than reusing the outer column's expression (which is why the
|
|
267
|
+
// correlated arm's condition renders as the nonsense `a.x = a.x` in EXPLAIN).
|
|
268
|
+
const innerColRef = new ColumnReferenceNode(outerColRef.scope, { type: 'column', name: innerAttr.name }, innerAttr.type, innerAttr.id, 0 // column index in the inner relation
|
|
269
|
+
);
|
|
270
|
+
const condition = new BinaryOpNode(outerColRef.scope, { type: 'binary', operator: '=', left: outerColRef.expression, right: innerColRef.expression }, outerColRef, innerColRef);
|
|
271
|
+
// Gate (the O(N×K)-floor guardrail): the synthesized condition must survive
|
|
272
|
+
// the SAME extraction rule-join-physical-selection uses, as exactly one
|
|
273
|
+
// equi-pair with no residual. That is that rule's only structural
|
|
274
|
+
// precondition, so the join always reaches its hash/merge/NL cost
|
|
275
|
+
// comparison with a usable hashable pair — the inner side is materialized
|
|
276
|
+
// once (hash build) rather than re-driven per outer row. This also folds in
|
|
277
|
+
// the collation-conflict and semantic-ordering-agreement declines (a mixed
|
|
278
|
+
// TIMESPAN/TEXT pair keeps the set-probe path, whose semanticKeyTransform
|
|
279
|
+
// handles it).
|
|
280
|
+
// NOTE: nested loop can still win the cost comparison when the OUTER is
|
|
281
|
+
// tiny (L ≤ ~2 under current COST_CONSTANTS); rule-nested-loop-right-cache
|
|
282
|
+
// then wraps the uncorrelated right in a CacheNode whose abandon threshold
|
|
283
|
+
// is the subject of backlog/bug-cache-threshold-abandon-cliff. A one-row
|
|
284
|
+
// outer scanning the inner once is not a cliff, so that interaction is
|
|
285
|
+
// confined to the harmless quadrant.
|
|
286
|
+
const rightAttrIds = new Set(right.getAttributes().map(a => a.id));
|
|
287
|
+
const extraction = extractEquiPairs(condition, outerAttrIds, rightAttrIds);
|
|
288
|
+
if (!extraction || extraction.equiPairs.length !== 1 || extraction.residual)
|
|
289
|
+
return null;
|
|
290
|
+
// Gate: the IN membership collation and the synthesized `=`'s collation
|
|
291
|
+
// must both resolve (no conflict) to the SAME name — a divergence would
|
|
292
|
+
// silently change which rows match. `inRhsTypes` reduces a subquery RHS to
|
|
293
|
+
// its single output column's type, the same operand pair the `=` sees, so
|
|
294
|
+
// agreement is expected; assert it rather than assume it.
|
|
295
|
+
const inResolution = resolveInCollationForNode(inNode);
|
|
296
|
+
const eqResolution = resolveComparisonCollation(inNode.condition.getType(), innerAttr.type);
|
|
297
|
+
if (inResolution.kind !== 'resolved' || eqResolution.kind !== 'resolved'
|
|
298
|
+
|| inResolution.name !== eqResolution.name) {
|
|
299
|
+
return null;
|
|
300
|
+
}
|
|
301
|
+
return { right, condition };
|
|
302
|
+
}
|
|
303
|
+
/**
|
|
304
|
+
* Decorrelate the first rewritable EXISTS/IN conjunct of one FilterNode.
|
|
305
|
+
* Returns the semi/anti join (with any remaining conjuncts re-wrapped in a
|
|
306
|
+
* FilterNode above it), or null when no conjunct rewrites.
|
|
307
|
+
*/
|
|
308
|
+
function decorrelateOneConjunct(node) {
|
|
217
309
|
const outerSource = node.source;
|
|
218
310
|
const outerAttrIds = new Set(outerSource.getAttributes().map(a => a.id));
|
|
219
311
|
// Split the filter predicate into conjuncts
|
|
220
312
|
const conjuncts = splitConjuncts(node.predicate);
|
|
221
|
-
// Find the first decorrelation candidate
|
|
222
|
-
let candidateIndex = -1;
|
|
223
|
-
let candidate = null;
|
|
224
313
|
for (let i = 0; i < conjuncts.length; i++) {
|
|
225
|
-
candidate = identifyCandidate(conjuncts[i]);
|
|
226
|
-
if (candidate)
|
|
227
|
-
|
|
228
|
-
|
|
314
|
+
const candidate = identifyCandidate(conjuncts[i]);
|
|
315
|
+
if (!candidate)
|
|
316
|
+
continue;
|
|
317
|
+
// Decorrelating EXISTS/IN into a semi/anti join changes how many times the
|
|
318
|
+
// inner subquery's subtree executes (per outer row → once per matching outer
|
|
319
|
+
// row in the semi-join driver). Refuse on impure inners so DML-bearing
|
|
320
|
+
// subqueries keep their declared per-row firing.
|
|
321
|
+
const innerRoot = candidate.subqueryNode instanceof ExistsNode
|
|
322
|
+
? candidate.subqueryNode.subquery
|
|
323
|
+
: candidate.subqueryNode.source;
|
|
324
|
+
if (innerRoot && PlanNodeCharacteristics.subtreeHasSideEffects(innerRoot)) {
|
|
325
|
+
log('Decorrelation skipped: inner subquery has side effects');
|
|
326
|
+
continue;
|
|
229
327
|
}
|
|
328
|
+
log('Found %s decorrelation candidate in filter predicate', candidate.joinType);
|
|
329
|
+
// Extract the join right side and condition based on the candidate arm
|
|
330
|
+
let joinRight;
|
|
331
|
+
let joinCondition;
|
|
332
|
+
if (candidate.uncorrelatedIn) {
|
|
333
|
+
const rewrite = extractUncorrelatedIn(candidate.subqueryNode, outerAttrIds);
|
|
334
|
+
if (!rewrite) {
|
|
335
|
+
log('Uncorrelated IN gates declined; conjunct keeps the set-probe path');
|
|
336
|
+
continue;
|
|
337
|
+
}
|
|
338
|
+
joinRight = rewrite.right;
|
|
339
|
+
joinCondition = rewrite.condition;
|
|
340
|
+
}
|
|
341
|
+
else {
|
|
342
|
+
const extraction = candidate.subqueryNode instanceof ExistsNode
|
|
343
|
+
? extractExistsCorrelation(candidate.subqueryNode.subquery, outerAttrIds)
|
|
344
|
+
: extractInCorrelation(candidate.subqueryNode, outerAttrIds);
|
|
345
|
+
if (!extraction) {
|
|
346
|
+
log('Could not extract simple equi-correlation; skipping conjunct');
|
|
347
|
+
continue;
|
|
348
|
+
}
|
|
349
|
+
// If there are residual inner-only predicates, wrap the inner in a FilterNode
|
|
350
|
+
joinRight = extraction.residualInnerFilter
|
|
351
|
+
? new FilterNode(extraction.innerSource.scope, extraction.innerSource, extraction.residualInnerFilter)
|
|
352
|
+
: extraction.innerSource;
|
|
353
|
+
joinCondition = extraction.correlationCondition;
|
|
354
|
+
}
|
|
355
|
+
// Build the semi/anti join
|
|
356
|
+
const joinNode = new JoinNode(outerSource.scope, outerSource, joinRight, candidate.joinType, joinCondition);
|
|
357
|
+
log('Decorrelated %s subquery into %s JOIN', candidate.subqueryNode.nodeType, candidate.joinType.toUpperCase());
|
|
358
|
+
// If there are remaining conjuncts in the original filter, wrap in a new FilterNode
|
|
359
|
+
const remainingConjuncts = conjuncts.filter((_, j) => j !== i);
|
|
360
|
+
if (remainingConjuncts.length > 0) {
|
|
361
|
+
const residualPredicate = combineConjuncts(remainingConjuncts);
|
|
362
|
+
return new FilterNode(node.scope, joinNode, residualPredicate);
|
|
363
|
+
}
|
|
364
|
+
return joinNode;
|
|
230
365
|
}
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
// row in the semi-join driver). Refuse on impure inners so DML-bearing
|
|
236
|
-
// subqueries keep their declared per-row firing.
|
|
237
|
-
const innerRoot = candidate.subqueryNode instanceof ExistsNode
|
|
238
|
-
? candidate.subqueryNode.subquery
|
|
239
|
-
: candidate.subqueryNode.source;
|
|
240
|
-
if (innerRoot && PlanNodeCharacteristics.subtreeHasSideEffects(innerRoot)) {
|
|
241
|
-
log('Decorrelation skipped: inner subquery has side effects');
|
|
242
|
-
return null;
|
|
243
|
-
}
|
|
244
|
-
log('Found %s decorrelation candidate in filter predicate', candidate.joinType);
|
|
245
|
-
// Extract correlation info based on subquery type
|
|
246
|
-
let extraction = null;
|
|
247
|
-
if (candidate.subqueryNode instanceof ExistsNode) {
|
|
248
|
-
extraction = extractExistsCorrelation(candidate.subqueryNode.subquery, outerAttrIds);
|
|
249
|
-
}
|
|
250
|
-
else if (candidate.subqueryNode instanceof InNode) {
|
|
251
|
-
extraction = extractInCorrelation(candidate.subqueryNode, outerAttrIds);
|
|
252
|
-
}
|
|
253
|
-
if (!extraction) {
|
|
254
|
-
log('Could not extract simple equi-correlation; skipping decorrelation');
|
|
366
|
+
return null;
|
|
367
|
+
}
|
|
368
|
+
export function ruleSubqueryDecorrelation(node, _context) {
|
|
369
|
+
if (!(node instanceof FilterNode))
|
|
255
370
|
return null;
|
|
371
|
+
// The engine never re-offers a rule its own output (see pass.ts), so loop
|
|
372
|
+
// internally: each iteration decorrelates ONE conjunct, and a residual
|
|
373
|
+
// FilterNode output feeds the next iteration. Two IN conjuncts in one WHERE
|
|
374
|
+
// thus become two stacked semi joins (the second joins against the first as
|
|
375
|
+
// its outer). Terminates: every successful iteration removes one conjunct.
|
|
376
|
+
let result = null;
|
|
377
|
+
let current = node;
|
|
378
|
+
for (;;) {
|
|
379
|
+
const rewritten = decorrelateOneConjunct(current);
|
|
380
|
+
if (!rewritten)
|
|
381
|
+
break;
|
|
382
|
+
result = rewritten;
|
|
383
|
+
if (!(rewritten instanceof FilterNode))
|
|
384
|
+
break;
|
|
385
|
+
current = rewritten;
|
|
256
386
|
}
|
|
257
|
-
|
|
258
|
-
// Build the inner side: if there are residual inner-only predicates, wrap in FilterNode
|
|
259
|
-
let joinRight = innerSource;
|
|
260
|
-
if (residualInnerFilter) {
|
|
261
|
-
joinRight = new FilterNode(innerSource.scope, innerSource, residualInnerFilter);
|
|
262
|
-
}
|
|
263
|
-
// Build the semi/anti join
|
|
264
|
-
const joinNode = new JoinNode(outerSource.scope, outerSource, joinRight, candidate.joinType, correlationCondition);
|
|
265
|
-
log('Decorrelated %s subquery into %s JOIN', candidate.subqueryNode.nodeType, candidate.joinType.toUpperCase());
|
|
266
|
-
// If there are remaining conjuncts in the original filter, wrap in a new FilterNode
|
|
267
|
-
const remainingConjuncts = conjuncts.filter((_, i) => i !== candidateIndex);
|
|
268
|
-
if (remainingConjuncts.length > 0) {
|
|
269
|
-
const residualPredicate = combineConjuncts(remainingConjuncts);
|
|
270
|
-
return new FilterNode(node.scope, joinNode, residualPredicate);
|
|
271
|
-
}
|
|
272
|
-
return joinNode;
|
|
387
|
+
return result;
|
|
273
388
|
}
|
|
274
389
|
/* ────────────────────────────────────────────────────────────────────────────
|
|
275
390
|
* SELECT-list EXISTS / IN decorrelation (existence-flag left join)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rule-subquery-decorrelation.js","sourceRoot":"","sources":["../../../../../src/planner/rules/subquery/rule-subquery-decorrelation.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"rule-subquery-decorrelation.js","sourceRoot":"","sources":["../../../../../src/planner/rules/subquery/rule-subquery-decorrelation.ts"],"names":[],"mappings":"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"}
|