@quereus/quereus 4.3.2 → 4.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (396) hide show
  1. package/README.md +5 -0
  2. package/dist/src/common/types.d.ts +9 -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-events.d.ts +49 -0
  6. package/dist/src/core/database-events.d.ts.map +1 -1
  7. package/dist/src/core/database-events.js +148 -0
  8. package/dist/src/core/database-events.js.map +1 -1
  9. package/dist/src/core/database-external-changes.d.ts +2 -2
  10. package/dist/src/core/database-external-changes.d.ts.map +1 -1
  11. package/dist/src/core/database-external-changes.js +12 -9
  12. package/dist/src/core/database-external-changes.js.map +1 -1
  13. package/dist/src/core/database-materialized-views-apply.d.ts +156 -14
  14. package/dist/src/core/database-materialized-views-apply.d.ts.map +1 -1
  15. package/dist/src/core/database-materialized-views-apply.js +370 -65
  16. package/dist/src/core/database-materialized-views-apply.js.map +1 -1
  17. package/dist/src/core/database-materialized-views-plan-builders.d.ts +66 -1
  18. package/dist/src/core/database-materialized-views-plan-builders.d.ts.map +1 -1
  19. package/dist/src/core/database-materialized-views-plan-builders.js +368 -8
  20. package/dist/src/core/database-materialized-views-plan-builders.js.map +1 -1
  21. package/dist/src/core/database-materialized-views-plans.d.ts +257 -30
  22. package/dist/src/core/database-materialized-views-plans.d.ts.map +1 -1
  23. package/dist/src/core/database-materialized-views.d.ts +99 -42
  24. package/dist/src/core/database-materialized-views.d.ts.map +1 -1
  25. package/dist/src/core/database-materialized-views.js +198 -121
  26. package/dist/src/core/database-materialized-views.js.map +1 -1
  27. package/dist/src/core/database.d.ts +5 -0
  28. package/dist/src/core/database.d.ts.map +1 -1
  29. package/dist/src/core/database.js +41 -18
  30. package/dist/src/core/database.js.map +1 -1
  31. package/dist/src/core/internal-statement-cache.d.ts +18 -0
  32. package/dist/src/core/internal-statement-cache.d.ts.map +1 -0
  33. package/dist/src/core/internal-statement-cache.js +211 -0
  34. package/dist/src/core/internal-statement-cache.js.map +1 -0
  35. package/dist/src/func/builtins/aggregate.d.ts +13 -12
  36. package/dist/src/func/builtins/aggregate.d.ts.map +1 -1
  37. package/dist/src/func/builtins/aggregate.js +146 -62
  38. package/dist/src/func/builtins/aggregate.js.map +1 -1
  39. package/dist/src/func/builtins/builtin-window-functions.d.ts.map +1 -1
  40. package/dist/src/func/builtins/builtin-window-functions.js +63 -48
  41. package/dist/src/func/builtins/builtin-window-functions.js.map +1 -1
  42. package/dist/src/func/registration.d.ts +19 -1
  43. package/dist/src/func/registration.d.ts.map +1 -1
  44. package/dist/src/func/registration.js +41 -0
  45. package/dist/src/func/registration.js.map +1 -1
  46. package/dist/src/index.d.ts +8 -8
  47. package/dist/src/index.d.ts.map +1 -1
  48. package/dist/src/index.js +12 -11
  49. package/dist/src/index.js.map +1 -1
  50. package/dist/src/parser/parser.d.ts +6 -0
  51. package/dist/src/parser/parser.d.ts.map +1 -1
  52. package/dist/src/parser/parser.js +45 -34
  53. package/dist/src/parser/parser.js.map +1 -1
  54. package/dist/src/planner/analysis/comparison-collation.d.ts +2 -0
  55. package/dist/src/planner/analysis/comparison-collation.d.ts.map +1 -1
  56. package/dist/src/planner/analysis/comparison-collation.js +1 -1
  57. package/dist/src/planner/analysis/comparison-collation.js.map +1 -1
  58. package/dist/src/planner/analysis/equi-correlation.d.ts +26 -0
  59. package/dist/src/planner/analysis/equi-correlation.d.ts.map +1 -0
  60. package/dist/src/planner/analysis/equi-correlation.js +62 -0
  61. package/dist/src/planner/analysis/equi-correlation.js.map +1 -0
  62. package/dist/src/planner/analysis/expression-fingerprint.d.ts.map +1 -1
  63. package/dist/src/planner/analysis/expression-fingerprint.js +29 -0
  64. package/dist/src/planner/analysis/expression-fingerprint.js.map +1 -1
  65. package/dist/src/planner/analysis/query-rewrite-matcher.d.ts +60 -18
  66. package/dist/src/planner/analysis/query-rewrite-matcher.d.ts.map +1 -1
  67. package/dist/src/planner/analysis/query-rewrite-matcher.js +95 -42
  68. package/dist/src/planner/analysis/query-rewrite-matcher.js.map +1 -1
  69. package/dist/src/planner/analysis/sat-checker.d.ts.map +1 -1
  70. package/dist/src/planner/analysis/sat-checker.js +43 -4
  71. package/dist/src/planner/analysis/sat-checker.js.map +1 -1
  72. package/dist/src/planner/analysis/scalar-subqueries.d.ts +28 -0
  73. package/dist/src/planner/analysis/scalar-subqueries.d.ts.map +1 -0
  74. package/dist/src/planner/analysis/scalar-subqueries.js +60 -0
  75. package/dist/src/planner/analysis/scalar-subqueries.js.map +1 -0
  76. package/dist/src/planner/building/delete.d.ts.map +1 -1
  77. package/dist/src/planner/building/delete.js +10 -3
  78. package/dist/src/planner/building/delete.js.map +1 -1
  79. package/dist/src/planner/building/expression.d.ts.map +1 -1
  80. package/dist/src/planner/building/expression.js +87 -6
  81. package/dist/src/planner/building/expression.js.map +1 -1
  82. package/dist/src/planner/building/foreign-key-builder.d.ts +44 -1
  83. package/dist/src/planner/building/foreign-key-builder.d.ts.map +1 -1
  84. package/dist/src/planner/building/foreign-key-builder.js +54 -0
  85. package/dist/src/planner/building/foreign-key-builder.js.map +1 -1
  86. package/dist/src/planner/building/insert.d.ts.map +1 -1
  87. package/dist/src/planner/building/insert.js +9 -12
  88. package/dist/src/planner/building/insert.js.map +1 -1
  89. package/dist/src/planner/building/select.d.ts.map +1 -1
  90. package/dist/src/planner/building/select.js +15 -1
  91. package/dist/src/planner/building/select.js.map +1 -1
  92. package/dist/src/planner/building/update.d.ts.map +1 -1
  93. package/dist/src/planner/building/update.js +13 -4
  94. package/dist/src/planner/building/update.js.map +1 -1
  95. package/dist/src/planner/building/with.d.ts.map +1 -1
  96. package/dist/src/planner/building/with.js +5 -8
  97. package/dist/src/planner/building/with.js.map +1 -1
  98. package/dist/src/planner/cache/materialization-advisory.d.ts +33 -0
  99. package/dist/src/planner/cache/materialization-advisory.d.ts.map +1 -1
  100. package/dist/src/planner/cache/materialization-advisory.js +164 -28
  101. package/dist/src/planner/cache/materialization-advisory.js.map +1 -1
  102. package/dist/src/planner/cache/reference-graph.d.ts +0 -4
  103. package/dist/src/planner/cache/reference-graph.d.ts.map +1 -1
  104. package/dist/src/planner/cache/reference-graph.js +5 -13
  105. package/dist/src/planner/cache/reference-graph.js.map +1 -1
  106. package/dist/src/planner/cost/index.d.ts +28 -7
  107. package/dist/src/planner/cost/index.d.ts.map +1 -1
  108. package/dist/src/planner/cost/index.js +26 -0
  109. package/dist/src/planner/cost/index.js.map +1 -1
  110. package/dist/src/planner/framework/pass.js +3 -3
  111. package/dist/src/planner/nodes/cache-node.d.ts +18 -2
  112. package/dist/src/planner/nodes/cache-node.d.ts.map +1 -1
  113. package/dist/src/planner/nodes/cache-node.js +42 -3
  114. package/dist/src/planner/nodes/cache-node.js.map +1 -1
  115. package/dist/src/planner/nodes/cte-node.d.ts +15 -1
  116. package/dist/src/planner/nodes/cte-node.d.ts.map +1 -1
  117. package/dist/src/planner/nodes/cte-node.js +12 -2
  118. package/dist/src/planner/nodes/cte-node.js.map +1 -1
  119. package/dist/src/planner/nodes/dml-executor-node.d.ts +0 -9
  120. package/dist/src/planner/nodes/dml-executor-node.d.ts.map +1 -1
  121. package/dist/src/planner/nodes/dml-executor-node.js.map +1 -1
  122. package/dist/src/planner/nodes/recursive-cte-node.d.ts +30 -1
  123. package/dist/src/planner/nodes/recursive-cte-node.d.ts.map +1 -1
  124. package/dist/src/planner/nodes/recursive-cte-node.js +30 -3
  125. package/dist/src/planner/nodes/recursive-cte-node.js.map +1 -1
  126. package/dist/src/planner/nodes/scalar.d.ts.map +1 -1
  127. package/dist/src/planner/nodes/scalar.js +26 -3
  128. package/dist/src/planner/nodes/scalar.js.map +1 -1
  129. package/dist/src/planner/optimizer.d.ts.map +1 -1
  130. package/dist/src/planner/optimizer.js +129 -8
  131. package/dist/src/planner/optimizer.js.map +1 -1
  132. package/dist/src/planner/rules/access/rule-select-access-path.d.ts.map +1 -1
  133. package/dist/src/planner/rules/access/rule-select-access-path.js +43 -18
  134. package/dist/src/planner/rules/access/rule-select-access-path.js.map +1 -1
  135. package/dist/src/planner/rules/cache/rule-cte-optimization.d.ts.map +1 -1
  136. package/dist/src/planner/rules/cache/rule-cte-optimization.js +8 -1
  137. package/dist/src/planner/rules/cache/rule-cte-optimization.js.map +1 -1
  138. package/dist/src/planner/rules/cache/rule-materialized-view-rewrite.d.ts.map +1 -1
  139. package/dist/src/planner/rules/cache/rule-materialized-view-rewrite.js +72 -54
  140. package/dist/src/planner/rules/cache/rule-materialized-view-rewrite.js.map +1 -1
  141. package/dist/src/planner/rules/cache/rule-mutating-subquery-cache.d.ts.map +1 -1
  142. package/dist/src/planner/rules/cache/rule-mutating-subquery-cache.js +6 -0
  143. package/dist/src/planner/rules/cache/rule-mutating-subquery-cache.js.map +1 -1
  144. package/dist/src/planner/rules/cache/rule-nested-loop-right-cache.d.ts +25 -0
  145. package/dist/src/planner/rules/cache/rule-nested-loop-right-cache.d.ts.map +1 -0
  146. package/dist/src/planner/rules/cache/rule-nested-loop-right-cache.js +176 -0
  147. package/dist/src/planner/rules/cache/rule-nested-loop-right-cache.js.map +1 -0
  148. package/dist/src/planner/rules/cache/rule-scalar-subquery-cache.d.ts +31 -0
  149. package/dist/src/planner/rules/cache/rule-scalar-subquery-cache.d.ts.map +1 -0
  150. package/dist/src/planner/rules/cache/rule-scalar-subquery-cache.js +68 -0
  151. package/dist/src/planner/rules/cache/rule-scalar-subquery-cache.js.map +1 -0
  152. package/dist/src/planner/rules/join/rule-fanout-lookup-join.d.ts.map +1 -1
  153. package/dist/src/planner/rules/join/rule-fanout-lookup-join.js +1 -54
  154. package/dist/src/planner/rules/join/rule-fanout-lookup-join.js.map +1 -1
  155. package/dist/src/planner/rules/predicate/rule-predicate-inference-equivalence.js +8 -1
  156. package/dist/src/planner/rules/predicate/rule-predicate-inference-equivalence.js.map +1 -1
  157. package/dist/src/planner/rules/subquery/rule-scalar-agg-decorrelation.d.ts +191 -0
  158. package/dist/src/planner/rules/subquery/rule-scalar-agg-decorrelation.d.ts.map +1 -0
  159. package/dist/src/planner/rules/subquery/rule-scalar-agg-decorrelation.js +627 -0
  160. package/dist/src/planner/rules/subquery/rule-scalar-agg-decorrelation.js.map +1 -0
  161. package/dist/src/planner/rules/subquery/rule-subquery-decorrelation.d.ts +10 -1
  162. package/dist/src/planner/rules/subquery/rule-subquery-decorrelation.d.ts.map +1 -1
  163. package/dist/src/planner/rules/subquery/rule-subquery-decorrelation.js +242 -51
  164. package/dist/src/planner/rules/subquery/rule-subquery-decorrelation.js.map +1 -1
  165. package/dist/src/runtime/cache/shared-cache.d.ts +7 -0
  166. package/dist/src/runtime/cache/shared-cache.d.ts.map +1 -1
  167. package/dist/src/runtime/cache/shared-cache.js +34 -1
  168. package/dist/src/runtime/cache/shared-cache.js.map +1 -1
  169. package/dist/src/runtime/deferred-constraint-queue.d.ts.map +1 -1
  170. package/dist/src/runtime/deferred-constraint-queue.js +10 -0
  171. package/dist/src/runtime/deferred-constraint-queue.js.map +1 -1
  172. package/dist/src/runtime/emit/aggregate-setup.d.ts +49 -0
  173. package/dist/src/runtime/emit/aggregate-setup.d.ts.map +1 -0
  174. package/dist/src/runtime/emit/aggregate-setup.js +99 -0
  175. package/dist/src/runtime/emit/aggregate-setup.js.map +1 -0
  176. package/dist/src/runtime/emit/aggregate.d.ts +2 -3
  177. package/dist/src/runtime/emit/aggregate.d.ts.map +1 -1
  178. package/dist/src/runtime/emit/aggregate.js +10 -84
  179. package/dist/src/runtime/emit/aggregate.js.map +1 -1
  180. package/dist/src/runtime/emit/alter-table.d.ts.map +1 -1
  181. package/dist/src/runtime/emit/alter-table.js +348 -165
  182. package/dist/src/runtime/emit/alter-table.js.map +1 -1
  183. package/dist/src/runtime/emit/asof-scan.d.ts.map +1 -1
  184. package/dist/src/runtime/emit/asof-scan.js +6 -0
  185. package/dist/src/runtime/emit/asof-scan.js.map +1 -1
  186. package/dist/src/runtime/emit/between.d.ts.map +1 -1
  187. package/dist/src/runtime/emit/between.js +32 -3
  188. package/dist/src/runtime/emit/between.js.map +1 -1
  189. package/dist/src/runtime/emit/binary.d.ts.map +1 -1
  190. package/dist/src/runtime/emit/binary.js +22 -2
  191. package/dist/src/runtime/emit/binary.js.map +1 -1
  192. package/dist/src/runtime/emit/bloom-join.d.ts.map +1 -1
  193. package/dist/src/runtime/emit/bloom-join.js +24 -3
  194. package/dist/src/runtime/emit/bloom-join.js.map +1 -1
  195. package/dist/src/runtime/emit/cache.d.ts +7 -3
  196. package/dist/src/runtime/emit/cache.d.ts.map +1 -1
  197. package/dist/src/runtime/emit/cache.js +23 -6
  198. package/dist/src/runtime/emit/cache.js.map +1 -1
  199. package/dist/src/runtime/emit/cast.d.ts.map +1 -1
  200. package/dist/src/runtime/emit/cast.js +10 -23
  201. package/dist/src/runtime/emit/cast.js.map +1 -1
  202. package/dist/src/runtime/emit/constraint-check.d.ts.map +1 -1
  203. package/dist/src/runtime/emit/constraint-check.js +41 -44
  204. package/dist/src/runtime/emit/constraint-check.js.map +1 -1
  205. package/dist/src/runtime/emit/create-view.d.ts.map +1 -1
  206. package/dist/src/runtime/emit/create-view.js +6 -0
  207. package/dist/src/runtime/emit/create-view.js.map +1 -1
  208. package/dist/src/runtime/emit/cte.d.ts.map +1 -1
  209. package/dist/src/runtime/emit/cte.js +43 -20
  210. package/dist/src/runtime/emit/cte.js.map +1 -1
  211. package/dist/src/runtime/emit/distinct.d.ts.map +1 -1
  212. package/dist/src/runtime/emit/distinct.js +6 -3
  213. package/dist/src/runtime/emit/distinct.js.map +1 -1
  214. package/dist/src/runtime/emit/dml-executor.d.ts.map +1 -1
  215. package/dist/src/runtime/emit/dml-executor.js +241 -115
  216. package/dist/src/runtime/emit/dml-executor.js.map +1 -1
  217. package/dist/src/runtime/emit/hash-aggregate.d.ts.map +1 -1
  218. package/dist/src/runtime/emit/hash-aggregate.js +16 -65
  219. package/dist/src/runtime/emit/hash-aggregate.js.map +1 -1
  220. package/dist/src/runtime/emit/insert.d.ts.map +1 -1
  221. package/dist/src/runtime/emit/insert.js +18 -7
  222. package/dist/src/runtime/emit/insert.js.map +1 -1
  223. package/dist/src/runtime/emit/join.js +5 -0
  224. package/dist/src/runtime/emit/join.js.map +1 -1
  225. package/dist/src/runtime/emit/materialized-view-helpers.d.ts +14 -1
  226. package/dist/src/runtime/emit/materialized-view-helpers.d.ts.map +1 -1
  227. package/dist/src/runtime/emit/materialized-view-helpers.js +38 -7
  228. package/dist/src/runtime/emit/materialized-view-helpers.js.map +1 -1
  229. package/dist/src/runtime/emit/materialized-view.d.ts.map +1 -1
  230. package/dist/src/runtime/emit/materialized-view.js +47 -6
  231. package/dist/src/runtime/emit/materialized-view.js.map +1 -1
  232. package/dist/src/runtime/emit/merge-join.d.ts.map +1 -1
  233. package/dist/src/runtime/emit/merge-join.js +18 -8
  234. package/dist/src/runtime/emit/merge-join.js.map +1 -1
  235. package/dist/src/runtime/emit/recursive-cte.d.ts.map +1 -1
  236. package/dist/src/runtime/emit/recursive-cte.js +59 -1
  237. package/dist/src/runtime/emit/recursive-cte.js.map +1 -1
  238. package/dist/src/runtime/emit/set-object-tags.d.ts +8 -0
  239. package/dist/src/runtime/emit/set-object-tags.d.ts.map +1 -1
  240. package/dist/src/runtime/emit/set-object-tags.js +8 -0
  241. package/dist/src/runtime/emit/set-object-tags.js.map +1 -1
  242. package/dist/src/runtime/emit/set-operation.d.ts.map +1 -1
  243. package/dist/src/runtime/emit/set-operation.js +7 -4
  244. package/dist/src/runtime/emit/set-operation.js.map +1 -1
  245. package/dist/src/runtime/emit/sort.d.ts.map +1 -1
  246. package/dist/src/runtime/emit/sort.js +5 -2
  247. package/dist/src/runtime/emit/sort.js.map +1 -1
  248. package/dist/src/runtime/emit/subquery.d.ts.map +1 -1
  249. package/dist/src/runtime/emit/subquery.js +113 -13
  250. package/dist/src/runtime/emit/subquery.js.map +1 -1
  251. package/dist/src/runtime/emit/temporal-arithmetic.d.ts +7 -0
  252. package/dist/src/runtime/emit/temporal-arithmetic.d.ts.map +1 -1
  253. package/dist/src/runtime/emit/temporal-arithmetic.js +15 -7
  254. package/dist/src/runtime/emit/temporal-arithmetic.js.map +1 -1
  255. package/dist/src/runtime/emit/update.d.ts.map +1 -1
  256. package/dist/src/runtime/emit/update.js +44 -3
  257. package/dist/src/runtime/emit/update.js.map +1 -1
  258. package/dist/src/runtime/emit/window.d.ts.map +1 -1
  259. package/dist/src/runtime/emit/window.js +72 -55
  260. package/dist/src/runtime/emit/window.js.map +1 -1
  261. package/dist/src/runtime/foreign-key-actions.d.ts +36 -1
  262. package/dist/src/runtime/foreign-key-actions.d.ts.map +1 -1
  263. package/dist/src/runtime/foreign-key-actions.js +238 -116
  264. package/dist/src/runtime/foreign-key-actions.js.map +1 -1
  265. package/dist/src/runtime/parallel-driver.d.ts +20 -1
  266. package/dist/src/runtime/parallel-driver.d.ts.map +1 -1
  267. package/dist/src/runtime/parallel-driver.js +23 -1
  268. package/dist/src/runtime/parallel-driver.js.map +1 -1
  269. package/dist/src/runtime/types.d.ts +54 -0
  270. package/dist/src/runtime/types.d.ts.map +1 -1
  271. package/dist/src/runtime/types.js.map +1 -1
  272. package/dist/src/schema/catalog-persistability.d.ts +58 -0
  273. package/dist/src/schema/catalog-persistability.d.ts.map +1 -0
  274. package/dist/src/schema/catalog-persistability.js +87 -0
  275. package/dist/src/schema/catalog-persistability.js.map +1 -0
  276. package/dist/src/schema/catalog.d.ts +17 -1
  277. package/dist/src/schema/catalog.d.ts.map +1 -1
  278. package/dist/src/schema/catalog.js +25 -3
  279. package/dist/src/schema/catalog.js.map +1 -1
  280. package/dist/src/schema/constraint-builder.d.ts +20 -22
  281. package/dist/src/schema/constraint-builder.d.ts.map +1 -1
  282. package/dist/src/schema/constraint-builder.js +43 -36
  283. package/dist/src/schema/constraint-builder.js.map +1 -1
  284. package/dist/src/schema/ddl-generator.d.ts +23 -0
  285. package/dist/src/schema/ddl-generator.d.ts.map +1 -1
  286. package/dist/src/schema/ddl-generator.js +27 -0
  287. package/dist/src/schema/ddl-generator.js.map +1 -1
  288. package/dist/src/schema/function.d.ts +109 -1
  289. package/dist/src/schema/function.d.ts.map +1 -1
  290. package/dist/src/schema/function.js.map +1 -1
  291. package/dist/src/schema/manager.d.ts +28 -0
  292. package/dist/src/schema/manager.d.ts.map +1 -1
  293. package/dist/src/schema/manager.js +82 -14
  294. package/dist/src/schema/manager.js.map +1 -1
  295. package/dist/src/schema/schema-differ.d.ts.map +1 -1
  296. package/dist/src/schema/schema-differ.js +51 -12
  297. package/dist/src/schema/schema-differ.js.map +1 -1
  298. package/dist/src/schema/unique-enforcement.d.ts +31 -0
  299. package/dist/src/schema/unique-enforcement.d.ts.map +1 -1
  300. package/dist/src/schema/unique-enforcement.js +37 -1
  301. package/dist/src/schema/unique-enforcement.js.map +1 -1
  302. package/dist/src/schema/window-function.d.ts +30 -10
  303. package/dist/src/schema/window-function.d.ts.map +1 -1
  304. package/dist/src/schema/window-function.js +20 -16
  305. package/dist/src/schema/window-function.js.map +1 -1
  306. package/dist/src/types/cast-semantics.d.ts +43 -0
  307. package/dist/src/types/cast-semantics.d.ts.map +1 -0
  308. package/dist/src/types/cast-semantics.js +59 -0
  309. package/dist/src/types/cast-semantics.js.map +1 -0
  310. package/dist/src/types/index.d.ts +1 -1
  311. package/dist/src/types/index.d.ts.map +1 -1
  312. package/dist/src/types/index.js +1 -1
  313. package/dist/src/types/index.js.map +1 -1
  314. package/dist/src/types/json-type.d.ts.map +1 -1
  315. package/dist/src/types/json-type.js +31 -10
  316. package/dist/src/types/json-type.js.map +1 -1
  317. package/dist/src/types/logical-type.d.ts +22 -0
  318. package/dist/src/types/logical-type.d.ts.map +1 -1
  319. package/dist/src/types/logical-type.js.map +1 -1
  320. package/dist/src/types/temporal-types.d.ts.map +1 -1
  321. package/dist/src/types/temporal-types.js +33 -11
  322. package/dist/src/types/temporal-types.js.map +1 -1
  323. package/dist/src/types/validation.d.ts +39 -1
  324. package/dist/src/types/validation.d.ts.map +1 -1
  325. package/dist/src/types/validation.js +60 -0
  326. package/dist/src/types/validation.js.map +1 -1
  327. package/dist/src/util/ast-spine-clone.d.ts +23 -0
  328. package/dist/src/util/ast-spine-clone.d.ts.map +1 -0
  329. package/dist/src/util/ast-spine-clone.js +41 -0
  330. package/dist/src/util/ast-spine-clone.js.map +1 -0
  331. package/dist/src/util/coercion.d.ts +13 -0
  332. package/dist/src/util/coercion.d.ts.map +1 -1
  333. package/dist/src/util/coercion.js +10 -1
  334. package/dist/src/util/coercion.js.map +1 -1
  335. package/dist/src/util/comparison.d.ts +89 -0
  336. package/dist/src/util/comparison.d.ts.map +1 -1
  337. package/dist/src/util/comparison.js +156 -27
  338. package/dist/src/util/comparison.js.map +1 -1
  339. package/dist/src/vtab/manifest.d.ts +7 -0
  340. package/dist/src/vtab/manifest.d.ts.map +1 -1
  341. package/dist/src/vtab/memory/connection.d.ts +14 -1
  342. package/dist/src/vtab/memory/connection.d.ts.map +1 -1
  343. package/dist/src/vtab/memory/connection.js +20 -2
  344. package/dist/src/vtab/memory/connection.js.map +1 -1
  345. package/dist/src/vtab/memory/layer/base.d.ts +6 -1
  346. package/dist/src/vtab/memory/layer/base.d.ts.map +1 -1
  347. package/dist/src/vtab/memory/layer/base.js +14 -5
  348. package/dist/src/vtab/memory/layer/base.js.map +1 -1
  349. package/dist/src/vtab/memory/layer/connection.d.ts +17 -0
  350. package/dist/src/vtab/memory/layer/connection.d.ts.map +1 -1
  351. package/dist/src/vtab/memory/layer/connection.js +26 -0
  352. package/dist/src/vtab/memory/layer/connection.js.map +1 -1
  353. package/dist/src/vtab/memory/layer/manager.d.ts +96 -13
  354. package/dist/src/vtab/memory/layer/manager.d.ts.map +1 -1
  355. package/dist/src/vtab/memory/layer/manager.js +595 -119
  356. package/dist/src/vtab/memory/layer/manager.js.map +1 -1
  357. package/dist/src/vtab/memory/layer/plan-filter.d.ts +41 -20
  358. package/dist/src/vtab/memory/layer/plan-filter.d.ts.map +1 -1
  359. package/dist/src/vtab/memory/layer/plan-filter.js +57 -27
  360. package/dist/src/vtab/memory/layer/plan-filter.js.map +1 -1
  361. package/dist/src/vtab/memory/layer/row-convert.d.ts +21 -0
  362. package/dist/src/vtab/memory/layer/row-convert.d.ts.map +1 -0
  363. package/dist/src/vtab/memory/layer/row-convert.js +30 -0
  364. package/dist/src/vtab/memory/layer/row-convert.js.map +1 -0
  365. package/dist/src/vtab/memory/layer/scan-layer.d.ts +6 -3
  366. package/dist/src/vtab/memory/layer/scan-layer.d.ts.map +1 -1
  367. package/dist/src/vtab/memory/layer/scan-layer.js +69 -36
  368. package/dist/src/vtab/memory/layer/scan-layer.js.map +1 -1
  369. package/dist/src/vtab/memory/layer/transaction.d.ts +127 -13
  370. package/dist/src/vtab/memory/layer/transaction.d.ts.map +1 -1
  371. package/dist/src/vtab/memory/layer/transaction.js +214 -65
  372. package/dist/src/vtab/memory/layer/transaction.js.map +1 -1
  373. package/dist/src/vtab/memory/module.d.ts.map +1 -1
  374. package/dist/src/vtab/memory/module.js +9 -2
  375. package/dist/src/vtab/memory/module.js.map +1 -1
  376. package/dist/src/vtab/memory/table.d.ts.map +1 -1
  377. package/dist/src/vtab/memory/table.js +3 -2
  378. package/dist/src/vtab/memory/table.js.map +1 -1
  379. package/dist/src/vtab/memory/types.d.ts +27 -1
  380. package/dist/src/vtab/memory/types.d.ts.map +1 -1
  381. package/dist/src/vtab/memory/types.js +16 -1
  382. package/dist/src/vtab/memory/types.js.map +1 -1
  383. package/dist/src/vtab/memory/utils/primary-key.d.ts +9 -0
  384. package/dist/src/vtab/memory/utils/primary-key.d.ts.map +1 -1
  385. package/dist/src/vtab/memory/utils/primary-key.js +11 -0
  386. package/dist/src/vtab/memory/utils/primary-key.js.map +1 -1
  387. package/dist/src/vtab/module.d.ts +63 -0
  388. package/dist/src/vtab/module.d.ts.map +1 -1
  389. package/dist/src/vtab/table.d.ts +24 -6
  390. package/dist/src/vtab/table.d.ts.map +1 -1
  391. package/dist/src/vtab/table.js.map +1 -1
  392. package/package.json +3 -3
  393. package/dist/src/planner/rules/cache/rule-in-subquery-cache.d.ts +0 -19
  394. package/dist/src/planner/rules/cache/rule-in-subquery-cache.d.ts.map +0 -1
  395. package/dist/src/planner/rules/cache/rule-in-subquery-cache.js +0 -53
  396. package/dist/src/planner/rules/cache/rule-in-subquery-cache.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"materialization-advisory.js","sourceRoot":"","sources":["../../../../src/planner/cache/materialization-advisory.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAA0C,MAAM,uBAAuB,CAAC;AACjG,OAAO,EAAE,SAAS,EAAsB,MAAM,wBAAwB,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE1D,OAAO,EAAE,qBAAqB,EAAiB,MAAM,sBAAsB,CAAC;AAC5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEjE,MAAM,GAAG,GAAG,YAAY,CAAC,iCAAiC,CAAC,CAAC;AAgB5D;;GAEG;AACH,MAAM,OAAO,uBAAuB;IAGf;IAFZ,gBAAgB,CAAwB;IAEhD,YAAoB,MAAuB;QAAvB,WAAM,GAAN,MAAM,CAAiB;QAC1C,IAAI,CAAC,gBAAgB,GAAG,IAAI,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAC3D,CAAC;IAED;;;OAGG;IACH,mBAAmB,CAAC,IAAc;QACjC,wBAAwB;QACxB,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAEjE,wBAAwB;QACxB,MAAM,eAAe,GAAG,IAAI,GAAG,EAAiC,CAAC;QAEjE,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,QAAQ,EAAE,CAAC;YACtC,6CAA6C;YAC7C,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC7B,SAAS;YACV,CAAC;YAED,MAAM,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YACvD,IAAI,cAAc,CAAC,WAAW,EAAE,CAAC;gBAChC,eAAe,CAAC,GAAG,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;gBAC1C,GAAG,CAAC,+BAA+B,EAAE,IAAI,CAAC,QAAQ,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;YAC5E,CAAC;QACF,CAAC;QAED,IAAI,eAAe,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YAChC,GAAG,CAAC,qCAAqC,CAAC,CAAC;YAC3C,OAAO,IAAI,CAAC;QACb,CAAC;QAED,GAAG,CAAC,gCAAgC,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC;QAE5D,kEAAkE;QAClE,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;IAClD,CAAC;IAED;;OAEG;IACK,aAAa,CAAC,IAAc,EAAE,KAAe;QACpD,uDAAuD;QACvD,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;YAC1B,OAAO;gBACN,WAAW,EAAE,KAAK;gBAClB,QAAQ,EAAE,QAAQ;gBAClB,SAAS,EAAE,CAAC;gBACZ,MAAM,EAAE,wBAAwB;aAChC,CAAC;QACH,CAAC;QAED,sEAAsE;QACtE,IAAI,IAAI,CAAC,QAAQ,KAAK,YAAY,CAAC,KAAK,EAAE,CAAC;YAC1C,OAAO;gBACN,WAAW,EAAE,KAAK;gBAClB,QAAQ,EAAE,QAAQ;gBAClB,SAAS,EAAE,CAAC;gBACZ,MAAM,EAAE,gBAAgB;aACxB,CAAC;QACH,CAAC;QAED,qDAAqD;QACrD,0EAA0E;QAC1E,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3D,OAAO;gBACN,WAAW,EAAE,KAAK;gBAClB,QAAQ,EAAE,QAAQ;gBAClB,SAAS,EAAE,CAAC;gBACZ,MAAM,EAAE,0DAA0D;aAClE,CAAC;QACH,CAAC;QAED,8FAA8F;QAC9F,IAAI,KAAK,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;YACpD,OAAO;gBACN,WAAW,EAAE,KAAK;gBAClB,QAAQ,EAAE,QAAQ;gBAClB,SAAS,EAAE,CAAC;gBACZ,MAAM,EAAE,4BAA4B;aACpC,CAAC;QACH,CAAC;QAED,kDAAkD;QAClD,IAAI,KAAK,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC;YAC3B,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;YAC1D,MAAM,SAAS,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;YAEzE,OAAO;gBACN,WAAW,EAAE,IAAI;gBACjB,QAAQ;gBACR,SAAS;gBACT,MAAM,EAAE,qBAAqB,KAAK,CAAC,WAAW,GAAG;aACjD,CAAC;QACH,CAAC;QAED,8EAA8E;QAC9E,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;YACzB,wDAAwD;YACxD,IAAI,KAAK,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC;gBACnE,OAAO;oBACN,WAAW,EAAE,KAAK;oBAClB,QAAQ,EAAE,QAAQ;oBAClB,SAAS,EAAE,CAAC;oBACZ,MAAM,EAAE,0BAA0B,KAAK,CAAC,aAAa,QAAQ;iBAC7D,CAAC;YACH,CAAC;YAED,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;YAC1D,MAAM,SAAS,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;YAEzE,OAAO;gBACN,WAAW,EAAE,IAAI;gBACjB,QAAQ;gBACR,SAAS;gBACT,MAAM,EAAE,yBAAyB;aACjC,CAAC;QACH,CAAC;QAED,sBAAsB;QACtB,OAAO;YACN,WAAW,EAAE,KAAK;YAClB,QAAQ,EAAE,QAAQ;YAClB,SAAS,EAAE,CAAC;YACZ,MAAM,EAAE,yBAAyB;SACjC,CAAC;IACH,CAAC;IAED;;OAEG;IACK,cAAc,CAAC,aAAqB;QAC3C,kDAAkD;QAClD,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,IAAI,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;YACxF,OAAO,OAAO,CAAC;QAChB,CAAC;QAED,OAAO,QAAQ,CAAC;IACjB,CAAC;IAED;;OAEG;IACK,kBAAkB,CAAC,aAAqB,EAAE,QAAuB;QACxE,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC;QAC7D,MAAM,YAAY,GAAG,QAAQ,KAAK,OAAO,CAAC,CAAC;YAC1C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC,CAAC,CAAC,oCAAoC;YAC7E,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC;QAEpC,OAAO,IAAI,CAAC,GAAG,CACd,IAAI,CAAC,GAAG,CAAC,aAAa,GAAG,UAAU,EAAE,IAAI,CAAC,EAAE,oBAAoB;QAChE,YAAY,CACZ,CAAC;IACH,CAAC;IAED;;OAEG;IACK,gBAAgB,CAAC,IAAc;QACtC,8DAA8D;QAC9D,IAAI,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;YAC5B,OAAO,oBAAoB,CAAC,IAA0B,CAAC,CAAC;QACzD,CAAC;QACD,OAAO,KAAK,CAAC;IACd,CAAC;IAED;;;OAGG;IACK,aAAa,CAAC,IAAc,EAAE,eAAmD;QACxF,4CAA4C;QAC5C,MAAM,eAAe,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;QAEtE,kDAAkD;QAClD,MAAM,cAAc,GAAG,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACjD,IAAI,cAAc,EAAE,WAAW,IAAI,gBAAgB,CAAC,eAAe,CAAC,EAAE,CAAC;YACtE,GAAG,CAAC,2CAA2C,EAC9C,cAAc,CAAC,QAAQ,EAAE,eAAe,CAAC,QAAQ,EAAE,cAAc,CAAC,SAAS,CAAC,CAAC;YAE9E,OAAO,IAAI,SAAS,CACnB,eAAe,CAAC,KAAK,EACrB,eAAqC,EACrC,cAAc,CAAC,QAAQ,EACvB,cAAc,CAAC,SAAS,CACxB,CAAC;QACH,CAAC;QAED,OAAO,eAAe,CAAC;IACxB,CAAC;IAED;;OAEG;IACK,iBAAiB,CAAC,IAAc,EAAE,eAAmD;QAC5F,8DAA8D;QAC9D,uEAAuE;QACvE,uEAAuE;QACvE,qCAAqC;QACrC,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACpC,MAAM,mBAAmB,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAChD,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,eAAe,CAAC,CAC1C,CAAC;QAEF,MAAM,eAAe,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,CAC/D,KAAK,KAAK,QAAQ,CAAC,GAAG,CAAC,CACvB,CAAC;QAEF,IAAI,eAAe,EAAE,CAAC;YACrB,6CAA6C;YAC7C,6DAA6D;YAC7D,sEAAsE;YACtE,oEAAoE;YACpE,sEAAsE;YACtE,wEAAwE;YACxE,qEAAqE;YACrE,0DAA0D;YAC1D,IAAI,CAAC;gBACJ,OAAO,IAAI,CAAC,YAAY,CAAC,mBAAmB,CAAC,CAAC;YAC/C,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACZ,iDAAiD;gBACjD,GAAG,CAAC,yCAAyC,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;gBACjE,OAAO,IAAI,CAAC;YACb,CAAC;QACF,CAAC;QAED,0EAA0E;QAC1E,wEAAwE;QACxE,yEAAyE;QACzE,2EAA2E;QAC3E,6BAA6B;QAC7B,OAAO,IAAI,CAAC;IACb,CAAC;CACD"}
