@quereus/quereus 0.1.0 → 0.2.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 (477) hide show
  1. package/README.md +47 -23
  2. package/dist/src/common/types.d.ts +1 -0
  3. package/dist/src/common/types.d.ts.map +1 -1
  4. package/dist/src/core/database.d.ts +22 -4
  5. package/dist/src/core/database.d.ts.map +1 -1
  6. package/dist/src/core/database.js +44 -6
  7. package/dist/src/core/database.js.map +1 -1
  8. package/dist/src/core/statement.d.ts +0 -7
  9. package/dist/src/core/statement.d.ts.map +1 -1
  10. package/dist/src/core/statement.js +1 -51
  11. package/dist/src/core/statement.js.map +1 -1
  12. package/dist/src/func/builtins/explain.d.ts.map +1 -1
  13. package/dist/src/func/builtins/explain.js +0 -11
  14. package/dist/src/func/builtins/explain.js.map +1 -1
  15. package/dist/src/index.d.ts +13 -5
  16. package/dist/src/index.d.ts.map +1 -1
  17. package/dist/src/index.js +5 -2
  18. package/dist/src/index.js.map +1 -1
  19. package/dist/src/parser/ast.d.ts +10 -4
  20. package/dist/src/parser/ast.d.ts.map +1 -1
  21. package/dist/src/parser/parser.d.ts.map +1 -1
  22. package/dist/src/parser/parser.js +40 -44
  23. package/dist/src/parser/parser.js.map +1 -1
  24. package/dist/src/planner/analysis/const-pass.d.ts.map +1 -1
  25. package/dist/src/planner/analysis/const-pass.js +12 -6
  26. package/dist/src/planner/analysis/const-pass.js.map +1 -1
  27. package/dist/src/planner/building/constraint-builder.d.ts +11 -0
  28. package/dist/src/planner/building/constraint-builder.d.ts.map +1 -0
  29. package/dist/src/planner/building/constraint-builder.js +79 -0
  30. package/dist/src/planner/building/constraint-builder.js.map +1 -0
  31. package/dist/src/planner/building/delete.d.ts.map +1 -1
  32. package/dist/src/planner/building/delete.js +7 -4
  33. package/dist/src/planner/building/delete.js.map +1 -1
  34. package/dist/src/planner/building/expression.d.ts +3 -0
  35. package/dist/src/planner/building/expression.d.ts.map +1 -1
  36. package/dist/src/planner/building/expression.js +33 -7
  37. package/dist/src/planner/building/expression.js.map +1 -1
  38. package/dist/src/planner/building/insert.d.ts.map +1 -1
  39. package/dist/src/planner/building/insert.js +5 -2
  40. package/dist/src/planner/building/insert.js.map +1 -1
  41. package/dist/src/planner/building/select-aggregates.d.ts.map +1 -1
  42. package/dist/src/planner/building/select-aggregates.js +46 -9
  43. package/dist/src/planner/building/select-aggregates.js.map +1 -1
  44. package/dist/src/planner/building/select-context.js +20 -11
  45. package/dist/src/planner/building/select-context.js.map +1 -1
  46. package/dist/src/planner/building/select-modifiers.d.ts +5 -3
  47. package/dist/src/planner/building/select-modifiers.d.ts.map +1 -1
  48. package/dist/src/planner/building/select-modifiers.js +29 -20
  49. package/dist/src/planner/building/select-modifiers.js.map +1 -1
  50. package/dist/src/planner/building/select-projections.d.ts +3 -1
  51. package/dist/src/planner/building/select-projections.d.ts.map +1 -1
  52. package/dist/src/planner/building/select-projections.js +15 -20
  53. package/dist/src/planner/building/select-projections.js.map +1 -1
  54. package/dist/src/planner/building/select-window.d.ts.map +1 -1
  55. package/dist/src/planner/building/select-window.js +6 -3
  56. package/dist/src/planner/building/select-window.js.map +1 -1
  57. package/dist/src/planner/building/select.d.ts +25 -2
  58. package/dist/src/planner/building/select.d.ts.map +1 -1
  59. package/dist/src/planner/building/select.js +147 -24
  60. package/dist/src/planner/building/select.js.map +1 -1
  61. package/dist/src/planner/building/table.d.ts +0 -10
  62. package/dist/src/planner/building/table.d.ts.map +1 -1
  63. package/dist/src/planner/building/table.js +1 -35
  64. package/dist/src/planner/building/table.js.map +1 -1
  65. package/dist/src/planner/building/update.d.ts.map +1 -1
  66. package/dist/src/planner/building/update.js +8 -5
  67. package/dist/src/planner/building/update.js.map +1 -1
  68. package/dist/src/planner/building/with.d.ts.map +1 -1
  69. package/dist/src/planner/building/with.js +7 -8
  70. package/dist/src/planner/building/with.js.map +1 -1
  71. package/dist/src/planner/cache/correlation-detector.d.ts +11 -0
  72. package/dist/src/planner/cache/correlation-detector.d.ts.map +1 -0
  73. package/dist/src/planner/cache/correlation-detector.js +73 -0
  74. package/dist/src/planner/cache/correlation-detector.js.map +1 -0
  75. package/dist/src/planner/cache/materialization-advisory.d.ts +12 -18
  76. package/dist/src/planner/cache/materialization-advisory.d.ts.map +1 -1
  77. package/dist/src/planner/cache/materialization-advisory.js +65 -46
  78. package/dist/src/planner/cache/materialization-advisory.js.map +1 -1
  79. package/dist/src/planner/cache/reference-graph.d.ts +14 -9
  80. package/dist/src/planner/cache/reference-graph.d.ts.map +1 -1
  81. package/dist/src/planner/cache/reference-graph.js +93 -84
  82. package/dist/src/planner/cache/reference-graph.js.map +1 -1
  83. package/dist/src/planner/debug.d.ts +25 -0
  84. package/dist/src/planner/debug.d.ts.map +1 -1
  85. package/dist/src/planner/debug.js +127 -0
  86. package/dist/src/planner/debug.js.map +1 -1
  87. package/dist/src/planner/framework/context.d.ts +11 -0
  88. package/dist/src/planner/framework/context.d.ts.map +1 -1
  89. package/dist/src/planner/framework/context.js +25 -2
  90. package/dist/src/planner/framework/context.js.map +1 -1
  91. package/dist/src/planner/framework/registry.d.ts +3 -7
  92. package/dist/src/planner/framework/registry.d.ts.map +1 -1
  93. package/dist/src/planner/framework/registry.js +20 -31
  94. package/dist/src/planner/framework/registry.js.map +1 -1
  95. package/dist/src/planner/nodes/add-constraint-node.d.ts +2 -1
  96. package/dist/src/planner/nodes/add-constraint-node.d.ts.map +1 -1
  97. package/dist/src/planner/nodes/add-constraint-node.js +3 -0
  98. package/dist/src/planner/nodes/add-constraint-node.js.map +1 -1
  99. package/dist/src/planner/nodes/aggregate-node.d.ts.map +1 -1
  100. package/dist/src/planner/nodes/aggregate-node.js +6 -4
  101. package/dist/src/planner/nodes/aggregate-node.js.map +1 -1
  102. package/dist/src/planner/nodes/cache-node.d.ts.map +1 -1
  103. package/dist/src/planner/nodes/cache-node.js +2 -2
  104. package/dist/src/planner/nodes/cache-node.js.map +1 -1
  105. package/dist/src/planner/nodes/constraint-check-node.d.ts +13 -6
  106. package/dist/src/planner/nodes/constraint-check-node.d.ts.map +1 -1
  107. package/dist/src/planner/nodes/constraint-check-node.js +38 -12
  108. package/dist/src/planner/nodes/constraint-check-node.js.map +1 -1
  109. package/dist/src/planner/nodes/create-index-node.d.ts +2 -1
  110. package/dist/src/planner/nodes/create-index-node.d.ts.map +1 -1
  111. package/dist/src/planner/nodes/create-index-node.js +3 -0
  112. package/dist/src/planner/nodes/create-index-node.js.map +1 -1
  113. package/dist/src/planner/nodes/create-table-node.d.ts +2 -1
  114. package/dist/src/planner/nodes/create-table-node.d.ts.map +1 -1
  115. package/dist/src/planner/nodes/create-table-node.js +3 -0
  116. package/dist/src/planner/nodes/create-table-node.js.map +1 -1
  117. package/dist/src/planner/nodes/create-view-node.d.ts +2 -1
  118. package/dist/src/planner/nodes/create-view-node.d.ts.map +1 -1
  119. package/dist/src/planner/nodes/create-view-node.js +3 -0
  120. package/dist/src/planner/nodes/create-view-node.js.map +1 -1
  121. package/dist/src/planner/nodes/cte-node.d.ts +1 -1
  122. package/dist/src/planner/nodes/cte-node.d.ts.map +1 -1
  123. package/dist/src/planner/nodes/cte-node.js +33 -12
  124. package/dist/src/planner/nodes/cte-node.js.map +1 -1
  125. package/dist/src/planner/nodes/cte-reference-node.d.ts +18 -4
  126. package/dist/src/planner/nodes/cte-reference-node.d.ts.map +1 -1
  127. package/dist/src/planner/nodes/cte-reference-node.js +40 -10
  128. package/dist/src/planner/nodes/cte-reference-node.js.map +1 -1
  129. package/dist/src/planner/nodes/delete-node.d.ts +4 -3
  130. package/dist/src/planner/nodes/delete-node.d.ts.map +1 -1
  131. package/dist/src/planner/nodes/delete-node.js +20 -6
  132. package/dist/src/planner/nodes/delete-node.js.map +1 -1
  133. package/dist/src/planner/nodes/distinct-node.d.ts.map +1 -1
  134. package/dist/src/planner/nodes/distinct-node.js +2 -2
  135. package/dist/src/planner/nodes/distinct-node.js.map +1 -1
  136. package/dist/src/planner/nodes/dml-executor-node.d.ts +1 -1
  137. package/dist/src/planner/nodes/dml-executor-node.d.ts.map +1 -1
  138. package/dist/src/planner/nodes/dml-executor-node.js +2 -2
  139. package/dist/src/planner/nodes/dml-executor-node.js.map +1 -1
  140. package/dist/src/planner/nodes/drop-table-node.d.ts +2 -1
  141. package/dist/src/planner/nodes/drop-table-node.d.ts.map +1 -1
  142. package/dist/src/planner/nodes/drop-table-node.js +3 -0
  143. package/dist/src/planner/nodes/drop-table-node.js.map +1 -1
  144. package/dist/src/planner/nodes/drop-view-node.d.ts +2 -1
  145. package/dist/src/planner/nodes/drop-view-node.d.ts.map +1 -1
  146. package/dist/src/planner/nodes/drop-view-node.js +3 -0
  147. package/dist/src/planner/nodes/drop-view-node.js.map +1 -1
  148. package/dist/src/planner/nodes/filter.d.ts.map +1 -1
  149. package/dist/src/planner/nodes/filter.js +3 -3
  150. package/dist/src/planner/nodes/filter.js.map +1 -1
  151. package/dist/src/planner/nodes/insert-node.d.ts +2 -1
  152. package/dist/src/planner/nodes/insert-node.d.ts.map +1 -1
  153. package/dist/src/planner/nodes/insert-node.js +18 -5
  154. package/dist/src/planner/nodes/insert-node.js.map +1 -1
  155. package/dist/src/planner/nodes/internal-recursive-cte-ref-node.d.ts +28 -0
  156. package/dist/src/planner/nodes/internal-recursive-cte-ref-node.d.ts.map +1 -0
  157. package/dist/src/planner/nodes/internal-recursive-cte-ref-node.js +69 -0
  158. package/dist/src/planner/nodes/internal-recursive-cte-ref-node.js.map +1 -0
  159. package/dist/src/planner/nodes/join-node.d.ts.map +1 -1
  160. package/dist/src/planner/nodes/join-node.js +3 -3
  161. package/dist/src/planner/nodes/join-node.js.map +1 -1
  162. package/dist/src/planner/nodes/limit-offset.d.ts.map +1 -1
  163. package/dist/src/planner/nodes/limit-offset.js +2 -2
  164. package/dist/src/planner/nodes/limit-offset.js.map +1 -1
  165. package/dist/src/planner/nodes/plan-node-type.d.ts +1 -1
  166. package/dist/src/planner/nodes/plan-node-type.d.ts.map +1 -1
  167. package/dist/src/planner/nodes/plan-node-type.js +1 -1
  168. package/dist/src/planner/nodes/plan-node-type.js.map +1 -1
  169. package/dist/src/planner/nodes/plan-node.d.ts +23 -0
  170. package/dist/src/planner/nodes/plan-node.d.ts.map +1 -1
  171. package/dist/src/planner/nodes/plan-node.js +25 -2
  172. package/dist/src/planner/nodes/plan-node.js.map +1 -1
  173. package/dist/src/planner/nodes/project-node.d.ts +5 -1
  174. package/dist/src/planner/nodes/project-node.d.ts.map +1 -1
  175. package/dist/src/planner/nodes/project-node.js +39 -20
  176. package/dist/src/planner/nodes/project-node.js.map +1 -1
  177. package/dist/src/planner/nodes/recursive-cte-node.d.ts +2 -2
  178. package/dist/src/planner/nodes/recursive-cte-node.d.ts.map +1 -1
  179. package/dist/src/planner/nodes/recursive-cte-node.js +20 -8
  180. package/dist/src/planner/nodes/recursive-cte-node.js.map +1 -1
  181. package/dist/src/planner/nodes/reference.d.ts.map +1 -1
  182. package/dist/src/planner/nodes/reference.js +4 -2
  183. package/dist/src/planner/nodes/reference.js.map +1 -1
  184. package/dist/src/planner/nodes/returning-node.d.ts +1 -1
  185. package/dist/src/planner/nodes/returning-node.d.ts.map +1 -1
  186. package/dist/src/planner/nodes/returning-node.js +21 -13
  187. package/dist/src/planner/nodes/returning-node.js.map +1 -1
  188. package/dist/src/planner/nodes/scalar.d.ts +26 -2
  189. package/dist/src/planner/nodes/scalar.d.ts.map +1 -1
  190. package/dist/src/planner/nodes/scalar.js +82 -10
  191. package/dist/src/planner/nodes/scalar.js.map +1 -1
  192. package/dist/src/planner/nodes/sequencing-node.d.ts.map +1 -1
  193. package/dist/src/planner/nodes/sequencing-node.js +2 -2
  194. package/dist/src/planner/nodes/sequencing-node.js.map +1 -1
  195. package/dist/src/planner/nodes/set-operation-node.d.ts.map +1 -1
  196. package/dist/src/planner/nodes/set-operation-node.js +3 -3
  197. package/dist/src/planner/nodes/set-operation-node.js.map +1 -1
  198. package/dist/src/planner/nodes/single-row.d.ts +4 -2
  199. package/dist/src/planner/nodes/single-row.d.ts.map +1 -1
  200. package/dist/src/planner/nodes/single-row.js +3 -0
  201. package/dist/src/planner/nodes/single-row.js.map +1 -1
  202. package/dist/src/planner/nodes/sink-node.d.ts +1 -1
  203. package/dist/src/planner/nodes/sink-node.d.ts.map +1 -1
  204. package/dist/src/planner/nodes/sink-node.js +4 -4
  205. package/dist/src/planner/nodes/sink-node.js.map +1 -1
  206. package/dist/src/planner/nodes/sort.d.ts.map +1 -1
  207. package/dist/src/planner/nodes/sort.js +2 -2
  208. package/dist/src/planner/nodes/sort.js.map +1 -1
  209. package/dist/src/planner/nodes/stream-aggregate.d.ts +1 -0
  210. package/dist/src/planner/nodes/stream-aggregate.d.ts.map +1 -1
  211. package/dist/src/planner/nodes/stream-aggregate.js +64 -11
  212. package/dist/src/planner/nodes/stream-aggregate.js.map +1 -1
  213. package/dist/src/planner/nodes/subquery.d.ts +4 -4
  214. package/dist/src/planner/nodes/subquery.d.ts.map +1 -1
  215. package/dist/src/planner/nodes/subquery.js +68 -23
  216. package/dist/src/planner/nodes/subquery.js.map +1 -1
  217. package/dist/src/planner/nodes/table-access-nodes.d.ts +83 -0
  218. package/dist/src/planner/nodes/table-access-nodes.d.ts.map +1 -0
  219. package/dist/src/planner/nodes/table-access-nodes.js +226 -0
  220. package/dist/src/planner/nodes/table-access-nodes.js.map +1 -0
  221. package/dist/src/planner/nodes/update-node.d.ts +4 -2
  222. package/dist/src/planner/nodes/update-node.d.ts.map +1 -1
  223. package/dist/src/planner/nodes/update-node.js +26 -13
  224. package/dist/src/planner/nodes/update-node.js.map +1 -1
  225. package/dist/src/planner/nodes/window-node.d.ts.map +1 -1
  226. package/dist/src/planner/nodes/window-node.js +25 -23
  227. package/dist/src/planner/nodes/window-node.js.map +1 -1
  228. package/dist/src/planner/optimizer.d.ts.map +1 -1
  229. package/dist/src/planner/optimizer.js +46 -50
  230. package/dist/src/planner/optimizer.js.map +1 -1
  231. package/dist/src/planner/planning-context.d.ts +13 -0
  232. package/dist/src/planner/planning-context.d.ts.map +1 -1
  233. package/dist/src/planner/planning-context.js.map +1 -1
  234. package/dist/src/planner/rules/access/rule-select-access-path.d.ts +1 -1
  235. package/dist/src/planner/rules/access/rule-select-access-path.d.ts.map +1 -1
  236. package/dist/src/planner/rules/access/rule-select-access-path.js +59 -53
  237. package/dist/src/planner/rules/access/rule-select-access-path.js.map +1 -1
  238. package/dist/src/planner/rules/aggregate/rule-aggregate-streaming.d.ts.map +1 -1
  239. package/dist/src/planner/rules/aggregate/rule-aggregate-streaming.js +62 -2
  240. package/dist/src/planner/rules/aggregate/rule-aggregate-streaming.js.map +1 -1
  241. package/dist/src/planner/rules/cache/rule-materialization-advisory.d.ts.map +1 -1
  242. package/dist/src/planner/rules/cache/rule-materialization-advisory.js +31 -24
  243. package/dist/src/planner/rules/cache/rule-materialization-advisory.js.map +1 -1
  244. package/dist/src/planner/scopes/base.d.ts +0 -10
  245. package/dist/src/planner/scopes/base.d.ts.map +1 -1
  246. package/dist/src/planner/scopes/base.js +0 -14
  247. package/dist/src/planner/scopes/base.js.map +1 -1
  248. package/dist/src/planner/scopes/empty.d.ts +0 -2
  249. package/dist/src/planner/scopes/empty.d.ts.map +1 -1
  250. package/dist/src/planner/scopes/empty.js +0 -8
  251. package/dist/src/planner/scopes/empty.js.map +1 -1
  252. package/dist/src/planner/scopes/multi.d.ts.map +1 -1
  253. package/dist/src/planner/scopes/multi.js +0 -1
  254. package/dist/src/planner/scopes/multi.js.map +1 -1
  255. package/dist/src/planner/scopes/param.d.ts.map +1 -1
  256. package/dist/src/planner/scopes/param.js +0 -1
  257. package/dist/src/planner/scopes/param.js.map +1 -1
  258. package/dist/src/planner/scopes/registered.d.ts +0 -10
  259. package/dist/src/planner/scopes/registered.d.ts.map +1 -1
  260. package/dist/src/planner/scopes/registered.js +1 -17
  261. package/dist/src/planner/scopes/registered.js.map +1 -1
  262. package/dist/src/planner/scopes/scope.d.ts +0 -8
  263. package/dist/src/planner/scopes/scope.d.ts.map +1 -1
  264. package/dist/src/planner/validation/plan-validator.d.ts.map +1 -1
  265. package/dist/src/planner/validation/plan-validator.js +1 -7
  266. package/dist/src/planner/validation/plan-validator.js.map +1 -1
  267. package/dist/src/runtime/context-helpers.d.ts +45 -0
  268. package/dist/src/runtime/context-helpers.d.ts.map +1 -0
  269. package/dist/src/runtime/context-helpers.js +139 -0
  270. package/dist/src/runtime/context-helpers.js.map +1 -0
  271. package/dist/src/runtime/emission-context.d.ts +1 -0
  272. package/dist/src/runtime/emission-context.d.ts.map +1 -1
  273. package/dist/src/runtime/emission-context.js +2 -1
  274. package/dist/src/runtime/emission-context.js.map +1 -1
  275. package/dist/src/runtime/emit/aggregate.d.ts.map +1 -1
  276. package/dist/src/runtime/emit/aggregate.js +119 -86
  277. package/dist/src/runtime/emit/aggregate.js.map +1 -1
  278. package/dist/src/runtime/emit/between.d.ts +5 -0
  279. package/dist/src/runtime/emit/between.d.ts.map +1 -0
  280. package/dist/src/runtime/emit/between.js +38 -0
  281. package/dist/src/runtime/emit/between.js.map +1 -0
  282. package/dist/src/runtime/emit/binary.d.ts +0 -1
  283. package/dist/src/runtime/emit/binary.d.ts.map +1 -1
  284. package/dist/src/runtime/emit/binary.js +0 -36
  285. package/dist/src/runtime/emit/binary.js.map +1 -1
  286. package/dist/src/runtime/emit/column-reference.d.ts.map +1 -1
  287. package/dist/src/runtime/emit/column-reference.js +2 -26
  288. package/dist/src/runtime/emit/column-reference.js.map +1 -1
  289. package/dist/src/runtime/emit/constraint-check.d.ts.map +1 -1
  290. package/dist/src/runtime/emit/constraint-check.js +16 -123
  291. package/dist/src/runtime/emit/constraint-check.js.map +1 -1
  292. package/dist/src/runtime/emit/cte-reference.d.ts.map +1 -1
  293. package/dist/src/runtime/emit/cte-reference.js +16 -48
  294. package/dist/src/runtime/emit/cte-reference.js.map +1 -1
  295. package/dist/src/runtime/emit/distinct.d.ts.map +1 -1
  296. package/dist/src/runtime/emit/distinct.js +2 -8
  297. package/dist/src/runtime/emit/distinct.js.map +1 -1
  298. package/dist/src/runtime/emit/filter.d.ts.map +1 -1
  299. package/dist/src/runtime/emit/filter.js +6 -13
  300. package/dist/src/runtime/emit/filter.js.map +1 -1
  301. package/dist/src/runtime/emit/internal-recursive-cte-ref.d.ts +5 -0
  302. package/dist/src/runtime/emit/internal-recursive-cte-ref.d.ts.map +1 -0
  303. package/dist/src/runtime/emit/internal-recursive-cte-ref.js +23 -0
  304. package/dist/src/runtime/emit/internal-recursive-cte-ref.js.map +1 -0
  305. package/dist/src/runtime/emit/join.d.ts.map +1 -1
  306. package/dist/src/runtime/emit/join.js +40 -40
  307. package/dist/src/runtime/emit/join.js.map +1 -1
  308. package/dist/src/runtime/emit/project.d.ts.map +1 -1
  309. package/dist/src/runtime/emit/project.js +13 -13
  310. package/dist/src/runtime/emit/project.js.map +1 -1
  311. package/dist/src/runtime/emit/recursive-cte.d.ts.map +1 -1
  312. package/dist/src/runtime/emit/recursive-cte.js +3 -14
  313. package/dist/src/runtime/emit/recursive-cte.js.map +1 -1
  314. package/dist/src/runtime/emit/returning.d.ts.map +1 -1
  315. package/dist/src/runtime/emit/returning.js +7 -14
  316. package/dist/src/runtime/emit/returning.js.map +1 -1
  317. package/dist/src/runtime/emit/scan.d.ts +5 -2
  318. package/dist/src/runtime/emit/scan.d.ts.map +1 -1
  319. package/dist/src/runtime/emit/scan.js +21 -17
  320. package/dist/src/runtime/emit/scan.js.map +1 -1
  321. package/dist/src/runtime/emit/sort.d.ts.map +1 -1
  322. package/dist/src/runtime/emit/sort.js +8 -11
  323. package/dist/src/runtime/emit/sort.js.map +1 -1
  324. package/dist/src/runtime/emit/subquery.d.ts.map +1 -1
  325. package/dist/src/runtime/emit/subquery.js +95 -40
  326. package/dist/src/runtime/emit/subquery.js.map +1 -1
  327. package/dist/src/runtime/emit/table-valued-function.d.ts.map +1 -1
  328. package/dist/src/runtime/emit/table-valued-function.js +7 -22
  329. package/dist/src/runtime/emit/table-valued-function.js.map +1 -1
  330. package/dist/src/runtime/emit/update.d.ts.map +1 -1
  331. package/dist/src/runtime/emit/update.js +20 -27
  332. package/dist/src/runtime/emit/update.js.map +1 -1
  333. package/dist/src/runtime/emit/window.d.ts.map +1 -1
  334. package/dist/src/runtime/emit/window.js +55 -83
  335. package/dist/src/runtime/emit/window.js.map +1 -1
  336. package/dist/src/runtime/emitters.d.ts.map +1 -1
  337. package/dist/src/runtime/emitters.js +49 -1
  338. package/dist/src/runtime/emitters.js.map +1 -1
  339. package/dist/src/runtime/register.d.ts.map +1 -1
  340. package/dist/src/runtime/register.js +5 -4
  341. package/dist/src/runtime/register.js.map +1 -1
  342. package/dist/src/runtime/scheduler.d.ts.map +1 -1
  343. package/dist/src/runtime/scheduler.js +47 -42
  344. package/dist/src/runtime/scheduler.js.map +1 -1
  345. package/dist/src/runtime/types.d.ts +34 -0
  346. package/dist/src/runtime/types.d.ts.map +1 -1
  347. package/dist/src/runtime/types.js +21 -0
  348. package/dist/src/runtime/types.js.map +1 -1
  349. package/dist/src/schema/manager.d.ts.map +1 -1
  350. package/dist/src/schema/manager.js +29 -16
  351. package/dist/src/schema/manager.js.map +1 -1
  352. package/dist/src/schema/table.d.ts +4 -4
  353. package/dist/src/schema/table.d.ts.map +1 -1
  354. package/dist/src/schema/table.js +10 -10
  355. package/dist/src/schema/table.js.map +1 -1
  356. package/dist/src/util/plugin-loader.d.ts +10 -1
  357. package/dist/src/util/plugin-loader.d.ts.map +1 -1
  358. package/dist/src/util/plugin-loader.js +56 -1
  359. package/dist/src/util/plugin-loader.js.map +1 -1
  360. package/dist/src/util/working-table-iterable.d.ts.map +1 -1
  361. package/dist/src/util/working-table-iterable.js +8 -8
  362. package/dist/src/util/working-table-iterable.js.map +1 -1
  363. package/dist/src/vtab/manifest.d.ts +36 -0
  364. package/dist/src/vtab/manifest.d.ts.map +1 -1
  365. package/dist/src/vtab/table.d.ts +1 -1
  366. package/dist/src/vtab/table.d.ts.map +1 -1
  367. package/package.json +8 -3
  368. package/src/common/types.ts +1 -0
  369. package/src/core/database.ts +48 -6
  370. package/src/core/statement.ts +1 -49
  371. package/src/func/builtins/explain.ts +0 -11
  372. package/src/index.ts +39 -5
  373. package/src/parser/ast.ts +12 -6
  374. package/src/parser/parser.ts +45 -52
  375. package/src/planner/analysis/const-pass.ts +281 -270
  376. package/src/planner/building/constraint-builder.ts +114 -0
  377. package/src/planner/building/delete.ts +18 -5
  378. package/src/planner/building/expression.ts +35 -7
  379. package/src/planner/building/insert.ts +16 -3
  380. package/src/planner/building/select-aggregates.ts +57 -11
  381. package/src/planner/building/select-context.ts +22 -12
  382. package/src/planner/building/select-modifiers.ts +35 -21
  383. package/src/planner/building/select-projections.ts +25 -26
  384. package/src/planner/building/select-window.ts +14 -9
  385. package/src/planner/building/select.ts +163 -31
  386. package/src/planner/building/table.ts +1 -40
  387. package/src/planner/building/update.ts +22 -7
  388. package/src/planner/building/with.ts +12 -13
  389. package/src/planner/cache/correlation-detector.ts +83 -0
  390. package/src/planner/cache/materialization-advisory.ts +71 -50
  391. package/src/planner/cache/reference-graph.ts +115 -91
  392. package/src/planner/debug.ts +163 -0
  393. package/src/planner/framework/context.ts +36 -2
  394. package/src/planner/framework/registry.ts +261 -274
  395. package/src/planner/nodes/add-constraint-node.ts +5 -1
  396. package/src/planner/nodes/aggregate-node.ts +6 -4
  397. package/src/planner/nodes/cache-node.ts +2 -2
  398. package/src/planner/nodes/constraint-check-node.ts +49 -15
  399. package/src/planner/nodes/create-index-node.ts +5 -1
  400. package/src/planner/nodes/create-table-node.ts +5 -1
  401. package/src/planner/nodes/create-view-node.ts +5 -1
  402. package/src/planner/nodes/cte-node.ts +45 -14
  403. package/src/planner/nodes/cte-reference-node.ts +49 -13
  404. package/src/planner/nodes/delete-node.ts +31 -7
  405. package/src/planner/nodes/distinct-node.ts +2 -2
  406. package/src/planner/nodes/dml-executor-node.ts +3 -3
  407. package/src/planner/nodes/drop-table-node.ts +5 -1
  408. package/src/planner/nodes/drop-view-node.ts +5 -1
  409. package/src/planner/nodes/filter.ts +3 -3
  410. package/src/planner/nodes/function.ts +93 -93
  411. package/src/planner/nodes/insert-node.ts +28 -5
  412. package/src/planner/nodes/internal-recursive-cte-ref-node.ts +76 -0
  413. package/src/planner/nodes/join-node.ts +3 -3
  414. package/src/planner/nodes/limit-offset.ts +2 -2
  415. package/src/planner/nodes/plan-node-type.ts +1 -1
  416. package/src/planner/nodes/plan-node.ts +39 -2
  417. package/src/planner/nodes/project-node.ts +39 -19
  418. package/src/planner/nodes/recursive-cte-node.ts +37 -9
  419. package/src/planner/nodes/reference.ts +4 -2
  420. package/src/planner/nodes/returning-node.ts +25 -13
  421. package/src/planner/nodes/scalar.ts +95 -11
  422. package/src/planner/nodes/sequencing-node.ts +2 -2
  423. package/src/planner/nodes/set-operation-node.ts +3 -3
  424. package/src/planner/nodes/single-row.ts +7 -2
  425. package/src/planner/nodes/sink-node.ts +5 -5
  426. package/src/planner/nodes/sort.ts +2 -2
  427. package/src/planner/nodes/stream-aggregate.ts +76 -12
  428. package/src/planner/nodes/subquery.ts +90 -27
  429. package/src/planner/nodes/{physical-access-nodes.ts → table-access-nodes.ts} +6 -6
  430. package/src/planner/nodes/update-node.ts +31 -13
  431. package/src/planner/nodes/window-node.ts +28 -22
  432. package/src/planner/optimizer.ts +257 -263
  433. package/src/planner/planning-context.ts +15 -0
  434. package/src/planner/rules/access/rule-select-access-path.ts +68 -64
  435. package/src/planner/rules/aggregate/rule-aggregate-streaming.ts +74 -2
  436. package/src/planner/rules/cache/rule-materialization-advisory.ts +31 -27
  437. package/src/planner/scopes/base.ts +0 -17
  438. package/src/planner/scopes/empty.ts +0 -10
  439. package/src/planner/scopes/multi.ts +0 -1
  440. package/src/planner/scopes/param.ts +0 -1
  441. package/src/planner/scopes/registered.ts +1 -20
  442. package/src/planner/scopes/scope.ts +0 -12
  443. package/src/planner/validation/plan-validator.ts +1 -8
  444. package/src/runtime/context-helpers.ts +191 -0
  445. package/src/runtime/emission-context.ts +5 -2
  446. package/src/runtime/emit/aggregate.ts +131 -85
  447. package/src/runtime/emit/between.ts +51 -0
  448. package/src/runtime/emit/binary.ts +0 -46
  449. package/src/runtime/emit/column-reference.ts +3 -36
  450. package/src/runtime/emit/constraint-check.ts +19 -144
  451. package/src/runtime/emit/cte-reference.ts +23 -60
  452. package/src/runtime/emit/distinct.ts +2 -7
  453. package/src/runtime/emit/filter.ts +6 -13
  454. package/src/runtime/emit/internal-recursive-cte-ref.ts +37 -0
  455. package/src/runtime/emit/join.ts +45 -43
  456. package/src/runtime/emit/project.ts +18 -12
  457. package/src/runtime/emit/recursive-cte.ts +3 -12
  458. package/src/runtime/emit/returning.ts +7 -14
  459. package/src/runtime/emit/scan.ts +25 -23
  460. package/src/runtime/emit/sort.ts +8 -11
  461. package/src/runtime/emit/subquery.ts +108 -48
  462. package/src/runtime/emit/table-valued-function.ts +7 -20
  463. package/src/runtime/emit/update.ts +22 -29
  464. package/src/runtime/emit/window.ts +74 -88
  465. package/src/runtime/emitters.ts +52 -1
  466. package/src/runtime/register.ts +5 -4
  467. package/src/runtime/scheduler.ts +54 -54
  468. package/src/runtime/types.ts +45 -0
  469. package/src/schema/manager.ts +34 -19
  470. package/src/schema/table.ts +8 -8
  471. package/src/util/plugin-loader.ts +78 -4
  472. package/src/util/working-table-iterable.ts +15 -7
  473. package/src/vtab/manifest.ts +42 -0
  474. package/src/vtab/table.ts +1 -1
  475. package/src/planner/nodes/scan.ts +0 -103
  476. package/src/planner/rules/physical/rule-mark-physical.ts +0 -37
  477. package/src/runtime/emit/table-reference.ts +0 -92
