@quereus/quereus 4.15.2 → 4.17.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 (193) hide show
  1. package/dist/src/core/database-auto-analyze.d.ts +258 -0
  2. package/dist/src/core/database-auto-analyze.d.ts.map +1 -0
  3. package/dist/src/core/database-auto-analyze.js +616 -0
  4. package/dist/src/core/database-auto-analyze.js.map +1 -0
  5. package/dist/src/core/database-materialized-views.d.ts +42 -1
  6. package/dist/src/core/database-materialized-views.d.ts.map +1 -1
  7. package/dist/src/core/database-materialized-views.js +76 -3
  8. package/dist/src/core/database-materialized-views.js.map +1 -1
  9. package/dist/src/core/database-transaction.d.ts +17 -0
  10. package/dist/src/core/database-transaction.d.ts.map +1 -1
  11. package/dist/src/core/database-transaction.js +37 -0
  12. package/dist/src/core/database-transaction.js.map +1 -1
  13. package/dist/src/core/database.d.ts +8 -1
  14. package/dist/src/core/database.d.ts.map +1 -1
  15. package/dist/src/core/database.js +135 -5
  16. package/dist/src/core/database.js.map +1 -1
  17. package/dist/src/index.d.ts +1 -1
  18. package/dist/src/index.d.ts.map +1 -1
  19. package/dist/src/index.js +1 -1
  20. package/dist/src/index.js.map +1 -1
  21. package/dist/src/planner/analysis/change-scope.d.ts.map +1 -1
  22. package/dist/src/planner/analysis/change-scope.js +8 -8
  23. package/dist/src/planner/analysis/change-scope.js.map +1 -1
  24. package/dist/src/planner/analysis/constraint-extractor.d.ts.map +1 -1
  25. package/dist/src/planner/analysis/constraint-extractor.js +27 -14
  26. package/dist/src/planner/analysis/constraint-extractor.js.map +1 -1
  27. package/dist/src/planner/analysis/expression-fingerprint.d.ts.map +1 -1
  28. package/dist/src/planner/analysis/expression-fingerprint.js +23 -2
  29. package/dist/src/planner/analysis/expression-fingerprint.js.map +1 -1
  30. package/dist/src/planner/analysis/mv-body-functions.d.ts +46 -0
  31. package/dist/src/planner/analysis/mv-body-functions.d.ts.map +1 -0
  32. package/dist/src/planner/analysis/mv-body-functions.js +65 -0
  33. package/dist/src/planner/analysis/mv-body-functions.js.map +1 -0
  34. package/dist/src/planner/analysis/predicate-shape.d.ts +32 -4
  35. package/dist/src/planner/analysis/predicate-shape.d.ts.map +1 -1
  36. package/dist/src/planner/analysis/predicate-shape.js +37 -5
  37. package/dist/src/planner/analysis/predicate-shape.js.map +1 -1
  38. package/dist/src/planner/analysis/query-rewrite-matcher.d.ts +2 -2
  39. package/dist/src/planner/analysis/query-rewrite-matcher.d.ts.map +1 -1
  40. package/dist/src/planner/analysis/query-rewrite-matcher.js +46 -6
  41. package/dist/src/planner/analysis/query-rewrite-matcher.js.map +1 -1
  42. package/dist/src/planner/analysis/sat-checker.js +2 -5
  43. package/dist/src/planner/analysis/sat-checker.js.map +1 -1
  44. package/dist/src/planner/building/select-aggregates.d.ts +17 -5
  45. package/dist/src/planner/building/select-aggregates.d.ts.map +1 -1
  46. package/dist/src/planner/building/select-aggregates.js +122 -79
  47. package/dist/src/planner/building/select-aggregates.js.map +1 -1
  48. package/dist/src/planner/building/select-modifiers.d.ts +1 -1
  49. package/dist/src/planner/building/select.d.ts.map +1 -1
  50. package/dist/src/planner/building/select.js +73 -55
  51. package/dist/src/planner/building/select.js.map +1 -1
  52. package/dist/src/planner/cost/index.d.ts +14 -0
  53. package/dist/src/planner/cost/index.d.ts.map +1 -1
  54. package/dist/src/planner/cost/index.js +19 -0
  55. package/dist/src/planner/cost/index.js.map +1 -1
  56. package/dist/src/planner/nodes/limit-offset.d.ts.map +1 -1
  57. package/dist/src/planner/nodes/limit-offset.js +3 -2
  58. package/dist/src/planner/nodes/limit-offset.js.map +1 -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 +31 -7
  61. package/dist/src/planner/nodes/table-access-nodes.js.map +1 -1
  62. package/dist/src/planner/optimizer-tuning.d.ts +10 -6
  63. package/dist/src/planner/optimizer-tuning.d.ts.map +1 -1
  64. package/dist/src/planner/optimizer-tuning.js.map +1 -1
  65. package/dist/src/planner/optimizer.d.ts.map +1 -1
  66. package/dist/src/planner/optimizer.js +24 -0
  67. package/dist/src/planner/optimizer.js.map +1 -1
  68. package/dist/src/planner/rules/access/rule-monotonic-range-access.d.ts.map +1 -1
  69. package/dist/src/planner/rules/access/rule-monotonic-range-access.js +8 -4
  70. package/dist/src/planner/rules/access/rule-monotonic-range-access.js.map +1 -1
  71. package/dist/src/planner/rules/access/rule-select-access-path.d.ts +14 -0
  72. package/dist/src/planner/rules/access/rule-select-access-path.d.ts.map +1 -1
  73. package/dist/src/planner/rules/access/rule-select-access-path.js +5 -1
  74. package/dist/src/planner/rules/access/rule-select-access-path.js.map +1 -1
  75. package/dist/src/planner/rules/aggregate/rule-groupby-fd-simplification.d.ts +3 -1
  76. package/dist/src/planner/rules/aggregate/rule-groupby-fd-simplification.d.ts.map +1 -1
  77. package/dist/src/planner/rules/aggregate/rule-groupby-fd-simplification.js +8 -3
  78. package/dist/src/planner/rules/aggregate/rule-groupby-fd-simplification.js.map +1 -1
  79. package/dist/src/planner/rules/aggregate/rule-minmax-index-boundary.d.ts +47 -0
  80. package/dist/src/planner/rules/aggregate/rule-minmax-index-boundary.d.ts.map +1 -0
  81. package/dist/src/planner/rules/aggregate/rule-minmax-index-boundary.js +200 -0
  82. package/dist/src/planner/rules/aggregate/rule-minmax-index-boundary.js.map +1 -0
  83. package/dist/src/planner/rules/cache/rule-nested-loop-right-cache.d.ts +29 -0
  84. package/dist/src/planner/rules/cache/rule-nested-loop-right-cache.d.ts.map +1 -1
  85. package/dist/src/planner/rules/cache/rule-nested-loop-right-cache.js +55 -16
  86. package/dist/src/planner/rules/cache/rule-nested-loop-right-cache.js.map +1 -1
  87. package/dist/src/planner/rules/join/index-nested-loop.d.ts +96 -22
  88. package/dist/src/planner/rules/join/index-nested-loop.d.ts.map +1 -1
  89. package/dist/src/planner/rules/join/index-nested-loop.js +401 -82
  90. package/dist/src/planner/rules/join/index-nested-loop.js.map +1 -1
  91. package/dist/src/planner/rules/join/rule-fanout-batched-outer.d.ts +20 -0
  92. package/dist/src/planner/rules/join/rule-fanout-batched-outer.d.ts.map +1 -1
  93. package/dist/src/planner/rules/join/rule-fanout-batched-outer.js +23 -4
  94. package/dist/src/planner/rules/join/rule-fanout-batched-outer.js.map +1 -1
  95. package/dist/src/planner/rules/join/rule-join-greedy-commute.d.ts.map +1 -1
  96. package/dist/src/planner/rules/join/rule-join-greedy-commute.js +7 -0
  97. package/dist/src/planner/rules/join/rule-join-greedy-commute.js.map +1 -1
  98. package/dist/src/planner/rules/join/rule-join-physical-selection.d.ts +19 -2
  99. package/dist/src/planner/rules/join/rule-join-physical-selection.d.ts.map +1 -1
  100. package/dist/src/planner/rules/join/rule-join-physical-selection.js +262 -40
  101. package/dist/src/planner/rules/join/rule-join-physical-selection.js.map +1 -1
  102. package/dist/src/planner/rules/predicate/rule-sargable-range-rewrite.d.ts.map +1 -1
  103. package/dist/src/planner/rules/predicate/rule-sargable-range-rewrite.js +2 -1
  104. package/dist/src/planner/rules/predicate/rule-sargable-range-rewrite.js.map +1 -1
  105. package/dist/src/planner/rules/retrieve/rule-grow-retrieve.d.ts +21 -0
  106. package/dist/src/planner/rules/retrieve/rule-grow-retrieve.d.ts.map +1 -1
  107. package/dist/src/planner/rules/retrieve/rule-grow-retrieve.js +24 -6
  108. package/dist/src/planner/rules/retrieve/rule-grow-retrieve.js.map +1 -1
  109. package/dist/src/planner/rules/shared/access-leaf.d.ts +12 -12
  110. package/dist/src/planner/rules/shared/access-leaf.d.ts.map +1 -1
  111. package/dist/src/planner/rules/shared/access-leaf.js +3 -14
  112. package/dist/src/planner/rules/shared/access-leaf.js.map +1 -1
  113. package/dist/src/planner/stats/analyze.d.ts.map +1 -1
  114. package/dist/src/planner/stats/analyze.js +9 -3
  115. package/dist/src/planner/stats/analyze.js.map +1 -1
  116. package/dist/src/planner/stats/catalog-stats.d.ts.map +1 -1
  117. package/dist/src/planner/stats/catalog-stats.js +6 -10
  118. package/dist/src/planner/stats/catalog-stats.js.map +1 -1
  119. package/dist/src/planner/type-utils.d.ts.map +1 -1
  120. package/dist/src/planner/type-utils.js +3 -5
  121. package/dist/src/planner/type-utils.js.map +1 -1
  122. package/dist/src/planner/util/fd-utils.d.ts.map +1 -1
  123. package/dist/src/planner/util/fd-utils.js +4 -7
  124. package/dist/src/planner/util/fd-utils.js.map +1 -1
  125. package/dist/src/runtime/emit/alter-table.d.ts.map +1 -1
  126. package/dist/src/runtime/emit/alter-table.js +58 -4
  127. package/dist/src/runtime/emit/alter-table.js.map +1 -1
  128. package/dist/src/runtime/emit/analyze.d.ts.map +1 -1
  129. package/dist/src/runtime/emit/analyze.js +1 -2
  130. package/dist/src/runtime/emit/analyze.js.map +1 -1
  131. package/dist/src/runtime/emit/binary.d.ts.map +1 -1
  132. package/dist/src/runtime/emit/binary.js +5 -3
  133. package/dist/src/runtime/emit/binary.js.map +1 -1
  134. package/dist/src/runtime/emit/fanout-lookup-join.d.ts.map +1 -1
  135. package/dist/src/runtime/emit/fanout-lookup-join.js +9 -1
  136. package/dist/src/runtime/emit/fanout-lookup-join.js.map +1 -1
  137. package/dist/src/runtime/emit/limit-offset.d.ts.map +1 -1
  138. package/dist/src/runtime/emit/limit-offset.js +50 -24
  139. package/dist/src/runtime/emit/limit-offset.js.map +1 -1
  140. package/dist/src/runtime/emit/materialized-view-helpers.d.ts +33 -2
  141. package/dist/src/runtime/emit/materialized-view-helpers.d.ts.map +1 -1
  142. package/dist/src/runtime/emit/materialized-view-helpers.js +61 -5
  143. package/dist/src/runtime/emit/materialized-view-helpers.js.map +1 -1
  144. package/dist/src/runtime/emit/materialized-view.d.ts.map +1 -1
  145. package/dist/src/runtime/emit/materialized-view.js +6 -1
  146. package/dist/src/runtime/emit/materialized-view.js.map +1 -1
  147. package/dist/src/runtime/emit/ordinal-slice.d.ts.map +1 -1
  148. package/dist/src/runtime/emit/ordinal-slice.js +8 -0
  149. package/dist/src/runtime/emit/ordinal-slice.js.map +1 -1
  150. package/dist/src/schema/derivation.d.ts +15 -1
  151. package/dist/src/schema/derivation.d.ts.map +1 -1
  152. package/dist/src/schema/derivation.js.map +1 -1
  153. package/dist/src/schema/function.d.ts +9 -4
  154. package/dist/src/schema/function.d.ts.map +1 -1
  155. package/dist/src/schema/function.js +11 -9
  156. package/dist/src/schema/function.js.map +1 -1
  157. package/dist/src/schema/schema.d.ts +14 -3
  158. package/dist/src/schema/schema.d.ts.map +1 -1
  159. package/dist/src/schema/schema.js +20 -2
  160. package/dist/src/schema/schema.js.map +1 -1
  161. package/dist/src/schema/table.d.ts +27 -0
  162. package/dist/src/schema/table.d.ts.map +1 -1
  163. package/dist/src/schema/table.js +55 -0
  164. package/dist/src/schema/table.js.map +1 -1
  165. package/dist/src/schema/unique-enforcement.d.ts +6 -13
  166. package/dist/src/schema/unique-enforcement.d.ts.map +1 -1
  167. package/dist/src/schema/unique-enforcement.js +8 -17
  168. package/dist/src/schema/unique-enforcement.js.map +1 -1
  169. package/dist/src/util/comparison.d.ts +19 -0
  170. package/dist/src/util/comparison.d.ts.map +1 -1
  171. package/dist/src/util/comparison.js +22 -0
  172. package/dist/src/util/comparison.js.map +1 -1
  173. package/dist/src/vtab/best-access-plan.d.ts +34 -0
  174. package/dist/src/vtab/best-access-plan.d.ts.map +1 -1
  175. package/dist/src/vtab/best-access-plan.js +64 -0
  176. package/dist/src/vtab/best-access-plan.js.map +1 -1
  177. package/dist/src/vtab/index-descriptor.d.ts +9 -0
  178. package/dist/src/vtab/index-descriptor.d.ts.map +1 -1
  179. package/dist/src/vtab/index-descriptor.js +15 -0
  180. package/dist/src/vtab/index-descriptor.js.map +1 -1
  181. package/dist/src/vtab/memory/layer/manager.d.ts +11 -9
  182. package/dist/src/vtab/memory/layer/manager.d.ts.map +1 -1
  183. package/dist/src/vtab/memory/layer/manager.js +12 -43
  184. package/dist/src/vtab/memory/layer/manager.js.map +1 -1
  185. package/dist/src/vtab/memory/module.d.ts +18 -0
  186. package/dist/src/vtab/memory/module.d.ts.map +1 -1
  187. package/dist/src/vtab/memory/module.js +176 -24
  188. package/dist/src/vtab/memory/module.js.map +1 -1
  189. package/dist/src/vtab/memory/table.d.ts +27 -3
  190. package/dist/src/vtab/memory/table.d.ts.map +1 -1
  191. package/dist/src/vtab/memory/table.js +28 -59
  192. package/dist/src/vtab/memory/table.js.map +1 -1
  193. package/package.json +3 -3
