@quereus/quereus 4.17.0 → 4.17.1

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.
@@ -106,6 +106,20 @@ export declare function nestedLoopJoinCost(outerRows: number, innerRows: number)
106
106
  * rule-key-set-seek's break-even). `perSeekLatencyMs` is the inner subtree's
107
107
  * `physical.expectedLatencyMs` (0 for every in-process vtab), treated as
108
108
  * ms-equivalent cost — the same convention as `tuning.parallel.branchSetupCost`.
109
+ *
110
+ * NOTE: the field's two consumers read it on incompatible scales, and this one is the
111
+ * ratio side. The `tuning.parallel.*ThresholdMs` gates (all 25 today) read
112
+ * `expectedLatencyMs` as literal wall-clock milliseconds; this formula adds it to cost
113
+ * constants whose unit is `SEQ_SCAN_PER_ROW = 1.0`, i.e. ONE SCANNED ROW. The two readings
114
+ * agree only where a scanned row costs about 1 ms — true of the network-latency backends
115
+ * this machinery was designed for (25-100 ms, where latency swamps engine cost and the
116
+ * ratio stops mattering), and off by roughly two orders of magnitude for a sub-millisecond
117
+ * backend, whose honest declaration is worth tens of cost units on this scale and a
118
+ * fraction of one on the gates' scale. Inert today: every gate sits at 25 ms and no in-tree
119
+ * module declares a sub-millisecond value (the IndexedDB and LevelDB providers both decline
120
+ * to, with their reasons recorded at their `costProfile` sites). Revisit if either changes —
121
+ * and do NOT resolve it by inflating a declaration to the ratio value, which would lie to
122
+ * the wall-clock gates.
109
123
  */
110
124
  export declare function indexNestedLoopJoinCost(outerRows: number, rowsPerSeek: number, perSeekLatencyMs?: number): number;
