@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
@@ -16,13 +16,35 @@ export declare class RecursiveCTENode extends PlanNode implements CTEPlanNode, C
16
16
  readonly maxRecursion?: number | undefined;
17
17
  readonly limitExpr?: ScalarPlanNode | undefined;
18
18
  readonly offsetExpr?: ScalarPlanNode | undefined;
19
+ /**
20
+ * Resolved materialization decision for emission, set by the
21
+ * materialization-advisory pass: when true, emitRecursiveCTE drives the
22
+ * recursion once per statement execution into a shared buffer that every
23
+ * reference replays (multi-referenced recursive CTEs — gated purely on
24
+ * reference count, ignoring the materialization hint; see
25
+ * MaterializationAdvisory.shouldMaterializeCTE). When false, each reference
26
+ * streams its own drive (single-reference: keeps early-exit under an outer
27
+ * LIMIT working).
28
+ */
29
+ readonly materialize: boolean;
19
30
  readonly nodeType = PlanNodeType.RecursiveCTE;
20
31
  readonly isRecursive = true;
21
32
  readonly tableDescriptor: TableDescriptor;
22
33
  private attributesCache;
23
34
  private typeCache;
24
35
  private _recursiveCaseQuery;
25
- constructor(scope: Scope, cteName: string, columns: string[] | undefined, baseCaseQuery: RelationalPlanNode, recursiveCaseQuery: RelationalPlanNode, isUnionAll: boolean, materializationHint?: 'materialized' | 'not_materialized' | undefined, maxRecursion?: number | undefined, tableDescriptor?: TableDescriptor, limitExpr?: ScalarPlanNode | undefined, offsetExpr?: ScalarPlanNode | undefined);
36
+ constructor(scope: Scope, cteName: string, columns: string[] | undefined, baseCaseQuery: RelationalPlanNode, recursiveCaseQuery: RelationalPlanNode, isUnionAll: boolean, materializationHint?: 'materialized' | 'not_materialized' | undefined, maxRecursion?: number | undefined, tableDescriptor?: TableDescriptor, limitExpr?: ScalarPlanNode | undefined, offsetExpr?: ScalarPlanNode | undefined,
37
+ /**
38
+ * Resolved materialization decision for emission, set by the
39
+ * materialization-advisory pass: when true, emitRecursiveCTE drives the
40
+ * recursion once per statement execution into a shared buffer that every
41
+ * reference replays (multi-referenced recursive CTEs — gated purely on
42
+ * reference count, ignoring the materialization hint; see
43
+ * MaterializationAdvisory.shouldMaterializeCTE). When false, each reference
44
+ * streams its own drive (single-reference: keeps early-exit under an outer
45
+ * LIMIT working).
46
+ */
47
+ materialize?: boolean);
26
48
  get recursiveCaseQuery(): RelationalPlanNode;
27
49
  /**
28
50
  * Sets the recursive case query after construction.
@@ -37,6 +59,13 @@ export declare class RecursiveCTENode extends PlanNode implements CTEPlanNode, C
37
59
  get source(): RelationalPlanNode;
38
60
  getRelations(): readonly [RelationalPlanNode];
39
61
  withChildren(newChildren: readonly PlanNode[]): PlanNode;
62
+ /**
63
+ * Clone with a flipped `materialize` decision, preserving every other field
64
+ * (crucially the `tableDescriptor` identity and the recursive case). Lets the
65
+ * materialization-advisory pass set the flag without hand-copying the full
66
+ * constructor argument list (which `withChildren` already owns).
67
+ */
68
+ withMaterialize(materialize: boolean): RecursiveCTENode;
40
69
  toString(): string;
41
70
  getLogicalAttributes(): Record<string, unknown>;
42
71
  }