@@ -225,4 +225,131 @@ export function generateTraceReport(tracer) {
225
225
  lines.push('=== END TRACE ===');
226
226
  return lines.join('\n');
227
227
  }
228
+ /**
229
+ * Creates a concise, tree-like representation of the plan
230
+ */
231
+ export function formatPlanTree(rootNode, options = {}) {
232
+ const { concise = true, expandNodes = [], maxDepth, showPhysical = true } = options;
233
+ const lines = [];
234
+ const nodesSeen = new Set();
235
+ function formatNode(node, depth, isLast, prefix) {
236
+ if (maxDepth !== undefined && depth > maxDepth) {
237
+ return;
238
+ }
239
+ // Avoid infinite recursion for circular references
240
+ if (nodesSeen.has(node)) {
241
+ lines.push(`${prefix}├─ [CIRCULAR: ${node.nodeType}#${node.id}]`);
242
+ return;
243
+ }
244
+ nodesSeen.add(node);
245
+ // Determine if this node should be expanded
246
+ const shouldExpand = !concise || expandNodes.includes(node.id);
247
+ // Node header with connection lines
248
+ const connector = isLast ? '└─ ' : '├─ ';
249
+ const nodeType = node.nodeType;
250
+ const nodeId = `#${node.id}`;
251
+ const description = node.toString();
252
+ // Build the header line
253
+ let headerLine = `${prefix}${connector}${nodeType}${nodeId}`;
254
+ if (description && description !== nodeType) {
255
+ headerLine += `: ${description}`;
256
+ }
257
+ // Add cost information if available
258
+ const cost = node.estimatedCost;
259
+ const totalCost = node.getTotalCost();
260
+ if (cost > 0 || totalCost > 0) {
261
+ headerLine += ` [cost: ${cost}, total: ${totalCost}]`;
262
+ }
263
+ // Add physical properties if requested and available
264
+ if (showPhysical && node.physical) {
265
+ const physical = node.physical;
266
+ const physicalInfo = [];
267
+ if (physical.estimatedRows !== undefined) {
268
+ physicalInfo.push(`rows: ${physical.estimatedRows}`);
269
+ }
270
+ if (physical.ordering && physical.ordering.length > 0) {
271
+ physicalInfo.push(`ordered: ${physical.ordering.map((o) => `${o.attributeId}:${o.direction}`).join(',')}`);
272
+ }
273
+ if (physical.readonly !== undefined) {
274
+ physicalInfo.push(`readonly: ${physical.readonly}`);
275
+ }
276
+ if (physicalInfo.length > 0) {
277
+ headerLine += ` {${physicalInfo.join(', ')}}`;
278
+ }
279
+ }
280
+ lines.push(headerLine);
281
+ // Add expanded details if requested
282
+ if (shouldExpand) {
283
+ const logical = node.getLogicalAttributes();
284
+ if (logical && Object.keys(logical).length > 0) {
285
+ const logicalLines = JSON.stringify(logical, null, 2).split('\n');
286
+ const extendedPrefix = prefix + (isLast ? ' ' : '│ ');
287
+ lines.push(`${extendedPrefix}┌─ Logical Attributes:`);
288
+ for (let i = 0; i < logicalLines.length; i++) {
289
+ const line = logicalLines[i];
290
+ const isLastLogicalLine = i === logicalLines.length - 1;
291
+ const logicalConnector = isLastLogicalLine ? '└─ ' : '│ ';
292
+ lines.push(`${extendedPrefix}${logicalConnector}${line}`);
293
+ }
294
+ }
295
+ }
296
+ // Process children
297
+ const children = node.getChildren();
298
+ const relations = node.getRelations();
299
+ const allChildren = [...children, ...relations];
300
+ // Filter out duplicates (in case a child is both a child and relation)
301
+ const uniqueChildren = Array.from(new Set(allChildren));
302
+ for (let i = 0; i < uniqueChildren.length; i++) {
303
+ const child = uniqueChildren[i];
304
+ const isLastChild = i === uniqueChildren.length - 1;
305
+ const childPrefix = prefix + (isLast ? ' ' : '│ ');
306
+ formatNode(child, depth + 1, isLastChild, childPrefix);
307
+ }
308
+ nodesSeen.delete(node);
309
+ }
310
+ lines.push('Query Plan:');
311
+ formatNode(rootNode, 0, true, '');
312
+ // Add help text
313
+ if (concise && expandNodes.length === 0) {
314
+ lines.push('');
315
+ lines.push('Tip: Use --expand-nodes node1,node2,... to see detailed properties for specific nodes');
316
+ }
317
+ return lines.join('\n');
318
+ }
319
+ /**
320
+ * Generates a compact plan summary showing just the execution path
321
+ */
322
+ export function formatPlanSummary(rootNode) {
323
+ const path = [];
324
+ const visited = new Set();
325
+ function collectPath(node) {
326
+ if (visited.has(node))
327
+ return;
328
+ visited.add(node);
329
+ const description = node.toString();
330
+ const nodeInfo = description && description !== node.nodeType
331
+ ? `${node.nodeType}(${description})`
332
+ : node.nodeType;
333
+ path.push(nodeInfo);
334
+ // Follow the main execution path (first child for most nodes)
335
+ const children = node.getChildren();
336
+ if (children.length > 0) {
337
+ collectPath(children[0]);
338
+ }
339
+ }
340
+ collectPath(rootNode);
341
+ return `Execution Path: ${path.join(' → ')}`;
342
+ }
343
+ /**
344
+ * Enhanced plan serialization with formatting options
345
+ */
346
+ export function serializePlanTreeWithOptions(rootNode, options = {}) {
347
+ if (options.concise !== false) {
348
+ return formatPlanTree(rootNode, options);
349
+ }
350
+ else {
351
+ // Use the existing detailed serialization
352
+ return serializePlanTree(rootNode);
353
+ }
354
+ }
228
355
  //# sourceMappingURL=debug.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"debug.js","sourceRoot":"","sources":["../../../src/planner/debug.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"debug.js","sourceRoot":"","sources":["../../../src/planner/debug.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,7 @@ import type { Optimizer } from '../optimizer.js';
