@quereus/quereus 4.21.1 → 4.23.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 (142) hide show
  1. package/dist/src/core/database-cardinality-feedback.d.ts +259 -0
  2. package/dist/src/core/database-cardinality-feedback.d.ts.map +1 -0
  3. package/dist/src/core/database-cardinality-feedback.js +547 -0
  4. package/dist/src/core/database-cardinality-feedback.js.map +1 -0
  5. package/dist/src/core/database-transaction.d.ts +9 -2
  6. package/dist/src/core/database-transaction.d.ts.map +1 -1
  7. package/dist/src/core/database-transaction.js +27 -9
  8. package/dist/src/core/database-transaction.js.map +1 -1
  9. package/dist/src/core/database.d.ts +5 -0
  10. package/dist/src/core/database.d.ts.map +1 -1
  11. package/dist/src/core/database.js +86 -7
  12. package/dist/src/core/database.js.map +1 -1
  13. package/dist/src/core/statement.d.ts +16 -2
  14. package/dist/src/core/statement.d.ts.map +1 -1
  15. package/dist/src/core/statement.js +55 -2
  16. package/dist/src/core/statement.js.map +1 -1
  17. package/dist/src/func/builtins/cardinality-feedback.d.ts +15 -0
  18. package/dist/src/func/builtins/cardinality-feedback.d.ts.map +1 -0
  19. package/dist/src/func/builtins/cardinality-feedback.js +106 -0
  20. package/dist/src/func/builtins/cardinality-feedback.js.map +1 -0
  21. package/dist/src/func/builtins/explain.d.ts.map +1 -1
  22. package/dist/src/func/builtins/explain.js +3 -1
  23. package/dist/src/func/builtins/explain.js.map +1 -1
  24. package/dist/src/func/builtins/index.d.ts.map +1 -1
  25. package/dist/src/func/builtins/index.js +3 -0
  26. package/dist/src/func/builtins/index.js.map +1 -1
  27. package/dist/src/index.d.ts +1 -1
  28. package/dist/src/index.d.ts.map +1 -1
  29. package/dist/src/planner/cost/index.d.ts +25 -19
  30. package/dist/src/planner/cost/index.d.ts.map +1 -1
  31. package/dist/src/planner/cost/index.js +28 -21
  32. package/dist/src/planner/cost/index.js.map +1 -1
  33. package/dist/src/planner/framework/trace.js +2 -2
  34. package/dist/src/planner/framework/trace.js.map +1 -1
  35. package/dist/src/planner/nodes/aggregate-node.d.ts +2 -1
  36. package/dist/src/planner/nodes/aggregate-node.d.ts.map +1 -1
  37. package/dist/src/planner/nodes/aggregate-node.js +1 -0
  38. package/dist/src/planner/nodes/aggregate-node.js.map +1 -1
  39. package/dist/src/planner/nodes/filter.d.ts.map +1 -1
  40. package/dist/src/planner/nodes/filter.js +5 -10
  41. package/dist/src/planner/nodes/filter.js.map +1 -1
  42. package/dist/src/planner/nodes/hash-aggregate.d.ts +2 -1
  43. package/dist/src/planner/nodes/hash-aggregate.d.ts.map +1 -1
  44. package/dist/src/planner/nodes/hash-aggregate.js +1 -0
  45. package/dist/src/planner/nodes/hash-aggregate.js.map +1 -1
  46. package/dist/src/planner/nodes/plan-node.d.ts +11 -0
  47. package/dist/src/planner/nodes/plan-node.d.ts.map +1 -1
  48. package/dist/src/planner/nodes/plan-node.js +3 -0
  49. package/dist/src/planner/nodes/plan-node.js.map +1 -1
  50. package/dist/src/planner/nodes/reference.d.ts +7 -0
  51. package/dist/src/planner/nodes/reference.d.ts.map +1 -1
  52. package/dist/src/planner/nodes/reference.js +17 -3
  53. package/dist/src/planner/nodes/reference.js.map +1 -1
  54. package/dist/src/planner/nodes/stream-aggregate.d.ts +2 -1
  55. package/dist/src/planner/nodes/stream-aggregate.d.ts.map +1 -1
  56. package/dist/src/planner/nodes/stream-aggregate.js +1 -0
  57. package/dist/src/planner/nodes/stream-aggregate.js.map +1 -1
  58. package/dist/src/planner/nodes/table-access-nodes.d.ts +14 -1
  59. package/dist/src/planner/nodes/table-access-nodes.d.ts.map +1 -1
  60. package/dist/src/planner/nodes/table-access-nodes.js +52 -20
  61. package/dist/src/planner/nodes/table-access-nodes.js.map +1 -1
  62. package/dist/src/planner/optimizer-tuning.d.ts +67 -7
  63. package/dist/src/planner/optimizer-tuning.d.ts.map +1 -1
  64. package/dist/src/planner/optimizer-tuning.js +14 -3
  65. package/dist/src/planner/optimizer-tuning.js.map +1 -1
  66. package/dist/src/planner/rules/access/rule-key-set-seek.d.ts +9 -0
  67. package/dist/src/planner/rules/access/rule-key-set-seek.d.ts.map +1 -1
  68. package/dist/src/planner/rules/access/rule-key-set-seek.js +18 -12
  69. package/dist/src/planner/rules/access/rule-key-set-seek.js.map +1 -1
  70. package/dist/src/planner/rules/access/rule-select-access-path.d.ts.map +1 -1
  71. package/dist/src/planner/rules/access/rule-select-access-path.js +7 -8
  72. package/dist/src/planner/rules/access/rule-select-access-path.js.map +1 -1
  73. package/dist/src/planner/rules/aggregate/rule-aggregate-streaming.js +1 -1
  74. package/dist/src/planner/rules/aggregate/rule-aggregate-streaming.js.map +1 -1
  75. package/dist/src/planner/rules/cache/rule-nested-loop-right-cache.d.ts.map +1 -1
  76. package/dist/src/planner/rules/cache/rule-nested-loop-right-cache.js +7 -0
  77. package/dist/src/planner/rules/cache/rule-nested-loop-right-cache.js.map +1 -1
  78. package/dist/src/planner/rules/join/index-nested-loop.d.ts +6 -2
  79. package/dist/src/planner/rules/join/index-nested-loop.d.ts.map +1 -1
  80. package/dist/src/planner/rules/join/index-nested-loop.js +20 -14
  81. package/dist/src/planner/rules/join/index-nested-loop.js.map +1 -1
  82. package/dist/src/planner/rules/join/rule-fanout-batched-outer.d.ts.map +1 -1
  83. package/dist/src/planner/rules/join/rule-fanout-batched-outer.js +5 -0
  84. package/dist/src/planner/rules/join/rule-fanout-batched-outer.js.map +1 -1
  85. package/dist/src/planner/rules/join/rule-join-physical-selection.d.ts.map +1 -1
  86. package/dist/src/planner/rules/join/rule-join-physical-selection.js +102 -53
  87. package/dist/src/planner/rules/join/rule-join-physical-selection.js.map +1 -1
  88. package/dist/src/planner/rules/join/rule-monotonic-merge-join.d.ts +1 -1
  89. package/dist/src/planner/rules/join/rule-monotonic-merge-join.d.ts.map +1 -1
  90. package/dist/src/planner/rules/join/rule-monotonic-merge-join.js +15 -6
  91. package/dist/src/planner/rules/join/rule-monotonic-merge-join.js.map +1 -1
  92. package/dist/src/planner/rules/join/rule-quickpick-enumeration.d.ts.map +1 -1
  93. package/dist/src/planner/rules/join/rule-quickpick-enumeration.js +8 -1
  94. package/dist/src/planner/rules/join/rule-quickpick-enumeration.js.map +1 -1
  95. package/dist/src/planner/rules/retrieve/rule-grow-retrieve.d.ts.map +1 -1
  96. package/dist/src/planner/rules/retrieve/rule-grow-retrieve.js +7 -6
  97. package/dist/src/planner/rules/retrieve/rule-grow-retrieve.js.map +1 -1
  98. package/dist/src/planner/stats/catalog-stats.d.ts +11 -2
  99. package/dist/src/planner/stats/catalog-stats.d.ts.map +1 -1
  100. package/dist/src/planner/stats/catalog-stats.js +14 -5
  101. package/dist/src/planner/stats/catalog-stats.js.map +1 -1
  102. package/dist/src/planner/stats/table-cardinality.d.ts +146 -23
  103. package/dist/src/planner/stats/table-cardinality.d.ts.map +1 -1
  104. package/dist/src/planner/stats/table-cardinality.js +159 -23
  105. package/dist/src/planner/stats/table-cardinality.js.map +1 -1
  106. package/dist/src/planner/util/relative-rows.d.ts +29 -0
  107. package/dist/src/planner/util/relative-rows.d.ts.map +1 -0
  108. package/dist/src/planner/util/relative-rows.js +67 -0
  109. package/dist/src/planner/util/relative-rows.js.map +1 -0
  110. package/dist/src/planner/util/row-estimates.d.ts +23 -0
  111. package/dist/src/planner/util/row-estimates.d.ts.map +1 -1
  112. package/dist/src/planner/util/row-estimates.js +29 -0
  113. package/dist/src/planner/util/row-estimates.js.map +1 -1
  114. package/dist/src/runtime/cardinality-observations.d.ts +85 -0
  115. package/dist/src/runtime/cardinality-observations.d.ts.map +1 -0
  116. package/dist/src/runtime/cardinality-observations.js +103 -0
  117. package/dist/src/runtime/cardinality-observations.js.map +1 -0
  118. package/dist/src/runtime/emit/scan.d.ts +1 -1
  119. package/dist/src/runtime/emit/scan.d.ts.map +1 -1
  120. package/dist/src/runtime/emit/scan.js +100 -3
  121. package/dist/src/runtime/emit/scan.js.map +1 -1
  122. package/dist/src/runtime/parallel-driver.d.ts +3 -0
  123. package/dist/src/runtime/parallel-driver.d.ts.map +1 -1
  124. package/dist/src/runtime/parallel-driver.js +4 -0
  125. package/dist/src/runtime/parallel-driver.js.map +1 -1
  126. package/dist/src/runtime/types.d.ts +12 -0
  127. package/dist/src/runtime/types.d.ts.map +1 -1
  128. package/dist/src/runtime/types.js.map +1 -1
  129. package/dist/src/schema/manager.d.ts +7 -0
  130. package/dist/src/schema/manager.d.ts.map +1 -1
  131. package/dist/src/schema/manager.js +8 -0
  132. package/dist/src/schema/manager.js.map +1 -1
  133. package/dist/src/vtab/filter-info.d.ts +16 -0
  134. package/dist/src/vtab/filter-info.d.ts.map +1 -1
  135. package/dist/src/vtab/filter-info.js +29 -0
  136. package/dist/src/vtab/filter-info.js.map +1 -1
  137. package/dist/src/vtab/memory/module.d.ts.map +1 -1
  138. package/dist/src/vtab/memory/module.js +5 -3
  139. package/dist/src/vtab/memory/module.js.map +1 -1
  140. package/dist/src/vtab/module.d.ts +53 -0
  141. package/dist/src/vtab/module.d.ts.map +1 -1
  142. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"index-nested-loop.js","sourceRoot":"","sources":["../../../../../src/planner/rules/join/index-nested-loop.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index-nested-loop.js","sourceRoot":"","sources":["../../../../../src/planner/rules/join/index-nested-loop.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"rule-fanout-batched-outer.d.ts","sourceRoot":"","sources":["../../../../../src/planner/rules/join/rule-fanout-batched-outer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8EG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,KAAK,EAAE,QAAQ,EAAsB,MAAM,0BAA0B,CAAC;AAE7E,OAAO,EAAE,oBAAoB,EAAqB,MAAM,wCAAwC,CAAC;AAwBjG;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAC7B,IAAI,EAAE,oBAAoB,EAC1B,MAAM,EAAE,eAAe,CAAC,UAAU,CAAC,GACjC,oBAAoB,GAAG,IAAI,CA4D7B;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,GAAG,QAAQ,GAAG,IAAI,CAG3F"}
1
+ {"version":3,"file":"rule-fanout-batched-outer.d.ts","sourceRoot":"","sources":["../../../../../src/planner/rules/join/rule-fanout-batched-outer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8EG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,KAAK,EAAE,QAAQ,EAAsB,MAAM,0BAA0B,CAAC;AAE7E,OAAO,EAAE,oBAAoB,EAAqB,MAAM,wCAAwC,CAAC;AAwBjG;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAC7B,IAAI,EAAE,oBAAoB,EAC1B,MAAM,EAAE,eAAe,CAAC,UAAU,CAAC,GACjC,oBAAoB,GAAG,IAAI,CAiE7B;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,GAAG,QAAQ,GAAG,IAAI,CAG3F"}
@@ -125,6 +125,11 @@ export function toBatchedOuter(node, tuning) {
125
125
  return null;
126
126
  // Latency gate: the slowest branch must clear the threshold. Inert on
127
127
  // memory-vtab plans (expectedLatencyMs = 0 throughout).
128
+ // NOTE: reads the first-row hint only. A module declaring a per-row latency
129
+ // (`expectedRowLatencyMs`) with no first-row one never gets a batched seek,
130
+ // although batching would amortize its per-seek round trip just the same;
131
+ // no in-tree or known module declares that shape. If one does, gate on the
132
+ // per-seek drain (`firstRowMs + rowsPerSeek × rowMs`) instead.
128
133
  let maxLatency = 0;
129
134
  for (const b of node.branches) {
130
135
  const l = b.child.physical.expectedLatencyMs ?? 0;
@@ -1 +1 @@
1
- {"version":3,"file":"rule-fanout-batched-outer.js","sourceRoot":"","sources":["../../../../../src/planner/rules/join/rule-fanout-batched-outer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rule-fanout-batched-outer.js","sourceRoot":"","sources":["../../../../../src/planner/rules/join/rule-fanout-batched-outer.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"rule-join-physical-selection.d.ts","sourceRoot":"","sources":["../../../../../src/planner/rules/join/rule-join-physical-selection.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAiD,MAAM,0BAA0B,CAAC;AACxG,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AA8M7D,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,GAAG,QAAQ,GAAG,IAAI,CAoV9F"}
1
+ {"version":3,"file":"rule-join-physical-selection.d.ts","sourceRoot":"","sources":["../../../../../src/planner/rules/join/rule-join-physical-selection.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAiD,MAAM,0BAA0B,CAAC;AACxG,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAmQ7D,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,GAAG,QAAQ,GAAG,IAAI,CAkV9F"}
@@ -41,12 +41,13 @@ import { SortNode } from '../../nodes/sort.js';
41
41
  import { FilterNode } from '../../nodes/filter.js';
42
42
  import { ColumnReferenceNode } from '../../nodes/reference.js';
43
43
  import { FanOutLookupJoinNode } from '../../nodes/fanout-lookup-join-node.js';
44
- import { nestedLoopJoinCost, hashJoinCost, mergeJoinCost, batchedIndexNestedLoopJoinCost, } from '../../cost/index.js';
44
+ import { nestedLoopJoinCost, hashJoinCost, mergeJoinCost, batchedIndexNestedLoopJoinCost, latencyCost, } from '../../cost/index.js';
45
45
  import { toBatchedOuter } from './rule-fanout-batched-outer.js';
46
+ import { peelToSeekableAccessLeaf } from '../shared/access-leaf.js';
46
47
  import { extractEquiPairs, isOrderedOnEquiPairs, reorderEquiPairsForMerge, } from './equi-pair-extractor.js';
47
48
  import { PlanNodeCharacteristics } from '../../framework/characteristics.js';
48
49
  import { readsColumnsOf } from '../../cache/correlation-detector.js';
49
- import { physicalSourceRows } from '../../util/row-estimates.js';
50
+ import { relativeRows } from '../../util/relative-rows.js';
50
51
  import { tryIndexNestedLoop } from './index-nested-loop.js';
51
52
  import { nestedLoopRightOpensOnce } from '../cache/rule-nested-loop-right-cache.js';
52
53
  const log = createLogger('optimizer:rule:join-physical-selection');
@@ -72,8 +73,52 @@ function mayMirrorIndexNestedLoop(node) {
72
73
  && !PlanNodeCharacteristics.subtreeHasSideEffects(node.right);
73
74
  }
74
75
  /**
75
- * First-row latency the PLAIN nested loop pays for opening its inner (right)
76
- * side: once if that side is opened once per join — already materialized, or
76
+ * Row count this rule plans a side with — every work and latency term reads it.
77
+ * By PostOptimization both sides are physical access nodes (or wrappers over
78
+ * them) which declare no logical `estimatedRows` getter — the catalog-derived
79
+ * count lives in `physical.estimatedRows` (see planner/util/row-estimates.ts).
80
+ * A side nobody measured is priced relatively (`relativeRows`): the shared
81
+ * no-statistics default at its unknown leaf, narrowed by the filters and joins
82
+ * above it, so a filtered unknown side is not mistaken for the whole table and
83
+ * an unknown table is not mistaken for a small one.
84
+ */
85
+ function sideRows(side, tuning) {
86
+ return relativeRows(side, tuning.defaultRowEstimate);
87
+ }
88
+ /**
89
+ * Rows a side pulls from storage when drained once. A side that peels to a
90
+ * single access leaf reads that leaf's whole yield — a Filter above a scan
91
+ * still pulls every row the scan returns, so the side's own (filtered) estimate
92
+ * would under-count — hence the leaf's count is the honest figure (an unknown
93
+ * leaf at the same default `sideRows` starts from). A side that does not peel
94
+ * (a join, an aggregate) falls back to its own estimate `rows`, which
95
+ * under-counts rows read beneath a filter or aggregate inside it: a known
96
+ * approximation, stated in docs/optimizer-joins.md.
97
+ */
98
+ function rowsRead(side, rows, tuning) {
99
+ const leaf = peelToSeekableAccessLeaf(side);
100
+ if (!leaf)
101
+ return rows;
102
+ return sideRows(leaf, tuning);
103
+ }
104
+ /**
105
+ * Wall-clock milliseconds to open a side and drain it once:
106
+ * `firstRowMs + rowsRead × rowMs`, from the subtree's `expectedLatencyMs` and
107
+ * `expectedRowLatencyMs`. 0 for every in-process side (both hints default to
108
+ * 0). The leaf peel only runs when a per-row latency is actually declared, so
109
+ * the zero-latency hot path does not pay for it.
110
+ */
111
+ function readMs(side, rows, tuning) {
112
+ const firstRowMs = side.physical.expectedLatencyMs ?? 0;
113
+ const rowMs = side.physical.expectedRowLatencyMs ?? 0;
114
+ if (rowMs === 0)
115
+ return firstRowMs;
116
+ return firstRowMs + rowsRead(side, rows, tuning) * rowMs;
117
+ }
118
+ /**
119
+ * Storage latency (milliseconds) the PLAIN nested loop pays for its inner
120
+ * (right) side, given `innerReadMs` — the wall-clock to open and drain that side
121
+ * once: once if that side is opened once per join — already materialized, or
77
122
  * about to be wrapped in a `CacheNode` by `rule-nested-loop-right-cache` — and
78
123
  * otherwise once per outer row, because the emitter re-opens the inner pipeline
79
124
  * for every left row.
@@ -105,13 +150,15 @@ function mayMirrorIndexNestedLoop(node) {
105
150
  * semi/anti plans regress; picking one side of the range is not obviously
106
151
  * better than the other while both terms are this coarse.
107
152
  */
108
- function nestedLoopInnerLatency(node, context, outerRows, innerLatencyMs) {
153
+ function nestedLoopInnerLatency(node, context, outerRows, innerReadMs) {
109
154
  // Short-circuit before `nestedLoopRightOpensOnce`, whose size gate walks the
110
155
  // whole right subtree: with no latency to charge the answer is 0 either way.
111
- // Every in-tree module reports 0, so this keeps the walk off the hot path.
112
- if (innerLatencyMs === 0)
156
+ // `innerReadMs` is 0 exactly when BOTH of the inner's hints are 0 (`readMs`),
157
+ // so this tests both. Every in-tree module reports 0 for both, which keeps
158
+ // the walk off the hot path.
159
+ if (innerReadMs === 0)
113
160
  return 0;
114
- return nestedLoopRightOpensOnce(node, context) ? innerLatencyMs : outerRows * innerLatencyMs;
161
+ return nestedLoopRightOpensOnce(node, context) ? innerReadMs : outerRows * innerReadMs;
115
162
  }
116
163
  /**
117
164
  * The index-nested-loop candidate re-driven as a one-branch `FanOutLookupJoinNode`
@@ -137,7 +184,9 @@ function nestedLoopInnerLatency(node, context, outerRows, innerLatencyMs) {
137
184
  * for one branch — `min(outerBatchConcurrency, maxOuterReadAhead)`, the
138
185
  * driver's global permit budget bounded by its read-ahead window (mirrors
139
186
  * `deriveReadAhead` at `branchCount = 1`; see the coupling comment there) —
140
- * plus one open of the outer side, the same charge the serial index-NL pays.
187
+ * plus one drain of the outer side (`outerReadCost`, already in cost units),
188
+ * the same charge the serial index-NL pays. Only the per-seek latency is
189
+ * divided by the in-flight count; the outer's drain is charged once.
141
190
  *
142
191
  * NOTE: a `USING` join that takes this path loses its `JoinNode.usingColumns`
143
192
  * label — the fan-out has no equivalent field, and the label only ever fed
@@ -147,14 +196,15 @@ function nestedLoopInnerLatency(node, context, outerRows, innerLatencyMs) {
147
196
  * outer's cardinality for an at-most-one branch (an upper bound for `inner`,
148
197
  * exact for `left`) where `JoinNode` used `estimateJoinRows`. Known, not chased.
149
198
  */
150
- function tryBatchedIndexNestedLoop(join, outer, candidate, joinType, preserveAttrs, outerRows, outerLatencyMs, tuning) {
199
+ function tryBatchedIndexNestedLoop(join, outer, candidate, joinType, preserveAttrs, outerRows, outerReadCost, tuning) {
151
200
  if (!candidate || !candidate.atMostOne)
152
201
  return null;
153
- // Outcome-preserving short-circuit, not a restated gate: at zero latency the
154
- // batched price equals the serial one (the only term batching divides is the
155
- // latency), and a strict `<` after the serial entry can never pick it — so
156
- // skip building nodes the comparison could not choose. Every in-tree module
157
- // reports 0, which keeps node construction off the golden-sweep hot path.
202
+ // Outcome-preserving short-circuit, not a restated gate: at zero per-seek
203
+ // latency the batched price equals the serial one (the only term batching
204
+ // divides is the latency), and a strict `<` after the serial entry can never
205
+ // pick it — so skip building nodes the comparison could not choose. Every
206
+ // in-tree module reports 0, which keeps node construction off the
207
+ // golden-sweep hot path.
158
208
  if (candidate.perSeekLatencyMs === 0)
159
209
  return null;
160
210
  const inner = candidate.newInner;
@@ -166,11 +216,12 @@ function tryBatchedIndexNestedLoop(join, outer, candidate, joinType, preserveAtt
166
216
  concurrencySafe: inner.physical.concurrencySafe !== false,
167
217
  };
168
218
  const serial = new FanOutLookupJoinNode(join.scope, outer, [branch], 1, preserveAttrs, 'serial');
169
- const batched = toBatchedOuter(serial, tuning);
219
+ const batched = toBatchedOuter(serial, tuning.parallel);
170
220
  if (!batched)
171
221
  return null;
172
- const inFlight = Math.min(tuning.outerBatchConcurrency, tuning.maxOuterReadAhead);
173
- const cost = batchedIndexNestedLoopJoinCost(outerRows, candidate.rowsPerSeek, candidate.perSeekLatencyMs, inFlight) + outerLatencyMs;
222
+ const inFlight = Math.min(tuning.parallel.outerBatchConcurrency, tuning.parallel.maxOuterReadAhead);
223
+ const cost = batchedIndexNestedLoopJoinCost(outerRows, candidate.rowsPerSeek, latencyCost(candidate.perSeekLatencyMs, tuning), inFlight)
224
+ + outerReadCost;
174
225
  return { node: batched, cost };
175
226
  }
176
227
  /**
@@ -222,29 +273,26 @@ export function ruleJoinPhysicalSelection(node, context) {
222
273
  return null;
223
274
  }
224
275
  // Cost comparison: nested loop vs hash join vs merge join vs index-nested-loop.
225
- // Physical relay first: by PostOptimization both sides are physical access
226
- // nodes (or wrappers over them) which declare no logical `estimatedRows`
227
- // getter — the catalog-derived count lives in `physical.estimatedRows` (see
228
- // planner/util/row-estimates.ts). `||` not `??`: 0 is the un-analyzed
229
- // "unknown" sentinel, not "empty" (same collapse rule-select-access-path
230
- // applies), so an un-analyzed table costs exactly as it did under the old
231
- // logical-getter read (which yielded undefined → 100).
232
- const leftRows = physicalSourceRows(node.left.physical, node.left) || 100;
233
- const rightRows = physicalSourceRows(node.right.physical, node.right) || 100;
276
+ const tuning = context.tuning;
277
+ const leftRows = sideRows(node.left, tuning);
278
+ const rightRows = sideRows(node.right, tuning);
234
279
  // Latency accounting, applied uniformly to every candidate below: a candidate
235
- // is charged ONE open of its outer side plus however many opens of its inner
236
- // side it performs. `expectedLatencyMs` is a subtree's first-row latency
237
- // (0 for every in-process module), treated as ms-equivalent engine cost.
238
- // Charged locally here, not inside the shared cost functions, which other
239
- // callers use latency-free.
240
- const leftLatencyMs = node.left.physical.expectedLatencyMs ?? 0;
241
- const rightLatencyMs = node.right.physical.expectedLatencyMs ?? 0;
242
- // Plain nested loop: one open of the left, and one open of the right per left
243
- // row unless the right side is already materialized or the cache rule is
244
- // about to make it so.
280
+ // is charged ONE drain of its outer side plus however many drains of its
281
+ // inner side it performs, where a drain (`readMs`) is the side's first-row
282
+ // latency plus the rows it pulls times its per-row latency — 0 for every
283
+ // in-process module. Milliseconds until converted to engine cost units at
284
+ // `tuning.latencyCostPerMs` (`latencyCost`), which happens exactly where a
285
+ // candidate's total is formed. Charged locally here, not inside the shared
286
+ // cost functions, which other callers use latency-free.
287
+ const rightReadMs = readMs(node.right, rightRows, tuning);
288
+ const leftReadCost = latencyCost(readMs(node.left, leftRows, tuning), tuning);
289
+ const rightReadCost = latencyCost(rightReadMs, tuning);
290
+ // Plain nested loop: one drain of the left, and one drain of the right per
291
+ // left row unless the right side is already materialized or the cache rule
292
+ // is about to make it so.
245
293
  const nlCost = nestedLoopJoinCost(leftRows, rightRows)
246
- + leftLatencyMs
247
- + nestedLoopInnerLatency(node, context, leftRows, rightLatencyMs);
294
+ + leftReadCost
295
+ + latencyCost(nestedLoopInnerLatency(node, context, leftRows, rightReadMs), tuning);
248
296
  // Index-nested-loop candidate: the logical JoinNode survives with its right
249
297
  // leaf replaced by a per-outer-row correlated IndexSeek. Considered BEFORE
250
298
  // the existence early-return below — index-NL keeps the nested-loop emitter
@@ -261,13 +309,14 @@ export function ruleJoinPhysicalSelection(node, context) {
261
309
  const mirroredNL = mayMirrorIndexNestedLoop(node)
262
310
  ? tryIndexNestedLoop('inner', node.right, node.left, mirrorEquiPairs(extracted.equiPairs), rightRows, context)
263
311
  : null;
264
- // Each index-nested-loop orientation opens its outer side once; the per-seek
312
+ // Each index-nested-loop orientation drains its outer side once; the per-seek
265
313
  // charge for its INNER side is already inside `indexNestedLoopJoinCost`
266
- // (`tryIndexNestedLoop` feeds it `inner.physical.expectedLatencyMs`, which is
267
- // the RIGHT side's for the un-mirrored candidate and the LEFT side's for the
268
- // mirror). Absent candidates cost Infinity so they never win a comparison.
269
- const indexNLCost = indexNL ? indexNL.cost + leftLatencyMs : Infinity;
270
- const mirroredNLCost = mirroredNL ? mirroredNL.cost + rightLatencyMs : Infinity;
314
+ // (`tryIndexNestedLoop` feeds it the inner's first-row latency plus
315
+ // `rowsPerSeek` of its per-row latency — the RIGHT side's for the un-mirrored
316
+ // candidate and the LEFT side's for the mirror). Absent candidates cost
317
+ // Infinity so they never win a comparison.
318
+ const indexNLCost = indexNL ? indexNL.cost + leftReadCost : Infinity;
319
+ const mirroredNLCost = mirroredNL ? mirroredNL.cost + rightReadCost : Infinity;
271
320
  // Rebuild with the seek-bearing inner side, KEEPING the ON condition on the
272
321
  // join. It is redundant when the seek is exact, but it is the safety net
273
322
  // when the seek over-fetches (a COARSER_SAFE collation cover, a module
@@ -275,7 +324,7 @@ export function ruleJoinPhysicalSelection(node, context) {
275
324
  // row, not per scanned row. `condition` is defined — equi pairs were
276
325
  // extracted from it above.
277
326
  const rebuildWithIndexNL = () => {
278
- log('Selecting index-nested-loop join (cost=%.2f) for %d outer rows', indexNL.cost, leftRows);
327
+ log('Selecting index-nested-loop join (cost=%d) for %d outer rows', indexNL.cost, leftRows);
279
328
  return node.withChildren([node.left, indexNL.newInner, node.condition]);
280
329
  };
281
330
  // The mirrored rebuild is a NEW JoinNode with the children exchanged.
@@ -296,7 +345,7 @@ export function ruleJoinPhysicalSelection(node, context) {
296
345
  // without ORDER BY, which is permitted (hash join already does it).
297
346
  // `existence` is omitted: `mayMirrorIndexNestedLoop` excludes flag joins.
298
347
  const rebuildWithMirroredNL = () => {
299
- log('Selecting mirrored index-nested-loop join (cost=%.2f) for %d outer rows (sides exchanged)', mirroredNL.cost, rightRows);
348
+ log('Selecting mirrored index-nested-loop join (cost=%d) for %d outer rows (sides exchanged)', mirroredNL.cost, rightRows);
300
349
  return new JoinNode(node.scope, node.right, mirroredNL.newInner, 'inner', node.condition, node.usingColumns);
301
350
  };
302
351
  // A join exposing `exists … as` match flags stays the nested-loop JoinNode (the
@@ -323,9 +372,9 @@ export function ruleJoinPhysicalSelection(node, context) {
323
372
  // matching what `rebuildWithMirroredNL` produces. Absent candidates cost
324
373
  // Infinity, as above.
325
374
  const batchedNL = joinType === 'inner' || joinType === 'left'
326
- ? tryBatchedIndexNestedLoop(node, node.left, indexNL, joinType, preserveAttrs, leftRows, leftLatencyMs, context.tuning.parallel)
375
+ ? tryBatchedIndexNestedLoop(node, node.left, indexNL, joinType, preserveAttrs, leftRows, leftReadCost, tuning)
327
376
  : null;
328
- const mirroredBatchedNL = tryBatchedIndexNestedLoop(node, node.right, mirroredNL, 'inner', undefined, rightRows, rightLatencyMs, context.tuning.parallel);
377
+ const mirroredBatchedNL = tryBatchedIndexNestedLoop(node, node.right, mirroredNL, 'inner', undefined, rightRows, rightReadCost, tuning);
329
378
  const batchedNLCost = batchedNL ? batchedNL.cost : Infinity;
330
379
  const mirroredBatchedNLCost = mirroredBatchedNL ? mirroredBatchedNL.cost : Infinity;
331
380
  // Hash join cost: build side is the smaller input
@@ -357,10 +406,10 @@ export function ruleJoinPhysicalSelection(node, context) {
357
406
  const mergeCostValue = mergeAvailable
358
407
  ? mergeJoinCost(leftRows, rightRows, !leftOrdered, !rightOrdered)
359
408
  : Infinity;
360
- // Hash and merge each open both sides exactly once (build then probe / merge
361
- // two streams), so each is charged one open of each side.
362
- const hashTotal = hashCostValue + leftLatencyMs + rightLatencyMs;
363
- const mergeTotal = mergeCostValue + leftLatencyMs + rightLatencyMs;
409
+ // Hash and merge each drain both sides exactly once (build then probe / merge
410
+ // two streams), so each is charged one drain of each side.
411
+ const hashTotal = hashCostValue + leftReadCost + rightReadCost;
412
+ const mergeTotal = mergeCostValue + leftReadCost + rightReadCost;
364
413
  let bestAlgo = 'nested-loop';
365
414
  let bestCost = nlCost;
366
415
  if (hashTotal < bestCost) {
@@ -1 +1 @@
1
- {"version":3,"file":"rule-join-physical-selection.js","sourceRoot":"","sources":["../../../../../src/planner/rules/join/rule-join-physical-selection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rule-join-physical-selection.js","sourceRoot":"","sources":["../../../../../src/planner/rules/join/rule-join-physical-selection.ts"],"names":[],"mappings":"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"}
@@ -29,5 +29,5 @@
29
29
  */
30
30
  import type { PlanNode } from '../../nodes/plan-node.js';
31
31
  import type { OptContext } from '../../framework/context.js';
32
- export declare function ruleMonotonicMergeJoin(node: PlanNode, _context: OptContext): PlanNode | null;
32
+ export declare function ruleMonotonicMergeJoin(node: PlanNode, context: OptContext): PlanNode | null;
33
33
  //# sourceMappingURL=rule-monotonic-merge-join.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"rule-monotonic-merge-join.d.ts","sourceRoot":"","sources":["../../../../../src/planner/rules/join/rule-monotonic-merge-join.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAA6B,MAAM,0BAA0B,CAAC;AACpF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAW7D,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,GAAG,QAAQ,GAAG,IAAI,CAiH5F"}
1
+ {"version":3,"file":"rule-monotonic-merge-join.d.ts","sourceRoot":"","sources":["../../../../../src/planner/rules/join/rule-monotonic-merge-join.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAA6B,MAAM,0BAA0B,CAAC;AACpF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAY7D,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,GAAG,QAAQ,GAAG,IAAI,CAyH3F"}
@@ -34,8 +34,9 @@ import { nestedLoopJoinCost, hashJoinCost, mergeJoinCost } from '../../cost/inde
34
34
  import { PlanNodeCharacteristics } from '../../framework/characteristics.js';
35
35
  import { extractEquiPairs, combineResidual, isMergeReadyOnAllPairs } from './equi-pair-extractor.js';
36
36
  import { readsColumnsOf } from '../../cache/correlation-detector.js';
37
+ import { relativeRows } from '../../util/relative-rows.js';
37
38
  const log = createLogger('optimizer:rule:monotonic-merge-join');
38
- export function ruleMonotonicMergeJoin(node, _context) {
39
+ export function ruleMonotonicMergeJoin(node, context) {
39
40
  if (!(node instanceof JoinNode))
40
41
  return null;
41
42
  // Existence-flag joins must stay the nested-loop JoinNode (see
@@ -125,17 +126,25 @@ export function ruleMonotonicMergeJoin(node, _context) {
125
126
  }
126
127
  const residual = combineResidual(extracted.residual, extras);
127
128
  // Cost gate: even with the precondition met, hash or nested-loop may win
128
- // on tiny inputs. Don't regress those.
129
- const leftRows = node.left.estimatedRows ?? 100;
130
- const rightRows = node.right.estimatedRows ?? 100;
129
+ // on tiny inputs. Don't regress those. Sides are priced the way
130
+ // `rule-join-physical-selection` prices them (`relativeRows`), so an
131
+ // unknown side reads the same default in both rules.
132
+ // NOTE: index-nested-loop is not among the rivals, so when both sides are
133
+ // monotonic on the key this rule can pre-empt a cheaper per-row seek into an
134
+ // indexed inner. Fine while `monotonicOn` is rare (the memory module
135
+ // advertises it only for a named-index walk); revisit if this rule starts
136
+ // winning over seekable inners — price index-NL here or defer to that rule.
137
+ const unknownLeafRows = context.tuning.defaultRowEstimate;
138
+ const leftRows = relativeRows(node.left, unknownLeafRows);
139
+ const rightRows = relativeRows(node.right, unknownLeafRows);
131
140
  const mergeC = mergeJoinCost(leftRows, rightRows, false, false);
132
141
  const hashC = hashJoinCost(Math.min(leftRows, rightRows), Math.max(leftRows, rightRows));
133
142
  const nlC = nestedLoopJoinCost(leftRows, rightRows);
134
143
  if (Math.min(hashC, nlC) < mergeC) {
135
- log('Skipping monotonic-merge: cheaper alternative exists (merge=%.2f, hash=%.2f, nl=%.2f)', mergeC, hashC, nlC);
144
+ log('Skipping monotonic-merge: cheaper alternative exists (merge=%d, hash=%d, nl=%d)', mergeC, hashC, nlC);
136
145
  return null;
137
146
  }
138
- log('Selecting monotonic merge-join on equi-pair %d=%d (merge=%.2f, hash=%.2f, nl=%.2f)', driving[0].leftAttrId, driving[0].rightAttrId, mergeC, hashC, nlC);
147
+ log('Selecting monotonic merge-join on equi-pair %d=%d (merge=%d, hash=%d, nl=%d)', driving[0].leftAttrId, driving[0].rightAttrId, mergeC, hashC, nlC);
139
148
  return new MergeJoinNode(node.scope, node.left, node.right, joinType, driving, residual, node.getAttributes().slice());
140
149
  }
141
150
  //# sourceMappingURL=rule-monotonic-merge-join.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"rule-monotonic-merge-join.js","sourceRoot":"","sources":["../../../../../src/planner/rules/join/rule-monotonic-merge-join.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rule-monotonic-merge-join.js","sourceRoot":"","sources":["../../../../../src/planner/rules/join/rule-monotonic-merge-join.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,EAAE,kBAAkB,EAAkB,MAAM,0BAA0B,CAAC;AAE7F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AA0I7D;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,SAAS,kBAAkB,EAAE,GAAG,MAAM,EAAE,CAGrF;AAwGD,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,GAAG,QAAQ,GAAG,IAAI,CAqFjG"}
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,EAAE,kBAAkB,EAAkB,MAAM,0BAA0B,CAAC;AAE7F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AA0I7D;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,SAAS,kBAAkB,EAAE,GAAG,MAAM,EAAE,CAGrF;AA+GD,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,GAAG,QAAQ,GAAG,IAAI,CAqFjG"}
@@ -139,6 +139,13 @@ function estimatePlanCost(plan) {
139
139
  // Use total cost, but apply penalties for cross products (no predicates between recent components)
140
140
  // and reward key-covered joins via lower estimatedRows coming from computePhysical.
141
141
  // Total cost already accumulates subtree costs; keep it as primary signal.
142
+ // NOTE: `getTotalCost()` carries no storage latency — neither a leaf's
143
+ // first-row `expectedLatencyMs` nor its per-row `expectedRowLatencyMs` reaches
144
+ // a node's self-cost — so a tour is scored as if every relation were
145
+ // in-process. Only `rule-join-physical-selection` prices latency, and only
146
+ // per join. If a remote relation ever needs to be ordered by its latency,
147
+ // add a drain term here (`latencyCost` in cost/index.ts); not done because
148
+ // no in-tree module declares either hint.
142
149
  return plan.getTotalCost();
143
150
  }
144
151
  function buildLeftDeepPlan(order, graph) {
@@ -292,7 +299,7 @@ export function ruleQuickPickJoinEnumeration(node, context) {
292
299
  // Always record diagnostics for visibility
293
300
  context.diagnostics.quickpick = { tours, bestCost };
294
301
  if (bestCost < baselineCost * 0.9) {
295
- log('QuickPick replaced join plan (%.2f -> %.2f)', baselineCost, bestCost);
302
+ log('QuickPick replaced join plan (%d -> %d)', baselineCost, bestCost);
296
303
  return bestPlan;
297
304
  }
298
305
  return null;