@@ -0,0 +1,65 @@
1
+ /**
2
+ * Capture of **which registered functions** a maintained table's body resolved to.
3
+ *
4
+ * A materialized view's backing rows are produced by the function registrations that
5
+ * were live when its maintenance plan was built. Registration overwrites by
6
+ * `(name, argument count)`, so a later `db.createAggregateFunction('sum', …)` can make
7
+ * the same name mean something else without touching the stored rows. Comparing names
8
+ * therefore proves nothing; the read-side rewrite compares the LIVE resolution of a
9
+ * name against the schema captured here, by object identity.
10
+ *
11
+ * Written once per registration into
12
+ * {@link import('../../schema/derivation.js').TableDerivation.bodyFunctions} and read by
13
+ * the aggregate arm of `query-rewrite-matcher.ts`.
14
+ */
15
+ import { getFunctionKey } from '../../schema/function.js';
16
+ import { walkAstNodes } from './predicate-shape.js';
17
+ /**
18
+ * Every function call anywhere in `body`, resolved against the live registry and keyed
19
+ * by `getFunctionKey(name, argc)`. The walk is the reflective whole-body one
20
+ * ({@link walkAstNodes}), so select-list items, WHERE, GROUP BY, HAVING, ORDER BY and
21
+ * any nested subquery are all covered — a visitor enumeration cannot silently miss a
22
+ * clause and leave a consumed function unwitnessed.
23
+ *
24
+ * A name resolving to nothing is simply absent; the read-side gate treats an absent
25
+ * entry as "cannot vouch" and declines the rewrite (always safe — the query is computed
26
+ * from the base tables instead).
27
+ */
28
+ export function captureBodyFunctions(body, resolve) {
29
+ const out = new Map();
30
+ for (const node of walkAstNodes(body)) {
31
+ if (node.type !== 'function')
32
+ continue;
33
+ const fn = node;
34
+ const argc = fn.args?.length ?? 0;
35
+ const key = getFunctionKey(fn.name, argc);
36
+ if (out.has(key))
37
+ continue;
38
+ const schema = resolve(fn.name, argc);
39
+ if (schema)
40
+ out.set(key, schema);
41
+ }
42
+ return out;
43
+ }
44
+ /**
45
+ * The `(name, argument count)` keys whose resolution CHANGED between two captures — the
46
+ * witness that a maintained table's stored rows and a freshly built maintenance plan
47
+ * disagree about what one of the body's functions means.
48
+ *
49
+ * Compared by object identity over the union of both key sets, so all three ways a call
50
+ * site can move count: it resolves to a different registration, it resolved before and
51
+ * no longer does, or it resolves now and did not before. Comparing names would prove
52
+ * nothing — registration overwrites by `(name, argument count)`, so the name is stable
53
+ * across exactly the takeover this detects.
54
+ *
55
+ * Keys are returned sorted so the diagnostic reads the same run to run; empty ⇒ no drift.
56
+ */
57
+ export function detectBodyFunctionDrift(prior, current) {
58
+ const drifted = [];
59
+ for (const key of new Set([...prior.keys(), ...current.keys()])) {
60
+ if (prior.get(key) !== current.get(key))
61
+ drifted.push(key);
62
+ }
63
+ return drifted.sort();
64
+ }
65
+ //# sourceMappingURL=mv-body-functions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mv-body-functions.js","sourceRoot":"","sources":["../../../../src/planner/analysis/mv-body-functions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,EAAE,cAAc,EAAuB,MAAM,0BAA0B,CAAC;AAC/E,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAMpD;;;;;;;;;;GAUG;AACH,MAAM,UAAU,oBAAoB,CACnC,IAAmB,EACnB,OAA6B;IAE7B,MAAM,GAAG,GAAG,IAAI,GAAG,EAA0B,CAAC;IAC9C,KAAK,MAAM,IAAI,IAAI,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;QACvC,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU;YAAE,SAAS;QACvC,MAAM,EAAE,GAAG,IAAwB,CAAC;QACpC,MAAM,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,IAAI,CAAC,CAAC;QAClC,MAAM,GAAG,GAAG,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC1C,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,SAAS;QAC3B,MAAM,MAAM,GAAG,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACtC,IAAI,MAAM;YAAE,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAClC,CAAC;IACD,OAAO,GAAG,CAAC;AACZ,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,uBAAuB,CACtC,KAA0C,EAC1C,OAA4C;IAE5C,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,MAAM,GAAG,IAAI,IAAI,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;QACjE,IAAI,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC5D,CAAC;IACD,OAAO,OAAO,CAAC,IAAI,EAAE,CAAC;AACvB,CAAC"}
@@ -7,9 +7,21 @@
7
7
  * These helpers are intentionally syntactic — they do not interpret types,