111
125
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/planner/cost/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/planner/cost/index.ts"],"names":[],"mappings":"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"}
@@ -134,6 +134,20 @@ export function nestedLoopJoinCost(outerRows, innerRows) {
134
134
  * rule-key-set-seek's break-even). `perSeekLatencyMs` is the inner subtree's
135
135
  * `physical.expectedLatencyMs` (0 for every in-process vtab), treated as
136
136
  * ms-equivalent cost — the same convention as `tuning.parallel.branchSetupCost`.
137
+ *
138
+ * NOTE: the field's two consumers read it on incompatible scales, and this one is the
139
+ * ratio side. The `tuning.parallel.*ThresholdMs` gates (all 25 today) read
140
+ * `expectedLatencyMs` as literal wall-clock milliseconds; this formula adds it to cost
141
+ * constants whose unit is `SEQ_SCAN_PER_ROW = 1.0`, i.e. ONE SCANNED ROW. The two readings
142
+ * agree only where a scanned row costs about 1 ms — true of the network-latency backends
143
+ * this machinery was designed for (25-100 ms, where latency swamps engine cost and the
144
+ * ratio stops mattering), and off by roughly two orders of magnitude for a sub-millisecond
145
+ * backend, whose honest declaration is worth tens of cost units on this scale and a
146
+ * fraction of one on the gates' scale. Inert today: every gate sits at 25 ms and no in-tree
147
+ * module declares a sub-millisecond value (the IndexedDB and LevelDB providers both decline
148
+ * to, with their reasons recorded at their `costProfile` sites). Revisit if either changes —
149
+ * and do NOT resolve it by inflating a declaration to the ratio value, which would lie to
150
+ * the wall-clock gates.
137
151
  */
138
152
  export function indexNestedLoopJoinCost(outerRows, rowsPerSeek, perSeekLatencyMs = 0) {
139
153
  return outerRows * (COST_CONSTANTS.NL_JOIN_PER_OUTER_ROW
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/planner/cost/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/planner/cost/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"optimizer.d.ts","sourceRoot":"","sources":["../../../src/planner/optimizer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAGxE,OAAO,EAAE,cAAc,EAAE,CAAC;AAG1B,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGtD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAkEjF,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAI/C;;;;;;;;;;GAUG;AACH,MAAM,WAAW,iBAAiB;IACjC,qCAAqC;IACrC,IAAI,EAAE,MAAM,CAAC;IACb;;;;;OAKG;IACH,EAAE,EAAE,MAAM,CAAC;IACX,wEAAwE;IACxE,QAAQ,EAAE,YAAY,GAAG,YAAY,EAAE,CAAC;IACxC,KAAK,EAAE,SAAS,CAAC;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,cAAc,EAAE,cAAc,CAAC;CAC/B;AAqBD;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,aAAa,EAAE,SAAS,iBAAiB,EAooCrD,CAAC;AAEF;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,gBAAgB,CAC/B,QAAQ,EAAE,SAAS,iBAAiB,EAAE,EACtC,WAAW,EAAE,WAAW,GACtB,IAAI,CA0CN;AAED;;GAEG;AACH,qBAAa,SAAS;IACrB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAgB;IACtC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAc;IAC1C,OAAO,CAAC,eAAe,CAAqC;IACrD,MAAM,EAAE,eAAe,CAAC;gBAG9B,MAAM,GAAE,eAAgC,EACxC,KAAK,CAAC,EAAE,aAAa;IAUtB,YAAY,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI;IAI3C;;;;OAIG;IACH,OAAO,CAAC,qBAAqB;IAI7B;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,GAAG,QAAQ;IAgChD;;;;;;;;;OASG;IACH,mBAAmB,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE;QAAE,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;KAAE,GAAG,QAAQ;IAkBlH;;OAEG;IACH,QAAQ,IAAI,aAAa;IAIzB,qDAAqD;IACrD,kBAAkB,IAAI,oBAAoB,GAAG,IAAI;CAGjD"}
1
+ {"version":3,"file":"optimizer.d.ts","sourceRoot":"","sources":["../../../src/planner/optimizer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAGxE,OAAO,EAAE,cAAc,EAAE,CAAC;AAG1B,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGtD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAmEjF,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAI/C;;;;;;;;;;GAUG;AACH,MAAM,WAAW,iBAAiB;IACjC,qCAAqC;IACrC,IAAI,EAAE,MAAM,CAAC;IACb;;;;;OAKG;IACH,EAAE,EAAE,MAAM,CAAC;IACX,wEAAwE;IACxE,QAAQ,EAAE,YAAY,GAAG,YAAY,EAAE,CAAC;IACxC,KAAK,EAAE,SAAS,CAAC;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,cAAc,EAAE,cAAc,CAAC;CAC/B;AAqBD;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,aAAa,EAAE,SAAS,iBAAiB,EA6pCrD,CAAC;AAEF;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,gBAAgB,CAC/B,QAAQ,EAAE,SAAS,iBAAiB,EAAE,EACtC,WAAW,EAAE,WAAW,GACtB,IAAI,CA0CN;AAED;;GAEG;AACH,qBAAa,SAAS;IACrB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAgB;IACtC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAc;IAC1C,OAAO,CAAC,eAAe,CAAqC;IACrD,MAAM,EAAE,eAAe,CAAC;gBAG9B,MAAM,GAAE,eAAgC,EACxC,KAAK,CAAC,EAAE,aAAa;IAUtB,YAAY,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI;IAI3C;;;;OAIG;IACH,OAAO,CAAC,qBAAqB;IAI7B;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,GAAG,QAAQ;IAgChD;;;;;;;;;OASG;IACH,mBAAmB,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE;QAAE,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;KAAE,GAAG,QAAQ;IAkBlH;;OAEG;IACH,QAAQ,IAAI,aAAa;IAIzB,qDAAqD;IACrD,kBAAkB,IAAI,oBAAoB,GAAG,IAAI;CAGjD"}
@@ -48,6 +48,7 @@ import { ruleQuickPickJoinEnumeration } from './rules/join/rule-quickpick-enumer
48
48
  import { ruleJoinPhysicalSelection } from './rules/join/rule-join-physical-selection.js';
49
49
  import { ruleMonotonicMergeJoin } from './rules/join/rule-monotonic-merge-join.js';
50
50
  import { ruleLateralTop1Asof } from './rules/join/rule-lateral-top1-asof.js';
51
+ import { ruleSemiJoinPushdown } from './rules/join/rule-semi-join-pushdown.js';
51
52
  import { ruleMonotonicWindow } from './rules/window/rule-monotonic-window.js';
52
53
  // Constraint rules removed - now handled in builders for correctness
53
54
  import { ruleCteOptimization } from './rules/cache/rule-cte-optimization.js';
@@ -507,6 +508,30 @@ export const RULE_MANIFEST = [
507
508
  // executed — refuses when the inner subtree carries a write.
508
509
  sideEffectMode: 'aware',
509
510
  },
511
+ // Semi-join pushdown: reassociate `Join(semi, Join(inner|cross, L, R), K)` to
512
+ // `Join(inner|cross, Join(semi, L, K), R)` (or onto R) when the semi condition
513
+ // reads exactly one of the two branches. Registered immediately AFTER
514
+ // `subquery-decorrelation`: that rule mints the semi `JoinNode` in place of a
515
+ // `Filter`, and `applyPassRules` runs the pass's rules to a fixpoint on the
516
+ // current node, so the freshly-minted Join is offered to this rule in the same
517
+ // node visit — no extra pass or re-entry needed. Its Join-typed peers in this
518
+ // pass are the IND folders `anti-join-fk-empty` / `semi-join-fk-trivial`,
519
+ // registered further below, so a pushed-down semi join still threads into them
520
+ // (pass rules fire in REGISTRATION order). The Project-typed `join-elimination`
521
+ // / `fanout-lookup-join` above never compete for this anchor. The point of the
522
+ // rewrite is downstream: with the filtered side back to a bare access leaf,
523
+ // PostOptimization's `key-set-seek` can fire on the compound shape.
524
+ {
525
+ pass: PassId.Structural,
526
+ id: 'semi-join-pushdown',
527
+ nodeType: PlanNodeType.Join,
528
+ phase: 'rewrite',
529
+ fn: ruleSemiJoinPushdown,
530
+ // Re-roots both inner-join branches and changes how many rows the semi
531
+ // condition is evaluated against — refuses when the key source or either
532
+ // branch carries a write.
533
+ sideEffectMode: 'aware',
534
+ },
510
535
  // Filter match site for scalar-aggregate decorrelation: a correlated
511
536
  // scalar-aggregate subquery used in a WHERE (or HAVING) comparison —
512
537
  // `where o.total > (select avg(c.amount) from c where c.fk = o.k)` — is
@@ -1 +1 @@
1
- {"version":3,"file":"optimizer.js","sourceRoot":"","sources":["../../../src/planner/optimizer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"optimizer.js","sourceRoot":"","sources":["../../../src/planner/optimizer.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"}
@@ -0,0 +1,214 @@
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 { createLogger } from '../../../common/logger.js';
105
+ import { JoinNode } from '../../nodes/join-node.js';
106
+ import { PlanNodeCharacteristics } from '../../framework/characteristics.js';
107
+ import { collectPredicateAttributeIds } from '../../analysis/predicate-dependencies.js';
108
+ import { isCorrelatedSubquery } from '../../cache/correlation-detector.js';
109
+ const log = createLogger('optimizer:rule:semi-join-pushdown');
110
+ const attributeIds = (node) => new Set(node.getAttributes().map(a => a.id));
111
+ /**
112
+ * The single inner-join branch `cond` reads, or null when it spans both, escapes
113
+ * both (an outer reference or an existence flag), or reads neither.
114
+ */
115
+ function conditionSide(cond, keyIds, leftIds, rightIds) {
116
+ let needsLeft = false;
117
+ let needsRight = false;
118
+ for (const id of collectPredicateAttributeIds(cond)) {
119
+ if (keyIds.has(id))
120
+ continue;
121
+ if (leftIds.has(id)) {
122
+ needsLeft = true;
123
+ continue;
124
+ }
125
+ if (rightIds.has(id)) {
126
+ needsRight = true;
127
+ continue;
128
+ }
129
+ // An id belonging to neither branch nor the key source: an outer
130
+ // reference, or an `exists … as` flag the inner join appends. Pushing
131
+ // below either branch would strand it.
132
+ return null;
133
+ }
134
+ // Equal means either "spans both branches" (unsound to push to one) or
135
+ // "reads neither" (nothing to gain — a condition over constants alone).
136
+ if (needsLeft === needsRight)
137
+ return null;
138
+ return needsLeft ? 'left' : 'right';
139
+ }
140
+ export function ruleSemiJoinPushdown(node, _context) {
141
+ if (!(node instanceof JoinNode))
142
+ return null;
143
+ if (node.joinType !== 'semi')
144
+ return null;
145
+ if (!node.condition)
146
+ return null;
147
+ // An `exists … as` flag on the anchor would be published above it, but the
148
+ // pushed semi join publishes only its own left input's attributes.
149
+ if (node.hasExistenceColumns)
150
+ return null;
151
+ const inner = node.left;
152
+ if (!(inner instanceof JoinNode))
153
+ return null;
154
+ if (inner.joinType !== 'inner' && inner.joinType !== 'cross')
155
+ return null;
156
+ // NOTE: unconditional — no cost gate, matching `rule-join-predicate-pushdown`'s
157
+ // treatment of scalar conjuncts. At Structural time the row estimates are not
158
+ // usable anyway (most table-backed inputs report `Infinity`; see the NOTE in
159
+ // `rule-join-greedy-commute`). The one shape where pushdown does extra work is a
160
+ // strongly *filtering* inner join, where the semi join probes |L| rows instead of
161
+ // the smaller |L ⋈ R| — offset by the join then receiving a smaller left input.
162
+ // Revisit condition: if a filtering-join shape ever shows up regressed in
163
+ // `yarn bench:gate`, gate this on estimated rows.
164
+ const keySource = node.right;
165
+ // The key source is drained once by the semi join wherever it sits; a
166
+ // correlated / non-deterministic / write-bearing source must keep its
167
+ // per-execution semantics. Same admission test as `rule-key-set-seek`.
168
+ if (isCorrelatedSubquery(keySource)) {
169
+ log('decline: key source is correlated');
170
+ return null;
171
+ }
172
+ if (!PlanNodeCharacteristics.isDeterministic(keySource)) {
173
+ log('decline: key source is non-deterministic');
174
+ return null;
175
+ }
176
+ if (PlanNodeCharacteristics.subtreeHasSideEffects(keySource)) {
177
+ log('decline: key source has side effects');
178
+ return null;
179
+ }
180
+ // Both branches are re-rooted (one under the semi join, one under the rebuilt
181
+ // inner join) — refuse to touch a subtree carrying a write.
182
+ if (PlanNodeCharacteristics.subtreeHasSideEffects(inner.left)
183
+ || PlanNodeCharacteristics.subtreeHasSideEffects(inner.right)) {
184
+ log('decline: an inner-join branch has side effects');
185
+ return null;
186
+ }
187
+ // A LATERAL right side reads the left side; re-rooting either branch must not
188
+ // disturb the row context it reads from.
189
+ if (isCorrelatedSubquery(inner.left) || isCorrelatedSubquery(inner.right)) {
190
+ log('decline: an inner-join branch is correlated');
191
+ return null;
192
+ }
193
+ // The condition is evaluated against a different number of rows after the
194
+ // move, so a non-deterministic or write-bearing one must stay put.
195
+ if (!PlanNodeCharacteristics.isFunctional(node.condition)) {
196
+ log('decline: semi-join condition is not functional');
197
+ return null;
198
+ }
199
+ const side = conditionSide(node.condition, attributeIds(keySource), attributeIds(inner.left), attributeIds(inner.right));
200
+ if (side === null)
201
+ return null;
202
+ const target = side === 'left' ? inner.left : inner.right;
203
+ // `withChildren` (not `new JoinNode(...)`) so `usingColumns` / `existence`
204
+ // thread through both rebuilds.
205
+ const pushedSemi = node.withChildren([target, keySource, node.condition]);
206
+ const innerChildren = side === 'left'
207
+ ? [pushedSemi, inner.right]
208
+ : [inner.left, pushedSemi];
209
+ if (inner.condition)
210
+ innerChildren.push(inner.condition);
211
+ log('Pushed semi join below %s join onto its %s branch', inner.joinType, side);
212
+ return inner.withChildren(innerChildren);
213
+ }
214
+ //# sourceMappingURL=rule-semi-join-pushdown.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rule-semi-join-pushdown.js","sourceRoot":"","sources":["../../../../../src/planner/rules/join/rule-semi-join-pushdown.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@quereus/quereus",
3
- "version": "4.17.0",
3
+ "version": "4.17.1",
4
4
  "type": "module",
5
5
  "description": "Pure TypeScript SQL engine — no WASM, no native bindings. Runs in browsers, Node.js, React Native, edge workers, and anywhere JS runs.",
6
6
  "keywords": [
@@ -75,9 +75,9 @@
75
75
  "mutation:subsystem": "node mutation-subsystem.mjs"
76
76
  },
77
77
  "devDependencies": {
78
- "@quereus/plugin-leveldb": "^4.17.0",
78
+ "@quereus/plugin-leveldb": "^4.17.1",
79
79
  "@quereus/plugin-loader": "*",
80
- "@quereus/store": "^4.17.0",
80
+ "@quereus/store": "^4.17.1",
81
81
  "@stryker-mutator/core": "^9.6.1",
82
82
  "@stryker-mutator/mocha-runner": "^9.6.1",
83
83
  "@stryker-mutator/typescript-checker": "^9.6.1",