@quereus/quereus 4.18.0 → 4.19.2

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 (198) hide show
  1. package/README.md +2 -0
  2. package/dist/src/common/types.d.ts +17 -0
  3. package/dist/src/common/types.d.ts.map +1 -1
  4. package/dist/src/common/types.js.map +1 -1
  5. package/dist/src/core/database-assertions.d.ts.map +1 -1
  6. package/dist/src/core/database-assertions.js +2 -1
  7. package/dist/src/core/database-assertions.js.map +1 -1
  8. package/dist/src/core/database-auto-analyze.d.ts +3 -3
  9. package/dist/src/core/database-auto-analyze.d.ts.map +1 -1
  10. package/dist/src/core/database-auto-analyze.js +17 -11
  11. package/dist/src/core/database-auto-analyze.js.map +1 -1
  12. package/dist/src/core/database-materialized-views-plan-builders.d.ts +11 -2
  13. package/dist/src/core/database-materialized-views-plan-builders.d.ts.map +1 -1
  14. package/dist/src/core/database-materialized-views-plan-builders.js +15 -10
  15. package/dist/src/core/database-materialized-views-plan-builders.js.map +1 -1
  16. package/dist/src/core/database-watchers.d.ts.map +1 -1
  17. package/dist/src/core/database-watchers.js +2 -1
  18. package/dist/src/core/database-watchers.js.map +1 -1
  19. package/dist/src/core/database.d.ts.map +1 -1
  20. package/dist/src/core/database.js +18 -0
  21. package/dist/src/core/database.js.map +1 -1
  22. package/dist/src/core/statement.d.ts.map +1 -1
  23. package/dist/src/core/statement.js +5 -0
  24. package/dist/src/core/statement.js.map +1 -1
  25. package/dist/src/func/builtins/explain.d.ts.map +1 -1
  26. package/dist/src/func/builtins/explain.js +38 -42
  27. package/dist/src/func/builtins/explain.js.map +1 -1
  28. package/dist/src/planner/cost/index.d.ts +9 -0
  29. package/dist/src/planner/cost/index.d.ts.map +1 -1
  30. package/dist/src/planner/cost/index.js +28 -0
  31. package/dist/src/planner/cost/index.js.map +1 -1
  32. package/dist/src/planner/debug.d.ts +5 -0
  33. package/dist/src/planner/debug.d.ts.map +1 -1
  34. package/dist/src/planner/debug.js +5 -0
  35. package/dist/src/planner/debug.js.map +1 -1
  36. package/dist/src/planner/framework/characteristics.d.ts +0 -22
  37. package/dist/src/planner/framework/characteristics.d.ts.map +1 -1
  38. package/dist/src/planner/framework/characteristics.js +0 -3
  39. package/dist/src/planner/framework/characteristics.js.map +1 -1
  40. package/dist/src/planner/framework/pass.js +3 -3
  41. package/dist/src/planner/nodes/async-gather-node.d.ts +13 -0
  42. package/dist/src/planner/nodes/async-gather-node.d.ts.map +1 -1
  43. package/dist/src/planner/nodes/async-gather-node.js +19 -29
  44. package/dist/src/planner/nodes/async-gather-node.js.map +1 -1
  45. package/dist/src/planner/nodes/constraint-check-node.d.ts +9 -0
  46. package/dist/src/planner/nodes/constraint-check-node.d.ts.map +1 -1
  47. package/dist/src/planner/nodes/constraint-check-node.js +13 -0
  48. package/dist/src/planner/nodes/constraint-check-node.js.map +1 -1
  49. package/dist/src/planner/nodes/cte-node.d.ts +8 -5
  50. package/dist/src/planner/nodes/cte-node.d.ts.map +1 -1
  51. package/dist/src/planner/nodes/cte-node.js +14 -4
  52. package/dist/src/planner/nodes/cte-node.js.map +1 -1
  53. package/dist/src/planner/nodes/cte-reference-node.d.ts +9 -1
  54. package/dist/src/planner/nodes/cte-reference-node.d.ts.map +1 -1
  55. package/dist/src/planner/nodes/cte-reference-node.js +13 -0
  56. package/dist/src/planner/nodes/cte-reference-node.js.map +1 -1
  57. package/dist/src/planner/nodes/delete-node.d.ts +7 -1
  58. package/dist/src/planner/nodes/delete-node.d.ts.map +1 -1
  59. package/dist/src/planner/nodes/delete-node.js +12 -2
  60. package/dist/src/planner/nodes/delete-node.js.map +1 -1
  61. package/dist/src/planner/nodes/dml-executor-node.d.ts +2 -1
  62. package/dist/src/planner/nodes/dml-executor-node.d.ts.map +1 -1
  63. package/dist/src/planner/nodes/dml-executor-node.js +8 -1
  64. package/dist/src/planner/nodes/dml-executor-node.js.map +1 -1
  65. package/dist/src/planner/nodes/insert-node.d.ts +8 -1
  66. package/dist/src/planner/nodes/insert-node.d.ts.map +1 -1
  67. package/dist/src/planner/nodes/insert-node.js +12 -1
  68. package/dist/src/planner/nodes/insert-node.js.map +1 -1
  69. package/dist/src/planner/nodes/join-node.d.ts.map +1 -1
  70. package/dist/src/planner/nodes/join-node.js +10 -0
  71. package/dist/src/planner/nodes/join-node.js.map +1 -1
  72. package/dist/src/planner/nodes/recursive-cte-node.d.ts.map +1 -1
  73. package/dist/src/planner/nodes/recursive-cte-node.js +7 -0
  74. package/dist/src/planner/nodes/recursive-cte-node.js.map +1 -1
  75. package/dist/src/planner/nodes/remote-query-node.d.ts +7 -1
  76. package/dist/src/planner/nodes/remote-query-node.d.ts.map +1 -1
  77. package/dist/src/planner/nodes/remote-query-node.js +11 -0
  78. package/dist/src/planner/nodes/remote-query-node.js.map +1 -1
  79. package/dist/src/planner/nodes/returning-node.d.ts +4 -0
  80. package/dist/src/planner/nodes/returning-node.d.ts.map +1 -1
  81. package/dist/src/planner/nodes/returning-node.js +8 -1
  82. package/dist/src/planner/nodes/returning-node.js.map +1 -1
  83. package/dist/src/planner/nodes/set-operation-node.d.ts +14 -1
  84. package/dist/src/planner/nodes/set-operation-node.d.ts.map +1 -1
  85. package/dist/src/planner/nodes/set-operation-node.js +22 -1
  86. package/dist/src/planner/nodes/set-operation-node.js.map +1 -1
  87. package/dist/src/planner/nodes/sink-node.d.ts +9 -1
  88. package/dist/src/planner/nodes/sink-node.d.ts.map +1 -1
  89. package/dist/src/planner/nodes/sink-node.js +12 -0
  90. package/dist/src/planner/nodes/sink-node.js.map +1 -1
  91. package/dist/src/planner/nodes/table-access-nodes.d.ts.map +1 -1
  92. package/dist/src/planner/nodes/table-access-nodes.js +4 -3
  93. package/dist/src/planner/nodes/table-access-nodes.js.map +1 -1
  94. package/dist/src/planner/nodes/update-node.d.ts +7 -1
  95. package/dist/src/planner/nodes/update-node.d.ts.map +1 -1
  96. package/dist/src/planner/nodes/update-node.js +9 -1
  97. package/dist/src/planner/nodes/update-node.js.map +1 -1
  98. package/dist/src/planner/nodes/view-mutation-node.d.ts +13 -1
  99. package/dist/src/planner/nodes/view-mutation-node.d.ts.map +1 -1
  100. package/dist/src/planner/nodes/view-mutation-node.js +25 -1
  101. package/dist/src/planner/nodes/view-mutation-node.js.map +1 -1
  102. package/dist/src/planner/optimizer-tuning.d.ts +9 -9
  103. package/dist/src/planner/optimizer-tuning.d.ts.map +1 -1
  104. package/dist/src/planner/optimizer-tuning.js +0 -2
  105. package/dist/src/planner/optimizer-tuning.js.map +1 -1
  106. package/dist/src/planner/optimizer.d.ts.map +1 -1
  107. package/dist/src/planner/optimizer.js +9 -21
  108. package/dist/src/planner/optimizer.js.map +1 -1
  109. package/dist/src/planner/rules/access/rule-key-set-seek.d.ts.map +1 -1
  110. package/dist/src/planner/rules/access/rule-key-set-seek.js +19 -10
  111. package/dist/src/planner/rules/access/rule-key-set-seek.js.map +1 -1
  112. package/dist/src/planner/rules/access/rule-select-access-path.d.ts +1 -1
  113. package/dist/src/planner/rules/access/rule-select-access-path.d.ts.map +1 -1
  114. package/dist/src/planner/rules/access/rule-select-access-path.js +34 -19
  115. package/dist/src/planner/rules/access/rule-select-access-path.js.map +1 -1
  116. package/dist/src/planner/rules/aggregate/rule-minmax-index-boundary.d.ts.map +1 -1
  117. package/dist/src/planner/rules/aggregate/rule-minmax-index-boundary.js +14 -1
  118. package/dist/src/planner/rules/aggregate/rule-minmax-index-boundary.js.map +1 -1
  119. package/dist/src/planner/rules/cache/rule-nested-loop-right-cache.d.ts.map +1 -1
  120. package/dist/src/planner/rules/cache/rule-nested-loop-right-cache.js +6 -4
  121. package/dist/src/planner/rules/cache/rule-nested-loop-right-cache.js.map +1 -1
  122. package/dist/src/planner/rules/join/index-nested-loop.d.ts.map +1 -1
  123. package/dist/src/planner/rules/join/index-nested-loop.js +13 -10
  124. package/dist/src/planner/rules/join/index-nested-loop.js.map +1 -1
  125. package/dist/src/planner/rules/join/rule-join-greedy-commute.d.ts +2 -1
  126. package/dist/src/planner/rules/join/rule-join-greedy-commute.d.ts.map +1 -1
  127. package/dist/src/planner/rules/join/rule-join-greedy-commute.js +45 -17
  128. package/dist/src/planner/rules/join/rule-join-greedy-commute.js.map +1 -1
  129. package/dist/src/planner/rules/join/rule-join-physical-selection.d.ts.map +1 -1
  130. package/dist/src/planner/rules/join/rule-join-physical-selection.js +5 -3
  131. package/dist/src/planner/rules/join/rule-join-physical-selection.js.map +1 -1
  132. package/dist/src/planner/rules/join/rule-quickpick-enumeration.d.ts +19 -1
  133. package/dist/src/planner/rules/join/rule-quickpick-enumeration.d.ts.map +1 -1
  134. package/dist/src/planner/rules/join/rule-quickpick-enumeration.js +36 -3
  135. package/dist/src/planner/rules/join/rule-quickpick-enumeration.js.map +1 -1
  136. package/dist/src/planner/rules/predicate/rule-filter-selectivity.js +4 -3
  137. package/dist/src/planner/rules/predicate/rule-filter-selectivity.js.map +1 -1
  138. package/dist/src/planner/rules/retrieve/rule-grow-retrieve.d.ts +14 -1
  139. package/dist/src/planner/rules/retrieve/rule-grow-retrieve.d.ts.map +1 -1
  140. package/dist/src/planner/rules/retrieve/rule-grow-retrieve.js +200 -13
  141. package/dist/src/planner/rules/retrieve/rule-grow-retrieve.js.map +1 -1
  142. package/dist/src/planner/stats/catalog-stats.js +1 -1
  143. package/dist/src/planner/stats/catalog-stats.js.map +1 -1
  144. package/dist/src/planner/stats/index.d.ts.map +1 -1
  145. package/dist/src/planner/stats/index.js +3 -4
  146. package/dist/src/planner/stats/index.js.map +1 -1
  147. package/dist/src/planner/stats/table-cardinality.d.ts +6 -6
  148. package/dist/src/planner/stats/table-cardinality.js +7 -7
  149. package/dist/src/planner/stats/table-cardinality.js.map +1 -1
  150. package/dist/src/planner/util/row-estimates.d.ts +91 -0
  151. package/dist/src/planner/util/row-estimates.d.ts.map +1 -1
  152. package/dist/src/planner/util/row-estimates.js +134 -18
  153. package/dist/src/planner/util/row-estimates.js.map +1 -1
  154. package/dist/src/runtime/emit/materialized-view-helpers.d.ts.map +1 -1
  155. package/dist/src/runtime/emit/materialized-view-helpers.js +3 -3
  156. package/dist/src/runtime/emit/materialized-view-helpers.js.map +1 -1
  157. package/dist/src/runtime/scheduler.d.ts +47 -0
  158. package/dist/src/runtime/scheduler.d.ts.map +1 -1
  159. package/dist/src/runtime/scheduler.js +105 -11
  160. package/dist/src/runtime/scheduler.js.map +1 -1
  161. package/dist/src/runtime/types.d.ts +18 -3
  162. package/dist/src/runtime/types.d.ts.map +1 -1
  163. package/dist/src/runtime/types.js +7 -5
  164. package/dist/src/runtime/types.js.map +1 -1
  165. package/dist/src/schema/lens-prover.d.ts.map +1 -1
  166. package/dist/src/schema/lens-prover.js +2 -1
  167. package/dist/src/schema/lens-prover.js.map +1 -1
  168. package/dist/src/schema/manager.d.ts.map +1 -1
  169. package/dist/src/schema/manager.js +0 -3
  170. package/dist/src/schema/manager.js.map +1 -1
  171. package/dist/src/schema/schema-differ.d.ts.map +1 -1
  172. package/dist/src/schema/schema-differ.js +4 -2
  173. package/dist/src/schema/schema-differ.js.map +1 -1
  174. package/dist/src/schema/table.d.ts +0 -2
  175. package/dist/src/schema/table.d.ts.map +1 -1
  176. package/dist/src/schema/table.js.map +1 -1
  177. package/dist/src/util/async-generator-support.d.ts +12 -0
  178. package/dist/src/util/async-generator-support.d.ts.map +1 -0
  179. package/dist/src/util/async-generator-support.js +65 -0
  180. package/dist/src/util/async-generator-support.js.map +1 -0
  181. package/dist/src/vtab/best-access-plan.d.ts +89 -4
  182. package/dist/src/vtab/best-access-plan.d.ts.map +1 -1
  183. package/dist/src/vtab/best-access-plan.js +76 -1
  184. package/dist/src/vtab/best-access-plan.js.map +1 -1
  185. package/dist/src/vtab/memory/module.d.ts.map +1 -1
  186. package/dist/src/vtab/memory/module.js +27 -11
  187. package/dist/src/vtab/memory/module.js.map +1 -1
  188. package/dist/src/vtab/module.d.ts +7 -0
  189. package/dist/src/vtab/module.d.ts.map +1 -1
  190. package/dist/src/vtab/test-support/committed-read-conformance.d.ts +5 -2
  191. package/dist/src/vtab/test-support/committed-read-conformance.d.ts.map +1 -1
  192. package/dist/src/vtab/test-support/committed-read-conformance.js +55 -9
  193. package/dist/src/vtab/test-support/committed-read-conformance.js.map +1 -1
  194. package/package.json +3 -3
  195. package/dist/src/planner/rules/cache/rule-cte-optimization.d.ts +0 -17
  196. package/dist/src/planner/rules/cache/rule-cte-optimization.d.ts.map +0 -1
  197. package/dist/src/planner/rules/cache/rule-cte-optimization.js +0 -69
  198. package/dist/src/planner/rules/cache/rule-cte-optimization.js.map +0 -1