8
8
  * collations, or coercions. Callers wanting semantic equivalence should layer
9
9
  * that on top.
10
+ *
11
+ * {@link literalValue} and {@link planTimeLiteralValue} are the two shared answers to
12
+ * "does this literal have a value I can use at plan time?" — `literalValue` for callers
13
+ * already holding a `LiteralNode` (or its AST expression), `planTimeLiteralValue` for a
14
+ * scalar plan node of unknown type. Both reject a `LiteralNode` whose value is a
15
+ * still-pending Promise (a folded async constant such as `(select 1)`; see
16
+ * `docs/optimizer-const.md` §4). Reading `expression.value` directly instead has produced
17
+ * both crashes and wrong results, so new code should route through these rather than
18
+ * open-coding another `instanceof Promise` test or casting the value to plain `SqlValue`
19
+ * (`AST.LiteralExpr.value` is honestly typed `MaybePromise<SqlValue>` — the compiler
20
+ * catches every honest reader, so a cast is the only way to reintroduce the bug).
10
21
  */
11
22
  import type * as AST from '../../parser/ast.js';
12
23
  import type { SqlValue } from '../../common/types.js';
24
+ import type { ScalarPlanNode } from '../nodes/plan-node.js';
13
25
  /**
14
26
  * Resolves an AST column/identifier expression to a base-table column index, or
15
27
  * `undefined` when it is not a (recognized) column of the frame. The default
@@ -41,6 +53,20 @@ export declare function columnIndexFromExpr(expr: AST.Expression, columnIndexMap
41
53
  * compile-time literals count for binding/domain purposes.
42
54
  */
