@quereus/quereus 4.17.0 → 4.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.
Files changed (88) hide show
  1. package/dist/src/core/database.d.ts.map +1 -1
  2. package/dist/src/core/database.js +18 -10
  3. package/dist/src/core/database.js.map +1 -1
  4. package/dist/src/func/builtins/schema.d.ts.map +1 -1
  5. package/dist/src/func/builtins/schema.js +39 -64
  6. package/dist/src/func/builtins/schema.js.map +1 -1
  7. package/dist/src/planner/analysis/constraint-extractor.d.ts +9 -1
  8. package/dist/src/planner/analysis/constraint-extractor.d.ts.map +1 -1
  9. package/dist/src/planner/analysis/constraint-extractor.js +55 -26
  10. package/dist/src/planner/analysis/constraint-extractor.js.map +1 -1
  11. package/dist/src/planner/building/default-scope.d.ts +11 -1
  12. package/dist/src/planner/building/default-scope.d.ts.map +1 -1
  13. package/dist/src/planner/building/default-scope.js +13 -2
  14. package/dist/src/planner/building/default-scope.js.map +1 -1
  15. package/dist/src/planner/building/insert.d.ts.map +1 -1
  16. package/dist/src/planner/building/insert.js +161 -107
  17. package/dist/src/planner/building/insert.js.map +1 -1
  18. package/dist/src/planner/building/select-aggregates.d.ts +8 -0
  19. package/dist/src/planner/building/select-aggregates.d.ts.map +1 -1
  20. package/dist/src/planner/building/select-aggregates.js +30 -25
  21. package/dist/src/planner/building/select-aggregates.js.map +1 -1
  22. package/dist/src/planner/building/select.d.ts.map +1 -1
  23. package/dist/src/planner/building/select.js +15 -18
  24. package/dist/src/planner/building/select.js.map +1 -1
  25. package/dist/src/planner/cost/index.d.ts +14 -0
  26. package/dist/src/planner/cost/index.d.ts.map +1 -1
  27. package/dist/src/planner/cost/index.js +14 -0
  28. package/dist/src/planner/cost/index.js.map +1 -1
  29. package/dist/src/planner/nodes/plan-node-type.d.ts +1 -0
  30. package/dist/src/planner/nodes/plan-node-type.d.ts.map +1 -1
  31. package/dist/src/planner/nodes/plan-node-type.js +1 -0
  32. package/dist/src/planner/nodes/plan-node-type.js.map +1 -1
  33. package/dist/src/planner/nodes/scalar.d.ts +39 -0
  34. package/dist/src/planner/nodes/scalar.d.ts.map +1 -1
  35. package/dist/src/planner/nodes/scalar.js +77 -0
  36. package/dist/src/planner/nodes/scalar.js.map +1 -1
  37. package/dist/src/planner/nodes/table-access-nodes.d.ts +21 -0
  38. package/dist/src/planner/nodes/table-access-nodes.d.ts.map +1 -1
  39. package/dist/src/planner/nodes/table-access-nodes.js +38 -0
  40. package/dist/src/planner/nodes/table-access-nodes.js.map +1 -1
  41. package/dist/src/planner/optimizer.d.ts.map +1 -1
  42. package/dist/src/planner/optimizer.js +25 -0
  43. package/dist/src/planner/optimizer.js.map +1 -1
  44. package/dist/src/planner/rules/access/rule-select-access-path.d.ts.map +1 -1
  45. package/dist/src/planner/rules/access/rule-select-access-path.js +17 -9
  46. package/dist/src/planner/rules/access/rule-select-access-path.js.map +1 -1
  47. package/dist/src/planner/rules/join/rule-quickpick-enumeration.d.ts.map +1 -1
  48. package/dist/src/planner/rules/join/rule-quickpick-enumeration.js +24 -4
  49. package/dist/src/planner/rules/join/rule-quickpick-enumeration.js.map +1 -1
  50. package/dist/src/planner/rules/join/rule-semi-join-pushdown.d.ts +107 -0
  51. package/dist/src/planner/rules/join/rule-semi-join-pushdown.d.ts.map +1 -0
  52. package/dist/src/planner/rules/join/rule-semi-join-pushdown.js +214 -0
  53. package/dist/src/planner/rules/join/rule-semi-join-pushdown.js.map +1 -0
  54. package/dist/src/planner/util/column-refs.d.ts +17 -0
  55. package/dist/src/planner/util/column-refs.d.ts.map +1 -0
  56. package/dist/src/planner/util/column-refs.js +30 -0
  57. package/dist/src/planner/util/column-refs.js.map +1 -0
  58. package/dist/src/runtime/emit/alter-table.d.ts +25 -5
  59. package/dist/src/runtime/emit/alter-table.d.ts.map +1 -1
  60. package/dist/src/runtime/emit/alter-table.js +144 -62
  61. package/dist/src/runtime/emit/alter-table.js.map +1 -1
  62. package/dist/src/runtime/emit/dml-executor.d.ts.map +1 -1
  63. package/dist/src/runtime/emit/dml-executor.js +4 -6
  64. package/dist/src/runtime/emit/dml-executor.js.map +1 -1
  65. package/dist/src/runtime/emit/insert.d.ts.map +1 -1
  66. package/dist/src/runtime/emit/insert.js +7 -0
  67. package/dist/src/runtime/emit/insert.js.map +1 -1
  68. package/dist/src/runtime/emit/update.d.ts.map +1 -1
  69. package/dist/src/runtime/emit/update.js +15 -10
  70. package/dist/src/runtime/emit/update.js.map +1 -1
  71. package/dist/src/runtime/emit/write-coercion.d.ts +7 -0
  72. package/dist/src/runtime/emit/write-coercion.d.ts.map +1 -0
  73. package/dist/src/runtime/emit/write-coercion.js +20 -0
  74. package/dist/src/runtime/emit/write-coercion.js.map +1 -0
  75. package/dist/src/runtime/register.d.ts.map +1 -1
  76. package/dist/src/runtime/register.js +2 -0
  77. package/dist/src/runtime/register.js.map +1 -1
  78. package/dist/src/runtime/scalar-fusion.d.ts.map +1 -1
  79. package/dist/src/runtime/scalar-fusion.js +4 -0
  80. package/dist/src/runtime/scalar-fusion.js.map +1 -1
  81. package/dist/src/schema/catalog.d.ts +99 -2
  82. package/dist/src/schema/catalog.d.ts.map +1 -1
  83. package/dist/src/schema/catalog.js +100 -26
  84. package/dist/src/schema/catalog.js.map +1 -1
  85. package/dist/src/schema/manager.d.ts.map +1 -1
  86. package/dist/src/schema/manager.js +10 -0
  87. package/dist/src/schema/manager.js.map +1 -1
  88. package/package.json +3 -3