@@ -0,0 +1,65 @@
1
+ /**
2
+ * One-time self-check that the host runs an async generator's `finally` to
3
+ * completion when the consumer calls `return()` while the generator is
4
+ * suspended at a `yield` (what `break` / `return` inside `for await` does).
5
+ *
6
+ * Native engines do. The `wrapAsyncGenerator` helper shipped in
7
+ * `@babel/helpers` and `@babel/runtime` before 7.29.2 does not: after the
8
+ * first `await` inside such a `finally` it resumes the generator with a second
9
+ * `return()` instead of `next()`, silently dropping the rest of the cleanup
10
+ * and still resolving `{ done: true }`. React Native bundles built by Metro
11
+ * lower every async generator through that helper, so a stale lockfile turns
12
+ * an early exit from `db.eval()` into a permanently held exec mutex. The
13
+ * engine's cleanup paths (mutex release, statement finalize, cursor close)
14
+ * are written against the spec, so the only safe response is to fail loudly
15
+ * before the first statement runs.
16
+ */
17
+ import { QuereusError } from '../common/errors.js';
18
+ import { StatusCode } from '../common/types.js';
19
+ /** True when `finally` code after an `await` ran on an early `return()`. */
20
+ export async function probeAsyncGeneratorCleanup() {
21
+ let completed = false;
22
+ async function* probe() {
23
+ try {
24
+ yield;
25
+ }
26
+ finally {
27
+ await Promise.resolve();
28
+ completed = true;
29
+ }
30
+ }
31
+ const it = probe();
32
+ await it.next();
33
+ await it.return(undefined);
34
+ return completed;
35
+ }
36
+ const UNSUPPORTED_MESSAGE = 'This JavaScript environment drops async-generator cleanup after an await in a finally block ' +
37
+ 'when iteration stops early, which would leave Quereus\'s execution lock held forever. ' +
38
+ 'This is a known defect in the Babel wrapAsyncGenerator helper before 7.29.2: ' +
39
+ 'upgrade @babel/helpers and @babel/runtime to >= 7.29.2 (e.g. `yarn up \'@babel/runtime@^7.29.2\' \'@babel/helpers@^7.29.2\'`; a bare `yarn up` would jump to Babel 8), ' +
40
+ 'then rebuild the bundle with Metro\'s cache cleared (`--reset-cache`).';
41
+ /**
42
+ * Memoizes one run of `probe`. The returned check yields `undefined` once the
43
+ * probe has passed (sync fast path), otherwise the shared promise that resolves
44
+ * on success or rejects with an `UNSUPPORTED` {@link QuereusError} naming the
45
+ * fix. A failed verdict stays rejected: the environment does not change.
46
+ */
47
+ export function createAsyncGeneratorCleanupCheck(probe) {
48
+ let verified = false;
49
+ let pending;
50
+ return () => {
51
+ if (verified)
52
+ return undefined;
53
+ if (!pending) {
54
+ pending = probe().then(ok => {
55
+ if (!ok)
56
+ throw new QuereusError(UNSUPPORTED_MESSAGE, StatusCode.UNSUPPORTED);
57
+ verified = true;
58
+ });
59
+ }
60
+ return pending;
61
+ };
62
+ }
63
+ /** Process-wide check against the real host; see {@link createAsyncGeneratorCleanupCheck}. */
64
+ export const ensureAsyncGeneratorCleanupSupported = createAsyncGeneratorCleanupCheck(probeAsyncGeneratorCleanup);
65
+ //# sourceMappingURL=async-generator-support.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"async-generator-support.js","sourceRoot":"","sources":["../../../src/util/async-generator-support.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD,4EAA4E;AAC5E,MAAM,CAAC,KAAK,UAAU,0BAA0B;IAC/C,IAAI,SAAS,GAAG,KAAK,CAAC;IACtB,KAAK,SAAS,CAAC,CAAC,KAAK;QACpB,IAAI,CAAC;YACJ,KAAK,CAAC;QACP,CAAC;gBAAS,CAAC;YACV,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;YACxB,SAAS,GAAG,IAAI,CAAC;QAClB,CAAC;IACF,CAAC;IACD,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;IACnB,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;IAChB,MAAM,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAC3B,OAAO,SAAS,CAAC;AAClB,CAAC;AAED,MAAM,mBAAmB,GACxB,8FAA8F;IAC9F,wFAAwF;IACxF,+EAA+E;IAC/E,yKAAyK;IACzK,wEAAwE,CAAC;AAE1E;;;;;GAKG;AACH,MAAM,UAAU,gCAAgC,CAAC,KAA6B;IAC7E,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,IAAI,OAAkC,CAAC;IACvC,OAAO,GAAG,EAAE;QACX,IAAI,QAAQ;YAAE,OAAO,SAAS,CAAC;QAC/B,IAAI,CAAC,OAAO,EAAE,CAAC;YACd,OAAO,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;gBAC3B,IAAI,CAAC,EAAE;oBAAE,MAAM,IAAI,YAAY,CAAC,mBAAmB,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;gBAC7E,QAAQ,GAAG,IAAI,CAAC;YACjB,CAAC,CAAC,CAAC;QACJ,CAAC;QACD,OAAO,OAAO,CAAC;IAChB,CAAC,CAAC;AACH,CAAC;AAED,8FAA8F;AAC9F,MAAM,CAAC,MAAM,oCAAoC,GAAG,gCAAgC,CAAC,0BAA0B,CAAC,CAAC"}
@@ -183,7 +183,21 @@ export interface BestAccessPlanRequest {
183
183
  filters: readonly PredicateConstraint[];
184
184
  /** Required ordering that ancestor nodes need (ORDER BY) */
185
185
  requiredOrdering?: readonly OrderingSpec[];
186
- /** LIMIT value known at plan time */
186
+ /**
187
+ * LIMIT value known at plan time, and a licence to stop early.
188
+ *
189
+ * The engine populates this ONLY when it can prove that nothing between this
190
+ * module's scan and the LIMIT can discard a row — so a module may both price
191
+ * against it and truncate to it. When the engine cannot prove that, the field is
192
+ * absent rather than advisory: a module that stopped early under a filter it did
193
+ * not claim would underproduce, and `min(c)` over a scan stopped at one row that
194
+ * is then filtered out would answer NULL instead of the minimum.
195
+ *
196
+ * A module pricing against this must still charge the full row count for any plan
197
+ * that does NOT provide the requested ordering — a Sort above it drains every row
198
+ * regardless of the limit. Applying the bound to only some candidate plans biases
199
+ * the comparison between them.
200
+ */
187
201
  limit?: number | null;
188
202
  /**
189
203
  * OFFSET value known at plan time. Modules pushing LIMIT into the scan
@@ -197,7 +211,22 @@ export interface BestAccessPlanRequest {
197
211
  * starting at the `offset`-th monotonic position.
198
212
  */
199
213
  offset?: number | null;
200
- /** Estimated rows hint from planner (may be unknown) */
214
+ /**
215
+ * The planner's row-count hint, populated ONLY from `ANALYZE`-collected statistics.
216
+ *
217
+ * Three distinct spellings, and the difference is load-bearing:
218
+ * - `undefined` — nobody has measured this table. Every planner site that builds a
219
+ * request sends this rather than substituting a constant, so a module that can size
220
+ * itself (a live row count, a stored cardinality) may fill it in; one that cannot
221
+ * applies its own default.
222
+ * - `0` — measured, and empty. Not "unknown": price against it.
223
+ * - `n > 0` — measured. A module must DEFER to it rather than substituting its own
224
+ * count, since the rest of the plan (join ordering, cache thresholds, sort costs)
225
+ * was costed from the same catalog statistics; a module quietly pricing against a
226
+ * different figure makes the access path disagree with the plan around it.
227
+ *
228
+ * A snapshot from the last `ANALYZE` — rows written afterwards are invisible to it.
229
+ */
201
230
  estimatedRows?: number;
202
231
  }