1
+ {"version":3,"file":"materialization-advisory.js","sourceRoot":"","sources":["../../../../src/planner/cache/materialization-advisory.ts"],"names":[],"mappings":"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"}
@@ -16,16 +16,12 @@ import type { OptimizerTuning } from '../optimizer-tuning.js';
16
16
  export interface RefStats {
17
17
  /** Number of parent nodes referencing this node */
18
18
  parentCount: number;
19
- /** Whether this node appears on the inner side of a nested loop or correlated subquery */
20
- appearsInLoop: boolean;
21
19
  /** Estimated number of rows this node produces */
22
20
  estimatedRows: number;
23
21
  /** Whether this node is deterministic (same inputs produce same outputs) */
24
22
  deterministic: boolean;
25
23
  /** Parent nodes that reference this node (for debugging) */
26
24
  parents: Set<PlanNode>;
27
- /** Estimated execution multiplier due to loop contexts */
28
- loopMultiplier: number;
29
25
  }
30
26
  /**
31
27
  * Builds a reference graph for materialization decisions
@@ -1 +1 @@
1
- {"version":3,"file":"reference-graph.d.ts","sourceRoot":"","sources":["../../../../src/planner/cache/reference-graph.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAAoB,KAAK,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACxE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAI9D;;GAEG;AACH,MAAM,WAAW,QAAQ;IACxB,mDAAmD;IACnD,WAAW,EAAE,MAAM,CAAC;IACpB,0FAA0F;IAC1F,aAAa,EAAE,OAAO,CAAC;IACvB,kDAAkD;IAClD,aAAa,EAAE,MAAM,CAAC;IACtB,4EAA4E;IAC5E,aAAa,EAAE,OAAO,CAAC;IACvB,4DAA4D;IAC5D,OAAO,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;IACvB,0DAA0D;IAC1D,cAAc,EAAE,MAAM,CAAC;CACvB;AAcD;;GAEG;AACH,qBAAa,qBAAqB;IAGrB,OAAO,CAAC,MAAM;IAF1B,OAAO,CAAC,MAAM,CAAiC;gBAE3B,MAAM,EAAE,eAAe;IAE3C;;OAEG;IACH,mBAAmB,CAAC,IAAI,EAAE,QAAQ,GAAG,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAqB5D;;OAEG;IACH,OAAO,CAAC,eAAe;IA4CvB;;;;;;;;;;;;;;;OAeG;IACH,OAAO,CAAC,gBAAgB;IAuBxB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAmBxB;;OAEG;IACH,OAAO,CAAC,eAAe;CAQvB"}
1
+ {"version":3,"file":"reference-graph.d.ts","sourceRoot":"","sources":["../../../../src/planner/cache/reference-graph.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAAoB,KAAK,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACxE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAI9D;;GAEG;AACH,MAAM,WAAW,QAAQ;IACxB,mDAAmD;IACnD,WAAW,EAAE,MAAM,CAAC;IACpB,kDAAkD;IAClD,aAAa,EAAE,MAAM,CAAC;IACtB,4EAA4E;IAC5E,aAAa,EAAE,OAAO,CAAC;IACvB,4DAA4D;IAC5D,OAAO,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;CACvB;AAUD;;GAEG;AACH,qBAAa,qBAAqB;IAGrB,OAAO,CAAC,MAAM;IAF1B,OAAO,CAAC,MAAM,CAAiC;gBAE3B,MAAM,EAAE,eAAe;IAE3C;;OAEG;IACH,mBAAmB,CAAC,IAAI,EAAE,QAAQ,GAAG,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAmB5D;;OAEG;IACH,OAAO,CAAC,eAAe;IAqCvB;;;;;;;;;;;;;;;OAeG;IACH,OAAO,CAAC,gBAAgB;IAuBxB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAmBxB;;OAEG;IACH,OAAO,CAAC,eAAe;CAQvB"}
@@ -32,8 +32,6 @@ export class ReferenceGraphBuilder {
32
32
  // Build the reference graph with proper parent tracking
33
33
  const context = {
34
34
  parent: null,
35
- inLoop: false,
36
- loopIterations: 1
37
35
  };
38
36
  this.buildReferences(root, context);
39
37
  log('Built reference graph with %d nodes', this.refMap.size);
@@ -52,11 +50,9 @@ export class ReferenceGraphBuilder {
52
50
  // First time seeing this node
53
51
  stats = {
54
52
  parentCount: 0,
55
- appearsInLoop: context.inLoop,
56
53
  estimatedRows: this.getEstimatedRows(node),
57
54
  deterministic: this.isDeterministic(node),
58
55
  parents: new Set(),
59
- loopMultiplier: context.loopIterations
60
56
  };
61
57
  this.refMap.set(node, stats);
62
58
  }
@@ -65,17 +61,13 @@ export class ReferenceGraphBuilder {
65
61
  stats.parents.add(context.parent);
66
62
  stats.parentCount++;
67
63
  }
68
- // Update loop context
69
- if (context.inLoop) {
70
- stats.appearsInLoop = true;
71
- stats.loopMultiplier = Math.max(stats.loopMultiplier, context.loopIterations);
72
- }
73
- // Create child context - for now, we propagate the parent context
74
- // In the future, if nodes expose execution strategy hints, we could use those
64
+ // Recurse with this node as the parent. Loop / execution-strategy context
65
+ // is intentionally NOT tracked here: this builder works on logical nodes
66
+ // and makes no assumptions about nested-loop vs hash/merge execution.
67
+ // Nested-loop right-side caching is handled by rule-nested-loop-right-cache
68
+ // during physical optimization, where the driver side is known.
75
69
  const childContext = {
76
70
  parent: node,
77
- inLoop: context.inLoop,
78
- loopIterations: context.loopIterations
79
71
  };
80
72
  // Visit all children uniformly
81
73
  this.visitAllChildren(node, childContext);
@@ -1 +1 @@
1
- {"version":3,"file":"reference-graph.js","sourceRoot":"","sources":["../../../../src/planner/cache/reference-graph.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reference-graph.js","sourceRoot":"","sources":["../../../../src/planner/cache/reference-graph.ts"],"names":[],"mappings":"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"}
@@ -128,14 +128,16 @@ export declare function chooseCheapest<T>(options: Array<{
128
128
  }>): T;
129
129
  /**
130
130
  * The maintenance strategies the incremental substrate **costs** — a subset of
131
- * `MaintenancePlan['kind']` in core/database-materialized-views.ts. The arms the cost
132
- * model does not distinguish (`'prefix-delete'`, `'join-residual'`) record the strategy
133
- * they are costed as (`'residual-recompute'`) in their `chosenStrategy`. Each arm builder
134
- * calls {@link selectMaintenanceStrategy} with its own singleton sound set and rejects any
135
- * other answer as INTERNAL, so the gate can never hand back a strategy no arm implements
136
- * (docs/invariants.md MV-007).
131
+ * `MaintenancePlan['kind']` in core/database-materialized-views.ts, plus
132
+ * `'delta-aggregate'`: the arithmetic fast path INSIDE the `'residual-recompute'` arm
133
+ * (the plan kind stays `'residual-recompute'`; the apply path routes on the plan's
134
+ * `delta` descriptor). The arms the cost model does not distinguish (`'prefix-delete'`,
135
+ * `'join-residual'`) record the strategy they are costed as (`'residual-recompute'`) in
136
+ * their `chosenStrategy`. Each arm builder calls {@link selectMaintenanceStrategy} with
137
+ * its own sound set and rejects any answer outside it as INTERNAL, so the gate can never
138
+ * hand back a strategy no arm implements (docs/invariants.md MV-007).
137
139
  */