@@ -484,7 +484,7 @@ function selectPhysicalNodeFromPlan(tableRef, accessPlan, constraints, filterInf
484
484
  }));
485
485
  const fi = makeIndexFilterInfo(filterInfo, tableRef.tableSchema, accessPlan, idxStrName, 'multiSeek', inConstraints, new Map([['inCount', String(seekKeys.length)]]));
486
486
  log('Using index multi-seek on %s (IN with %d values)', physicalIndexName, seekKeys.length);
487
- return finishSeek(new IndexSeekNode(tableRef.scope, tableRef, fi, physicalIndexName, seekKeys, false, providesOrdering, accessPlan.cost, advertisement));
487
+ return finishSeek(makeIndexSeek(tableRef, fi, physicalIndexName, seekKeys, false, providesOrdering, accessPlan.cost, advertisement));
488
488
  }
489
489
  if (hasMultiValueIn && seekCols.length > 1) {
490
490
  // Composite IN multi-seek: generate cross-product of all column values
@@ -535,7 +535,7 @@ function selectPhysicalNodeFromPlan(tableRef, accessPlan, constraints, filterInf
535
535
  }));
536
536
  const fi = makeIndexFilterInfo(filterInfo, tableRef.tableSchema, accessPlan, idxStrName, 'multiSeek', seekConstraints, new Map([['inCount', String(effectiveTuples.length)], ['seekWidth', String(seekWidth)]]));