43
55
  export declare function literalValue(expr: AST.Expression): SqlValue | undefined;
56
+ /**
57
+ * The plan-time constant value of an already-unwrapped scalar node, or `undefined`
58
+ * when the node is not a plan-time constant — including a `LiteralNode` holding a
59
+ * still-pending Promise (a folded async subquery constant), whose value is unknown
60
+ * until runtime. `undefined` means "not a constant"; SQL `NULL` is a legitimate
61
+ * constant value and is returned as `null`, not `undefined`.
62
+ *
63
+ * Callers keep their own cast-unwrapping policy (see `unwrapCast` in
64
+ * `constraint-extractor.ts` and `rule-sargable-range-rewrite.ts`, which differ
65
+ * deliberately) — this decides only "is it a constant", delegating the value test
66
+ * to {@link literalValue} so a pending Promise is treated identically here and
67
+ * there.
68
+ */
69
+ export declare function planTimeLiteralValue(node: ScalarPlanNode): SqlValue | undefined;
44
70
  /**
45
71
  * Flip a comparison operator across its operands: if you rewrite `b op a` as
46
72
  * `a flipComparison(op) b`, the truth value is preserved. Unrecognized
@@ -61,13 +87,15 @@ export declare function flipComparison(op: string): string;
61
87
  */