138
- export type MaintenanceStrategy = 'inverse-projection' | 'residual-recompute' | 'full-rebuild';
140
+ export type MaintenanceStrategy = 'inverse-projection' | 'residual-recompute' | 'delta-aggregate' | 'full-rebuild';
139
141
  /**
140
142
  * Default source row count above which a per-write `'full-rebuild'` is pathological under
141
143
  * the synchronous (row-time, in-transaction) policy: every DML statement on the source
@@ -165,6 +167,12 @@ export interface MaintenanceSourceStats {
165
167
  forwardBodyCost: number;
166
168
  /** No-stats fallback multiplier; the gate supplies tuning.deltaPerRowFallbackRatio. */
167
169
  fallbackRatio?: number;
170
+ /** Expected fraction of changes to a **tighten-only** (min/max) delta-aggregate body
171
+ * that retract and so fall back to the key-filtered residual for their group. Set at
172
+ * create only for a `'delta-aggregate'` body carrying a tighten column (min/max, or a
173
+ * join-semilattice UDAF — `merge`, no `negate`); blended into the delta cost by
174
+ * {@link maintenanceCost}. Absent/0 ⇒ pure-group body, delta cost unchanged. */
175
+ deltaTightenFallbackRatio?: number;
168
176
  }
169
177
  /**
170
178
  * Backward (maintenance-direction) cost of applying `strategy` to `changeCardinality`
@@ -180,6 +188,19 @@ export interface MaintenanceSourceStats {
180
188
  * group. With stats, costed against rows-per-group (tableRows / distinctGroupsEstimate);
181
189
  * with no stats, falls back to the legacy `deltaPerRowFallbackRatio` heuristic so
182
190
  * behaviour is unchanged on the no-stats path.
191
+ * - `'delta-aggregate'`: O(1) arithmetic per changed row plus one read-modify-write of
192
+ * the stored group row per affected group — no source read, no residual re-execution.
193
+ * Modeled as an index seek + reprojection per change (the same shape as
194
+ * inverse-projection), CAPPED at half the residual per-group cost: per affected
195
+ * group the delta does strictly less work than the residual (one point RMW vs a
196
+ * key-filtered body re-execution over that group's source rows), so it must cost
197
+ * strictly below `'residual-recompute'` for every stats input — including a
198
+ * small/empty source at create time, where the residual's no-stats fallback
199
+ * (`forwardBodyCost × ratio`) shrinks below any fixed constant. A body carrying a
200
+ * **tighten-only** (min/max) column blends in `deltaTightenFallbackRatio` — the expected
201
+ * fraction of retracting changes that re-derive their group from the full residual — so
202
+ * it costs strictly more than a pure-group body but, for the small create-time estimate,
203
+ * still below the always-residual arm.
183
204
  * - `'full-rebuild'`: re-evaluate the whole body once — the always-correct floor,
184
205
  * independent of changeCardinality.
185
206
  */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/planner/cost/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/planner/cost/index.ts"],"names":[],"mappings":"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"}