6
6
  import type { StatsProvider } from '../stats/index.js';
7
7
  import type { OptimizerTuning } from '../optimizer-tuning.js';
8
8
  import { Database } from '../../core/database.js';
9
+ import type { PlanNode } from '../nodes/plan-node.js';
9
10
  /**
10
11
  * Context object passed to optimization rules
11
12
  * Contains all the utilities and data sources rules need
@@ -25,6 +26,10 @@ export interface OptContext {
25
26
  readonly context: Map<string, any>;
26
27
  /** Database instance */
27
28
  readonly db: Database;
29
+ /** Context-scoped visited rules tracking (nodeId → ruleIds) */
30
+ readonly visitedRules: Map<string, Set<string>>;
31
+ /** Cache of already-optimized nodes within this context (nodeId → optimized result) */
32
+ readonly optimizedNodes: Map<string, PlanNode>;
28
33
  }
29
34
  /**
30
35
  * Implementation of optimization context
@@ -37,6 +42,8 @@ export declare class OptimizationContext implements OptContext {
37
42
  readonly db: Database;
38
43
  readonly depth: number;
39
44
  readonly context: Map<string, any>;
45
+ readonly visitedRules: Map<string, Set<string>>;
46
+ readonly optimizedNodes: Map<string, PlanNode>;
40
47
  constructor(optimizer: Optimizer, stats: StatsProvider, tuning: OptimizerTuning, phase: "rewrite" | "impl" | undefined, db: Database, depth?: number);
41
48
  /**
42
49
  * Create a new context for a different phase
@@ -50,6 +57,10 @@ export declare class OptimizationContext implements OptContext {
50
57
  * Create a new context with additional context data
51
58
  */