537
537
  log('Using composite index multi-seek on %s (cross-product of %d distinct non-null seeks, width %d)', physicalIndexName, effectiveTuples.length, seekWidth);
538
- return finishSeek(new IndexSeekNode(tableRef.scope, tableRef, fi, physicalIndexName, seekKeys, false, providesOrdering, accessPlan.cost, advertisement));
538
+ return finishSeek(makeIndexSeek(tableRef, fi, physicalIndexName, seekKeys, false, providesOrdering, accessPlan.cost, advertisement));
539
539
  }
540
540
  // Dynamic/mixed composite: keep the raw cross-product over value indices and
541
541
  // let the runtime perform set-membership at execution time.
@@ -555,7 +555,7 @@ function selectPhysicalNodeFromPlan(tableRef, accessPlan, constraints, filterInf
555
555
  }));
556
556
  const fi = makeIndexFilterInfo(filterInfo, tableRef.tableSchema, accessPlan, idxStrName, 'multiSeek', seekConstraints, new Map([['inCount', String(crossProduct.length)], ['seekWidth', String(seekWidth)]]));
557
557
  log('Using composite index multi-seek on %s (cross-product of %d seeks, width %d)', physicalIndexName, crossProduct.length, seekWidth);
558
- return finishSeek(new IndexSeekNode(tableRef.scope, tableRef, fi, physicalIndexName, seekKeys, false, providesOrdering, accessPlan.cost, advertisement));
558
+ return finishSeek(makeIndexSeek(tableRef, fi, physicalIndexName, seekKeys, false, providesOrdering, accessPlan.cost, advertisement));
559
559
  }
560
560
  // A literal NULL in any seek column makes the (row-value) equality UNKNOWN ⇒
561
561
  // no row can match. Emit an empty result rather than a doomed point-seek so
@@ -573,7 +573,7 @@ function selectPhysicalNodeFromPlan(tableRef, accessPlan, constraints, filterInf
573
573
  }));
574
574
  const fi = makeIndexFilterInfo(filterInfo, tableRef.tableSchema, accessPlan, idxStrName, 'eqSeek', eqConstraints);
575
575
  log('Using index seek on %s (equality)', physicalIndexName);
576
- return finishSeek(new IndexSeekNode(tableRef.scope, tableRef, fi, physicalIndexName, seekKeys, false, providesOrdering, accessPlan.cost, advertisement));
576
+ return finishSeek(makeIndexSeek(tableRef, fi, physicalIndexName, seekKeys, false, providesOrdering, accessPlan.cost, advertisement));
577
577
  }
578
578
  // Check for prefix-equality + trailing-range pattern
579
579
  if (!allEquality && seekCols.length > 1) {
@@ -650,7 +650,7 @@ function selectPhysicalNodeFromPlan(tableRef, accessPlan, constraints, filterInf
650
650
  }
651
651
  const fi = makeIndexFilterInfo(filterInfo, tableRef.tableSchema, accessPlan, idxStrName, 'prefixRangeSeek', allConstraints, new Map([['prefixLen', String(prefixEqCols.length)]]));
652
652
  log('Using index prefix-range seek on %s (prefix=%d cols)', physicalIndexName, prefixEqCols.length);
653
- return new IndexSeekNode(tableRef.scope, tableRef, fi, physicalIndexName, seekKeys, true, providesOrdering, accessPlan.cost, advertisement);
653
+ return makeIndexSeek(tableRef, fi, physicalIndexName, seekKeys, true, providesOrdering, accessPlan.cost, advertisement);
654
654
  }
655
655
  }
656
656
  // Check for range constraints on the LEADING seek column only. A standalone range
@@ -707,7 +707,7 @@ function selectPhysicalNodeFromPlan(tableRef, accessPlan, constraints, filterInf
707
707
  }
708
708
  const fi = makeIndexFilterInfo(filterInfo, tableRef.tableSchema, accessPlan, idxStrName, 'rangeSeek', rangeConstraints);