203
232
  /**
@@ -210,8 +239,29 @@ export interface BestAccessPlanResult {
210
239
  residualFilter?: (row: Row) => boolean;
211
240
  /** Estimated cost in arbitrary virtual CPU units */
212
241
  cost: number;
213
- /** Estimated number of rows this plan will return */
242
+ /**
243
+ * Estimated number of rows this plan will return. An ESTIMATE — never a proof, and
244
+ * nothing in the engine reads a particular value out of it as one. A module that
245
+ * knows its predicate matches nothing says so with {@link provablyEmpty}.
246
+ */
214
247
  rows: number | undefined;
248
+ /**
249
+ * Set only when the module has PROVEN that no row can satisfy the filters it
250
+ * claimed in `handledFilters` (e.g. `IS NULL` on a NOT NULL column). The planner
251
+ * replaces the entire table access with a static empty relation, so this must
252
+ * never be set merely because the table is empty at plan time — planning precedes
253
+ * execution, and a statement can write rows into a table before reading them back.
254
+ * Defaults to false/absent; declining is always safe.
255
+ *
256
+ * Two shapes are module bugs and {@link validateAccessPlan} REJECTS them rather
257
+ * than reconciling them, because silent normalization hides the bug:
258
+ * - `provablyEmpty` with no filter claimed handled — a module cannot prove a
259
+ * predicate unsatisfiable without claiming the predicate;
260
+ * - `provablyEmpty` with `rows` anything other than 0.
261
+ * {@link AccessPlanBuilder.empty} builds the whole answer so neither can happen
262
+ * by accident.
263
+ */
264
+ provablyEmpty?: boolean;
215
265
  /** Ordering guaranteed by this access plan */