62
88
  export declare function flattenDisjunction(expr: AST.Expression): AST.Expression[];
63
89
  /**
64
- * Depth-first iteration over every AST node in `expr`'s subtree. Children are
90
+ * Depth-first iteration over every AST node in `root`'s subtree. Children are
65
91
  * discovered reflectively (any object/array property carrying a `type` field)
66
92
  * rather than via a typed visitor table, so soundness-sensitive walkers (the
67
- * collation gate, the non-determinism screen) cannot silently miss node kinds
68
- * a visitor enumeration forgot.
93
+ * collation gate, the non-determinism screen, the MV body-function capture)
94
+ * cannot silently miss node kinds a visitor enumeration forgot. Accepts any
95
+ * `AstNode`, so a whole statement (e.g. a materialized view's body `QueryExpr`)
96
+ * walks the same way a bare expression does.
69
97
  */
70
- export declare function walkAstNodes(expr: AST.Expression): IterableIterator<AST.AstNode>;
98
+ export declare function walkAstNodes(root: AST.AstNode): IterableIterator<AST.AstNode>;
71
99
  /**
72
100
  * Collect the collation name of every COLLATE node anywhere in `expr`'s
73
101
  * subtree, as written (uninterpreted — no normalization). Empty array when the
@@ -1 +1 @@
1
- {"version":3,"file":"predicate-shape.d.ts","sourceRoot":"","sources":["../../../../src/planner/analysis/predicate-shape.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,KAAK,GAAG,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEtD;;;;;;;GAOG;AACH,MAAM,MAAM,mBAAmB,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,UAAU,KAAK,MAAM,GAAG,SAAS,CAAC;AAE/E;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,mBAAmB,CAClC,IAAI,EAAE,GAAG,CAAC,UAAU,EACpB,cAAc,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,GACzC,MAAM,GAAG,SAAS,CAWpB;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,GAAG,CAAC,UAAU,GAAG,QAAQ,GAAG,SAAS,CAMvE;AAED;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAQjD;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC,UAAU,EAAE,CAczE;AAED;;;;;;GAMG;AACH,wBAAiB,YAAY,CAAC,IAAI,EAAE,GAAG,CAAC,UAAU,GAAG,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,CAmBjF;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,GAAG,CAAC,UAAU,GAAG,MAAM,EAAE,CAQlE;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CACjC,IAAI,EAAE,GAAG,CAAC,UAAU,EACpB,cAAc,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,GACzC,GAAG,CAAC,MAAM,CAAC,CASb"}
1
+ {"version":3,"file":"predicate-shape.d.ts","sourceRoot":"","sources":["../../../../src/planner/analysis/predicate-shape.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,KAAK,GAAG,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAI5D;;;;;;;GAOG;AACH,MAAM,MAAM,mBAAmB,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,UAAU,KAAK,MAAM,GAAG,SAAS,CAAC;AAE/E;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,mBAAmB,CAClC,IAAI,EAAE,GAAG,CAAC,UAAU,EACpB,cAAc,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,GACzC,MAAM,GAAG,SAAS,CAWpB;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,GAAG,CAAC,UAAU,GAAG,QAAQ,GAAG,SAAS,CAMvE;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,cAAc,GAAG,QAAQ,GAAG,SAAS,CAG/E;AAED;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAQjD;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC,UAAU,EAAE,CAczE;AAED;;;;;;;;GAQG;AACH,wBAAiB,YAAY,CAAC,IAAI,EAAE,GAAG,CAAC,OAAO,GAAG,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,CAmB9E;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,GAAG,CAAC,UAAU,GAAG,MAAM,EAAE,CAQlE;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CACjC,IAAI,EAAE,GAAG,CAAC,UAAU,EACpB,cAAc,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,GACzC,GAAG,CAAC,MAAM,CAAC,CASb"}
@@ -7,7 +7,19 @@
7
7
  * These helpers are intentionally syntactic — they do not interpret types,
8
8
  * collations, or coercions. Callers wanting semantic equivalence should layer
9
9
  * that on top.
10
+ *
11
+ * {@link literalValue} and {@link planTimeLiteralValue} are the two shared answers to
12
+ * "does this literal have a value I can use at plan time?" — `literalValue` for callers
13
+ * already holding a `LiteralNode` (or its AST expression), `planTimeLiteralValue` for a
14
+ * scalar plan node of unknown type. Both reject a `LiteralNode` whose value is a
15
+ * still-pending Promise (a folded async constant such as `(select 1)`; see
16
+ * `docs/optimizer-const.md` §4). Reading `expression.value` directly instead has produced
17
+ * both crashes and wrong results, so new code should route through these rather than
18
+ * open-coding another `instanceof Promise` test or casting the value to plain `SqlValue`
19
+ * (`AST.LiteralExpr.value` is honestly typed `MaybePromise<SqlValue>` — the compiler
20
+ * catches every honest reader, so a cast is the only way to reintroduce the bug).
10
21
  */