709
709
  log('Using index seek (range) on %s', physicalIndexName);
710
- return new IndexSeekNode(tableRef.scope, tableRef, fi, physicalIndexName, seekKeys, true, providesOrdering, accessPlan.cost, advertisement);
710
+ return makeIndexSeek(tableRef, fi, physicalIndexName, seekKeys, true, providesOrdering, accessPlan.cost, advertisement);
711
711
  }
712
712
  // Check for OR_RANGE constraint on a seek column
713
713
  const orRangeConstraint = constraints.find(c => c.op === 'OR_RANGE' && c.ranges && c.ranges.length > 0 &&
@@ -755,7 +755,7 @@ function selectPhysicalNodeFromPlan(tableRef, accessPlan, constraints, filterInf
755
755
  }));
756
756
  const fi = makeIndexFilterInfo(filterInfo, tableRef.tableSchema, accessPlan, idxStrName, 'multiRangeSeek', orRangeConstraints, new Map([['rangeCount', String(ranges.length)], ['rangeOps', rangeOps.join(',')]]));
757
757
  log('Using index multi-range seek on %s (%d ranges)', physicalIndexName, ranges.length);
758
- return new IndexSeekNode(tableRef.scope, tableRef, fi, physicalIndexName, seekKeys, true, providesOrdering, accessPlan.cost, advertisement);
758
+ return makeIndexSeek(tableRef, fi, physicalIndexName, seekKeys, true, providesOrdering, accessPlan.cost, advertisement);
759
759
  }
760
760
  // Ordering-only index scan
761
761
  if (providesOrdering) {
@@ -829,7 +829,7 @@ function selectPhysicalNodeLegacy(tableRef, accessPlan, constraints, filterInfo,
829
829
  }));
830
830
  const fi = makeIndexFilterInfo(filterInfo, tableRef.tableSchema, accessPlan, PRIMARY_INDEX_NAME, 'eqSeek', eqConstraints);
831
831
  log('Using index seek on primary key (legacy)');
832
- const pkSeek = new IndexSeekNode(tableRef.scope, tableRef, fi, 'primary', seekKeys, false, providesOrdering, accessPlan.cost, advertisement);
832
+ const pkSeek = makeIndexSeek(tableRef, fi, 'primary', seekKeys, false, providesOrdering, accessPlan.cost, advertisement);
833
833
  return cover.residual ? new FilterNode(tableRef.scope, pkSeek, cover.residual) : pkSeek;
834
834
  }
835
835
  const rangeCols = constraints
@@ -881,7 +881,7 @@ function selectPhysicalNodeLegacy(tableRef, accessPlan, constraints, filterInfo,
881
881
  }
882
882
  const fi = makeIndexFilterInfo(filterInfo, tableRef.tableSchema, accessPlan, PRIMARY_INDEX_NAME, 'rangeSeek', rangeConstraints);
883
883
  log('Using index seek (range) on primary key (legacy)');
884
- return new IndexSeekNode(tableRef.scope, tableRef, fi, 'primary', seekKeys, true, providesOrdering, accessPlan.cost, advertisement);
884
+ return makeIndexSeek(tableRef, fi, 'primary', seekKeys, true, providesOrdering, accessPlan.cost, advertisement);
885
885
  }