@@ -208,6 +208,19 @@ const DEFAULT_RESIDUAL_FALLBACK_RATIO = 0.5;
208
208
  * group. With stats, costed against rows-per-group (tableRows / distinctGroupsEstimate);
209
209
  * with no stats, falls back to the legacy `deltaPerRowFallbackRatio` heuristic so
210
210
  * behaviour is unchanged on the no-stats path.
211
+ * - `'delta-aggregate'`: O(1) arithmetic per changed row plus one read-modify-write of
212
+ * the stored group row per affected group — no source read, no residual re-execution.
213
+ * Modeled as an index seek + reprojection per change (the same shape as
214
+ * inverse-projection), CAPPED at half the residual per-group cost: per affected
215
+ * group the delta does strictly less work than the residual (one point RMW vs a
216
+ * key-filtered body re-execution over that group's source rows), so it must cost
217
+ * strictly below `'residual-recompute'` for every stats input — including a
218
+ * small/empty source at create time, where the residual's no-stats fallback
219
+ * (`forwardBodyCost × ratio`) shrinks below any fixed constant. A body carrying a
220
+ * **tighten-only** (min/max) column blends in `deltaTightenFallbackRatio` — the expected
221
+ * fraction of retracting changes that re-derive their group from the full residual — so
222
+ * it costs strictly more than a pure-group body but, for the small create-time estimate,
223
+ * still below the always-residual arm.
211
224
  * - `'full-rebuild'`: re-evaluate the whole body once — the always-correct floor,
212
225
  * independent of changeCardinality.
213
226
  */
@@ -215,6 +228,19 @@ export function maintenanceCost(strategy, changeCardinality, stats) {
215
228
  switch (strategy) {
216
229
  case 'inverse-projection':
217
230
  return changeCardinality * (COST_CONSTANTS.INDEX_SEEK_PER_ROW + COST_CONSTANTS.PROJECT_PER_ROW);
231
+ case 'delta-aggregate': {
232
+ // Pure-group delta cost: an index seek + reprojection per change, capped at half the
233
+ // residual per-group cost (delta does strictly less work than the residual per group).
234
+ const deltaPerGroup = Math.min(COST_CONSTANTS.INDEX_SEEK_PER_ROW + COST_CONSTANTS.PROJECT_PER_ROW, residualCostPerGroup(stats) * 0.5);
235
+ // A tighten-only (min/max) column re-derives the fraction `f` of changes that retract
236
+ // from the FULL residual. Blend: `(1-f)·deltaPerGroup + f·residualPerGroup`. Pure-group
237
+ // bodies (f = 0) reduce to exactly `deltaPerGroup` — unchanged. `f` is a create-time
238
+ // estimate (small), so a tighten body costs more than a pure-group one yet stays below
239
+ // the always-residual arm; only a (currently unmeasurable) retraction-heavy `f` would
240
+ // legitimately tip the argmin to plain residual.
241
+ const f = stats.deltaTightenFallbackRatio ?? 0;
242
+ return changeCardinality * ((1 - f) * deltaPerGroup + f * residualCostPerGroup(stats));
243
+ }
218
244
  case 'residual-recompute':
219
245
  return changeCardinality * residualCostPerGroup(stats);
220
246
  case 'full-rebuild':
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/planner/cost/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/planner/cost/index.ts"],"names":[],"mappings":"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"}
@@ -90,9 +90,9 @@ function createConstantFoldingPass() {
90
90
  * (O(anchors) graph builds per optimize, now 1).
91
91
  *
92
92
  * Placement (order 35) is between PostOptimization (30) and Validation (40) so
93
- * the advisory runs AFTER the CacheNodes injected by `cte-optimization` /
94
- * `in-subquery-cache` are already in place — it skips `nodeType === Cache`, so
95
- * running last avoids double-wrapping.
93
+ * the advisory runs AFTER the CacheNodes injected by `cte-optimization` are
94
+ * already in place — it skips `nodeType === Cache`, so running last avoids
95
+ * double-wrapping.
96
96
  *
97
97
  * Side-effect soundness (a custom `execute` bypasses `sideEffectMode`
98
98
  * validation, so the reasoning lives here rather than in a RuleHandle field):
@@ -1,5 +1,5 @@
1
1
  import { PlanNodeType } from './plan-node-type.js';
2
- import { PlanNode, type RelationalPlanNode, type UnaryRelationalNode, type Attribute } from './plan-node.js';
2
+ import { PlanNode, type RelationalPlanNode, type UnaryRelationalNode, type Attribute, type PhysicalProperties } from './plan-node.js';
3
3
  import type { RelationType } from '../../common/datatype.js';
4
4
  import type { Scope } from '../scopes/scope.js';
5
5
  import type { CacheCapable } from '../framework/characteristics.js';
@@ -15,14 +15,30 @@ export declare class CacheNode extends PlanNode implements UnaryRelationalNode,
15
15
  readonly source: RelationalPlanNode;
16
16
  readonly strategy: CacheStrategy;
17
17
  readonly threshold: number;
18
+ /**
19
+ * Eager build mode: fully drain + commit the buffer on the first evaluation
20
+ * before yielding any row, so a short-circuiting consumer above the cache
21
+ * (e.g. IN's first-match early-exit) cannot abort the build. Defaults to the
22
+ * streaming-first behaviour that CTE / nested-loop-right / mutating-subquery
23
+ * caches rely on for first-row latency.
24
+ */
25
+ readonly eager: boolean;
18
26
  readonly nodeType = PlanNodeType.Cache;
19
27
  readonly isCacheCapable: true;
20
28
  constructor(scope: Scope, source: RelationalPlanNode, strategy?: CacheStrategy, threshold?: number, // Rows before switching to pass-through
21
- estimatedCostOverride?: number);
29
+ /**
30
+ * Eager build mode: fully drain + commit the buffer on the first evaluation
31
+ * before yielding any row, so a short-circuiting consumer above the cache
32
+ * (e.g. IN's first-match early-exit) cannot abort the build. Defaults to the
33
+ * streaming-first behaviour that CTE / nested-loop-right / mutating-subquery
34
+ * caches rely on for first-row latency.
35
+ */
36
+ eager?: boolean, estimatedCostOverride?: number);
22
37
  getAttributes(): readonly Attribute[];
23
38
  getType(): RelationType;
24
39
  getChildren(): readonly [RelationalPlanNode];
25
40
  getRelations(): readonly [RelationalPlanNode];
41
+ computePhysical(childrenPhysical: PhysicalProperties[]): Partial<PhysicalProperties>;
26
42
  withChildren(newChildren: readonly PlanNode[]): PlanNode;
27
43
  get estimatedRows(): number | undefined;
28
44
  getCacheStrategy(): string;
@@ -1 +1 @@
1
- {"version":3,"file":"cache-node.d.ts","sourceRoot":"","sources":["../../../../src/planner/nodes/cache-node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,KAAK,kBAAkB,EAAE,KAAK,mBAAmB,EAAE,KAAK,SAAS,EAAoB,MAAM,gBAAgB,CAAC;AAC/H,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAGhD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAEpE,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,OAAO,CAAC;AAE/C;;;;;;GAMG;AACH,qBAAa,SAAU,SAAQ,QAAS,YAAW,mBAAmB,EAAE,YAAY;aAMlE,MAAM,EAAE,kBAAkB;aAC1B,QAAQ,EAAE,aAAa;aACvB,SAAS,EAAE,MAAM;IAPlC,QAAQ,CAAC,QAAQ,sBAAsB;IACvC,QAAQ,CAAC,cAAc,EAAG,IAAI,CAAU;gBAGvC,KAAK,EAAE,KAAK,EACI,MAAM,EAAE,kBAAkB,EAC1B,QAAQ,GAAE,aAAwB,EAClC,SAAS,GAAE,MAAc,EAAG,wCAAwC;IACpF,qBAAqB,CAAC,EAAE,MAAM;IAM/B,aAAa,IAAI,SAAS,SAAS,EAAE;IAIrC,OAAO,IAAI,YAAY;IAUvB,WAAW,IAAI,SAAS,CAAC,kBAAkB,CAAC;IAI5C,YAAY,IAAI,SAAS,CAAC,kBAAkB,CAAC;IAI7C,YAAY,CAAC,WAAW,EAAE,SAAS,QAAQ,EAAE,GAAG,QAAQ;IA0BxD,IAAI,aAAa,IAAI,MAAM,GAAG,SAAS,CAEtC;IAED,gBAAgB,IAAI,MAAM;IAI1B,QAAQ,IAAI,OAAO;IAIV,QAAQ,IAAI,MAAM;IAIlB,oBAAoB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAOxD"}
1
+ {"version":3,"file":"cache-node.d.ts","sourceRoot":"","sources":["../../../../src/planner/nodes/cache-node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,KAAK,kBAAkB,EAAE,KAAK,mBAAmB,EAAE,KAAK,SAAS,EAAE,KAAK,kBAAkB,EAAoB,MAAM,gBAAgB,CAAC;AACxJ,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAGhD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAEpE,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,OAAO,CAAC;AAE/C;;;;;;GAMG;AACH,qBAAa,SAAU,SAAQ,QAAS,YAAW,mBAAmB,EAAE,YAAY;aAMlE,MAAM,EAAE,kBAAkB;aAC1B,QAAQ,EAAE,aAAa;aACvB,SAAS,EAAE,MAAM;IACjC;;;;;;OAMG;aACa,KAAK,EAAE,OAAO;IAf/B,QAAQ,CAAC,QAAQ,sBAAsB;IACvC,QAAQ,CAAC,cAAc,EAAG,IAAI,CAAU;gBAGvC,KAAK,EAAE,KAAK,EACI,MAAM,EAAE,kBAAkB,EAC1B,QAAQ,GAAE,aAAwB,EAClC,SAAS,GAAE,MAAc,EAAG,wCAAwC;IACpF;;;;;;OAMG;IACa,KAAK,GAAE,OAAe,EACtC,qBAAqB,CAAC,EAAE,MAAM;IAM/B,aAAa,IAAI,SAAS,SAAS,EAAE;IAIrC,OAAO,IAAI,YAAY;IAUvB,WAAW,IAAI,SAAS,CAAC,kBAAkB,CAAC;IAI5C,YAAY,IAAI,SAAS,CAAC,kBAAkB,CAAC;IAI7C,eAAe,CAAC,gBAAgB,EAAE,kBAAkB,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC;IA6BpF,YAAY,CAAC,WAAW,EAAE,SAAS,QAAQ,EAAE,GAAG,QAAQ;IA4BxD,IAAI,aAAa,IAAI,MAAM,GAAG,SAAS,CAEtC;IAED,gBAAgB,IAAI,MAAM;IAI1B,QAAQ,IAAI,OAAO;IAIV,QAAQ,IAAI,MAAM;IAIlB,oBAAoB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAQxD"}
@@ -13,14 +13,23 @@ export class CacheNode extends PlanNode {
13
13
  source;
14
14
  strategy;
15
15
  threshold;
16
+ eager;
16
17
  nodeType = PlanNodeType.Cache;
17
18
  isCacheCapable = true;
18
19
  constructor(scope, source, strategy = 'memory', threshold = 10000, // Rows before switching to pass-through
19
- estimatedCostOverride) {
20
+ /**
21
+ * Eager build mode: fully drain + commit the buffer on the first evaluation
22
+ * before yielding any row, so a short-circuiting consumer above the cache
23
+ * (e.g. IN's first-match early-exit) cannot abort the build. Defaults to the
24
+ * streaming-first behaviour that CTE / nested-loop-right / mutating-subquery
25
+ * caches rely on for first-row latency.
26
+ */
27
+ eager = false, estimatedCostOverride) {
20
28
  super(scope, estimatedCostOverride);
21
29
  this.source = source;
22
30
  this.strategy = strategy;
23
31
  this.threshold = threshold;
32
+ this.eager = eager;
24
33
  }
25
34
  // Cache preserves source attributes exactly
26
35
  getAttributes() {
@@ -41,6 +50,34 @@ export class CacheNode extends PlanNode {
41
50
  getRelations() {
42
51
  return [this.source];
43
52
  }
53
+ computePhysical(childrenPhysical) {
54
+ const sourcePhysical = childrenPhysical[0];
55
+ // A cache is a pure materialization pass-through: it buffers the source on
56
+ // first iteration and replays it in the SAME order, preserving every
57
+ // relational characteristic. Attribute ids are unchanged, so — exactly like
58
+ // AliasNode — FDs, equivalence classes, constant bindings, domain
59
+ // constraints, INDs, backward update-lineage, ordering, and monotonicOn all
60
+ // carry through. Without this, wrapping a relation in a Cache would silently
61
+ // drop its keys/FDs and disable downstream key-based optimizations (DISTINCT
62
+ // elimination, join-key coverage, ≤1-row detection).
63
+ //
64
+ // `accessCapabilities` / `rangeBoundedOn` are deliberately NOT propagated:
65
+ // they describe the physical *leaf iterator* (ordinal seek, asof-right), and
66
+ // the cache's replay iterator is not that leaf — matching the pass-through
67
+ // contract documented on those fields.
68
+ return {
69
+ estimatedRows: this.source.estimatedRows,
70
+ ordering: sourcePhysical?.ordering,
71
+ monotonicOn: sourcePhysical?.monotonicOn,
72
+ fds: sourcePhysical?.fds,
73
+ equivClasses: sourcePhysical?.equivClasses,
74
+ constantBindings: sourcePhysical?.constantBindings,
75
+ domainConstraints: sourcePhysical?.domainConstraints,
76
+ inds: sourcePhysical?.inds,
77
+ updateLineage: sourcePhysical?.updateLineage,
78
+ attributeDefaults: sourcePhysical?.attributeDefaults,
79
+ };
80
+ }
44
81
  withChildren(newChildren) {
45
82
  if (newChildren.length !== 1) {
46
83
  quereusError(`CacheNode expects 1 child, got ${newChildren.length}`, StatusCode.INTERNAL);
@@ -55,7 +92,8 @@ export class CacheNode extends PlanNode {
55
92
  return this;
56
93
  }
57
94
  // Create new instance preserving attributes (cache preserves source attributes exactly)
58
- return new CacheNode(this.scope, newSource, this.strategy, this.threshold);
95
+ // Thread `eager` through so an optimizer rebuild doesn't silently drop it to false.
96
+ return new CacheNode(this.scope, newSource, this.strategy, this.threshold, this.eager);
59
97
  }
60
98
  get estimatedRows() {
61
99
  return this.source.estimatedRows;
@@ -67,12 +105,13 @@ export class CacheNode extends PlanNode {
67
105
  return true;
68
106
  }
69
107
  toString() {
70
- return `CACHE (${this.strategy}, threshold=${this.threshold})`;
108
+ return `CACHE (${this.strategy}, threshold=${this.threshold}${this.eager ? ', eager' : ''})`;
71
109
  }
72
110
  getLogicalAttributes() {
73
111
  return {
74
112
  strategy: this.strategy,
75
113
  threshold: this.threshold,
114
+ eager: this.eager,
76
115
  sourceNodeType: this.source.nodeType
77
116
  };
78
117
  }
@@ -1 +1 @@
1
- {"version":3,"file":"cache-node.js","sourceRoot":"","sources":["../../../../src/planner/nodes/cache-node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAqE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAG/H,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAKtD;;;;;;GAMG;AACH,MAAM,OAAO,SAAU,SAAQ,QAAQ;IAMrB;IACA;IACA;IAPR,QAAQ,GAAG,YAAY,CAAC,KAAK,CAAC;IAC9B,cAAc,GAAG,IAAa,CAAC;IAExC,YACC,KAAY,EACI,MAA0B,EAC1B,WAA0B,QAAQ,EAClC,YAAoB,KAAK,EAAG,wCAAwC;IACpF,qBAA8B;QAE9B,KAAK,CAAC,KAAK,EAAE,qBAAqB,CAAC,CAAC;QALpB,WAAM,GAAN,MAAM,CAAoB;QAC1B,aAAQ,GAAR,QAAQ,CAA0B;QAClC,cAAS,GAAT,SAAS,CAAgB;IAI1C,CAAC;IAED,4CAA4C;IAC5C,aAAa;QACZ,OAAO,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;IACpC,CAAC;IAED,OAAO;QACN,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACzC,wDAAwD;QACxD,OAAO;YACN,GAAG,UAAU;YACb,sDAAsD;YACtD,mDAAmD;SACnD,CAAC;IACH,CAAC;IAED,WAAW;QACV,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACtB,CAAC;IAED,YAAY;QACX,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACtB,CAAC;IAED,YAAY,CAAC,WAAgC;QAC5C,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,YAAY,CAAC,kCAAkC,WAAW,CAAC,MAAM,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;QAC3F,CAAC;QAED,MAAM,CAAC,SAAS,CAAC,GAAG,WAAW,CAAC;QAEhC,aAAa;QACb,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,EAAE,CAAC;YAClC,YAAY,CAAC,+CAA+C,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;QACpF,CAAC;QAED,0CAA0C;QAC1C,IAAI,SAAS,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC;YAC/B,OAAO,IAAI,CAAC;QACb,CAAC;QAED,wFAAwF;QACxF,OAAO,IAAI,SAAS,CACnB,IAAI,CAAC,KAAK,EACV,SAA+B,EAC/B,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,SAAS,CACd,CAAC;IACH,CAAC;IAED,IAAI,aAAa;QAChB,OAAO,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;IAClC,CAAC;IAED,gBAAgB;QACf,OAAO,IAAI,CAAC,QAAQ,CAAC;IACtB,CAAC;IAED,QAAQ;QACP,OAAO,IAAI,CAAC;IACb,CAAC;IAEQ,QAAQ;QAChB,OAAO,UAAU,IAAI,CAAC,QAAQ,eAAe,IAAI,CAAC,SAAS,GAAG,CAAC;IAChE,CAAC;IAEQ,oBAAoB;QAC5B,OAAO;YACN,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,cAAc,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ;SACpC,CAAC;IACH,CAAC;CACD"}
1
+ {"version":3,"file":"cache-node.js","sourceRoot":"","sources":["../../../../src/planner/nodes/cache-node.ts"],"names":[],"mappings":"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"}
@@ -36,12 +36,26 @@ export declare class CTENode extends PlanNode implements CTEPlanNode, CTEScopeNo
36
36
  readonly source: RelationalPlanNode;
37
37
  readonly materializationHint: 'materialized' | 'not_materialized' | undefined;
38
38
  readonly isRecursive: boolean;
39
+ /**
40
+ * Resolved materialization decision for emission, set by the
41
+ * materialization-advisory pass: when true, emitCTE buffers this CTE's
42
+ * rows once per statement execution and every reference reads that one
43
+ * shared buffer (multi-referenced or MATERIALIZED-hinted CTEs).
44
+ */
45
+ readonly materialize: boolean;
39
46
  readonly nodeType = PlanNodeType.CTE;
40
47
  readonly isCTECapable: true;
41
48
  readonly tableDescriptor: TableDescriptor;
42
49
  private attributesCache;
43
50
  private typeCache;
44
- constructor(scope: Scope, cteName: string, columns: string[] | undefined, source: RelationalPlanNode, materializationHint: 'materialized' | 'not_materialized' | undefined, isRecursive?: boolean);
51
+ constructor(scope: Scope, cteName: string, columns: string[] | undefined, source: RelationalPlanNode, materializationHint: 'materialized' | 'not_materialized' | undefined, isRecursive?: boolean,
52
+ /**
53
+ * Resolved materialization decision for emission, set by the
54
+ * materialization-advisory pass: when true, emitCTE buffers this CTE's
55
+ * rows once per statement execution and every reference reads that one
56
+ * shared buffer (multi-referenced or MATERIALIZED-hinted CTEs).
57
+ */
58
+ materialize?: boolean);
45
59
  private buildAttributes;
46
60
  private buildType;
47
61
  getAttributes(): readonly Attribute[];
@@ -1 +1 @@
1
- {"version":3,"file":"cte-node.d.ts","sourceRoot":"","sources":["../../../../src/planner/nodes/cte-node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,KAAK,mBAAmB,EAAE,KAAK,kBAAkB,EAAE,KAAK,SAAS,EAAE,KAAK,eAAe,EAAoB,MAAM,gBAAgB,CAAC;AACrJ,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAEhD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAElE;;;;GAIG;AACH,MAAM,WAAW,YAAa,SAAQ,QAAQ;IAC1C,2BAA2B;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAEzB,2DAA2D;IAC3D,aAAa,IAAI,SAAS,SAAS,EAAE,CAAC;IAEtC,uCAAuC;IACvC,OAAO,IAAI,YAAY,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,WAAY,SAAQ,mBAAmB;IACvD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IACvC,QAAQ,CAAC,mBAAmB,EAAE,cAAc,GAAG,kBAAkB,GAAG,SAAS,CAAC;IAC9E,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;CAC1C;AAED;;;GAGG;AACH,qBAAa,OAAQ,SAAQ,QAAS,YAAW,WAAW,EAAE,YAAY,EAAE,UAAU;aAUpE,OAAO,EAAE,MAAM;aACf,OAAO,EAAE,MAAM,EAAE,GAAG,SAAS;aAC7B,MAAM,EAAE,kBAAkB;aAC1B,mBAAmB,EAAE,cAAc,GAAG,kBAAkB,GAAG,SAAS;aACpE,WAAW,EAAE,OAAO;IAbrC,QAAQ,CAAC,QAAQ,oBAAoB;IACrC,QAAQ,CAAC,YAAY,EAAG,IAAI,CAAU;IACtC,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAM;IAE/C,OAAO,CAAC,eAAe,CAAsB;IAC7C,OAAO,CAAC,SAAS,CAAuB;gBAGvC,KAAK,EAAE,KAAK,EACI,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EAAE,GAAG,SAAS,EAC7B,MAAM,EAAE,kBAAkB,EAC1B,mBAAmB,EAAE,cAAc,GAAG,kBAAkB,GAAG,SAAS,EACpE,WAAW,GAAE,OAAe;IAS7C,OAAO,CAAC,eAAe;IAYvB,OAAO,CAAC,SAAS;IAejB,aAAa,IAAI,SAAS,SAAS,EAAE;IAIrC,OAAO,IAAI,YAAY;IAIvB,WAAW,IAAI,SAAS,CAAC,kBAAkB,CAAC;IAI5C,YAAY,IAAI,SAAS,CAAC,kBAAkB,CAAC;IAI7C,YAAY,CAAC,WAAW,EAAE,SAAS,QAAQ,EAAE,GAAG,QAAQ;IA4BxD,YAAY,IAAI,kBAAkB;IAIzB,QAAQ,IAAI,MAAM;IAOlB,oBAAoB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CASxD"}
1
+ {"version":3,"file":"cte-node.d.ts","sourceRoot":"","sources":["../../../../src/planner/nodes/cte-node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,KAAK,mBAAmB,EAAE,KAAK,kBAAkB,EAAE,KAAK,SAAS,EAAE,KAAK,eAAe,EAAoB,MAAM,gBAAgB,CAAC;AACrJ,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAEhD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAElE;;;;GAIG;AACH,MAAM,WAAW,YAAa,SAAQ,QAAQ;IAC1C,2BAA2B;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAEzB,2DAA2D;IAC3D,aAAa,IAAI,SAAS,SAAS,EAAE,CAAC;IAEtC,uCAAuC;IACvC,OAAO,IAAI,YAAY,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,WAAY,SAAQ,mBAAmB;IACvD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IACvC,QAAQ,CAAC,mBAAmB,EAAE,cAAc,GAAG,kBAAkB,GAAG,SAAS,CAAC;IAC9E,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;CAC1C;AAED;;;GAGG;AACH,qBAAa,OAAQ,SAAQ,QAAS,YAAW,WAAW,EAAE,YAAY,EAAE,UAAU;aAUpE,OAAO,EAAE,MAAM;aACf,OAAO,EAAE,MAAM,EAAE,GAAG,SAAS;aAC7B,MAAM,EAAE,kBAAkB;aAC1B,mBAAmB,EAAE,cAAc,GAAG,kBAAkB,GAAG,SAAS;aACpE,WAAW,EAAE,OAAO;IACpC;;;;;OAKG;aACa,WAAW,EAAE,OAAO;IApBrC,QAAQ,CAAC,QAAQ,oBAAoB;IACrC,QAAQ,CAAC,YAAY,EAAG,IAAI,CAAU;IACtC,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAM;IAE/C,OAAO,CAAC,eAAe,CAAsB;IAC7C,OAAO,CAAC,SAAS,CAAuB;gBAGvC,KAAK,EAAE,KAAK,EACI,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EAAE,GAAG,SAAS,EAC7B,MAAM,EAAE,kBAAkB,EAC1B,mBAAmB,EAAE,cAAc,GAAG,kBAAkB,GAAG,SAAS,EACpE,WAAW,GAAE,OAAe;IAC5C;;;;;OAKG;IACa,WAAW,GAAE,OAAe;IAS7C,OAAO,CAAC,eAAe;IAYvB,OAAO,CAAC,SAAS;IAejB,aAAa,IAAI,SAAS,SAAS,EAAE;IAIrC,OAAO,IAAI,YAAY;IAIvB,WAAW,IAAI,SAAS,CAAC,kBAAkB,CAAC;IAI5C,YAAY,IAAI,SAAS,CAAC,kBAAkB,CAAC;IAI7C,YAAY,CAAC,WAAW,EAAE,SAAS,QAAQ,EAAE,GAAG,QAAQ;IA6BxD,YAAY,IAAI,kBAAkB;IAIzB,QAAQ,IAAI,MAAM;IAOlB,oBAAoB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAUxD"}
@@ -11,12 +11,20 @@ export class CTENode extends PlanNode {
11
11
  source;
12
12
  materializationHint;
13
13
  isRecursive;
14
+ materialize;
14
15
  nodeType = PlanNodeType.CTE;
15
16
  isCTECapable = true;
16
17
  tableDescriptor = {}; // Identity object for table context lookup
17
18
  attributesCache;
18
19
  typeCache;
19
- constructor(scope, cteName, columns, source, materializationHint, isRecursive = false) {
20
+ constructor(scope, cteName, columns, source, materializationHint, isRecursive = false,
21
+ /**
22
+ * Resolved materialization decision for emission, set by the
23
+ * materialization-advisory pass: when true, emitCTE buffers this CTE's
24
+ * rows once per statement execution and every reference reads that one
25
+ * shared buffer (multi-referenced or MATERIALIZED-hinted CTEs).
26
+ */
27
+ materialize = false) {
20
28
  // Self-cost only: the source flows in via getChildren(). Self is the CTE
21
29
  // materialization overhead.
22
30
  super(scope, 10);
@@ -25,6 +33,7 @@ export class CTENode extends PlanNode {
25
33
  this.source = source;
26
34
  this.materializationHint = materializationHint;
27
35
  this.isRecursive = isRecursive;
36
+ this.materialize = materialize;
28
37
  this.attributesCache = new Cached(() => this.buildAttributes());
29
38
  this.typeCache = new Cached(() => this.buildType());
30
39
  }
@@ -78,7 +87,7 @@ export class CTENode extends PlanNode {
78
87
  return this;
79
88
  }
80
89
  // Create new instance with updated source
81
- return new CTENode(this.scope, this.cteName, this.columns, newSource, this.materializationHint, this.isRecursive);
90
+ return new CTENode(this.scope, this.cteName, this.columns, newSource, this.materializationHint, this.isRecursive, this.materialize);
82
91
  }
83
92
  getCTESource() {
84
93
  return this.source;
@@ -95,6 +104,7 @@ export class CTENode extends PlanNode {
95
104
  columns: this.columns,
96
105
  materializationHint: this.materializationHint,
97
106
  isRecursive: this.isRecursive,
107
+ materialize: this.materialize,
98
108
  queryType: this.getType()
99
109
  };
100
110
  }
@@ -1 +1 @@
1
- {"version":3,"file":"cte-node.js","sourceRoot":"","sources":["../../../../src/planner/nodes/cte-node.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cte-node.js","sourceRoot":"","sources":["../../../../src/planner/nodes/cte-node.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,6 @@ import type { TableReferenceNode } from './reference.js';
5
5
  import type { RelationType } from '../../common/datatype.js';
6
6
  import type { ConflictResolution } from '../../common/constants.js';
7
7
  import { RowOp } from '../../common/types.js';
8
- import type { LogicalType } from '../../types/logical-type.js';
9
8
  /**
10
9
  * Represents a planned UPSERT clause for INSERT operations.
11
10
  * This contains the pre-built plan nodes for ON CONFLICT DO UPDATE handling.
@@ -25,14 +24,6 @@ export interface UpsertClausePlan {
25
24
  * {@link conflictTargetIndices} is set.
26
25
  */
27
26
  conflictTargetCollations?: (string | undefined)[];
28
- /**
29
- * Per-conflict-target-column logical type, index-aligned with
30
- * {@link conflictTargetIndices}. The runtime match applies this column's affinity to
31
- * the (pre-affinity-coercion) proposed value before the enforcement-collation
32
- * comparison, so an affinity-coerced conflict (e.g. `'1'` proposed into an INTEGER
33
- * key holding `1`) matches. Set only when {@link conflictTargetIndices} is set.
34
- */
35
- conflictTargetTypes?: LogicalType[];
36
27
  /** Action: 'nothing' skips the row, 'update' performs column updates */
37
28
  action: 'nothing' | 'update';
38
29
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"dml-executor-node.d.ts","sourceRoot":"","sources":["../../../../src/planner/nodes/dml-executor-node.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dml-executor-node.d.ts","sourceRoot":"","sources":["../../../../src/planner/nodes/dml-executor-node.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,KAAK,kBAAkB,EAAE,KAAK,SAAS,EAAE,KAAK,kBAAkB,EAAE,KAAK,cAAc,EAAE,KAAK,aAAa,EAAoB,MAAM,gBAAgB,CAAC;AACvK,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAE9C;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAChC,+DAA+D;IAC/D,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAC;IACjC;;;;;;;;;;OAUG;IACH,wBAAwB,CAAC,EAAE,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,CAAC;IAClD,wEAAwE;IACxE,MAAM,EAAE,SAAS,GAAG,QAAQ,CAAC;IAC7B;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAC1C,yDAAyD;IACzD,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,mEAAmE;IACnE,gBAAgB,CAAC,EAAE,aAAa,CAAC;IACjC,gEAAgE;IAChE,qBAAqB,CAAC,EAAE,aAAa,CAAC;CACtC;AAED;;;;GAIG;AACH,qBAAa,eAAgB,SAAQ,QAAS,YAAW,kBAAkB;aAKvD,MAAM,EAAE,kBAAkB;aAC1B,KAAK,EAAE,kBAAkB;aACzB,SAAS,EAAE,KAAK;aAChB,UAAU,CAAC,EAAE,kBAAkB;aAC/B,qBAAqB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC;aACnD,iBAAiB,CAAC,EAAE,SAAS,EAAE;aAC/B,iBAAiB,CAAC,EAAE,aAAa;aACjC,aAAa,CAAC,EAAE,gBAAgB,EAAE;IAClD;;;;;;;;;;;;OAYG;aACa,UAAU,EAAE,OAAO;IAzBrC,SAAkB,QAAQ,+BAA+B;gBAGvD,KAAK,EAAE,KAAK,EACI,MAAM,EAAE,kBAAkB,EAC1B,KAAK,EAAE,kBAAkB,EACzB,SAAS,EAAE,KAAK,EAChB,UAAU,CAAC,EAAE,kBAAkB,YAAA,EAAE,gDAAgD;IACjF,qBAAqB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,YAAA,EAAE,qCAAqC;IAC1F,iBAAiB,CAAC,EAAE,SAAS,EAAE,YAAA,EAAE,8BAA8B;IAC/D,iBAAiB,CAAC,EAAE,aAAa,YAAA,EAAE,kCAAkC;IACrE,aAAa,CAAC,EAAE,gBAAgB,EAAE,YAAA,EAAE,4CAA4C;IAChG;;;;;;;;;;;;OAYG;IACa,UAAU,GAAE,OAAe;IAK7C,OAAO,IAAI,YAAY;IAIvB,aAAa,IAAI,SAAS,SAAS,EAAE;IAIrC,YAAY,IAAI,SAAS,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;IAIjE,WAAW,IAAI,SAAS,QAAQ,EAAE;IAIlC,YAAY,CAAC,WAAW,EAAE,SAAS,QAAQ,EAAE,GAAG,QAAQ;IAiCxD,IAAI,aAAa,IAAI,MAAM,GAAG,SAAS,CAEtC;IAEQ,QAAQ,IAAI,MAAM;IAIlB,oBAAoB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IA2BxD,eAAe,IAAI,OAAO,CAAC,kBAAkB,CAAC;CAU/C"}
@@ -1 +1 @@
1
- {"version":3,"file":"dml-executor-node.js","sourceRoot":"","sources":["../../../../src/planner/nodes/dml-executor-node.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dml-executor-node.js","sourceRoot":"","sources":["../../../../src/planner/nodes/dml-executor-node.ts"],"names":[],"mappings":"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"}