52
59
  withContext(key: string, value: any): OptimizationContext;
60
+ /**
61
+ * Copy visited tracking state to another context
62
+ */
63
+ private copyTrackingState;
53
64
  /**
54
65
  * Get context value
55
66
  */
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../../src/planner/framework/context.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAI9D,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAIlD;;;GAGG;AACH,MAAM,WAAW,UAAU;IAC1B,6BAA6B;IAC7B,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAE9B,oEAAoE;IACpE,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;IAE9B,kCAAkC;IAClC,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;IAEjC,iCAAiC;IACjC,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,CAAC;IAEnC,gEAAgE;IAChE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAEvB,iDAAiD;IACjD,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAEnC,wBAAwB;IACxB,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC;CACtB;AAED;;GAEG;AACH,qBAAa,mBAAoB,YAAW,UAAU;aAIpC,SAAS,EAAE,SAAS;aACpB,KAAK,EAAE,aAAa;aACpB,MAAM,EAAE,eAAe;aACvB,KAAK,EAAE,SAAS,GAAG,MAAM;aACzB,EAAE,EAAE,QAAQ;aACZ,KAAK,EAAE,MAAM;IAR9B,QAAQ,CAAC,OAAO,mBAA0B;gBAGzB,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,aAAa,EACpB,MAAM,EAAE,eAAe,EACvB,KAAK,EAAE,SAAS,GAAG,MAAM,YAAY,EACrC,EAAE,EAAE,QAAQ,EACZ,KAAK,GAAE,MAAU;IAKlC;;OAEG;IACH,SAAS,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,GAAG,mBAAmB;IAWzD;;OAEG;IACH,oBAAoB,IAAI,mBAAmB;IAe3C;;OAEG;IACH,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,mBAAmB;IAqBzD;;OAEG;IACH,UAAU,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;IAIzC;;OAEG;IACH,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIhC;;OAEG;IACH,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,IAAI;IAIzC;;OAEG;IACH,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAInC;;OAEG;IACH,YAAY,IAAI,IAAI;IAIpB;;OAEG;IACH,kBAAkB,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;CAOzC;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC/B,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,aAAa,EACpB,MAAM,EAAE,eAAe,EACvB,EAAE,EAAE,QAAQ,EACZ,KAAK,GAAE,SAAS,GAAG,MAAkB,GACnC,UAAU,CAEZ;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,IAAI,UAAU,CASxD"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../../src/planner/framework/context.ts"],"names":[],"mappings":"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"}
@@ -17,6 +17,8 @@ export class OptimizationContext {
17
17
  db;
18
18
  depth;
19
19
  context = new Map();
20
+ visitedRules = new Map();
21
+ optimizedNodes = new Map();
20
22
  constructor(optimizer, stats, tuning, phase = 'rewrite', db, depth = 0) {
21
23
  this.optimizer = optimizer;
22
24
  this.stats = stats;
@@ -30,7 +32,10 @@ export class OptimizationContext {
30
32
  * Create a new context for a different phase
31
33
  */
32
34
  withPhase(phase) {
33
- return new OptimizationContext(this.optimizer, this.stats, this.tuning, phase, this.db, this.depth);
35
+ const newContext = new OptimizationContext(this.optimizer, this.stats, this.tuning, phase, this.db, this.depth);
36
+ // Copy visited tracking state
37
+ this.copyTrackingState(newContext);
38
+ return newContext;
34
39
  }
35
40
  /**
36
41
  * Create a new context with incremented depth
@@ -39,7 +44,10 @@ export class OptimizationContext {
39
44
  if (this.depth >= this.tuning.maxOptimizationDepth) {
40
45
  quereusError(`Maximum optimization depth exceeded: ${this.depth}`, StatusCode.ERROR);
41
46
  }
42
- return new OptimizationContext(this.optimizer, this.stats, this.tuning, this.phase, this.db, this.depth + 1);
47
+ const newContext = new OptimizationContext(this.optimizer, this.stats, this.tuning, this.phase, this.db, this.depth + 1);
48
+ // Copy visited tracking state
49
+ this.copyTrackingState(newContext);
50
+ return newContext;
43
51
  }
44
52
  /**
45
53
  * Create a new context with additional context data
@@ -52,8 +60,23 @@ export class OptimizationContext {
52
60
  }
53
61
  // Add new context
54
62
  newContext.context.set(key, value);
63
+ // Copy visited tracking state
64
+ this.copyTrackingState(newContext);
55
65
  return newContext;
56
66
  }
67
+ /**
68
+ * Copy visited tracking state to another context
69
+ */
70
+ copyTrackingState(target) {
71
+ // Copy visitedRules
72
+ for (const [nodeId, ruleIds] of this.visitedRules) {
73
+ target.visitedRules.set(nodeId, new Set(ruleIds));
74
+ }
75
+ // Copy optimizedNodes
76
+ for (const [nodeId, node] of this.optimizedNodes) {
77
+ target.optimizedNodes.set(nodeId, node);
78
+ }
79
+ }
57
80
  /**
58
81
  * Get context value
59
82
  */
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../../../../src/planner/framework/context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../../../src/planner/framework/context.ts"],"names":[],"mappings":"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"}
@@ -39,19 +39,15 @@ export declare function rulesFor(nodeType: PlanNodeType): readonly RuleHandle[];
39
39
  /**
40
40
  * Check if a rule has been applied to a node
41
41
  */
42
- export declare function hasRuleBeenApplied(nodeId: string, ruleId: string): boolean;
42
+ export declare function hasRuleBeenApplied(nodeId: string, ruleId: string, context: OptContext): boolean;
43
43
  /**
44
44
  * Mark a rule as applied to a node
45
45
  */
46
- export declare function markRuleApplied(nodeId: string, ruleId: string): void;
47
- /**
48
- * Clear all visited rule tracking
49
- */
50
- export declare function clearVisitedRules(): void;
46
+ export declare function markRuleApplied(nodeId: string, ruleId: string, context: OptContext): void;
51
47
  /**
52
48
  * Get registry statistics
53
49
  */
54
- export declare function getRegistryStats(): {
50
+ export declare function getRegistryStats(context?: OptContext): {
55
51
  totalRules: number;
56
52
  nodesWithRules: number;
57
53
  appliedRules: number;
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../../src/planner/framework/registry.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAO/C;;GAEG;AACH,MAAM,MAAM,MAAM,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,KAAK,QAAQ,GAAG,IAAI,CAAC;AAE9E;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,MAAM,CAAC;AAE3C;;GAEG;AACH,MAAM,WAAW,UAAU;IAC1B,sCAAsC;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,qCAAqC;IACrC,QAAQ,EAAE,YAAY,CAAC;IACvB,2BAA2B;IAC3B,KAAK,EAAE,SAAS,CAAC;IACjB,mCAAmC;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,kDAAkD;IAClD,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB;AA2GD;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,CAErD;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,YAAY,GAAG,SAAS,UAAU,EAAE,CAEtE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAE1E;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAEpE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,IAAI,CAExC;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,CAEvG;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,GAAG,CAAC,YAAY,EAAE,SAAS,UAAU,EAAE,CAAC,CAEtE;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,GAAG,QAAQ,CAqDxE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,IAAI,CAIvD;AAED;;GAEG;AACH,wBAAgB,UAAU,CACzB,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,YAAY,EACtB,KAAK,EAAE,SAAS,EAChB,EAAE,EAAE,MAAM,EACV,QAAQ,CAAC,EAAE,MAAM,GACf,UAAU,CAEZ"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../../src/planner/framework/registry.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAO/C;;GAEG;AACH,MAAM,MAAM,MAAM,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,KAAK,QAAQ,GAAG,IAAI,CAAC;AAE9E;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,MAAM,CAAC;AAE3C;;GAEG;AACH,MAAM,WAAW,UAAU;IAC1B,sCAAsC;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,qCAAqC;IACrC,QAAQ,EAAE,YAAY,CAAC;IACvB,2BAA2B;IAC3B,KAAK,EAAE,SAAS,CAAC;IACjB,mCAAmC;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,kDAAkD;IAClD,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB;AAqGD;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,CAErD;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,YAAY,GAAG,SAAS,UAAU,EAAE,CAEtE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,GAAG,OAAO,CAE/F;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,GAAG,IAAI,CAEzF;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,CAAC,EAAE,UAAU,GAAG;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,CAE3H;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,GAAG,CAAC,YAAY,EAAE,SAAS,UAAU,EAAE,CAAC,CAEtE;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,GAAG,QAAQ,CAqDxE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,IAAI,CAIvD;AAED;;GAEG;AACH,wBAAgB,UAAU,CACzB,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,YAAY,EACtB,KAAK,EAAE,SAAS,EAChB,EAAE,EAAE,MAAM,EACV,QAAQ,CAAC,EAAE,MAAM,GACf,UAAU,CAEZ"}
@@ -12,7 +12,6 @@ const log = createLogger('optimizer:framework:registry');
12
12
  */
13
13
  class RuleRegistry {
14
14
  rules = new Map();
15
- visitedRules = new Map(); // nodeId -> ruleIds applied
16
15
  /**
17
16
  * Register a new optimization rule
18
17
  */
@@ -45,24 +44,18 @@ class RuleRegistry {
45
44
  /**
46
45
  * Check if a rule has already been applied to a node
47
46
  */
48
- hasRuleBeenApplied(nodeId, ruleId) {
49
- const nodeVisited = this.visitedRules.get(nodeId);
47
+ hasRuleBeenApplied(nodeId, ruleId, context) {
48
+ const nodeVisited = context.visitedRules.get(nodeId);
50
49
  return nodeVisited?.has(ruleId) ?? false;
51
50
  }
52
51
  /**
53
52
  * Mark a rule as applied to a node
54
53
  */
55
- markRuleApplied(nodeId, ruleId) {
56
- if (!this.visitedRules.has(nodeId)) {
57
- this.visitedRules.set(nodeId, new Set());
54
+ markRuleApplied(nodeId, ruleId, context) {
55
+ if (!context.visitedRules.has(nodeId)) {
56
+ context.visitedRules.set(nodeId, new Set());
58
57
  }
59
- this.visitedRules.get(nodeId).add(ruleId);
60
- }
61
- /**
62
- * Clear visited rules (typically called at start of optimization)
63
- */
64
- clearVisitedRules() {
65
- this.visitedRules.clear();
58
+ context.visitedRules.get(nodeId).add(ruleId);
66
59
  }
67
60
  /**
68
61
  * Get all registered rules (for debugging)
@@ -77,18 +70,20 @@ class RuleRegistry {
77
70
  /**
78
71
  * Get statistics about rule application
79
72
  */
80
- getStats() {
73
+ getStats(context) {
81
74
  let totalRules = 0;
82
75
  for (const rules of this.rules.values()) {
83
76
  totalRules += rules.length;
84
77
  }
85
78
  let appliedRules = 0;
86
- for (const ruleSet of this.visitedRules.values()) {
87
- appliedRules += ruleSet.size;
79
+ if (context) {
80
+ for (const ruleSet of context.visitedRules.values()) {
81
+ appliedRules += ruleSet.size;
82
+ }
88
83
  }
89
84
  return {
90
85
  totalRules,
91
- nodesWithRules: this.visitedRules.size,
86
+ nodesWithRules: context?.visitedRules.size ?? 0,
92
87
  appliedRules
93
88
  };
94
89
  }
@@ -112,26 +107,20 @@ export function rulesFor(nodeType) {
112
107
  /**
113
108
  * Check if a rule has been applied to a node
114
109
  */
115
- export function hasRuleBeenApplied(nodeId, ruleId) {
116
- return globalRegistry.hasRuleBeenApplied(nodeId, ruleId);
110
+ export function hasRuleBeenApplied(nodeId, ruleId, context) {
111
+ return globalRegistry.hasRuleBeenApplied(nodeId, ruleId, context);
117
112
  }
118
113
  /**
119
114
  * Mark a rule as applied to a node
120
115
  */
121
- export function markRuleApplied(nodeId, ruleId) {
122
- globalRegistry.markRuleApplied(nodeId, ruleId);
123
- }
124
- /**
125
- * Clear all visited rule tracking
126
- */
127
- export function clearVisitedRules() {
128
- globalRegistry.clearVisitedRules();
116
+ export function markRuleApplied(nodeId, ruleId, context) {
117
+ globalRegistry.markRuleApplied(nodeId, ruleId, context);
129
118
  }
130
119
  /**
131
120
  * Get registry statistics
132
121
  */
133
- export function getRegistryStats() {
134
- return globalRegistry.getStats();
122
+ export function getRegistryStats(context) {
123
+ return globalRegistry.getStats(context);
135
124
  }
136
125
  /**
137
126
  * Get all registered rules (for debugging/tooling)
@@ -151,7 +140,7 @@ export function applyRules(node, context) {
151
140
  let appliedAnyRule = false;
152
141
  for (const rule of applicableRules) {
153
142
  // Skip if rule already applied to this node
154
- if (hasRuleBeenApplied(currentNode.id, rule.id)) {
143
+ if (hasRuleBeenApplied(currentNode.id, rule.id, context)) {
155
144
  log('Skipping rule %s for node %s (already applied)', rule.id, currentNode.id);
156
145
  continue;
157
146
  }
@@ -163,7 +152,7 @@ export function applyRules(node, context) {
163
152
  const result = rule.fn(currentNode, context);
164
153
  if (result && result !== currentNode) {
165
154
  ruleLog('Rule transformed %s to %s', currentNode.nodeType, result.nodeType);
166
- markRuleApplied(currentNode.id, rule.id);
155
+ markRuleApplied(currentNode.id, rule.id, context);
167
156
  // Trace successful transformation
168
157
  traceRuleEnd(rule, currentNode, result);
169
158
  currentNode = result;
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../../src/planner/framework/registry.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAItD,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtD,MAAM,GAAG,GAAG,YAAY,CAAC,8BAA8B,CAAC,CAAC;AA4BzD;;GAEG;AACH,MAAM,YAAY;IACT,KAAK,GAAG,IAAI,GAAG,EAA8B,CAAC;IAC9C,YAAY,GAAG,IAAI,GAAG,EAAuB,CAAC,CAAC,4BAA4B;IAEnF;;OAEG;IACH,YAAY,CAAC,MAAkB;QAC9B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YACtC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QACrC,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAE,CAAC;QAEnD,+BAA+B;QAC/B,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC;YAC7C,YAAY,CAAC,sBAAsB,MAAM,CAAC,EAAE,sCAAsC,MAAM,CAAC,QAAQ,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;QAC3H,CAAC;QAED,gEAAgE;QAChE,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,GAAG,CAAC;QACxC,MAAM,WAAW,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC;QAC7E,IAAI,WAAW,KAAK,CAAC,CAAC,EAAE,CAAC;YACxB,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACxB,CAAC;aAAM,CAAC;YACP,SAAS,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;QAC1C,CAAC;QAED,GAAG,CAAC,qDAAqD,EACxD,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IACtD,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,QAAsB;QAC9B,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IACvC,CAAC;IAED;;OAEG;IACH,kBAAkB,CAAC,MAAc,EAAE,MAAc;QAChD,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAClD,OAAO,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC;IAC1C,CAAC;IAED;;OAEG;IACH,eAAe,CAAC,MAAc,EAAE,MAAc;QAC7C,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YACpC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;QAC1C,CAAC;QACD,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC5C,CAAC;IAED;;OAEG;IACH,iBAAiB;QAChB,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,WAAW;QACV,MAAM,MAAM,GAAG,IAAI,GAAG,EAAuC,CAAC;QAC9D,KAAK,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC5C,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;QAClC,CAAC;QACD,OAAO,MAAM,CAAC;IACf,CAAC;IAED;;OAEG;IACH,QAAQ;QACP,IAAI,UAAU,GAAG,CAAC,CAAC;QACnB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;YACzC,UAAU,IAAI,KAAK,CAAC,MAAM,CAAC;QAC5B,CAAC;QAED,IAAI,YAAY,GAAG,CAAC,CAAC;QACrB,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,EAAE,CAAC;YAClD,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;QAC9B,CAAC;QAED,OAAO;YACN,UAAU;YACV,cAAc,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI;YACtC,YAAY;SACZ,CAAC;IACH,CAAC;CACD;AAED;;GAEG;AACH,MAAM,cAAc,GAAG,IAAI,YAAY,EAAE,CAAC;AAE1C;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,MAAkB;IAC9C,cAAc,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;AACrC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,QAAQ,CAAC,QAAsB;IAC9C,OAAO,cAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAC1C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAc,EAAE,MAAc;IAChE,OAAO,cAAc,CAAC,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAC1D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,MAAc,EAAE,MAAc;IAC7D,cAAc,CAAC,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAChD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB;IAChC,cAAc,CAAC,iBAAiB,EAAE,CAAC;AACpC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB;IAC/B,OAAO,cAAc,CAAC,QAAQ,EAAE,CAAC;AAClC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW;IAC1B,OAAO,cAAc,CAAC,WAAW,EAAE,CAAC;AACrC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,IAAc,EAAE,OAAmB;IAC7D,MAAM,eAAe,GAAG,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAEhD,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAClC,OAAO,IAAI,CAAC;IACb,CAAC;IAED,IAAI,WAAW,GAAG,IAAI,CAAC;IACvB,IAAI,cAAc,GAAG,KAAK,CAAC;IAE3B,KAAK,MAAM,IAAI,IAAI,eAAe,EAAE,CAAC;QACpC,4CAA4C;QAC5C,IAAI,kBAAkB,CAAC,WAAW,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;YACjD,GAAG,CAAC,gDAAgD,EAAE,IAAI,CAAC,EAAE,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC;YAC/E,SAAS;QACV,CAAC;QAED,IAAI,CAAC;YACJ,MAAM,OAAO,GAAG,YAAY,CAAC,kBAAkB,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;YAE1D,mBAAmB;YACnB,cAAc,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;YAClC,OAAO,CAAC,0BAA0B,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC;YAEpD,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;YAE1C,IAAI,MAAM,IAAI,MAAM,KAAK,WAAW,EAAE,CAAC;gBACzC,OAAO,CAAC,2BAA2B,EAAE,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;gBAC5E,eAAe,CAAC,WAAW,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;gBAEzC,kCAAkC;gBAClC,YAAY,CAAC,IAAI,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;gBAExC,WAAW,GAAG,MAAM,CAAC;gBACrB,cAAc,GAAG,IAAI,CAAC;YACvB,CAAC;iBAAM,CAAC;gBACP,OAAO,CAAC,gCAAgC,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC;gBAE1D,4BAA4B;gBAC5B,YAAY,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;YACvC,CAAC;QACF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,MAAM,QAAQ,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACxE,GAAG,CAAC,+BAA+B,EAAE,IAAI,CAAC,EAAE,EAAE,WAAW,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;YACxE,oEAAoE;QACrE,CAAC;IACF,CAAC;IAED,IAAI,cAAc,EAAE,CAAC;QACpB,GAAG,CAAC,sCAAsC,EAAE,IAAI,CAAC,EAAE,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC5E,CAAC;IAED,OAAO,WAAW,CAAC;AACpB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,KAAmB;IAChD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QAC1B,YAAY,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC;AACF,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CACzB,EAAU,EACV,QAAsB,EACtB,KAAgB,EAChB,EAAU,EACV,QAAiB;IAEjB,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC;AAC9C,CAAC"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../../src/planner/framework/registry.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import type { Scope } from '../scopes/scope.js';
2
- import { PlanNode, type VoidNode } from './plan-node.js';
2
+ import { PhysicalProperties, PlanNode, type VoidNode } from './plan-node.js';
3
3
  import { PlanNodeType } from './plan-node-type.js';
4
4
  import type { TableReferenceNode } from './reference.js';
5
5
  import type { VoidType } from '../../common/datatype.js';
@@ -19,5 +19,6 @@ export declare class AddConstraintNode extends PlanNode implements VoidNode {
19
19
  withChildren(newChildren: readonly PlanNode[]): PlanNode;
20
20
  toString(): string;
21
21
  getLogicalAttributes(): Record<string, unknown>;
22
+ computePhysical(_children: readonly PhysicalProperties[]): Partial<PhysicalProperties>;
22
23
  }
23
24
  //# sourceMappingURL=add-constraint-node.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"add-constraint-node.d.ts","sourceRoot":"","sources":["../../../../src/planner/nodes/add-constraint-node.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,KAAK,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,KAAK,KAAK,GAAG,MAAM,qBAAqB,CAAC;AAEhD;;;GAGG;AACH,qBAAa,iBAAkB,SAAQ,QAAS,YAAW,QAAQ;aAK/C,KAAK,EAAE,kBAAkB;aACzB,UAAU,EAAE,GAAG,CAAC,eAAe;IALjD,SAAkB,QAAQ,8BAA8B;gBAGtD,KAAK,EAAE,KAAK,EACI,KAAK,EAAE,kBAAkB,EACzB,UAAU,EAAE,GAAG,CAAC,eAAe;IAKjD,OAAO,IAAI,QAAQ;IAInB,YAAY,IAAI,SAAS,CAAC,kBAAkB,CAAC;IAI7C,WAAW,IAAI,SAAS,QAAQ,EAAE;IAIlC,YAAY,CAAC,WAAW,EAAE,SAAS,QAAQ,EAAE,GAAG,QAAQ;IAO/C,QAAQ,IAAI,MAAM;IAMlB,oBAAoB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAUzD"}
1
+ {"version":3,"file":"add-constraint-node.d.ts","sourceRoot":"","sources":["../../../../src/planner/nodes/add-constraint-node.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,KAAK,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC7E,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,KAAK,KAAK,GAAG,MAAM,qBAAqB,CAAC;AAEhD;;;GAGG;AACH,qBAAa,iBAAkB,SAAQ,QAAS,YAAW,QAAQ;aAK/C,KAAK,EAAE,kBAAkB;aACzB,UAAU,EAAE,GAAG,CAAC,eAAe;IALjD,SAAkB,QAAQ,8BAA8B;gBAGtD,KAAK,EAAE,KAAK,EACI,KAAK,EAAE,kBAAkB,EACzB,UAAU,EAAE,GAAG,CAAC,eAAe;IAKjD,OAAO,IAAI,QAAQ;IAInB,YAAY,IAAI,SAAS,CAAC,kBAAkB,CAAC;IAI7C,WAAW,IAAI,SAAS,QAAQ,EAAE;IAIlC,YAAY,CAAC,WAAW,EAAE,SAAS,QAAQ,EAAE,GAAG,QAAQ;IAO/C,QAAQ,IAAI,MAAM;IAMlB,oBAAoB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAWhD,eAAe,CAAC,SAAS,EAAE,SAAS,kBAAkB,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC;CAG/F"}
@@ -43,5 +43,8 @@ export class AddConstraintNode extends PlanNode {
43
43
  operations: this.constraint.operations,
44
44
  };
45
45
  }
46
+ computePhysical(_children) {
47
+ return { readonly: false };
48
+ }
46
49
  }
47
50
  //# sourceMappingURL=add-constraint-node.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"add-constraint-node.js","sourceRoot":"","sources":["../../../../src/planner/nodes/add-constraint-node.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAiB,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAKnD;;;GAGG;AACH,MAAM,OAAO,iBAAkB,SAAQ,QAAQ;IAK3B;IACA;IALA,QAAQ,GAAG,YAAY,CAAC,aAAa,CAAC;IAExD,YACE,KAAY,EACI,KAAyB,EACzB,UAA+B;QAE/C,KAAK,CAAC,KAAK,CAAC,CAAC;QAHG,UAAK,GAAL,KAAK,CAAoB;QACzB,eAAU,GAAV,UAAU,CAAqB;IAGjD,CAAC;IAED,OAAO;QACL,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;IAC/B,CAAC;IAED,YAAY;QACV,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC;IAED,WAAW;QACT,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,YAAY,CAAC,WAAgC;QAC3C,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,6CAA6C,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC;QACrF,CAAC;QACD,OAAO,IAAI,CAAC,CAAC,4BAA4B;IAC3C,CAAC;IAEQ,QAAQ;QACf,MAAM,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QAC1D,MAAM,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,SAAS,CAAC;QACzD,OAAO,kBAAkB,cAAc,IAAI,cAAc,EAAE,CAAC;IAC9D,CAAC;IAEQ,oBAAoB;QAC3B,OAAO;YACL,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI;YAClC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,UAAU;YACzC,cAAc,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI;YACpC,cAAc,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI;YACpC,aAAa,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU;YAC3C,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,UAAU;SACvC,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"add-constraint-node.js","sourceRoot":"","sources":["../../../../src/planner/nodes/add-constraint-node.ts"],"names":[],"mappings":"AACA,OAAO,EAAsB,QAAQ,EAAiB,MAAM,gBAAgB,CAAC;AAC7E,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAKnD;;;GAGG;AACH,MAAM,OAAO,iBAAkB,SAAQ,QAAQ;IAK3B;IACA;IALA,QAAQ,GAAG,YAAY,CAAC,aAAa,CAAC;IAExD,YACE,KAAY,EACI,KAAyB,EACzB,UAA+B;QAE/C,KAAK,CAAC,KAAK,CAAC,CAAC;QAHG,UAAK,GAAL,KAAK,CAAoB;QACzB,eAAU,GAAV,UAAU,CAAqB;IAGjD,CAAC;IAED,OAAO;QACL,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;IAC/B,CAAC;IAED,YAAY;QACV,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC;IAED,WAAW;QACT,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,YAAY,CAAC,WAAgC;QAC3C,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,6CAA6C,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC;QACrF,CAAC;QACD,OAAO,IAAI,CAAC,CAAC,4BAA4B;IAC3C,CAAC;IAEQ,QAAQ;QACf,MAAM,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QAC1D,MAAM,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,SAAS,CAAC;QACzD,OAAO,kBAAkB,cAAc,IAAI,cAAc,EAAE,CAAC;IAC9D,CAAC;IAEQ,oBAAoB;QAC3B,OAAO;YACL,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI;YAClC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,UAAU;YACzC,cAAc,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI;YACpC,cAAc,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI;YACpC,aAAa,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU;YAC3C,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,UAAU;SACvC,CAAC;IACJ,CAAC;IAEO,eAAe,CAAC,SAAwC;QAChE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IAC5B,CAAC;CACD"}
@@ -1 +1 @@
1
- {"version":3,"file":"aggregate-node.d.ts","sourceRoot":"","sources":["../../../../src/planner/nodes/aggregate-node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,KAAK,kBAAkB,EAAE,KAAK,cAAc,EAAE,KAAK,mBAAmB,EAAE,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAClI,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAMhD,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,cAAc,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;GAIG;AACH,qBAAa,aAAc,SAAQ,QAAS,YAAW,mBAAmB;aAQtD,MAAM,EAAE,kBAAkB;aAC1B,OAAO,EAAE,SAAS,cAAc,EAAE;aAClC,UAAU,EAAE,SAAS,mBAAmB,EAAE;aAE1C,oBAAoB,CAAC,EAAE,SAAS,SAAS,EAAE;IAX7D,SAAkB,QAAQ,0BAA0B;IAEpD,OAAO,CAAC,eAAe,CAAuB;IAC9C,OAAO,CAAC,eAAe,CAAsB;gBAG3C,KAAK,EAAE,KAAK,EACI,MAAM,EAAE,kBAAkB,EAC1B,OAAO,EAAE,SAAS,cAAc,EAAE,EAClC,UAAU,EAAE,SAAS,mBAAmB,EAAE,EAC1D,qBAAqB,CAAC,EAAE,MAAM,EACd,oBAAoB,CAAC,EAAE,SAAS,SAAS,EAAE,YAAA;IAS7D,OAAO,CAAC,oBAAoB;IAU5B,OAAO,CAAC,eAAe;IAgCvB,OAAO,CAAC,eAAe;IAgCvB,OAAO,IAAI,YAAY;IAIvB,aAAa,IAAI,SAAS,EAAE;IAI5B,WAAW,IAAI,SAAS,QAAQ,EAAE;IAIlC,YAAY,IAAI,SAAS,CAAC,kBAAkB,CAAC;IAI7C,YAAY,CAAC,WAAW,EAAE,SAAS,QAAQ,EAAE,GAAG,QAAQ;IAyCxD,IAAI,aAAa,IAAI,MAAM,GAAG,SAAS,CAatC;IAEQ,QAAQ,IAAI,MAAM;IAiBlB,oBAAoB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAgBzD"}
1
+ {"version":3,"file":"aggregate-node.d.ts","sourceRoot":"","sources":["../../../../src/planner/nodes/aggregate-node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,KAAK,kBAAkB,EAAE,KAAK,cAAc,EAAE,KAAK,mBAAmB,EAAE,KAAK,SAAS,EAAoB,MAAM,gBAAgB,CAAC;AACpJ,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAMhD,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,cAAc,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;GAIG;AACH,qBAAa,aAAc,SAAQ,QAAS,YAAW,mBAAmB;aAQtD,MAAM,EAAE,kBAAkB;aAC1B,OAAO,EAAE,SAAS,cAAc,EAAE;aAClC,UAAU,EAAE,SAAS,mBAAmB,EAAE;aAE1C,oBAAoB,CAAC,EAAE,SAAS,SAAS,EAAE;IAX7D,SAAkB,QAAQ,0BAA0B;IAEpD,OAAO,CAAC,eAAe,CAAuB;IAC9C,OAAO,CAAC,eAAe,CAAsB;gBAG3C,KAAK,EAAE,KAAK,EACI,MAAM,EAAE,kBAAkB,EAC1B,OAAO,EAAE,SAAS,cAAc,EAAE,EAClC,UAAU,EAAE,SAAS,mBAAmB,EAAE,EAC1D,qBAAqB,CAAC,EAAE,MAAM,EACd,oBAAoB,CAAC,EAAE,SAAS,SAAS,EAAE,YAAA;IAS7D,OAAO,CAAC,oBAAoB;IAU5B,OAAO,CAAC,eAAe;IAgCvB,OAAO,CAAC,eAAe;IAkCvB,OAAO,IAAI,YAAY;IAIvB,aAAa,IAAI,SAAS,EAAE;IAI5B,WAAW,IAAI,SAAS,QAAQ,EAAE;IAIlC,YAAY,IAAI,SAAS,CAAC,kBAAkB,CAAC;IAI7C,YAAY,CAAC,WAAW,EAAE,SAAS,QAAQ,EAAE,GAAG,QAAQ;IAyCxD,IAAI,aAAa,IAAI,MAAM,GAAG,SAAS,CAatC;IAEQ,QAAQ,IAAI,MAAM;IAiBlB,oBAAoB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAgBzD"}
@@ -1,5 +1,5 @@
1
1
  import { PlanNodeType } from './plan-node-type.js';
2
- import { PlanNode } from './plan-node.js';
2
+ import { PlanNode, isRelationalNode } from './plan-node.js';
3
3
  import { Cached } from '../../util/cached.js';
4
4
  import { formatExpressionList } from '../../util/plan-formatter.js';
5
5
  import { StatusCode } from '../../common/types.js';
@@ -78,7 +78,8 @@ export class AggregateNode extends PlanNode {
78
78
  id: PlanNode.nextAttrId(),
79
79
  name,
80
80
  type: expr.getType(),
81
- sourceRelation: `${this.nodeType}:${this.id}`
81
+ sourceRelation: `${this.nodeType}:${this.id}`,
82
+ relationName: 'aggregate' // AggregateNode creates new relation context
82
83
  });
83
84
  });
84
85
  // Then aggregate columns
@@ -87,7 +88,8 @@ export class AggregateNode extends PlanNode {
87
88
  id: PlanNode.nextAttrId(),
88
89
  name: agg.alias,
89
90
  type: agg.expression.getType(),
90
- sourceRelation: `${this.nodeType}:${this.id}`
91
+ sourceRelation: `${this.nodeType}:${this.id}`,
92
+ relationName: 'aggregate' // AggregateNode creates new relation context
91
93
  });
92
94
  });
93
95
  return attributes;
@@ -113,7 +115,7 @@ export class AggregateNode extends PlanNode {
113
115
  const newGroupBy = restChildren.slice(0, this.groupBy.length);
114
116
  const newAggregateExpressions = restChildren.slice(this.groupBy.length);
115
117
  // Type check
116
- if (!('getAttributes' in newSource) || typeof newSource.getAttributes !== 'function') {
118
+ if (!isRelationalNode(newSource)) {
117
119
  quereusError('AggregateNode: first child must be a RelationalPlanNode', StatusCode.INTERNAL);
118
120
  }
119
121
  // Check if anything changed
@@ -1 +1 @@
1
- {"version":3,"file":"aggregate-node.js","sourceRoot":"","sources":["../../../../src/planner/nodes/aggregate-node.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"aggregate-node.js","sourceRoot":"","sources":["../../../../src/planner/nodes/aggregate-node.ts"],"names":[],"mappings":"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"}
@@ -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,EAAE,MAAM,gBAAgB,CAAC;AAC7G,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAIhD,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,OAAO,CAAC;AAE/C;;;;;;GAMG;AACH,qBAAa,SAAU,SAAQ,QAAS,YAAW,mBAAmB;aAKpD,MAAM,EAAE,kBAAkB;aAC1B,QAAQ,EAAE,aAAa;aACvB,SAAS,EAAE,MAAM;IANlC,QAAQ,CAAC,QAAQ,sBAAsB;gBAGtC,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,EAAE;IAI5B,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;IAEQ,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,EAAoB,MAAM,gBAAgB,CAAC;AAC/H,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAIhD,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,OAAO,CAAC;AAE/C;;;;;;GAMG;AACH,qBAAa,SAAU,SAAQ,QAAS,YAAW,mBAAmB;aAKpD,MAAM,EAAE,kBAAkB;aAC1B,QAAQ,EAAE,aAAa;aACvB,SAAS,EAAE,MAAM;IANlC,QAAQ,CAAC,QAAQ,sBAAsB;gBAGtC,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,EAAE;IAI5B,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;IAEQ,QAAQ,IAAI,MAAM;IAIlB,oBAAoB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAOxD"}
@@ -1,5 +1,5 @@
1
1
  import { PlanNodeType } from './plan-node-type.js';
2
- import { PlanNode } from './plan-node.js';
2
+ import { PlanNode, isRelationalNode } from './plan-node.js';
3
3
  import { StatusCode } from '../../common/types.js';
4
4
  import { quereusError } from '../../common/errors.js';
5
5
  /**
@@ -46,7 +46,7 @@ export class CacheNode extends PlanNode {
46
46
  }
47
47
  const [newSource] = newChildren;
48
48
  // Type check
49
- if (!('getAttributes' in newSource) || typeof newSource.getAttributes !== 'function') {
49
+ if (!isRelationalNode(newSource)) {
50
50
  quereusError('CacheNode: child must be a RelationalPlanNode', StatusCode.INTERNAL);
51
51
  }
52
52
  // Return same instance if nothing changed