216
266
  providesOrdering?: readonly OrderingSpec[];
217
267
  /** Name of the index that provides the ordering (if any) */
@@ -311,6 +361,17 @@ export declare class AccessPlanBuilder {
311
361
  * Create a range scan access plan
312
362
  */
313
363
  static rangeScan(estimatedRows: number, indexCost?: number): AccessPlanBuilder;
364
+ /**
365
+ * Create the whole "nothing can match" answer: cost 0, rows 0, the given filter
366
+ * claims, and {@link BestAccessPlanResult.provablyEmpty} set. The planner deletes
367
+ * the table access outright on this, so build it only from a PROOF that the claimed
368
+ * filters are unsatisfiable — never from a table that happens to be empty right now.
369
+ *
370
+ * `handledFilters` must claim at least one filter (that is the filter being proven
371
+ * unsatisfiable); a claim-nothing proof is a module bug and throws here rather than
372
+ * waiting for {@link validateAccessPlan}, which not every module calls.
373
+ */
374
+ static empty(handledFilters: readonly boolean[]): AccessPlanBuilder;
314
375
  /**
315
376
  * Set the estimated cost of this access plan
316
377
  */
@@ -329,6 +390,13 @@ export declare class AccessPlanBuilder {
329
390
  * Set the estimated number of rows
330
391
  */
331
392
  setRows(rows: number | undefined): this;
393
+ /**
394
+ * Declare that no row can satisfy the filters this plan claims — see
395
+ * {@link BestAccessPlanResult.provablyEmpty}. Prefer {@link AccessPlanBuilder.empty},
396
+ * which sets the whole shape (cost, rows and the flag together); this setter is for a
397
+ * module that already built its plan another way.
398
+ */
399
+ setProvablyEmpty(provablyEmpty: boolean): this;
332
400
  /**
333
401
  * Set which filters are handled by this plan
334
402
  */
@@ -382,6 +450,23 @@ export declare function validateAccessPlanRequest(request: BestAccessPlanRequest
382
450
  /**
383
451
  * Validation function for access plan results
384
452
  * Throws if the plan violates basic contracts
453
+ *
454
+ * `moduleName` is optional and only sharpens the error messages — pass
455
+ * `tableInfo.vtabModuleName` where it is in scope.
456
+ */
457
+ export declare function validateAccessPlan(request: BestAccessPlanRequest, result: BestAccessPlanResult, moduleName?: string): void;
458
+ /**
459
+ * True when a plan carries a well-formed PROOF that nothing can match — the exact shape
460
+ * {@link validateAccessPlan} enforces for {@link BestAccessPlanResult.provablyEmpty}:
461
+ * the flag set, `rows: 0`, and at least one filter claimed as handled.
462
+ *
463
+ * The planner deletes a table access outright on this, so the test lives beside the
464
+ * validation it mirrors rather than being restated in a rule: a module that never
465
+ * validates its own plan (the store module does not) still cannot fold an access away
466
+ * with a half-expressed proof.
467
+ *
468
+ * One claimed filter is enough — the proof is about that filter, and it holds whatever
469
+ * the engine does with the unclaimed ones, all of which can only remove more rows.
385
470
  */
386
- export declare function validateAccessPlan(request: BestAccessPlanRequest, result: BestAccessPlanResult): void;
471
+ export declare function provesEmpty(result: BestAccessPlanResult): boolean;
387
472
  //# sourceMappingURL=best-access-plan.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"best-access-plan.d.ts","sourceRoot":"","sources":["../../../src/vtab/best-access-plan.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"best-access-plan.d.ts","sourceRoot":"","sources":["../../../src/vtab/best-access-plan.ts"],"names":[],"mappings":"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"}
@@ -158,6 +158,27 @@ export class AccessPlanBuilder {
158
158
  .setRows(estimatedRows)
159
159
  .setExplanation('Index range scan');
160
160
  }
161
+ /**
162
+ * Create the whole "nothing can match" answer: cost 0, rows 0, the given filter
163
+ * claims, and {@link BestAccessPlanResult.provablyEmpty} set. The planner deletes
164
+ * the table access outright on this, so build it only from a PROOF that the claimed
165
+ * filters are unsatisfiable — never from a table that happens to be empty right now.
166
+ *
167
+ * `handledFilters` must claim at least one filter (that is the filter being proven
168
+ * unsatisfiable); a claim-nothing proof is a module bug and throws here rather than
169
+ * waiting for {@link validateAccessPlan}, which not every module calls.
170
+ */
171
+ static empty(handledFilters) {
172
+ if (!handledFilters.some(h => h)) {
173
+ quereusError('AccessPlanBuilder.empty requires at least one handled filter: a module cannot prove a predicate unsatisfiable without claiming the predicate', StatusCode.INTERNAL);
174
+ }
175
+ return new AccessPlanBuilder()
176
+ .setCost(0)
177
+ .setRows(0)
178
+ .setHandledFilters(handledFilters)
179
+ .setProvablyEmpty(true)
180
+ .setExplanation('Empty result (predicate proven unsatisfiable)');
181
+ }
161
182
  /**
162
183
  * Set the estimated cost of this access plan
163
184
  */
@@ -188,6 +209,16 @@ export class AccessPlanBuilder {
188
209
  this.result.rows = rows;
189
210
  return this;
190
211
  }
212
+ /**
213
+ * Declare that no row can satisfy the filters this plan claims — see
214
+ * {@link BestAccessPlanResult.provablyEmpty}. Prefer {@link AccessPlanBuilder.empty},
215
+ * which sets the whole shape (cost, rows and the flag together); this setter is for a
216
+ * module that already built its plan another way.
217
+ */
218
+ setProvablyEmpty(provablyEmpty) {
219
+ this.result.provablyEmpty = provablyEmpty;
220
+ return this;
221
+ }
191
222
  /**
192
223
  * Set which filters are handled by this plan
193
224
  */
@@ -271,6 +302,13 @@ export class AccessPlanBuilder {
271
302
  * never to deliver, so it is an engine bug rather than a pessimistic guess.
272
303
  */
273
304
  export function validateAccessPlanRequest(request) {
305
+ // `undefined` is the legal spelling of "unknown" and every planner site sends it for a
306
+ // never-analyzed table, so only a PRESENT value is checked. A measured `0` (analyzed,
307
+ // empty) is valid and must survive — the module is entitled to price against it.
308
+ if (request.estimatedRows !== undefined
309
+ && (!Number.isInteger(request.estimatedRows) || request.estimatedRows < 0)) {
310
+ quereusError(`estimatedRows must be a non-negative integer or undefined, got ${request.estimatedRows}`, StatusCode.FORMAT);
311
+ }
274
312
  for (const filter of request.filters) {
275
313
  if (!filter.runtimeSet)
276
314
  continue;
@@ -292,9 +330,13 @@ export function validateAccessPlanRequest(request) {
292
330
  /**
293
331
  * Validation function for access plan results
294
332
  * Throws if the plan violates basic contracts
333
+ *
334
+ * `moduleName` is optional and only sharpens the error messages — pass
335
+ * `tableInfo.vtabModuleName` where it is in scope.
295
336
  */
296
- export function validateAccessPlan(request, result) {
337
+ export function validateAccessPlan(request, result, moduleName) {
297
338
  validateAccessPlanRequest(request);
339
+ const by = moduleName ? ` (module '${moduleName}')` : '';
298
340
  // Validate handledFilters array length
299
341
  if (result.handledFilters.length !== request.filters.length) {
300
342
  quereusError(`handledFilters length (${result.handledFilters.length}) must match filters length (${request.filters.length})`, StatusCode.FORMAT);
@@ -307,6 +349,21 @@ export function validateAccessPlan(request, result) {
307
349
  if (result.rows !== undefined && result.rows < 0) {
308
350
  quereusError(`Access plan rows cannot be negative: ${result.rows}`, StatusCode.INTERNAL);
309
351
  }
352
+ // `provablyEmpty` deletes the whole table access, so the two shapes that would make it
353
+ // a lie are module bugs, not something to reconcile: a proof that claims no predicate,
354
+ // and a proof that also reports rows it would return. Rejecting keeps the bug at the
355
+ // boundary where the module can still be fixed; normalizing would bury it.
356
+ //
357
+ // The same two conditions are what {@link provesEmpty} tests; the checks are spelled out
358
+ // separately here only to name which one failed. Change one, change the other.
359
+ if (result.provablyEmpty) {
360
+ if (!result.handledFilters.some(h => h)) {
361
+ quereusError(`Access plan${by} sets provablyEmpty but claims no filter as handled; a module cannot prove a predicate unsatisfiable without claiming the predicate`, StatusCode.INTERNAL);
362
+ }
363
+ if (result.rows !== 0) {
364
+ quereusError(`Access plan${by} sets provablyEmpty but reports rows: ${result.rows}; a proven-empty plan returns 0 rows`, StatusCode.INTERNAL);
365
+ }
366
+ }
310
367
  // Validate ordering column indexes
311
368
  if (result.providesOrdering) {
312
369
  for (const order of result.providesOrdering) {
@@ -359,4 +416,22 @@ export function validateAccessPlan(request, result) {
359
416
  quereusError('supportsAsofRight requires monotonicOn to be set', StatusCode.FORMAT);
360
417
  }
361
418
  }
419
+ /**
420
+ * True when a plan carries a well-formed PROOF that nothing can match — the exact shape
421
+ * {@link validateAccessPlan} enforces for {@link BestAccessPlanResult.provablyEmpty}:
422
+ * the flag set, `rows: 0`, and at least one filter claimed as handled.
423
+ *
424
+ * The planner deletes a table access outright on this, so the test lives beside the
425
+ * validation it mirrors rather than being restated in a rule: a module that never
426
+ * validates its own plan (the store module does not) still cannot fold an access away
427
+ * with a half-expressed proof.
428
+ *
429
+ * One claimed filter is enough — the proof is about that filter, and it holds whatever
430
+ * the engine does with the unclaimed ones, all of which can only remove more rows.
431
+ */
432
+ export function provesEmpty(result) {
433
+ return result.provablyEmpty === true
434
+ && result.rows === 0
435
+ && result.handledFilters.some(h => h);
436
+ }
362
437
  //# sourceMappingURL=best-access-plan.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"best-access-plan.js","sourceRoot":"","sources":["../../../src/vtab/best-access-plan.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"best-access-plan.js","sourceRoot":"","sources":["../../../src/vtab/best-access-plan.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../../src/vtab/memory/module.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../../src/vtab/memory/module.ts"],"names":[],"mappings":"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"}
@@ -118,9 +118,15 @@ function estimateEqualityRows(tableInfo, index, eqCols, inCardinality, estimated
118
118
  const perKey = isUniqueIndex(index)
119
119
  ? 1
120
120
  : Math.max(1, Math.floor(estimatedTableSize * equalityTupleSelectivity(tableInfo, eqCols)));
121
- // A seek cannot return more rows than the table holds. `Math.max(1, …)` guards the
122
- // `rows: 0` fold in `rule-select-access-path.selectPhysicalNode`, which replaces a
123
- // fully-handled zero-row access with an `EmptyResultNode`.
121
+ // A seek cannot return more rows than the table holds.
122
+ //
123
+ // NOTE: the `Math.max(1, …)` floor is now conservative rather than load-bearing. It
124
+ // once guarded the `rows: 0` fold in `rule-select-access-path.selectPhysicalNode`,
125
+ // which folded any fully-handled zero-row access to an `EmptyResultNode`; that fold
126
+ // reads `provablyEmpty` now, so a zero estimate is only an estimate. Kept because
127
+ // dropping it changes what the cost model sees (a 0-row seek prices below every rival
128
+ // and wins plans it should not); revisit if a genuine zero estimate ever needs to
129
+ // reach the cost model.
124
130
  return Math.max(1, Math.min(estimatedTableSize, inCardinality * perKey));
125
131
  }
126
132
  /**
@@ -371,14 +377,24 @@ export class MemoryTableModule {
371
377
  */
372
378
  getBestAccessPlan(db, tableInfo, request) {
373
379
  logger.debugLog(`[getBestAccessPlan] Planning access for ${tableInfo.name} with ${request.filters.length} filters`);
374
- // Get table size estimate for cost calculations.
375
- // The schema defaults estimatedRows to 0 at creation time, so treat 0 as
376
- // "unknown" and fall back to a reasonable default to avoid degenerate costs.
380
+ // Get table size estimate for cost calculations. An un-analyzed table
381
+ // arrives as `undefined` ("nobody knows"); fall back to a reasonable
382
+ // default to avoid degenerate costs. (`||` also catches an analyzed empty
383
+ // table — a plan over 0 rows is cheap under any default, so that is fine.)
384
+ //
385
+ // NOTE: this constant is now the SOLE fallback for an un-analyzed table. Every
386
+ // planner site that builds a `BestAccessPlanRequest` sends `undefined` rather than
387
+ // substituting 1000 of its own, precisely so a module that can size itself gets the
388
+ // chance. This module COULD take it — `MemoryTableManager.getBaseLayerStats()` is
389
+ // the committed BTree's node count in O(1), reachable from `this.tables` — and
390
+ // deliberately does not yet, because switching every un-analyzed memory table from
391
+ // a flat 1000 to its real size re-prices the default backend under the entire test
392
+ // suite. Tracked as `feat-memory-backend-sizes-itself`; do not "fix" it in passing.
377
393
  const estimatedTableSize = request.estimatedRows || 1000;
378
394
  // Find the best access strategy
379
395
  const bestPlan = this.findBestAccessPlan(tableInfo, request, estimatedTableSize);
380
396
  // Validate the plan before returning
381
- validateAccessPlan(request, bestPlan);
397
+ validateAccessPlan(request, bestPlan, tableInfo.vtabModuleName);
382
398
  logger.debugLog(`[getBestAccessPlan] Selected plan: ${bestPlan.explains} (cost: ${bestPlan.cost}, rows: ${bestPlan.rows})`);
383
399
  // The in-memory scan layer threads each index column's declared collation into
384
400
  // the range-bound filter and early-termination (scan-plan → plan-filter /
@@ -396,11 +412,11 @@ export class MemoryTableModule {
396
412
  if (filter.op === 'IS NULL') {
397
413
  const col = tableInfo.columns[filter.columnIndex];
398
414
  if (col?.notNull) {
415
+ // A PROOF, not an estimate: no value satisfies `IS NULL` on a NOT NULL
416
+ // column, whatever the table holds now or after this statement writes to
417
+ // it. `empty()` sets cost/rows/`provablyEmpty` together.
399
418
  return AccessPlanBuilder
400
- .fullScan(0)
401
- .setCost(0)
402
- .setRows(0)
403
- .setHandledFilters(new Array(request.filters.length).fill(true))
419
+ .empty(new Array(request.filters.length).fill(true))
404
420
  .setExplanation('Empty result (IS NULL on NOT NULL column)')
405
421
  .build();
406
422
  }
@@ -1 +1 @@
1
- {"version":3,"file":"module.js","sourceRoot":"","sources":["../../../../src/vtab/memory/module.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"module.js","sourceRoot":"","sources":["../../../../src/vtab/memory/module.ts"],"names":[],"mappings":"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"}
@@ -164,6 +164,13 @@ export interface VirtualTableModule<TTable extends VirtualTable, TConfig extends
164
164
  * index-driven access paths (an index-driven plan and a full scan of the same
165
165
  * connection must agree).
166
166
  *
167
+ * **The pinned state must be re-taken per scan.** "At or before the read began"
168
+ * is an upper bound only; the matching lower bound is that a committed read
169
+ * beginning after a commit has landed must observe it, so a committed read is
170
+ * never staler than an ordinary read taken at the same instant. A connection
171
+ * that captures one state and serves it across statements does NOT meet this
172
+ * declaration, however coherent each individual scan looks.
173
+ *
167
174
  * Omit (default `false`) to decline the engine's concurrent committed-read
168
175
  * path; reads against this module then keep taking today's serialized path.
169
176
  * Declining is not a defect — `_readCommitted` on its own still means only