@@ -1 +1 @@
1
- {"version":3,"file":"recursive-cte-node.d.ts","sourceRoot":"","sources":["../../../../src/planner/nodes/recursive-cte-node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,KAAK,kBAAkB,EAAE,KAAK,cAAc,EAAE,KAAK,SAAS,EAAE,KAAK,eAAe,EAAoB,MAAM,gBAAgB,CAAC;AAChJ,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,WAAW,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE/D;;;GAGG;AACH,qBAAa,gBAAiB,SAAQ,QAAS,YAAW,WAAW,EAAE,YAAY;aAWjE,OAAO,EAAE,MAAM;aACf,OAAO,EAAE,MAAM,EAAE,GAAG,SAAS;aAC7B,aAAa,EAAE,kBAAkB;aAEjC,UAAU,EAAE,OAAO;aACnB,mBAAmB,EAAE,cAAc,GAAG,kBAAkB,GAAG,SAAS;aACpE,YAAY,CAAC,EAAE,MAAM;aAErB,SAAS,CAAC,EAAE,cAAc;aAC1B,UAAU,CAAC,EAAE,cAAc;IAnB5C,QAAQ,CAAC,QAAQ,6BAA6B;IAC9C,QAAQ,CAAC,WAAW,QAAQ;IAC5B,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;IAE1C,OAAO,CAAC,eAAe,CAAsB;IAC7C,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,mBAAmB,CAAqB;gBAG/C,KAAK,EAAE,KAAK,EACI,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EAAE,GAAG,SAAS,EAC7B,aAAa,EAAE,kBAAkB,EACjD,kBAAkB,EAAE,kBAAkB,EACtB,UAAU,EAAE,OAAO,EACnB,mBAAmB,GAAE,cAAc,GAAG,kBAAkB,GAAG,SAA0B,EACrF,YAAY,CAAC,EAAE,MAAM,YAAA,EACrC,eAAe,CAAC,EAAE,eAAe,EACjB,SAAS,CAAC,EAAE,cAAc,YAAA,EAC1B,UAAU,CAAC,EAAE,cAAc,YAAA;IAY5C,IAAI,kBAAkB,IAAI,kBAAkB,CAE3C;IAED;;;OAGG;IACH,qBAAqB,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI;IAUtD,OAAO,CAAC,eAAe;IAgBvB,OAAO,CAAC,SAAS;IAcjB,aAAa,IAAI,SAAS,EAAE;IAI5B,OAAO,IAAI,YAAY;IAIvB,WAAW,IAAI,SAAS,QAAQ,EAAE;IAQlC,IAAI,MAAM,IAAI,kBAAkB,CAE/B;IAED,YAAY,IAAI,SAAS,CAAC,kBAAkB,CAAC;IAI7C,YAAY,CAAC,WAAW,EAAE,SAAS,QAAQ,EAAE,GAAG,QAAQ;IA6C/C,QAAQ,IAAI,MAAM;IAQlB,oBAAoB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAYxD"}
1
+ {"version":3,"file":"recursive-cte-node.d.ts","sourceRoot":"","sources":["../../../../src/planner/nodes/recursive-cte-node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,KAAK,kBAAkB,EAAE,KAAK,cAAc,EAAE,KAAK,SAAS,EAAE,KAAK,eAAe,EAAoB,MAAM,gBAAgB,CAAC;AAChJ,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,WAAW,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE/D;;;GAGG;AACH,qBAAa,gBAAiB,SAAQ,QAAS,YAAW,WAAW,EAAE,YAAY;aAWjE,OAAO,EAAE,MAAM;aACf,OAAO,EAAE,MAAM,EAAE,GAAG,SAAS;aAC7B,aAAa,EAAE,kBAAkB;aAEjC,UAAU,EAAE,OAAO;aACnB,mBAAmB,EAAE,cAAc,GAAG,kBAAkB,GAAG,SAAS;aACpE,YAAY,CAAC,EAAE,MAAM;aAErB,SAAS,CAAC,EAAE,cAAc;aAC1B,UAAU,CAAC,EAAE,cAAc;IAC3C;;;;;;;;;OASG;aACa,WAAW,EAAE,OAAO;IA9BrC,QAAQ,CAAC,QAAQ,6BAA6B;IAC9C,QAAQ,CAAC,WAAW,QAAQ;IAC5B,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;IAE1C,OAAO,CAAC,eAAe,CAAsB;IAC7C,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,mBAAmB,CAAqB;gBAG/C,KAAK,EAAE,KAAK,EACI,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EAAE,GAAG,SAAS,EAC7B,aAAa,EAAE,kBAAkB,EACjD,kBAAkB,EAAE,kBAAkB,EACtB,UAAU,EAAE,OAAO,EACnB,mBAAmB,GAAE,cAAc,GAAG,kBAAkB,GAAG,SAA0B,EACrF,YAAY,CAAC,EAAE,MAAM,YAAA,EACrC,eAAe,CAAC,EAAE,eAAe,EACjB,SAAS,CAAC,EAAE,cAAc,YAAA,EAC1B,UAAU,CAAC,EAAE,cAAc,YAAA;IAC3C;;;;;;;;;OASG;IACa,WAAW,GAAE,OAAe;IAY7C,IAAI,kBAAkB,IAAI,kBAAkB,CAE3C;IAED;;;OAGG;IACH,qBAAqB,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI;IAUtD,OAAO,CAAC,eAAe;IAgBvB,OAAO,CAAC,SAAS;IAcjB,aAAa,IAAI,SAAS,EAAE;IAI5B,OAAO,IAAI,YAAY;IAIvB,WAAW,IAAI,SAAS,QAAQ,EAAE;IAQlC,IAAI,MAAM,IAAI,kBAAkB,CAE/B;IAED,YAAY,IAAI,SAAS,CAAC,kBAAkB,CAAC;IAI7C,YAAY,CAAC,WAAW,EAAE,SAAS,QAAQ,EAAE,GAAG,QAAQ;IA8CxD;;;;;OAKG;IACH,eAAe,CAAC,WAAW,EAAE,OAAO,GAAG,gBAAgB;IAoB9C,QAAQ,IAAI,MAAM;IASlB,oBAAoB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAaxD"}
@@ -14,13 +14,25 @@ export class RecursiveCTENode extends PlanNode {
14
14
  maxRecursion;
15
15
  limitExpr;
16
16
  offsetExpr;
17
+ materialize;
17
18
  nodeType = PlanNodeType.RecursiveCTE;
18
19
  isRecursive = true; // Always true for recursive CTEs
19
20
  tableDescriptor;
20
21
  attributesCache;
21
22
  typeCache;
22
23
  _recursiveCaseQuery;
23
- constructor(scope, cteName, columns, baseCaseQuery, recursiveCaseQuery, isUnionAll, materializationHint = 'materialized', maxRecursion, tableDescriptor, limitExpr, offsetExpr) {
24
+ constructor(scope, cteName, columns, baseCaseQuery, recursiveCaseQuery, isUnionAll, materializationHint = 'materialized', maxRecursion, tableDescriptor, limitExpr, offsetExpr,
25
+ /**
26
+ * Resolved materialization decision for emission, set by the
27
+ * materialization-advisory pass: when true, emitRecursiveCTE drives the
28
+ * recursion once per statement execution into a shared buffer that every
29
+ * reference replays (multi-referenced recursive CTEs — gated purely on
30
+ * reference count, ignoring the materialization hint; see
31
+ * MaterializationAdvisory.shouldMaterializeCTE). When false, each reference
32
+ * streams its own drive (single-reference: keeps early-exit under an outer
33
+ * LIMIT working).
34
+ */
35
+ materialize = false) {
24
36
  // Self-cost only: the base and recursive cases are both in getChildren(),
25
37
  // so their subtree costs flow in once via getTotalCost(). Self is the fixed
26
38
  // recursion overhead.
@@ -33,6 +45,7 @@ export class RecursiveCTENode extends PlanNode {
33
45
  this.maxRecursion = maxRecursion;
34
46
  this.limitExpr = limitExpr;
35
47
  this.offsetExpr = offsetExpr;
48
+ this.materialize = materialize;
36
49
  this._recursiveCaseQuery = recursiveCaseQuery;
37
50
  this.tableDescriptor = tableDescriptor || {}; // Identity object for table context lookup
38
51
  this.attributesCache = new Cached(() => this.buildAttributes());
@@ -122,15 +135,28 @@ export class RecursiveCTENode extends PlanNode {
122
135
  return this;
123
136
  }
124
137
  // Create new instance with updated children
125
- const newNode = new RecursiveCTENode(this.scope, this.cteName, this.columns, newBaseCaseQuery, newRecursiveCaseQuery, this.isUnionAll, this.materializationHint, this.maxRecursion, this.tableDescriptor, newLimitExpr, newOffsetExpr);
138
+ const newNode = new RecursiveCTENode(this.scope, this.cteName, this.columns, newBaseCaseQuery, newRecursiveCaseQuery, this.isUnionAll, this.materializationHint, this.maxRecursion, this.tableDescriptor, newLimitExpr, newOffsetExpr, this.materialize);
126
139
  return newNode;
127
140
  }
141
+ /**
142
+ * Clone with a flipped `materialize` decision, preserving every other field
143
+ * (crucially the `tableDescriptor` identity and the recursive case). Lets the
144
+ * materialization-advisory pass set the flag without hand-copying the full
145
+ * constructor argument list (which `withChildren` already owns).
146
+ */
147
+ withMaterialize(materialize) {
148
+ if (this.materialize === materialize) {
149
+ return this;
150
+ }
151
+ return new RecursiveCTENode(this.scope, this.cteName, this.columns, this.baseCaseQuery, this.recursiveCaseQuery, this.isUnionAll, this.materializationHint, this.maxRecursion, this.tableDescriptor, this.limitExpr, this.offsetExpr, materialize);
152
+ }
128
153
  toString() {
129
154
  const recursiveText = 'RECURSIVE ';
130
155
  const columnsText = this.columns ? `(${this.columns.join(', ')})` : '';
131
156
  const unionText = this.isUnionAll ? 'UNION ALL' : 'UNION';
132
157
  const materializationText = this.materializationHint ? ` ${this.materializationHint.toUpperCase()}` : '';
133
- return `${recursiveText}CTE ${this.cteName}${columnsText} [${unionText}]${materializationText}`;
158
+ const bufferedText = this.materialize ? ' [buffered]' : '';
159
+ return `${recursiveText}CTE ${this.cteName}${columnsText} [${unionText}]${materializationText}${bufferedText}`;
134
160
  }
135
161
  getLogicalAttributes() {
136
162
  return {
@@ -138,6 +164,7 @@ export class RecursiveCTENode extends PlanNode {
138
164
  columns: this.columns,
139
165
  isUnionAll: this.isUnionAll,
140
166
  materializationHint: this.materializationHint,
167
+ materialize: this.materialize,
141
168
  isRecursive: true,
142
169
  maxRecursion: this.maxRecursion,
143
170
  baseCaseType: this.baseCaseQuery.getType(),
@@ -1 +1 @@
1
- {"version":3,"file":"recursive-cte-node.js","sourceRoot":"","sources":["../../../../src/planner/nodes/recursive-cte-node.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"recursive-cte-node.js","sourceRoot":"","sources":["../../../../src/planner/nodes/recursive-cte-node.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"scalar.d.ts","sourceRoot":"","sources":["../../../../src/planner/nodes/scalar.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scalar.d.ts","sourceRoot":"","sources":["../../../../src/planner/nodes/scalar.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,9 @@ import { formatExpression, formatScalarType } from "../../util/plan-formatter.js
5
5
  import { quereusError } from '../../common/errors.js';
6
6
  import { StatusCode } from '../../common/types.js';
7
7
  import { NULL_TYPE, INTEGER_TYPE, REAL_TYPE, TEXT_TYPE, BLOB_TYPE, BOOLEAN_TYPE } from "../../types/builtin-types.js";
8
+ import { JSON_TYPE } from "../../types/json-type.js";
8
9
  import { typeRegistry } from "../../types/registry.js";
10
+ import { castCanYieldNull } from "../../types/cast-semantics.js";
9
11
  import { collationConflictError, isComparisonOperator, mergePropagatedCollation, resolveComparisonCollation } from "../analysis/comparison-collation.js";
10
12
  export class UnaryOpNode extends PlanNode {
11
13
  scope;
@@ -391,6 +393,18 @@ export class LiteralNode extends PlanNode {
391
393
  isReadOnly: true,
392
394
  };
393
395
  }
396
+ // Native object/array: the only logical type whose physical representation is
397
+ // PhysicalType.OBJECT is JSON, so an untyped object-valued literal is a JSON
398
+ // document. Reached when a rule rebuilds a literal from a plain constant value
399
+ // (e.g. an index seek key) without threading the source ScalarType through.
400
+ if (typeof value === 'object') {
401
+ return {
402
+ typeClass: 'scalar',
403
+ logicalType: JSON_TYPE,
404
+ nullable: false,
405
+ isReadOnly: true,
406
+ };
407
+ }
394
408
  quereusError(`Unknown literal type ${typeof value}`, StatusCode.INTERNAL);
395
409
  }
396
410
  getValue() {
@@ -607,12 +621,21 @@ export class CastNode extends PlanNode {
607
621
  generateType = () => {
608
622
  const operandType = this.operand.getType();
609
623
  const targetType = this.expression.targetType;
610
- // Look up the logical type from the type registry
611
- const logicalType = typeRegistry.getTypeOrDefault(targetType);
624
+ // Resolve through inferType, not getTypeOrDefault: this is the single resolution
625
+ // of the target name — `runtime/emit/cast.ts` reads it back off this node — and
626
+ // the two lookups disagree for any name that misses the registry but matches an
627
+ // affinity rule (`cast(5 as nvarchar)` produces TEXT, not BLOB).
628
+ const logicalType = typeRegistry.inferType(targetType);
612
629
  return {
613
630
  typeClass: 'scalar',
614
631
  logicalType,
615
- nullable: operandType.nullable, // CAST preserves nullability
632
+ // A converting CAST is nullable even from a non-null operand: `cast('' as integer)`
633
+ // is null because INTEGER's parse maps the empty string to null, and a conversion
634
+ // that fails outright yields null rather than the unconverted operand. A cast to
635
+ // the operand's own type converts nothing, and TEXT/BLOB convert every non-null
636
+ // operand (`castCanYieldNull`), so both keep the operand's nullability.
637
+ nullable: operandType.nullable
638
+ || (logicalType !== operandType.logicalType && castCanYieldNull(logicalType)),
616
639
  isReadOnly: operandType.isReadOnly,
617
640
  collationName: logicalType.isTextual ? operandType.collationName : undefined,
618
641
  collationSource: logicalType.isTextual ? operandType.collationSource : undefined,
@@ -1 +1 @@
1
- {"version":3,"file":"scalar.js","sourceRoot":"","sources":["../../../../src/planner/nodes/scalar.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scalar.js","sourceRoot":"","sources":["../../../../src/planner/nodes/scalar.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAiO,eAAe,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAG9S,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAClF,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AACtH,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,0BAA0B,EAAE,MAAM,qCAAqC,CAAC;AAEzJ,MAAM,OAAO,WAAY,SAAQ,QAAQ;IAKvB;IACA;IACA;IANR,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC;IACjC,UAAU,CAAqB;IAEvC,YACiB,KAAY,EACZ,UAAyB,EACzB,OAAuB;QAEvC,KAAK,CAAC,KAAK,CAAC,CAAC;QAJG,UAAK,GAAL,KAAK,CAAO;QACZ,eAAU,GAAV,UAAU,CAAe;QACzB,YAAO,GAAP,OAAO,CAAgB;QAGvC,IAAI,CAAC,UAAU,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACjD,CAAC;IAED,YAAY,GAAG,GAAe,EAAE;QAC/B,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QAE3C,IAAI,WAAW,GAAG,WAAW,CAAC,WAAW,CAAC;QAC1C,IAAI,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC;QAEpC,QAAQ,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;YAClC,KAAK,KAAK;gBACT,WAAW,GAAG,YAAY,CAAC;gBAC3B,6CAA6C;gBAC7C,MAAM;YACP,KAAK,SAAS,CAAC;YACf,KAAK,aAAa,CAAC;YACnB,KAAK,SAAS,CAAC;YACf,KAAK,aAAa,CAAC;YACnB,KAAK,UAAU,CAAC;YAChB,KAAK,cAAc;gBAClB,WAAW,GAAG,YAAY,CAAC;gBAC3B,QAAQ,GAAG,KAAK,CAAC,CAAC,yDAAyD;gBAC3E,MAAM;YACP,KAAK,GAAG,CAAC;YACT,KAAK,GAAG;gBACP,wCAAwC;gBACxC,MAAM;YACP,KAAK,GAAG;gBACP,mCAAmC;gBACnC,WAAW,GAAG,YAAY,CAAC;gBAC3B,MAAM;QACR,CAAC;QAED,OAAO;YACN,SAAS,EAAE,QAAQ;YACnB,WAAW;YACX,QAAQ;YACR,UAAU,EAAE,WAAW,CAAC,UAAU;YAClC,aAAa,EAAE,WAAW,CAAC,aAAa;YACxC,eAAe,EAAE,WAAW,CAAC,eAAe;SAC5C,CAAC;IACH,CAAC,CAAA;IAED,OAAO;QACN,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;IAC9B,CAAC;IAED,WAAW;QACV,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACvB,CAAC;IAED,YAAY;QACX,OAAO,EAAE,CAAC;IACX,CAAC;IAED,YAAY,CAAC,WAAgC;QAC5C,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,YAAY,CAAC,oCAAoC,WAAW,CAAC,MAAM,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;QAC7F,CAAC;QAED,MAAM,CAAC,UAAU,CAAC,GAAG,WAAW,CAAC;QAEjC,aAAa;QACb,IAAI,CAAC,CAAC,YAAY,IAAI,UAAU,CAAC,EAAE,CAAC;YACnC,YAAY,CAAC,6CAA6C,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;QAClF,CAAC;QAED,0CAA0C;QAC1C,IAAI,UAAU,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;YACjC,OAAO,IAAI,CAAC;QACb,CAAC;QAED,sBAAsB;QACtB,OAAO,IAAI,WAAW,CACrB,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,UAAU,EACf,UAA4B,CAC5B,CAAC;IACH,CAAC;IAEQ,QAAQ;QAChB,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,IAAI,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;IACxE,CAAC;IAEQ,oBAAoB;QAC5B,OAAO;YACN,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,QAAQ;YAClC,OAAO,EAAE,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC;YACvC,UAAU,EAAE,gBAAgB,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;SAC5C,CAAC;IACH,CAAC;IAEQ,aAAa,CAAC,WAAmB;QACzC,QAAQ,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;YAClC,KAAK,GAAG;gBACP,6DAA6D;gBAC7D,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC;oBAClD,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;gBAChD,CAAC;gBACD,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;YAC7B,KAAK,GAAG;gBACP,yDAAyD;gBACzD,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC;oBAClD,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;gBAChD,CAAC;gBACD,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;YAC7B;gBACC,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;QAC9B,CAAC;IACF,CAAC;IAEQ,cAAc,CAAC,WAAmB;QAC1C,QAAQ,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;YAClC,KAAK,GAAG,CAAC,CAAC,CAAC;gBACV,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC;oBAClD,OAAO,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;gBACjD,CAAC;gBACD,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC;YACpC,CAAC;YACD,KAAK,GAAG,CAAC,CAAC,CAAC;gBACV,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC;oBAClD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,YAAY,CAAC;oBACvE,OAAO,EAAE,YAAY,EAAE,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACvD,CAAC;gBACD,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC;YACpC,CAAC;YACD;gBACC,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC;QACrC,CAAC;IACF,CAAC;CACD;AAED,MAAM,OAAO,YAAa,SAAQ,QAAQ;IAKxB;IACA;IACA;IACA;IAPR,QAAQ,GAAG,YAAY,CAAC,QAAQ,CAAC;IAClC,UAAU,CAAqB;IAEvC,YACiB,KAAY,EACZ,UAA0B,EAC1B,IAAoB,EACpB,KAAqB;QAErC,KAAK,CAAC,KAAK,CAAC,CAAC;QALG,UAAK,GAAL,KAAK,CAAO;QACZ,eAAU,GAAV,UAAU,CAAgB;QAC1B,SAAI,GAAJ,IAAI,CAAgB;QACpB,UAAK,GAAL,KAAK,CAAgB;QAIrC,IAAI,CAAC,UAAU,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACjD,CAAC;IAED,YAAY,GAAG,GAAe,EAAE;QAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QACrC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;QAEvC,IAAI,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC;QACvC,IAAI,QAAQ,GAAG,QAAQ,CAAC,QAAQ,IAAI,SAAS,CAAC,QAAQ,CAAC;QAEvD,QAAQ,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;YAClC,KAAK,IAAI,CAAC;YACV,KAAK,QAAQ;gBACZ,yDAAyD;gBACzD,WAAW,GAAG,YAAY,CAAC;gBAC3B,QAAQ,GAAG,KAAK,CAAC;gBACjB,MAAM;YACP,KAAK,IAAI,CAAC;YACV,KAAK,KAAK,CAAC;YACX,KAAK,GAAG,CAAC;YACT,KAAK,IAAI,CAAC;YACV,KAAK,GAAG,CAAC;YACT,KAAK,IAAI,CAAC;YACV,KAAK,GAAG,CAAC;YACT,KAAK,IAAI,CAAC;YACV,KAAK,IAAI;gBACR,kDAAkD;gBAClD,WAAW,GAAG,YAAY,CAAC;gBAC3B,MAAM;YACP,KAAK,GAAG,CAAC;YACT,KAAK,GAAG,CAAC;YACT,KAAK,GAAG,CAAC;YACT,KAAK,GAAG,CAAC;YACT,KAAK,GAAG;gBACP,0DAA0D;gBAC1D,mFAAmF;gBACnF,IAAI,QAAQ,CAAC,WAAW,CAAC,SAAS,IAAI,SAAS,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC;oBACvE,4BAA4B;oBAC5B,IAAI,QAAQ,CAAC,WAAW,CAAC,IAAI,KAAK,MAAM,IAAI,SAAS,CAAC,WAAW,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;wBACnF,oCAAoC;wBACpC,WAAW,GAAG,SAAS,CAAC;oBACzB,CAAC;yBAAM,CAAC;wBACP,sCAAsC;wBACtC,WAAW,GAAG,YAAY,CAAC;oBAC5B,CAAC;gBACF,CAAC;qBAAM,CAAC;oBACP,0DAA0D;oBAC1D,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC;gBACpC,CAAC;gBACD,MAAM;YACP,KAAK,IAAI;gBACR,uBAAuB;gBACvB,WAAW,GAAG,SAAS,CAAC;gBACxB,MAAM;QACR,CAAC;QAAA,CAAC;QAEF,oEAAoE;QACpE,wEAAwE;QACxE,sEAAsE;QACtE,yCAAyC;QACzC,IAAI,oBAAoB,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YACpD,MAAM,UAAU,GAAG,0BAA0B,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;YACnE,IAAI,UAAU,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;gBACpC,MAAM,sBAAsB,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YAC3D,CAAC;QACF,CAAC;QAED,gEAAgE;QAChE,sEAAsE;QACtE,mEAAmE;QACnE,2CAA2C;QAC3C,MAAM,SAAS,GAAG,wBAAwB,CAAC,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;QAElE,OAAO;YACN,SAAS,EAAE,QAAQ;YACnB,WAAW;YACX,QAAQ;YACR,UAAU,EAAE,QAAQ,CAAC,UAAU,IAAI,SAAS,CAAC,UAAU;YACvD,aAAa,EAAE,SAAS,CAAC,aAAa;YACtC,eAAe,EAAE,SAAS,CAAC,eAAe;SAC1C,CAAC;IACH,CAAC,CAAA;IAED,OAAO;QACN,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;IAC9B,CAAC;IAED,WAAW;QACV,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;IAED,YAAY;QACX,OAAO,EAAE,CAAC;IACX,CAAC;IAED,YAAY,CAAC,WAAgC;QAC5C,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,YAAY,CAAC,wCAAwC,WAAW,CAAC,MAAM,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;QACjG,CAAC;QAED,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,GAAG,WAAW,CAAC;QAExC,aAAa;QACb,IAAI,CAAC,CAAC,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,YAAY,IAAI,QAAQ,CAAC,EAAE,CAAC;YAC/D,YAAY,CAAC,gDAAgD,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;QACrF,CAAC;QAED,0CAA0C;QAC1C,IAAI,OAAO,KAAK,IAAI,CAAC,IAAI,IAAI,QAAQ,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC;YACtD,OAAO,IAAI,CAAC;QACb,CAAC;QAED,sBAAsB;QACtB,OAAO,IAAI,YAAY,CACtB,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,UAAU,EACf,OAAyB,EACzB,QAA0B,CAC1B,CAAC;IACH,CAAC;IAEQ,QAAQ;QAChB,OAAO,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,IAAI,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;IACrG,CAAC;IAEQ,oBAAoB;QAC5B,OAAO;YACN,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,QAAQ;YAClC,IAAI,EAAE,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC;YACjC,KAAK,EAAE,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC;YACnC,UAAU,EAAE,gBAAgB,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;SAC5C,CAAC;IACH,CAAC;IAEO,cAAc;QACrB,iFAAiF;QACjF,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,WAAW,CAAC;QAC3C,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,WAAW,CAAC;QAC5C,OAAO,OAAO,CAAC,EAAE,CAAC,SAAS,IAAI,EAAE,CAAC,SAAS,CAAC,CAAC;IAC9C,CAAC;IAEQ,cAAc,CAAC,WAAmB;QAC1C,QAAQ,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;YAClC,KAAK,GAAG,CAAC,CAAC,CAAC;gBACV,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;oBAAE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC;gBAC/D,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,YAAY,CAAC;gBAC9D,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,YAAY,CAAC;gBAC/D,OAAO,EAAE,YAAY,EAAE,eAAe,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC;YAClD,CAAC;YACD,KAAK,GAAG,CAAC,CAAC,CAAC;gBACV,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;oBAAE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC;gBAC/D,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,YAAY,CAAC;gBAC9D,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,YAAY,CAAC;gBAC/D,mBAAmB;gBACnB,OAAO,EAAE,YAAY,EAAE,eAAe,CAAC,EAAE,EAAE,kBAAkB,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;YACtE,CAAC;YACD;gBACC,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC;QACrC,CAAC;IACF,CAAC;IAEQ,aAAa,CAAC,WAAmB;QACzC,QAAQ,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;YAClC,KAAK,GAAG,CAAC;YACT,KAAK,GAAG,CAAC,CAAC,CAAC;gBACV,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;oBAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;gBACxD,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,YAAY,CAAC;gBAC9D,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,YAAY,CAAC;gBAC/D,4EAA4E;gBAC5E,IAAI,EAAE,KAAK,UAAU,EAAE,CAAC;oBACvB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;oBAClD,8EAA8E;oBAC9E,iBAAiB;oBACjB,OAAO,GAAG,CAAC;gBACZ,CAAC;gBACD,IAAI,EAAE,KAAK,UAAU,EAAE,CAAC;oBACvB,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;gBAC7C,CAAC;gBACD,sEAAsE;gBACtE,oDAAoD;gBACpD,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,KAAK,GAAG;oBAChD,CAAC,CAAC,eAAe,CAAC,EAAE,EAAE,EAAE,CAAC;oBACzB,CAAC,CAAC,eAAe,CAAC,EAAE,EAAE,kBAAkB,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC/C,IAAI,QAAQ,KAAK,YAAY,IAAI,QAAQ,KAAK,YAAY,EAAE,CAAC;oBAC5D,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;gBAC5B,CAAC;gBACD,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;YAC7B,CAAC;YACD;gBACC,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;QAC9B,CAAC;IACF,CAAC;CACD;AAED,MAAM,OAAO,WAAY,SAAQ,QAAQ;IAWvB;IACA;IACC;IAZT,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC;IACzC;;;;;;;OAOG;IACH,YACiB,KAAY,EACZ,UAA2B,EAC1B,YAAyB;QAE1C,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,eAAe;QAJpB,UAAK,GAAL,KAAK,CAAO;QACZ,eAAU,GAAV,UAAU,CAAiB;QAC1B,iBAAY,GAAZ,YAAY,CAAa;IAG3C,CAAC;IAED,OAAO;QACN,sEAAsE;QACtE,iCAAiC;QACjC,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACvB,OAAO,IAAI,CAAC,YAAY,CAAC;QAC1B,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;QACpC,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACpB,OAAO;gBACN,SAAS,EAAE,QAAQ;gBACnB,WAAW,EAAE,SAAS;gBACtB,QAAQ,EAAE,IAAI;gBACd,UAAU,EAAE,IAAI;aAChB,CAAC;QACH,CAAC;QACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC/B,OAAO;gBACN,SAAS,EAAE,QAAQ;gBACnB,WAAW,EAAE,SAAS;gBACtB,QAAQ,EAAE,KAAK;gBACf,UAAU,EAAE,IAAI;aAChB,CAAC;QACH,CAAC;QACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC/B,OAAO;gBACN,SAAS,EAAE,QAAQ;gBACnB,WAAW,EAAE,YAAY;gBACzB,QAAQ,EAAE,KAAK;gBACf,UAAU,EAAE,IAAI;aAChB,CAAC;QACH,CAAC;QACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC/B,OAAO;gBACN,SAAS,EAAE,QAAQ;gBACnB,WAAW,EAAE,SAAS;gBACtB,QAAQ,EAAE,KAAK;gBACf,UAAU,EAAE,IAAI;aAChB,CAAC;QACH,CAAC;QACD,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;YAChC,OAAO;gBACN,SAAS,EAAE,QAAQ;gBACnB,WAAW,EAAE,YAAY;gBACzB,QAAQ,EAAE,KAAK;gBACf,UAAU,EAAE,IAAI;aAChB,CAAC;QACH,CAAC;QACD,IAAI,KAAK,YAAY,UAAU,EAAE,CAAC;YACjC,OAAO;gBACN,SAAS,EAAE,QAAQ;gBACnB,WAAW,EAAE,SAAS;gBACtB,QAAQ,EAAE,KAAK;gBACf,UAAU,EAAE,IAAI;aAChB,CAAC;QACH,CAAC;QACD,8EAA8E;QAC9E,6EAA6E;QAC7E,+EAA+E;QAC/E,4EAA4E;QAC5E,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC/B,OAAO;gBACN,SAAS,EAAE,QAAQ;gBACnB,WAAW,EAAE,SAAS;gBACtB,QAAQ,EAAE,KAAK;gBACf,UAAU,EAAE,IAAI;aAChB,CAAC;QACH,CAAC;QACD,YAAY,CAAC,wBAAwB,OAAO,KAAK,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC3E,CAAC;IAED,QAAQ;QACP,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;IAC9B,CAAC;IAED,WAAW;QACV,OAAO,EAAE,CAAC;IACX,CAAC;IAED,YAAY;QACX,OAAO,EAAE,CAAC;IACX,CAAC;IAED,YAAY,CAAC,WAAgC;QAC5C,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,YAAY,CAAC,uCAAuC,WAAW,CAAC,MAAM,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;QAChG,CAAC;QACD,OAAO,IAAI,CAAC,CAAC,4BAA4B;IAC1C,CAAC;IAEQ,QAAQ;QAChB,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;QACpC,IAAI,KAAK,KAAK,IAAI;YAAE,OAAO,MAAM,CAAC;QAClC,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,OAAO,IAAI,KAAK,GAAG,CAAC;QACnD,IAAI,KAAK,YAAY,UAAU;YAAE,OAAO,KAAK,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC;QACjH,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC;IAEQ,oBAAoB;QAC5B,OAAO;YACN,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK;YAC5B,UAAU,EAAE,gBAAgB,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;SAC5C,CAAC;IACH,CAAC;IAEQ,eAAe;QACvB,OAAO;YACN,QAAQ,EAAE,IAAI;SACd,CAAC;IACH,CAAC;IAEQ,cAAc,CAAC,YAAoB;QAC3C,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC;IACrC,CAAC;CACD;AAED,MAAM,OAAO,YAAa,SAAQ,QAAQ;IAKxB;IACA;IACA;IACA;IACA;IARR,QAAQ,GAAG,YAAY,CAAC,QAAQ,CAAC;IAClC,UAAU,CAAqB;IAEvC,YACiB,KAAY,EACZ,UAAwB,EACxB,QAAoC,EACpC,eAAiE,EACjE,QAAoC;QAEpD,KAAK,CAAC,KAAK,EAAE,IAAI,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;QAN5B,UAAK,GAAL,KAAK,CAAO;QACZ,eAAU,GAAV,UAAU,CAAc;QACxB,aAAQ,GAAR,QAAQ,CAA4B;QACpC,oBAAe,GAAf,eAAe,CAAkD;QACjE,aAAQ,GAAR,QAAQ,CAA4B;QAGpD,IAAI,CAAC,UAAU,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACjD,CAAC;IAED,OAAO;QACN,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;IAC9B,CAAC;IAED,YAAY,GAAG,GAAe,EAAE;QAC/B,kFAAkF;QAClF,MAAM,iBAAiB,GAAG;YACzB,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC;YAClD,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;SACzC,CAAC;QAEF,IAAI,iBAAiB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACpC,+DAA+D;YAC/D,OAAO;gBACN,SAAS,EAAE,QAAQ;gBACnB,WAAW,EAAE,SAAS;gBACtB,QAAQ,EAAE,IAAI;gBACd,UAAU,EAAE,IAAI;aAChB,CAAC;QACH,CAAC;QAED,mDAAmD;QACnD,MAAM,SAAS,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;QACjD,IAAI,WAAW,GAAG,SAAS,CAAC,WAAW,CAAC;QACxC,IAAI,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC;QAClC,IAAI,UAAU,GAAG,SAAS,CAAC,UAAU,CAAC;QAEtC,4DAA4D;QAC5D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,iBAAiB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACnD,MAAM,QAAQ,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;YAEhD,wDAAwD;YACxD,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;gBACvB,QAAQ,GAAG,IAAI,CAAC;YACjB,CAAC;YAED,gEAAgE;YAChE,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;gBACzB,UAAU,GAAG,IAAI,CAAC;YACnB,CAAC;YAED,qDAAqD;YACrD,4CAA4C;YAC5C,IAAI,QAAQ,CAAC,WAAW,KAAK,WAAW,EAAE,CAAC;gBAC1C,WAAW,GAAG,SAAS,CAAC;YACzB,CAAC;QACF,CAAC;QAED,kEAAkE;QAClE,sEAAsE;QACtE,8BAA8B;QAC9B,MAAM,SAAS,GAAG,wBAAwB,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAEpF,oDAAoD;QACpD,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACpB,QAAQ,GAAG,IAAI,CAAC;QACjB,CAAC;QAED,OAAO;YACN,SAAS,EAAE,QAAQ;YACnB,WAAW;YACX,QAAQ;YACR,UAAU;YACV,aAAa,EAAE,SAAS,CAAC,aAAa;YACtC,eAAe,EAAE,SAAS,CAAC,eAAe;SAC1C,CAAC;IACH,CAAC,CAAA;IAED,IAAI,QAAQ;QACX,MAAM,WAAW,GAAqB,EAAE,CAAC;QAEzC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACjC,CAAC;QAED,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YAC3C,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QAC5C,CAAC;QAED,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACjC,CAAC;QAED,OAAO,WAAW,CAAC;IACpB,CAAC;IAED,WAAW;QACV,OAAO,IAAI,CAAC,QAAQ,CAAC;IACtB,CAAC;IAED,YAAY;QACX,OAAO,EAAE,CAAC;IACX,CAAC;IAED,YAAY,CAAC,WAAgC;QAC5C,MAAM,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QAC5C,IAAI,WAAW,CAAC,MAAM,KAAK,cAAc,EAAE,CAAC;YAC3C,YAAY,CAAC,wBAAwB,cAAc,kBAAkB,WAAW,CAAC,MAAM,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;QACjH,CAAC;QAED,aAAa;QACb,KAAK,MAAM,KAAK,IAAI,WAAW,EAAE,CAAC;YACjC,IAAI,CAAC,CAAC,YAAY,IAAI,KAAK,CAAC,EAAE,CAAC;gBAC9B,YAAY,CAAC,oDAAoD,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;YACzF,CAAC;QACF,CAAC;QAED,4BAA4B;QAC5B,MAAM,eAAe,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QACnF,IAAI,CAAC,eAAe,EAAE,CAAC;YACtB,OAAO,IAAI,CAAC;QACb,CAAC;QAED,gCAAgC;QAChC,IAAI,UAAU,GAAG,CAAC,CAAC;QACnB,IAAI,WAAW,GAA+B,SAAS,CAAC;QAExD,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,WAAW,GAAG,WAAW,CAAC,UAAU,CAAmB,CAAC;YACxD,UAAU,EAAE,CAAC;QACd,CAAC;QAED,MAAM,kBAAkB,GAAqD,EAAE,CAAC;QAChF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACtD,MAAM,IAAI,GAAG,WAAW,CAAC,UAAU,CAAmB,CAAC;YACvD,MAAM,IAAI,GAAG,WAAW,CAAC,UAAU,GAAG,CAAC,CAAmB,CAAC;YAC3D,kBAAkB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YACxC,UAAU,IAAI,CAAC,CAAC;QACjB,CAAC;QAED,IAAI,WAAW,GAA+B,SAAS,CAAC;QACxD,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,WAAW,GAAG,WAAW,CAAC,UAAU,CAAmB,CAAC;QACzD,CAAC;QAED,sBAAsB;QACtB,OAAO,IAAI,YAAY,CACtB,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,UAAU,EACf,WAAW,EACX,kBAAkB,EAClB,WAAW,CACX,CAAC;IACH,CAAC;IAEQ,QAAQ;QAChB,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3E,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe;aACtC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;aAC7F,IAAI,CAAC,EAAE,CAAC,CAAC;QACX,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAChF,OAAO,OAAO,OAAO,GAAG,WAAW,GAAG,OAAO,MAAM,CAAC;IACrD,CAAC;IAEQ,oBAAoB;QAC5B,MAAM,KAAK,GAA4B;YACtC,UAAU,EAAE,gBAAgB,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAC5C,eAAe,EAAE,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBACpD,IAAI,EAAE,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC;gBACnC,IAAI,EAAE,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC;aACnC,CAAC,CAAC;SACH,CAAC;QAEF,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,KAAK,CAAC,cAAc,GAAG,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACxD,CAAC;QAED,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,KAAK,CAAC,cAAc,GAAG,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACxD,CAAC;QAED,OAAO,KAAK,CAAC;IACd,CAAC;CACD;AAED,MAAM,OAAO,QAAS,SAAQ,QAAQ;IAKpB;IACA;IACA;IANR,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC;IAC9B,UAAU,CAAqB;IAEvC,YACiB,KAAY,EACZ,UAAwB,EACxB,OAAuB;QAEvC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,2CAA2C;QAJ/C,UAAK,GAAL,KAAK,CAAO;QACZ,eAAU,GAAV,UAAU,CAAc;QACxB,YAAO,GAAP,OAAO,CAAgB;QAGvC,IAAI,CAAC,UAAU,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACjD,CAAC;IAED,OAAO;QACN,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;IAC9B,CAAC;IAED,YAAY,GAAG,GAAe,EAAE;QAC/B,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QAC3C,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;QAE9C,iFAAiF;QACjF,gFAAgF;QAChF,gFAAgF;QAChF,iEAAiE;QACjE,MAAM,WAAW,GAAG,YAAY,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAEvD,OAAO;YACN,SAAS,EAAE,QAAQ;YACnB,WAAW;YACX,oFAAoF;YACpF,kFAAkF;YAClF,iFAAiF;YACjF,gFAAgF;YAChF,wEAAwE;YACxE,QAAQ,EAAE,WAAW,CAAC,QAAQ;mBAC1B,CAAC,WAAW,KAAK,WAAW,CAAC,WAAW,IAAI,gBAAgB,CAAC,WAAW,CAAC,CAAC;YAC9E,UAAU,EAAE,WAAW,CAAC,UAAU;YAClC,aAAa,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS;YAC5E,eAAe,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS;SAChF,CAAC;IACH,CAAC,CAAA;IAED,WAAW;QACV,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACvB,CAAC;IAED,YAAY;QACX,OAAO,EAAE,CAAC;IACX,CAAC;IAED,YAAY,CAAC,WAAgC;QAC5C,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,YAAY,CAAC,iCAAiC,WAAW,CAAC,MAAM,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;QAC1F,CAAC;QAED,MAAM,CAAC,UAAU,CAAC,GAAG,WAAW,CAAC;QAEjC,aAAa;QACb,IAAI,CAAC,CAAC,YAAY,IAAI,UAAU,CAAC,EAAE,CAAC;YACnC,YAAY,CAAC,0CAA0C,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;QAC/E,CAAC;QAED,0CAA0C;QAC1C,IAAI,UAAU,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;YACjC,OAAO,IAAI,CAAC;QACb,CAAC;QAED,sBAAsB;QACtB,OAAO,IAAI,QAAQ,CAClB,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,UAAU,EACf,UAA4B,CAC5B,CAAC;IACH,CAAC;IAEQ,QAAQ;QAChB,OAAO,QAAQ,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,UAAU,CAAC,UAAU,GAAG,CAAC;IACnF,CAAC;IAEQ,oBAAoB;QAC5B,OAAO;YACN,OAAO,EAAE,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC;YACvC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,UAAU;YACtC,UAAU,EAAE,gBAAgB,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;SAC5C,CAAC;IACH,CAAC;IAEQ,aAAa,CAAC,WAAmB;QACzC,qEAAqE;QACrE,yEAAyE;QACzE,oEAAoE;QACpE,yCAAyC;QACzC,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,WAAW,CAAC;QACvD,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,WAAW,CAAC;QAC9C,IAAI,WAAW,KAAK,UAAU,EAAE,CAAC;YAChC,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;QAChD,CAAC;QACD,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;IAC7B,CAAC;CACD;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,OAAO,WAAY,SAAQ,QAAQ;IAKvB;IACA;IACA;IANR,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC;IACjC,UAAU,CAAqB;IAEvC,YACiB,KAAY,EACZ,UAA2B,EAC3B,OAAuB;QAEvC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,2BAA2B;QAJhC,UAAK,GAAL,KAAK,CAAO;QACZ,eAAU,GAAV,UAAU,CAAiB;QAC3B,YAAO,GAAP,OAAO,CAAgB;QAGvC,IAAI,CAAC,UAAU,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACjD,CAAC;IAED,OAAO;QACN,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;IAC9B,CAAC;IAED,YAAY,GAAG,GAAe,EAAE;QAC/B,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QAE3C,OAAO;YACN,GAAG,WAAW;YACd,aAAa,EAAE,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,WAAW,EAAE;YACtD,gEAAgE;YAChE,qEAAqE;YACrE,eAAe,EAAE,UAAU;SAC3B,CAAC;IACH,CAAC,CAAA;IAED,WAAW;QACV,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACvB,CAAC;IAED,YAAY;QACX,OAAO,EAAE,CAAC;IACX,CAAC;IAED,YAAY,CAAC,WAAgC;QAC5C,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,YAAY,CAAC,oCAAoC,WAAW,CAAC,MAAM,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;QAC7F,CAAC;QAED,MAAM,CAAC,UAAU,CAAC,GAAG,WAAW,CAAC;QAEjC,aAAa;QACb,IAAI,CAAC,CAAC,YAAY,IAAI,UAAU,CAAC,EAAE,CAAC;YACnC,YAAY,CAAC,6CAA6C,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;QAClF,CAAC;QAED,0CAA0C;QAC1C,IAAI,UAAU,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;YACjC,OAAO,IAAI,CAAC;QACb,CAAC;QAED,sBAAsB;QACtB,OAAO,IAAI,WAAW,CACrB,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,UAAU,EACf,UAA4B,CAC5B,CAAC;IACH,CAAC;IAEQ,QAAQ;QAChB,OAAO,GAAG,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC;IACjF,CAAC;IAEQ,oBAAoB;QAC5B,OAAO;YACN,OAAO,EAAE,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC;YACvC,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,SAAS;YACpC,UAAU,EAAE,gBAAgB,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;SAC5C,CAAC;IACH,CAAC;CACD;AAED,MAAM,OAAO,WAAY,SAAQ,QAAQ;IAKvB;IACA;IACA;IACA;IACA;IARR,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC;IACjC,UAAU,CAAqB;IAEvC,YACiB,KAAY,EACZ,UAA2B,EAC3B,IAAoB,EACpB,KAAqB,EACrB,KAAqB;QAErC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,6BAA6B;QANjC,UAAK,GAAL,KAAK,CAAO;QACZ,eAAU,GAAV,UAAU,CAAiB;QAC3B,SAAI,GAAJ,IAAI,CAAgB;QACpB,UAAK,GAAL,KAAK,CAAgB;QACrB,UAAK,GAAL,KAAK,CAAgB;QAGrC,IAAI,CAAC,UAAU,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACjD,CAAC;IAED,YAAY,GAAG,GAAe,EAAE;QAC/B,uEAAuE;QACvE,oEAAoE;QACpE,sEAAsE;QACtE,0EAA0E;QAC1E,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QACrC,KAAK,MAAM,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9C,MAAM,UAAU,GAAG,0BAA0B,CAAC,QAAQ,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YACzE,IAAI,UAAU,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;gBACpC,MAAM,sBAAsB,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YAC3D,CAAC;QACF,CAAC;QACD,qDAAqD;QACrD,OAAO;YACN,SAAS,EAAE,QAAQ;YACnB,WAAW,EAAE,YAAY;YACzB,QAAQ,EAAE,QAAQ,CAAC,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,QAAQ;YAC7F,UAAU,EAAE,IAAI;SAChB,CAAC;IACH,CAAC,CAAA;IAED,OAAO;QACN,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;IAC9B,CAAC;IAED,WAAW;QACV,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5C,CAAC;IAED,YAAY;QACX,OAAO,EAAE,CAAC;IACX,CAAC;IAED,YAAY,CAAC,WAAgC;QAC5C,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,YAAY,CAAC,uCAAuC,WAAW,CAAC,MAAM,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;QAChG,CAAC;QAED,MAAM,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,GAAG,WAAW,CAAC;QAElD,aAAa;QACb,KAAK,MAAM,KAAK,IAAI,WAAW,EAAE,CAAC;YACjC,IAAI,CAAC,CAAC,YAAY,IAAI,KAAK,CAAC,EAAE,CAAC;gBAC9B,YAAY,CAAC,mDAAmD,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;YACxF,CAAC;QACF,CAAC;QAED,0CAA0C;QAC1C,IAAI,OAAO,KAAK,IAAI,CAAC,IAAI,IAAI,QAAQ,KAAK,IAAI,CAAC,KAAK,IAAI,QAAQ,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC;YACjF,OAAO,IAAI,CAAC;QACb,CAAC;QAED,sBAAsB;QACtB,OAAO,IAAI,WAAW,CACrB,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,UAAU,EACf,OAAyB,EACzB,QAA0B,EAC1B,QAA0B,CAC1B,CAAC;IACH,CAAC;IAEQ,QAAQ;QAChB,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;QACpD,OAAO,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,SAAS,WAAW,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;IACjI,CAAC;IAEQ,oBAAoB;QAC5B,OAAO;YACN,IAAI,EAAE,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC;YACjC,KAAK,EAAE,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC;YACnC,KAAK,EAAE,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC;YACnC,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,IAAI,KAAK;YACjC,UAAU,EAAE,gBAAgB,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;SAC5C,CAAC;IACH,CAAC;CACD"}
@@ -1 +1 @@
1
- {"version":3,"file":"optimizer.d.ts","sourceRoot":"","sources":["../../../src/planner/optimizer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAGxE,OAAO,EAAE,cAAc,EAAE,CAAC;AAG1B,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGtD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AA4DjF,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAI/C;;;;;;;;;;GAUG;AACH,MAAM,WAAW,iBAAiB;IACjC,qCAAqC;IACrC,IAAI,EAAE,MAAM,CAAC;IACb;;;;;OAKG;IACH,EAAE,EAAE,MAAM,CAAC;IACX,wEAAwE;IACxE,QAAQ,EAAE,YAAY,GAAG,YAAY,EAAE,CAAC;IACxC,KAAK,EAAE,SAAS,CAAC;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,cAAc,EAAE,cAAc,CAAC;CAC/B;AAi3BD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,gBAAgB,CAC/B,QAAQ,EAAE,SAAS,iBAAiB,EAAE,EACtC,WAAW,EAAE,WAAW,GACtB,IAAI,CA0CN;AAED;;GAEG;AACH,qBAAa,SAAS;IACrB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAgB;IACtC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAc;IAC1C,OAAO,CAAC,eAAe,CAAqC;IACrD,MAAM,EAAE,eAAe,CAAC;gBAG9B,MAAM,GAAE,eAAgC,EACxC,KAAK,CAAC,EAAE,aAAa;IAUtB,YAAY,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI;IAI3C;;;;OAIG;IACH,OAAO,CAAC,qBAAqB;IAI7B;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,GAAG,QAAQ;IAgChD;;;OAGG;IACH,mBAAmB,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,GAAG,QAAQ;IAe3D;;OAEG;IACH,QAAQ,IAAI,aAAa;IAIzB,qDAAqD;IACrD,kBAAkB,IAAI,oBAAoB,GAAG,IAAI;CAGjD"}
1
+ {"version":3,"file":"optimizer.d.ts","sourceRoot":"","sources":["../../../src/planner/optimizer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAGxE,OAAO,EAAE,cAAc,EAAE,CAAC;AAG1B,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGtD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AA8DjF,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAI/C;;;;;;;;;;GAUG;AACH,MAAM,WAAW,iBAAiB;IACjC,qCAAqC;IACrC,IAAI,EAAE,MAAM,CAAC;IACb;;;;;OAKG;IACH,EAAE,EAAE,MAAM,CAAC;IACX,wEAAwE;IACxE,QAAQ,EAAE,YAAY,GAAG,YAAY,EAAE,CAAC;IACxC,KAAK,EAAE,SAAS,CAAC;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,cAAc,EAAE,cAAc,CAAC;CAC/B;AA++BD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,gBAAgB,CAC/B,QAAQ,EAAE,SAAS,iBAAiB,EAAE,EACtC,WAAW,EAAE,WAAW,GACtB,IAAI,CA0CN;AAED;;GAEG;AACH,qBAAa,SAAS;IACrB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAgB;IACtC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAc;IAC1C,OAAO,CAAC,eAAe,CAAqC;IACrD,MAAM,EAAE,eAAe,CAAC;gBAG9B,MAAM,GAAE,eAAgC,EACxC,KAAK,CAAC,EAAE,aAAa;IAUtB,YAAY,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI;IAI3C;;;;OAIG;IACH,OAAO,CAAC,qBAAqB;IAI7B;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,GAAG,QAAQ;IAgChD;;;OAGG;IACH,mBAAmB,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,GAAG,QAAQ;IAe3D;;OAEG;IACH,QAAQ,IAAI,aAAa;IAIzB,qDAAqD;IACrD,kBAAkB,IAAI,oBAAoB,GAAG,IAAI;CAGjD"}
@@ -48,8 +48,10 @@ import { ruleMonotonicWindow } from './rules/window/rule-monotonic-window.js';
48
48
  // Constraint rules removed - now handled in builders for correctness
49
49
  import { ruleCteOptimization } from './rules/cache/rule-cte-optimization.js';
50
50
  import { ruleMutatingSubqueryCache } from './rules/cache/rule-mutating-subquery-cache.js';
51
- import { ruleInSubqueryCache } from './rules/cache/rule-in-subquery-cache.js';
52
- import { ruleSubqueryDecorrelation } from './rules/subquery/rule-subquery-decorrelation.js';
51
+ import { ruleNestedLoopRightCache } from './rules/cache/rule-nested-loop-right-cache.js';
52
+ import { ruleScalarSubqueryCache } from './rules/cache/rule-scalar-subquery-cache.js';
53
+ import { ruleSubqueryDecorrelation, ruleExistsInSelectDecorrelation } from './rules/subquery/rule-subquery-decorrelation.js';
54
+ import { ruleScalarAggDecorrelation, ruleScalarAggDecorrelationAggregate, ruleScalarAggDecorrelationFilter, ruleScalarAggDecorrelationSort } from './rules/subquery/rule-scalar-agg-decorrelation.js';
53
55
  import { ruleAntiJoinFkEmpty } from './rules/subquery/rule-anti-join-fk-empty.js';
54
56
  import { ruleSemiJoinFkTrivial } from './rules/subquery/rule-semi-join-fk-trivial.js';
55
57
  import { ruleFilterFoldEmpty, ruleProjectFoldEmpty, ruleSortFoldEmpty, ruleLimitOffsetFoldEmpty, ruleDistinctFoldEmpty, ruleJoinFoldEmpty, } from './rules/predicate/rule-empty-relation-folding.js';
@@ -469,6 +471,103 @@ const RULE_MANIFEST = [
469
471
  // executed — refuses when the inner subtree carries a write.
470
472
  sideEffectMode: 'aware',
471
473
  },
474
+ // Filter match site for scalar-aggregate decorrelation: a correlated
475
+ // scalar-aggregate subquery used in a WHERE (or HAVING) comparison —
476
+ // `where o.total > (select avg(c.amount) from c where c.fk = o.k)` — is
477
+ // rewritten to `Filter[pred'](LeftJoin(outer, groupedAgg))`, sharing the
478
+ // per-subquery rewrite (`decorrelateOne`) with the Project- and Aggregate-site
479
+ // siblings. HAVING is the same shape (a FilterNode over an AggregateNode), so
480
+ // one anchor covers both. Registered AFTER `subquery-decorrelation` (both are
481
+ // Filter-typed; pass rules fire in registration order) so EXISTS/IN semi/anti
482
+ // joins materialize first and this rule then decorrelates any scalar-agg
483
+ // comparison over the already-rewritten source. The two Filter rules target
484
+ // disjoint subquery node types (ExistsNode/InNode conjuncts vs ScalarSubqueryNode
485
+ // anywhere in the tree), so there is no match collision.
486
+ {
487
+ pass: PassId.Structural,
488
+ id: 'scalar-agg-decorrelation-filter',
489
+ nodeType: PlanNodeType.Filter,
490
+ phase: 'rewrite',
491
+ fn: ruleScalarAggDecorrelationFilter,
492
+ // Changes the inner subquery subtree's execution count (per outer row →
493
+ // once) — refuses when the inner subtree carries a write.
494
+ sideEffectMode: 'aware',
495
+ },
496
+ // Scalar-aggregate subquery decorrelation: transform a correlated
497
+ // scalar-aggregate subquery in a SELECT projection into a grouped LEFT JOIN
498
+ // (inner table scanned once, hash-aggregated by correlation key). Registered
499
+ // AFTER `fanout-lookup-join` (which is Project-typed too and, on
500
+ // remote-latency plans, consumes the same subquery shape first — it is inert
501
+ // locally) and adjacent to `subquery-decorrelation`, its WHERE-clause
502
+ // sibling. Unconditional (no cost gate), matching the EXISTS/IN precedent;
503
+ // the tiny-outer/huge-inner tradeoff is tracked in
504
+ // `backlog/feat-decorrelation-cost-model`.
505
+ {
506
+ pass: PassId.Structural,
507
+ id: 'scalar-agg-decorrelation',
508
+ nodeType: PlanNodeType.Project,
509
+ phase: 'rewrite',
510
+ fn: ruleScalarAggDecorrelation,
511
+ // Changes the inner subquery subtree's execution count (per outer row →
512
+ // once) — refuses when the inner subtree carries a write.
513
+ sideEffectMode: 'aware',
514
+ },
515
+ // Aggregate-argument match site for the same rewrite: a scalar-aggregate
516
+ // subquery nested inside an aggregate argument (the shape a two-level
517
+ // nested subquery takes after the Project-site rewrite fires on its
518
+ // enclosing level) is decorrelated into a grouped LEFT JOIN placed BELOW
519
+ // the enclosing aggregate. The structural pass is top-down with rules
520
+ // firing before descent, so multi-level nesting converges level by level
521
+ // within a single pass.
522
+ {
523
+ pass: PassId.Structural,
524
+ id: 'scalar-agg-decorrelation-aggregate',
525
+ nodeType: PlanNodeType.Aggregate,
526
+ phase: 'rewrite',
527
+ fn: ruleScalarAggDecorrelationAggregate,
528
+ // Same execution-count change as the Project-site entry — refuses when
529
+ // the inner subtree carries a write.
530
+ sideEffectMode: 'aware',
531
+ },
532
+ // Sort (ORDER BY) match site for the same rewrite: a correlated
533
+ // scalar-aggregate subquery in a sort-key expression —
534
+ // `order by (select count(*) from c where c.fk = o.k)` — is rewritten to a
535
+ // grouped LEFT JOIN placed BELOW the Sort (so the key can read the value
536
+ // column), then capped with a bare pass-through Project that restores the
537
+ // Sort's original output shape (a SortNode publishes its source's attributes
538
+ // verbatim, so the join's appended columns would otherwise leak upward). Sort
539
+ // is not otherwise a decorrelation anchor, so there is no registration-order
540
+ // coupling with the Filter/Project/Aggregate sites — placed adjacent for
541
+ // locality.
542
+ {
543
+ pass: PassId.Structural,
544
+ id: 'scalar-agg-decorrelation-sort',
545
+ nodeType: PlanNodeType.Sort,
546
+ phase: 'rewrite',
547
+ fn: ruleScalarAggDecorrelationSort,
548
+ // Changes the inner subquery subtree's execution count (per outer row →
549
+ // once) — refuses when the inner subtree carries a write.
550
+ sideEffectMode: 'aware',
551
+ },
552
+ // SELECT-list match site for EXISTS/IN decorrelation: a correlated EXISTS /
553
+ // NOT EXISTS / IN in a ProjectNode's expressions becomes a LEFT join carrying
554
+ // an `exists right as` match flag, with the subquery node replaced by a flag
555
+ // column reference (every outer row survives — a semi/anti join cannot express
556
+ // this). Registered adjacent to its decorrelation siblings; ordering relative
557
+ // to the earlier-registered Project-typed flag rules (join-existence-pruning,
558
+ // the recovery rules) is not load-bearing — the per-node applyRules fixpoint
559
+ // re-offers every rule whenever a transform mints a new node, so they see the
560
+ // flag-bearing Project produced here in the same loop.
561
+ {
562
+ pass: PassId.Structural,
563
+ id: 'exists-in-select-decorrelation',
564
+ nodeType: PlanNodeType.Project,
565
+ phase: 'rewrite',
566
+ fn: ruleExistsInSelectDecorrelation,
567
+ // Changes the inner subquery subtree's execution count (per outer row →
568
+ // once) — refuses when the inner subtree carries a write.
569
+ sideEffectMode: 'aware',
570
+ },
472
571
  // IND-driven existence folding (runs after decorrelation has materialized
473
572
  // EXISTS / NOT EXISTS as semi/anti joins):
474
573
  // - Anti-join over a covering non-null FK → Filter(L, false)
@@ -770,6 +869,24 @@ const RULE_MANIFEST = [
770
869
  // them in a run-once CacheNode — the canonical aware rule.
771
870
  sideEffectMode: 'aware',
772
871
  },
872
+ // Cache the pure right side of a surviving nested-loop JoinNode. Runs
873
+ // immediately after mutating-subquery-cache so that a side-effect-bearing
874
+ // right side is already wrapped (and this rule's already-cached gate skips
875
+ // it) — the two rules partition the space: mutating handles impure right
876
+ // sides, this one handles pure ones. By PostOptimization every equi-join is
877
+ // already a hash/merge, so any logical JoinNode reaching here is a nested
878
+ // loop whose left-driven types re-open the right pipeline per left row.
879
+ {
880
+ pass: PassId.PostOptimization,
881
+ id: 'nested-loop-right-cache',
882
+ nodeType: PlanNodeType.Join,
883
+ phase: 'rewrite',
884
+ fn: ruleNestedLoopRightCache,
885
+ // Only fires on side-effect-free right sides (purity gate), but declares
886
+ // 'aware' to match the sibling cache rules and stay correct if the gate
887
+ // is ever relaxed.
888
+ sideEffectMode: 'aware',
889
+ },
773
890
  // AsofScan strategy selection (hash → merge). Runs after the leaves' physical
774
891
  // ordering / monotonicOn are finalized (monotonic-range-access) so the
775
892
  // predicate-driven check can read them off.
@@ -871,20 +988,24 @@ const RULE_MANIFEST = [
871
988
  // so the rule is aware of side effects.
872
989
  sideEffectMode: 'aware',
873
990
  },
874
- // IN-subquery caching: wrap uncorrelated IN subquery sources in CacheNode.
991
+ // NOTE: uncorrelated `IN (subquery)` is no longer wrapped in a CacheNode here.
992
+ // `emitIn` materializes the result once per execution into a probed lookup set
993
+ // (O(K + N·log K), zero stats) — a row cache would just double-buffer it. See
994
+ // `runtime/emit/subquery.ts` and quereus-in-subquery-set-probe.
995
+ // Scalar-subquery caching: wrap uncorrelated scalar subquery inners in CacheNode.
875
996
  {
876
997
  pass: PassId.PostOptimization,
877
- id: 'in-subquery-cache',
878
- nodeType: PlanNodeType.In,
998
+ id: 'scalar-subquery-cache',
999
+ nodeType: PlanNodeType.ScalarSubquery,
879
1000
  phase: 'rewrite',
880
- fn: ruleInSubqueryCache,
881
- // Already gates on `isFunctional(source)` (deterministic + read-only).
1001
+ fn: ruleScalarSubqueryCache,
1002
+ // Gates on isFunctional(inner) (deterministic + read-only).
882
1003
  sideEffectMode: 'aware',
883
1004
  },
884
1005
  // NOTE: The materialization advisory no longer registers per-node-type rules.
885
1006
  // It runs once over the whole plan as a dedicated custom-execute pass
886
1007
  // (`PassId.Materialization`, order 35 — after PostOptimization so it observes
887
- // the CacheNodes injected by `cte-optimization` / `in-subquery-cache`). See
1008
+ // the CacheNodes injected by `cte-optimization`). See
888
1009
  // `createMaterializationPass` in framework/pass.ts for the single-walk rationale
889
1010
  // and the side-effect-soundness argument.
890
1011
  ];