22
+ import { PlanNodeType } from '../nodes/plan-node-type.js';
11
23
  /**
12
24
  * Return the column index for an `AST.ColumnExpr` or unqualified
13
25
  * `AST.IdentifierExpr` that names a column in `columnIndexMap`; undefined
@@ -50,6 +62,24 @@ export function literalValue(expr) {
50
62
  return undefined;
51
63
  return v;
52
64
  }
65
+ /**
66
+ * The plan-time constant value of an already-unwrapped scalar node, or `undefined`
67
+ * when the node is not a plan-time constant — including a `LiteralNode` holding a
68
+ * still-pending Promise (a folded async subquery constant), whose value is unknown
69
+ * until runtime. `undefined` means "not a constant"; SQL `NULL` is a legitimate
70
+ * constant value and is returned as `null`, not `undefined`.
71
+ *
72
+ * Callers keep their own cast-unwrapping policy (see `unwrapCast` in
73
+ * `constraint-extractor.ts` and `rule-sargable-range-rewrite.ts`, which differ
74
+ * deliberately) — this decides only "is it a constant", delegating the value test
75
+ * to {@link literalValue} so a pending Promise is treated identically here and
76
+ * there.
77
+ */
78
+ export function planTimeLiteralValue(node) {
79
+ if (node.nodeType !== PlanNodeType.Literal)
80
+ return undefined;
81
+ return literalValue(node.expression);
82
+ }
53
83
  /**
54
84
  * Flip a comparison operator across its operands: if you rewrite `b op a` as
55
85
  * `a flipComparison(op) b`, the truth value is preserved. Unrecognized
@@ -92,14 +122,16 @@ export function flattenDisjunction(expr) {
92
122
  return out;
93
123
  }
94
124
  /**
95
- * Depth-first iteration over every AST node in `expr`'s subtree. Children are
125
+ * Depth-first iteration over every AST node in `root`'s subtree. Children are
96
126
  * discovered reflectively (any object/array property carrying a `type` field)
97
127
  * rather than via a typed visitor table, so soundness-sensitive walkers (the
98
- * collation gate, the non-determinism screen) cannot silently miss node kinds
99
- * a visitor enumeration forgot.
128
+ * collation gate, the non-determinism screen, the MV body-function capture)
129
+ * cannot silently miss node kinds a visitor enumeration forgot. Accepts any
130
+ * `AstNode`, so a whole statement (e.g. a materialized view's body `QueryExpr`)
131
+ * walks the same way a bare expression does.
100
132
  */