886
886
  if (providesOrdering) {
887
887
  const indexName = accessPlan.orderingIndexName ?? PRIMARY_PHYSICAL_INDEX_NAME;
@@ -972,6 +972,14 @@ function equalitySeekKey(scope, c, columnType) {
972
972
  : c.value;
973
973
  return literalFromValue(scope, val, columnType);
974
974
  }
975
+ /**
976
+ * Build an {@link IndexSeekNode} for `tableRef`, deriving the scope every call
977
+ * site passed identically. The seek-key row-context invariant (OPT-061) is
978
+ * enforced by the node's own constructor.
979
+ */
980
+ function makeIndexSeek(tableRef, filterInfo, indexName, seekKeys, isRange, providesOrdering, cost, advertisement) {
981
+ return new IndexSeekNode(tableRef.scope, tableRef, filterInfo, indexName, seekKeys, isRange, providesOrdering, cost, advertisement);
982
+ }
975
983
  /**
976
984
  * Build the canonical empty-relation leaf used when a predicate is provably
977
985
  * unsatisfiable (e.g. an IN-list whose literals are all NULL — every seek key
@@ -1 +1 @@
1
- {"version":3,"file":"rule-select-access-path.js","sourceRoot":"","sources":["../../../../../src/planner/rules/access/rule-select-access-path.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rule-select-access-path.js","sourceRoot":"","sources":["../../../../../src/planner/rules/access/rule-select-access-path.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"rule-quickpick-enumeration.d.ts","sourceRoot":"","sources":["../../../../../src/planner/rules/join/rule-quickpick-enumeration.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAsC,MAAM,0BAA0B,CAAC;AAE7F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AA+M7D,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,GAAG,QAAQ,GAAG,IAAI,CAsFjG"}
1
+ {"version":3,"file":"rule-quickpick-enumeration.d.ts","sourceRoot":"","sources":["../../../../../src/planner/rules/join/rule-quickpick-enumeration.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAsC,MAAM,0BAA0B,CAAC;AAE7F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAkO7D,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,GAAG,QAAQ,GAAG,IAAI,CAsFjG"}
@@ -26,15 +26,35 @@ function extractJoinGraph(node) {
26
26
  pairToConds.set(key, []);
27
27
  pairToConds.get(key).push(cond);
28
28
  }
29
+ // Enumeration covers INNER/CROSS spines only. A non-inner join anywhere in the
30
+ // subtree abandons the whole graph — it must be a latched flag, NOT a sentinel
31
+ // written into `relations`: the recursion continues in the ancestor frames after
32
+ // a bail, so an emptied `relations` is refilled by the still-unvisited siblings
33
+ // and a PARTIAL graph then looks like a complete one. That silently reordered a
34
+ // join over the surviving relations and dropped the bailed subtree along with
35
+ // every predicate touching it (wrong rows, or "No row context found for column").
36
+ //
37
+ // NOTE: bailing is stricter than necessary — a non-inner join could instead be
38
+ // registered as ONE opaque leaf relation (its attributes are all this walk needs)
39
+ // and the surviving spine still enumerated. That matters because
40
+ // `rule-semi-join-pushdown` now routinely parks a semi join at the bottom of an
41
+ // inner spine, so `a join b join c where a.x in (select …)` loses enumeration it
42
+ // used to get. Revisit if a 3+-relation join under an `IN (SELECT …)` filter shows
43
+ // up with a bad join order; the opaque-leaf variant needs its own correlation
44
+ // guard first (a LATERAL leaf must not be reordered below its provider).
45
+ let bailed = false;
29
46
  function visit(n) {
47
+ if (bailed)
48
+ return;
30
49
  if (n instanceof JoinNode) {
31
- // Only enumerate INNER/CROSS joins; bail if OUTER join encountered
32
50
  if (n.getJoinType() !== 'inner' && n.getJoinType() !== 'cross') {
33
- relations.length = 0; // mark failure
51
+ bailed = true;
34
52
  return;
35
53
  }
36
54
  visit(n.getLeftSource());
37
55
  visit(n.getRightSource());
56
+ if (bailed)
57
+ return;
38
58
  // Analyze equi-join predicates
39
59
  const cond = n.getJoinCondition();
40
60
  if (cond) {
@@ -67,8 +87,8 @@ function extractJoinGraph(node) {
67
87
  visit(c);
68
88
  }
69
89
  visit(node);
70
- if (relations.length === 0)
71
- return null; // failure or non-join
90
+ if (bailed || relations.length === 0)
91
+ return null; // non-inner join encountered, or non-join
72
92
  // Build predicates array (AND-combine multiple per pair later during plan build)
73
93
  const predicates = [];
74
94
  for (const [key, conds] of pairToConds) {
@@ -1 +1 @@
1
- {"version":3,"file":"rule-quickpick-enumeration.js","sourceRoot":"","sources":["../../../../../src/planner/rules/join/rule-quickpick-enumeration.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rule-quickpick-enumeration.js","sourceRoot":"","sources":["../../../../../src/planner/rules/join/rule-quickpick-enumeration.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,107 @@
1
+ /**
2
+ * Rule: Semi-Join Pushdown — reassociate a semi join below an inner/cross join
3
+ *
4
+ * A semi join is an existential *filter* on its left input: it emits the left
5
+ * rows for which the key source holds a match, and publishes the left input's
6
+ * attributes verbatim. When its condition reads columns from only ONE side of an
7
+ * inner/cross join underneath it, the filter can be applied to that side first:
8
+ *
9
+ * Join(semi, Join(inner|cross, L, R), K, cond) cond reads L (and K) only
10
+ * → Join(inner|cross, Join(semi, L, K, cond), R)
11
+ *
12
+ * Join(semi, Join(inner|cross, L, R), K, cond) cond reads R (and K) only
13
+ * → Join(inner|cross, L, Join(semi, R, K, cond))
14
+ *
15
+ * This is the same argument `rules/predicate/rule-join-predicate-pushdown.ts`
16
+ * makes for scalar conjuncts — see its header's null-extension table. Neither
17
+ * side of an `inner` / `cross` join is ever null-extended, so every output row
18
+ * carries that side's genuine input values, and filtering the side before the
19
+ * join removes exactly the output rows filtering after it would have.
20
+ *
21
+ * Soundness, stated for the semi case: `semi(X, K, p) = { x ∈ X : ∃k ∈ K. p(x, k) }`.
22
+ * When `p` reads only the `L` part of `x`, the test is per-`L`-row and
23
+ * deterministic, so it commutes with the join — whether the join drops `L` rows
24
+ * or fans them out, filtering before removes precisely the output rows filtering
25
+ * after would have.
26
+ *
27
+ * Output attributes are unchanged in identity AND order. A semi join publishes
28
+ * its left input's attributes verbatim, so both the original and the rewritten
29
+ * shape yield `L.attrs ++ R.attrs`; every `ColumnReferenceNode` above the join
30
+ * resolves to the same attribute id it did before.
31
+ *
32
+ * WHY: `rules/access/rule-key-set-seek.ts` — which turns a semi join into
33
+ * "materialize the key set once, then seek the target index per key" — only
34
+ * fires when the filtered side peels down to a bare access leaf. A compound
35
+ * query (`… from entry e join txn t on t.id = e.txn_id where e.txn_id in
36
+ * (select …)`) puts a join there instead, so that rule declines and `entry` is
37
+ * read end-to-end. After this reassociation the filtered side is a bare leaf
38
+ * again and the existing rule fires unchanged — no new peel through `JoinNode`
39
+ * is needed (walking a join in the peel would be unsound; this rule is the
40
+ * sound way to reach the same plan).
41
+ *
42
+ * Deeper nesting works without extra machinery: the rewrite's new semi join is a
43
+ * child of the returned node, so the top-down descent visits it and
44
+ * `Join(semi, Join(inner, Join(inner, A, B), C), K)` pushes down twice.
45
+ *
46
+ * Admission gates (all must hold):
47
+ * - Anchor is a semi `JoinNode` with a condition and no `exists … as` flags.
48
+ * - `node.left` is an `inner` or `cross` `JoinNode`.
49
+ * - The key source is uncorrelated, deterministic and write-free — the same
50
+ * admission test `rule-key-set-seek`'s `admitJoin` applies, and for the same
51
+ * reason: re-rooting the semi join must not change how the source is drained.
52
+ * - The condition is functional (deterministic + read-only): the reassociation
53
+ * changes how many rows it is evaluated against.
54
+ * - Neither inner-join branch is correlated. A LATERAL right side reads the left
55
+ * side, and re-rooting either branch under a semi join must not disturb that.
56
+ * - Neither inner-join branch carries a write.
57
+ * - Every attribute id the condition needs (`collectPredicateAttributeIds`,
58
+ * which also accounts for correlated references inside a sub-query operand) is
59
+ * either a key-source attribute or an attribute of EXACTLY ONE inner-join
60
+ * branch. An id in neither branch (an outer reference, an `exists … as` flag)
61
+ * declines; ids spanning both branches decline; ids touching neither branch
62
+ * decline because there is nothing to gain.
63
+ *
64
+ * `inner.condition` / `inner.usingColumns` / `inner.existence` carry over
65
+ * verbatim to the rebuilt inner join, and `node.condition` / `node.usingColumns`
66
+ * to the pushed semi join — both rebuilds go through `withChildren`, which
67
+ * threads those fields. Existence flags on an INNER join are unreachable today
68
+ * (the parser only accepts `exists … as` on `left join`), and the attribute-id
69
+ * gate above already declines any condition that reads a flag, so no redundant
70
+ * guard is added for them.
71
+ *
72
+ * NOT IN SCOPE — deliberately:
73
+ * - NOTE: `anti` joins are declined by design, not by accident.
74
+ * `anti(L ⋈ R, K) = anti(L, K) ⋈ R` when the condition reads only `L`,
75
+ * exactly as above (the test is still per-`L`-row and deterministic), but
76
+ * `rule-key-set-seek` admits `semi` only, so there is nothing downstream to
77
+ * gain. Revisit if that rule ever admits `anti`.
78
+ * - NOTE: a LEFT join on the probe side with the semi condition reading the
79
+ * PRESERVED (left) side is also sound — `σ(L ⟕ R) = σ(L) ⟕ R` when `σ` reads
80
+ * only `L` — and is left out only to keep the first pass to the shape in the
81
+ * repro. Revisit if a compound outer-join shape shows up wanting the seek.
82
+ * The MIRROR case is NOT sound and must stay declined permanently: a
83
+ * condition reading the NULL-EXTENDED side (the right side of a `left join`)
84
+ * does not commute, because filtering `R` before the join re-pads the left row
85
+ * with NULLs instead of dropping it.
86
+ * `backlog/feat-outer-join-to-inner-on-null-rejecting-filter`, if it lands,
87
+ * converts some outer joins to inner ones and this rule then covers them.
88
+ * - NOTE: the anchor's left input must be the `JoinNode` ITSELF — no wrapper is
89
+ * peeled. `select … from (select … from a join b …) x where x.k in (select …)`
90
+ * and a residual `Filter` that survived predicate pushdown (one spanning both
91
+ * branches, e.g. `… and e.amount > t.id`) both leave a node in between and
92
+ * decline. Revisit if a wrapped compound shape shows up wanting the seek; the
93
+ * peel would have to re-wrap whatever it walked through, which is why the
94
+ * first pass does not attempt it.
95
+ *
96
+ * NOTE: pushing leaves a semi join as a LEAF of the enclosing inner spine, and
97
+ * `rule-quickpick-enumeration` abandons any join graph containing a non-inner
98
+ * join — so a 3+-relation join under an `IN (SELECT …)` filter now gets no join
99
+ * enumeration where it used to. Seek beats enumeration on the shapes this rule
100
+ * targets; revisit (by teaching QuickPick to admit a non-inner join as one opaque
101
+ * leaf) if such a query shows up with a bad join order. See the matching `NOTE:`
102
+ * in `rule-quickpick-enumeration.ts`.
103
+ */
104
+ import type { PlanNode } from '../../nodes/plan-node.js';
105
+ import type { OptContext } from '../../framework/context.js';
106
+ export declare function ruleSemiJoinPushdown(node: PlanNode, _context: OptContext): PlanNode | null;
107
+ //# sourceMappingURL=rule-semi-join-pushdown.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rule-semi-join-pushdown.d.ts","sourceRoot":"","sources":["../../../../../src/planner/rules/join/rule-semi-join-pushdown.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsGG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAsC,MAAM,0BAA0B,CAAC;AAC7F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAyC7D,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,GAAG,QAAQ,GAAG,IAAI,CA4E1F"}