101
- export function* walkAstNodes(expr) {
102
- const stack = [expr];
133
+ export function* walkAstNodes(root) {
134
+ const stack = [root];
103
135
  while (stack.length > 0) {
104
136
  const node = stack.pop();
105
137
  yield node;
@@ -1 +1 @@
1
- {"version":3,"file":"predicate-shape.js","sourceRoot":"","sources":["../../../../src/planner/analysis/predicate-shape.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"predicate-shape.js","sourceRoot":"","sources":["../../../../src/planner/analysis/predicate-shape.ts"],"names":[],"mappings":"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"}
@@ -55,9 +55,9 @@ import { AggregateNode } from '../nodes/aggregate-node.js';
55
55
  import { JoinNode } from '../nodes/join-node.js';
56
56
  import type { MaintainedTableSchema } from '../../schema/derivation.js';
57
57
  import type { TableSchema } from '../../schema/table.js';
58
- import type { AggregateFunctionSchema } from '../../schema/function.js';
58
+ import { type AggregateFunctionSchema } from '../../schema/function.js';
59
59
  import type { SqlValue } from '../../common/types.js';
60
- export type RewriteFailureReason = 'no-candidate' | 'shape' | 'source-mismatch' | 'predicate-not-entailed' | 'missing-column' | 'aggregate-shape' | 'group-key-mismatch' | 'aggregate-not-decomposable' | 'cost-declined';
60
+ export type RewriteFailureReason = 'no-candidate' | 'shape' | 'source-mismatch' | 'predicate-not-entailed' | 'missing-column' | 'aggregate-shape' | 'group-key-mismatch' | 'aggregate-not-decomposable' | 'function-rebound' | 'cost-declined';
61
61
  export interface RewriteMatch {
62
62
  readonly mv: MaintainedTableSchema;
63
63
  readonly backing: TableSchema;
@@ -1 +1 @@
1
- {"version":3,"file":"query-rewrite-matcher.d.ts","sourceRoot":"","sources":["../../../../src/planner/analysis/query-rewrite-matcher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"query-rewrite-matcher.d.ts","sourceRoot":"","sources":["../../../../src/planner/analysis/query-rewrite-matcher.ts"],"names":[],"mappings":"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"}
@@ -60,6 +60,7 @@ import { AggregateNode } from '../nodes/aggregate-node.js';
60
60
  import { AggregateFunctionCallNode } from '../nodes/aggregate-function.js';
61
61
  import { JoinNode } from '../nodes/join-node.js';
62
62
  import { CapabilityDetectors } from '../framework/characteristics.js';
63
+ import { getFunctionKey } from '../../schema/function.js';
63
64
  import { recognizeConjunctiveClauses, guardClausesEntail } from './partial-unique-extraction.js';
64
65
  import { proveOneToOneJoin, pureJoinEquiAttrPairs } from './coverage-prover.js';
65
66
  import { containsNonDeterministicCall } from './check-extraction.js';
@@ -391,13 +392,23 @@ export function matchAggregateFragmentToMv(shape, mv, backing, isDeterministic,
391
392
  // coverage check (below) then forgoes any residual conjunct on a non-group column
392
393
  // — exactly the columns the MV has already aggregated away.
393
394
  const backingColOfBaseCol = new Map(stored.groupBackingOfBaseCol);
395
+ // ---- Function identity: every stored value this match consumes must have been
396
+ // produced by the registration its name resolves to NOW. Built once here so the
397
+ // recipe helpers take one closure instead of a second registry-shaped parameter. ----
398
+ const recordedFunctions = mv.derivation.bodyFunctions;
399
+ const identityOk = (name, argc) => {
400
+ const captured = recordedFunctions?.get(getFunctionKey(name, argc));
401
+ return captured !== undefined && captured === resolveAggregate(name, argc);
402
+ };
394
403
  // ---- Aggregate decomposition: a recipe per fragment aggregate. ----
395
404
  const recipes = [];
396
405
  const outputColumnMap = [];
397
406
  for (const qa of shape.aggregates) {
398
407
  const recipe = exact
399
- ? recipeForExact(qa, stored.storedAggs)
400
- : recipeForRollup(qa, stored.storedAggs, baseTable, resolveAggregate);
408
+ ? recipeForExact(qa, stored.storedAggs, identityOk)
409
+ : recipeForRollup(qa, stored.storedAggs, baseTable, resolveAggregate, identityOk);
410
+ if (recipe === 'rebound')
411
+ return fail('function-rebound');
401
412
  if (!recipe)
402
413
  return fail('aggregate-not-decomposable');
403
414
  recipes.push(recipe);
@@ -841,10 +852,15 @@ function sameStringSet(a, b) {
841
852
  * `passthrough` recipe naming the stored column (the rule answers exact-key via
842
853
  * `outputColumnMap`).
843
854
  */
844
- function recipeForExact(qa, stored) {
855
+ function recipeForExact(qa, stored, identityOk) {
845
856
  const match = stored.find(sa => sa.funcName === qa.funcName && sa.argBaseCol === qa.argBaseCol && sa.isDistinct === qa.isDistinct);
846
857
  if (!match)
847
858
  return undefined;
859
+ // The stored value is the answer only while the name still means the function that
860
+ // produced it — this path resolves no schema otherwise, so without the gate a
861
+ // re-registered name would be served the previous function's numbers.
862
+ if (!identityOk(match.funcName, aggArgc(match.argBaseCol)))
863
+ return 'rebound';
848
864
  return { outAttr: qa.outAttr, kind: 'passthrough', backingCol: match.backingCol };
849
865
  }
850
866
  /**
@@ -859,8 +875,15 @@ function recipeForExact(qa, stored) {
859
875
  * and any abelian-group UDAF) — re-aggregate the aggregate's own stored partial.
860
876
  * - Otherwise (no algebra, or `merge` without a `decode` to reconstruct the
861
877
  * accumulator) ⇒ decline (`total`, `group_concat`, `var_*`, …).
878
+ *
879
+ * The {@link FunctionIdentityGate} is applied to the functions whose STORED values are
880
+ * consumed — the aggregate's own partial on the directly-mergeable path, each sibling
881
+ * partial on the decompose path. Deliberately not to the composed aggregate itself: the
882
+ * MV body need not contain it at all (a body storing `sum(x)`/`count(x)` answers `avg(x)`
883
+ * without ever naming `avg`), and it is the *live* declared decomposition that is applied,
884
+ * matching what recomputing over the base would do.
862
885
  */
863
- function recipeForRollup(qa, stored, baseTable, resolveAggregate) {
886
+ function recipeForRollup(qa, stored, baseTable, resolveAggregate, identityOk) {
864
887
  if (qa.isDistinct)
865
888
  return undefined; // count(distinct …) and friends never compose under rollup.
866
889
  const schema = resolveAggregate(qa.funcName, aggArgc(qa.argBaseCol));
@@ -873,7 +896,9 @@ function recipeForRollup(qa, stored, baseTable, resolveAggregate) {
873
896
  if (algebra.decompose) {
874
897
  const partials = [];
875
898
  for (const p of algebra.decompose.partials) {
876
- const reagg = resolveMergeablePartial(p, qa, stored, baseTable, resolveAggregate);
899
+ const reagg = resolveMergeablePartial(p, qa, stored, baseTable, resolveAggregate, identityOk);
900
+ if (reagg === 'rebound')
901
+ return 'rebound';
877
902
  if (!reagg)
878
903
  return undefined; // a partial isn't stored / isn't mergeable ⇒ decline.
879
904
  partials.push(reagg);
@@ -888,6 +913,10 @@ function recipeForRollup(qa, stored, baseTable, resolveAggregate) {
888
913
  const backingCol = findStored(stored, qa.funcName, qa.argBaseCol);
889
914
  if (backingCol === undefined)
890
915
  return undefined;
916
+ // The stored partials were produced by whatever this name meant at registration;
917
+ // re-folding them with a *different* function's algebra would be wrong.
918
+ if (!identityOk(qa.funcName, aggArgc(qa.argBaseCol)))
919
+ return 'rebound';
891
920
  return {
892
921
  outAttr: qa.outAttr, kind: 'merge',
893
922
  reagg: { backingCol, schema, argCollation: argCollationOf(baseTable, qa.argBaseCol) },
@@ -906,7 +935,7 @@ function recipeForRollup(qa, stored, baseTable, resolveAggregate) {
906
935
  * column is declared NOT NULL — then `count(*)` excludes the same (zero) NULLs `count(x)`
907
936
  * would, so the recombine stays exact.
908
937
  */
909
- function resolveMergeablePartial(p, qa, stored, baseTable, resolveAggregate) {
938
+ function resolveMergeablePartial(p, qa, stored, baseTable, resolveAggregate, identityOk) {
910
939
  const partialArgBaseCol = p.arg === 'star' ? undefined : qa.argBaseCol;
911
940
  let backingCol = findStored(stored, p.func, partialArgBaseCol);
912
941
  let storedArgc = aggArgc(partialArgBaseCol);
@@ -924,6 +953,10 @@ function resolveMergeablePartial(p, qa, stored, baseTable, resolveAggregate) {
924
953
  const schema = resolveAggregate(p.func, storedArgc);
925
954
  if (!schema || !schema.algebra?.decode)
926
955
  return undefined;
956
+ // The partial's stored column was produced by the registration the body resolved to;
957
+ // only that registration's values may be re-merged under this name.
958
+ if (!identityOk(p.func, storedArgc))
959
+ return 'rebound';
927
960
  const argBaseCol = storedArgc === 0 ? undefined : partialArgBaseCol;
928
961
  return { backingCol, schema, argCollation: argCollationOf(baseTable, argBaseCol) };
929
962
  }
@@ -948,6 +981,13 @@ function findStored(stored, funcName, argBaseCol) {
948
981
  * key; an aggregate function call (`count(*)`, or `f(col)`) is a stored aggregate;
949
982
  * a `*` or any other computed item is ignored (it answers no group key or aggregate).
950
983
  * Returns undefined only for a `table.*` naming a non-base table (defensive).
984
+ *
985
+ * NOTE: this arm reads stored *aggregate* columns by name and pairs each with the
986
+ * `FunctionIdentityGate` before trusting its value. The projection and join arms match
987
+ * only bare passthrough columns today, so a body's computed column (`upper(name)`) makes
988
+ * them forgo on shape and they need no such gate. If either arm ever learns to match a
989
+ * computed column, it must consume `derivation.bodyFunctions` the same way — otherwise a
990
+ * re-registered scalar function silently serves the old function's stored output.
951
991
  */
952
992
  function analyzeMvStoredColumns(columns, baseTable) {
953
993
  const groupBackingOfBaseCol = new Map();
@@ -1 +1 @@
1
- {"version":3,"file":"query-rewrite-matcher.js","sourceRoot":"","sources":["../../../../src/planner/analysis/query-rewrite-matcher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"query-rewrite-matcher.js","sourceRoot":"","sources":["../../../../src/planner/analysis/query-rewrite-matcher.ts"],"names":[],"mappings":"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"}
@@ -27,7 +27,7 @@ import { BetweenNode, BinaryOpNode, CastNode, LiteralNode, UnaryOpNode, } from '
27
27
  import { InNode } from '../nodes/subquery.js';
28
28
  import { BINARY_COLLATION, builtinCollationResolver, compareSqlValuesFast, createTypedComparator, hasSemanticOrdering, normalizeCollationName, } from '../../util/comparison.js';
29
29
  import { isNoOpCast } from './scalar-invertibility.js';
30
- import { flipComparison } from './predicate-shape.js';
30
+ import { flipComparison, literalValue } from './predicate-shape.js';
31
31
  import { createLogger } from '../../common/logger.js';
32
32
  const warnLog = createLogger('planner:analysis:sat-checker').extend('warn');
33
33
  /** Cap on the number of conjuncts we attempt to absorb. Mirrors `MAX_FDS_PER_NODE`. */
@@ -370,10 +370,7 @@ function literalOf(n) {
370
370
  const u = unwrap(n);
371
371
  if (!(u instanceof LiteralNode))
372
372
  return undefined;
373
- const v = u.expression.value;
374
- if (v instanceof Promise)
375
- return undefined;
376
- return v;
373
+ return literalValue(u.expression);
377
374
  }
378
375
  function columnOf(n, attrIndex) {
379
376
  const u = unwrap(n);