@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
@@ -1 +1 @@
1
- {"version":3,"file":"plan-node-type.js","sourceRoot":"","sources":["../../../../src/planner/nodes/plan-node-type.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,YAsFX;AAtFD,WAAY,YAAY;IACtB,+BAA+B;IAC/B,+BAAe,CAAA;IACf,iDAAiC,CAAA;IACjC,6CAA6B,CAAA;IAC7B,uCAAuB,CAAA;IACvB,uCAAuB,CAAA;IACvB,iCAAiB,CAAA;IACjB,mCAAmB,CAAA;IACnB,qCAAqB,CAAA;IACrB,uCAAuB,CAAA;IACvB,iCAAiB,CAAA;IACjB,6BAAa,CAAA;IACb,2CAA2B,CAAA;IAC3B,6BAAa,CAAA;IACb,6CAA6B,CAAA;IAC7B,2BAAW,CAAA;IACX,6CAA6B,CAAA;IAC7B,yBAAS,CAAA;IACT,iCAAiB,CAAA;IACjB,yCAAyB,CAAA;IAEzB,gBAAgB;IAChB,iCAAiB,CAAA;IACjB,iCAAiB,CAAA;IACjB,iDAAiC,CAAA;IACjC,iCAAiB,CAAA;IACjB,mDAAmC,CAAA;IACnC,2CAA2B,CAAA;IAC3B,uCAAuB,CAAA;IACvB,2CAA2B,CAAA;IAC3B,uCAAuB,CAAA;IACvB,yCAAyB,CAAA;IACzB,qCAAqB,CAAA;IACrB,yCAAyB,CAAA;IACzB,+CAA+B,CAAA;IAE/B,kCAAkC;IAClC,mCAAmB,CAAA;IACnB,uCAAuB,CAAA;IACvB,uCAAuB,CAAA;IACvB,mDAAmC,CAAA;IACnC,+CAA+B,CAAA;IAC/B,iDAAiC,CAAA;IACjC,qCAAqB,CAAA;IACrB,uCAAuB,CAAA;IACvB,2CAA2B,CAAA;IAE3B,0BAA0B;IAC1B,mCAAmB,CAAA;IACnB,mDAAmC,CAAA;IACnC,yDAAyC,CAAA;IACzC,yCAAyB,CAAA;IACzB,mCAAmB,CAAA;IACnB,qCAAqB,CAAA;IACrB,qCAAqB,CAAA;IACrB,6BAAa,CAAA;IACb,mCAAmB,CAAA;IACnB,yDAAyC,CAAA;IACzC,yDAAyC,CAAA;IACzC,mCAAmB,CAAA;IACnB,iCAAiB,CAAA;IACjB,uCAAuB,CAAA;IACvB,6BAAa,CAAA;IACb,iDAAiC,CAAA;IACjC,iEAAiD,CAAA;IAEjD,2BAA2B;IAC3B,iCAAiB,CAAA;IAClB,6CAA6B,CAAA;IAC5B,uCAAuB,CAAA;IACvB,uDAAuC,CAAA;IAEvC,sBAAsB;IACtB,2CAA2B,CAAA;IAC3B,uCAAuB,CAAA;IAEvB,UAAU;IACV,iCAAiB,CAAA;IAEjB,kBAAkB;IAClB,+BAAe,CAAA;IACf,6BAAa,CAAA;IAEb,oBAAoB;IACpB,uCAAuB,CAAA;AACzB,CAAC,EAtFW,YAAY,KAAZ,YAAY,QAsFvB"}
1
+ {"version":3,"file":"plan-node-type.js","sourceRoot":"","sources":["../../../../src/planner/nodes/plan-node-type.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,YAsFX;AAtFD,WAAY,YAAY;IACtB,+BAA+B;IAC/B,+BAAe,CAAA;IACf,iDAAiC,CAAA;IACjC,6CAA6B,CAAA;IAC7B,uCAAuB,CAAA;IACvB,iCAAiB,CAAA;IACjB,mCAAmB,CAAA;IACnB,qCAAqB,CAAA;IACrB,uCAAuB,CAAA;IACvB,iCAAiB,CAAA;IACjB,6BAAa,CAAA;IACb,2CAA2B,CAAA;IAC3B,6BAAa,CAAA;IACb,6CAA6B,CAAA;IAC7B,2BAAW,CAAA;IACX,6CAA6B,CAAA;IAC7B,mEAAmD,CAAA;IACnD,yBAAS,CAAA;IACT,iCAAiB,CAAA;IACjB,yCAAyB,CAAA;IAEzB,gBAAgB;IAChB,iCAAiB,CAAA;IACjB,iCAAiB,CAAA;IACjB,iDAAiC,CAAA;IACjC,iCAAiB,CAAA;IACjB,mDAAmC,CAAA;IACnC,2CAA2B,CAAA;IAC3B,uCAAuB,CAAA;IACvB,2CAA2B,CAAA;IAC3B,uCAAuB,CAAA;IACvB,yCAAyB,CAAA;IACzB,qCAAqB,CAAA;IACrB,yCAAyB,CAAA;IACzB,+CAA+B,CAAA;IAE/B,kCAAkC;IAClC,mCAAmB,CAAA;IACnB,uCAAuB,CAAA;IACvB,uCAAuB,CAAA;IACvB,mDAAmC,CAAA;IACnC,+CAA+B,CAAA;IAC/B,iDAAiC,CAAA;IACjC,qCAAqB,CAAA;IACrB,uCAAuB,CAAA;IACvB,2CAA2B,CAAA;IAE3B,0BAA0B;IAC1B,mCAAmB,CAAA;IACnB,mDAAmC,CAAA;IACnC,yDAAyC,CAAA;IACzC,yCAAyB,CAAA;IACzB,mCAAmB,CAAA;IACnB,qCAAqB,CAAA;IACrB,qCAAqB,CAAA;IACrB,6BAAa,CAAA;IACb,mCAAmB,CAAA;IACnB,yDAAyC,CAAA;IACzC,yDAAyC,CAAA;IACzC,mCAAmB,CAAA;IACnB,iCAAiB,CAAA;IACjB,uCAAuB,CAAA;IACvB,6BAAa,CAAA;IACb,iDAAiC,CAAA;IACjC,iEAAiD,CAAA;IAEjD,2BAA2B;IAC3B,iCAAiB,CAAA;IAClB,6CAA6B,CAAA;IAC5B,uCAAuB,CAAA;IACvB,uDAAuC,CAAA;IAEvC,sBAAsB;IACtB,2CAA2B,CAAA;IAC3B,uCAAuB,CAAA;IAEvB,UAAU;IACV,iCAAiB,CAAA;IAEjB,kBAAkB;IAClB,+BAAe,CAAA;IACf,6BAAa,CAAA;IAEb,oBAAoB;IACpB,uCAAuB,CAAA;AACzB,CAAC,EAtFW,YAAY,KAAZ,YAAY,QAsFvB"}
@@ -58,6 +58,8 @@ export interface Attribute {
58
58
  type: ScalarType;
59
59
  /** Source relation that originally produced this column */
60
60
  sourceRelation?: string;
61
+ /** Relation name for qualified access (e.g. table name or alias) */
62
+ relationName?: string;
61
63
  }
62
64
  /**
63
65
  * Row descriptor that maps attribute IDs to column indices in a row array
@@ -167,6 +169,10 @@ export interface RelationalPlanNode extends PlanNode {
167
169
  */
168
170
  getAttributes(): Attribute[];
169
171
  }
172
+ /**
173
+ * Check if a node is relational (can be cached)
174
+ */
175
+ export declare function isRelationalNode(node: PlanNode): node is RelationalPlanNode;
170
176
  /**
171
177
  * Base interface for PlanNodes that produce a scalar value (Expression Nodes).
172
178
  * Note: this is an interface that concrete ScalarNode classes will implement.
@@ -175,6 +181,10 @@ export interface ScalarPlanNode extends PlanNode {
175
181
  readonly expression: Expression;
176
182
  getType(): ScalarType;
177
183
  }
184
+ /**
185
+ * Check if a node is a scalar node
186
+ */
187
+ export declare function isScalarNode(node: PlanNode): node is ScalarPlanNode;
178
188
  /** A relational plan node that has no relational inputs (a leaf in the relational algebra tree).
179
189
  * Will not have scalar inputs either - this is either TableDee or TableDum, projection can be used to compute columns
180
190
  */
@@ -209,6 +219,10 @@ export interface BinaryScalarNode extends ScalarPlanNode {
209
219
  readonly right: ScalarPlanNode;
210
220
  getChildren(): readonly [ScalarPlanNode, ScalarPlanNode];
211
221
  }
222
+ /** A scalar plan node that operates on three scalar inputs. */
223
+ export interface TernaryScalarNode extends ScalarPlanNode {
224
+ getChildren(): readonly [ScalarPlanNode, ScalarPlanNode, ScalarPlanNode];
225
+ }
212
226
  /** A scalar plan node that operates on N scalar inputs. */
213
227
  export interface NaryScalarNode extends ScalarPlanNode {
214
228
  readonly operands: ReadonlyArray<ScalarPlanNode>;
@@ -277,6 +291,15 @@ export declare abstract class BinaryScalarBase extends PlanNode implements Binar
277
291
  getChildren(): readonly [ScalarPlanNode, ScalarPlanNode];
278
292
  abstract withChildren(newChildren: readonly PlanNode[]): PlanNode;
279
293
  }
294
+ /**
295
+ * Base class for scalar nodes with three scalar inputs
296
+ */
297
+ export declare abstract class TernaryScalarBase extends PlanNode implements TernaryScalarNode {
298
+ abstract readonly expression: Expression;
299
+ abstract getType(): ScalarType;
300
+ abstract getChildren(): readonly [ScalarPlanNode, ScalarPlanNode, ScalarPlanNode];
301
+ withChildren(newChildren: readonly PlanNode[]): PlanNode;
302
+ }
280
303
  /**
281
304
  * Base class for scalar nodes with N scalar inputs
282
305
  */
@@ -1 +1 @@
1
- {"version":3,"file":"plan-node.d.ts","sourceRoot":"","sources":["../../../../src/planner/nodes/plan-node.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plan-node.d.ts","sourceRoot":"","sources":["../../../../src/planner/nodes/plan-node.ts"],"names":[],"mappings":"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"}
@@ -38,7 +38,7 @@ export class PlanNode {
38
38
  */
39
39
  getRelations() {
40
40
  return this.getChildren()
41
- .filter((c) => 'getAttributes' in c && typeof c.getAttributes === 'function');
41
+ .filter(isRelationalNode);
42
42
  }
43
43
  getTotalCost() {
44
44
  return (this.estimatedCost + this.getChildren().reduce((acc, child) => acc + child.getTotalCost(), 0))
@@ -71,7 +71,7 @@ export class PlanNode {
71
71
  deterministic: childrenPhysical.every(child => child.deterministic),
72
72
  idempotent: childrenPhysical.every(child => child.idempotent),
73
73
  readonly: childrenPhysical.every(child => child.readonly),
74
- constant: childrenPhysical.every(child => child.constant),
74
+ // constant: DON'T INHERIT - only ValueNodes can be directly constant
75
75
  }
76
76
  : DEFAULT_PHYSICAL;
77
77
  this._physical = { ...defaults, ...propsOverride };
@@ -117,6 +117,18 @@ export class VoidNode extends PlanNode {
117
117
  return []; // Does not operate on input relations
118
118
  }
119
119
  }
120
+ /**
121
+ * Check if a node is relational (can be cached)
122
+ */
123
+ export function isRelationalNode(node) {
124
+ return node.getType().typeClass === 'relation';
125
+ }
126
+ /**
127
+ * Check if a node is a scalar node
128
+ */
129
+ export function isScalarNode(node) {
130
+ return node.getType().typeClass === 'scalar';
131
+ }
120
132
  // --- Concrete Arity-Based Base Classes ---
121
133
  /**
122
134
  * Base class for relational nodes with no relational inputs (leaf nodes)
@@ -187,6 +199,17 @@ export class BinaryScalarBase extends PlanNode {
187
199
  return [this.left, this.right];
188
200
  }
189
201
  }
202
+ /**
203
+ * Base class for scalar nodes with three scalar inputs
204
+ */
205
+ export class TernaryScalarBase extends PlanNode {
206
+ withChildren(newChildren) {
207
+ if (newChildren.length !== 3) {
208
+ quereusError(`${this.nodeType} expects 3 children, got ${newChildren.length}`);
209
+ }
210
+ return this;
211
+ }
212
+ }
190
213
  /**
191
214
  * Base class for scalar nodes with N scalar inputs
192
215
  */
@@ -1 +1 @@
1
- {"version":3,"file":"plan-node.js","sourceRoot":"","sources":["../../../../src/planner/nodes/plan-node.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plan-node.js","sourceRoot":"","sources":["../../../../src/planner/nodes/plan-node.ts"],"names":[],"mappings":"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"}
@@ -15,12 +15,16 @@ export interface Projection {
15
15
  export declare class ProjectNode extends PlanNode implements UnaryRelationalNode {
16
16
  readonly source: RelationalPlanNode;
17
17
  readonly projections: ReadonlyArray<Projection>;
18
+ /** Whether to preserve input columns in the output (default: true) */
19
+ readonly preserveInputColumns: boolean;
18
20
  readonly nodeType = PlanNodeType.Project;
19
21
  private outputTypeCache;
20
22
  private attributesCache;
21
23
  constructor(scope: Scope, source: RelationalPlanNode, projections: ReadonlyArray<Projection>, estimatedCostOverride?: number,
22
24
  /** Optional predefined attributes for preserving IDs during optimization */
23
- predefinedAttributes?: Attribute[]);
25
+ predefinedAttributes?: Attribute[],
26
+ /** Whether to preserve input columns in the output (default: true) */
27
+ preserveInputColumns?: boolean);
24
28
  getType(): RelationType;
25
29
  getAttributes(): Attribute[];
26
30
  getProducingExprs(): Map<number, ScalarPlanNode>;
@@ -1 +1 @@
1
- {"version":3,"file":"project-node.d.ts","sourceRoot":"","sources":["../../../../src/planner/nodes/project-node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,KAAK,kBAAkB,EAAE,KAAK,mBAAmB,EAAE,KAAK,cAAc,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;AAQhD,MAAM,WAAW,UAAU;IAC1B,IAAI,EAAE,cAAc,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uEAAuE;IACvE,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;GAGG;AACH,qBAAa,WAAY,SAAQ,QAAS,YAAW,mBAAmB;aAQtD,MAAM,EAAE,kBAAkB;aAC1B,WAAW,EAAE,aAAa,CAAC,UAAU,CAAC;IARvD,SAAkB,QAAQ,wBAAwB;IAElD,OAAO,CAAC,eAAe,CAAuB;IAC9C,OAAO,CAAC,eAAe,CAAsB;gBAG5C,KAAK,EAAE,KAAK,EACI,MAAM,EAAE,kBAAkB,EAC1B,WAAW,EAAE,aAAa,CAAC,UAAU,CAAC,EACtD,qBAAqB,CAAC,EAAE,MAAM;IAC9B,4EAA4E;IAC5E,oBAAoB,CAAC,EAAE,SAAS,EAAE;IAkGnC,OAAO,IAAI,YAAY;IAIvB,aAAa,IAAI,SAAS,EAAE;IAI5B,iBAAiB,IAAI,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC;IAehD,WAAW,IAAI,SAAS,QAAQ,EAAE;IAIlC,YAAY,IAAI,SAAS,CAAC,kBAAkB,CAAC;IAI7C,IAAI,aAAa,IAAI,MAAM,GAAG,SAAS,CAEtC;IAEQ,QAAQ,IAAI,MAAM;IAOlB,oBAAoB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IASxD,YAAY,CAAC,WAAW,EAAE,SAAS,QAAQ,EAAE,GAAG,QAAQ;CAuCxD"}
1
+ {"version":3,"file":"project-node.d.ts","sourceRoot":"","sources":["../../../../src/planner/nodes/project-node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,KAAK,kBAAkB,EAAE,KAAK,mBAAmB,EAAE,KAAK,cAAc,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;AAQhD,MAAM,WAAW,UAAU;IAC1B,IAAI,EAAE,cAAc,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uEAAuE;IACvE,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;GAGG;AACH,qBAAa,WAAY,SAAQ,QAAS,YAAW,mBAAmB;aAQtD,MAAM,EAAE,kBAAkB;aAC1B,WAAW,EAAE,aAAa,CAAC,UAAU,CAAC;IAItD,sEAAsE;aACtD,oBAAoB,EAAE,OAAO;IAb9C,SAAkB,QAAQ,wBAAwB;IAElD,OAAO,CAAC,eAAe,CAAuB;IAC9C,OAAO,CAAC,eAAe,CAAsB;gBAG5C,KAAK,EAAE,KAAK,EACI,MAAM,EAAE,kBAAkB,EAC1B,WAAW,EAAE,aAAa,CAAC,UAAU,CAAC,EACtD,qBAAqB,CAAC,EAAE,MAAM;IAC9B,4EAA4E;IAC5E,oBAAoB,CAAC,EAAE,SAAS,EAAE;IAClC,sEAAsE;IACtD,oBAAoB,GAAE,OAAc;IAmHrD,OAAO,IAAI,YAAY;IAIvB,aAAa,IAAI,SAAS,EAAE;IAI5B,iBAAiB,IAAI,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC;IAehD,WAAW,IAAI,SAAS,QAAQ,EAAE;IAIlC,YAAY,IAAI,SAAS,CAAC,kBAAkB,CAAC;IAI7C,IAAI,aAAa,IAAI,MAAM,GAAG,SAAS,CAEtC;IAEQ,QAAQ,IAAI,MAAM;IAOlB,oBAAoB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IASxD,YAAY,CAAC,WAAW,EAAE,SAAS,QAAQ,EAAE,GAAG,QAAQ;CAwCxD"}
@@ -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 { expressionToString } from '../../util/ast-stringify.js';
5
5
  import { formatProjection } from '../../util/plan-formatter.js';
@@ -13,15 +13,19 @@ import { StatusCode } from '../../common/types.js';
13
13
  export class ProjectNode extends PlanNode {
14
14
  source;
15
15
  projections;
16
+ preserveInputColumns;
16
17
  nodeType = PlanNodeType.Project;
17
18
  outputTypeCache;
18
19
  attributesCache;
19
20
  constructor(scope, source, projections, estimatedCostOverride,
20
21
  /** Optional predefined attributes for preserving IDs during optimization */
21
- predefinedAttributes) {
22
+ predefinedAttributes,
23
+ /** Whether to preserve input columns in the output (default: true) */
24
+ preserveInputColumns = true) {
22
25
  super(scope, estimatedCostOverride);
23
26
  this.source = source;
24
27
  this.projections = projections;
28
+ this.preserveInputColumns = preserveInputColumns;
25
29
  const sourceType = this.source.getType();
26
30
  this.outputTypeCache = new Cached(() => {
27
31
  // Build column names with proper duplicate handling
@@ -78,35 +82,49 @@ export class ProjectNode extends PlanNode {
78
82
  }
79
83
  // Get the computed column names from the type
80
84
  const outputType = this.getType();
81
- // For each projection, preserve attribute ID if it's a simple column reference
85
+ // If preserveInputColumns is false, only create attributes for projections
86
+ if (!this.preserveInputColumns) {
87
+ return this.projections.map((proj, index) => ({
88
+ id: proj.attributeId ?? PlanNode.nextAttrId(),
89
+ name: outputType.columns[index].name,
90
+ type: proj.node.getType(),
91
+ sourceRelation: `${this.nodeType}:${this.id}`,
92
+ relationName: 'projection'
93
+ }));
94
+ }
95
+ // For each projection, preserve attribute ID for simple column references
82
96
  return this.projections.map((proj, index) => {
83
- // Check if projection has a predefined attribute ID
97
+ // Use predefined attribute ID if supplied (optimizer path)
84
98
  if (proj.attributeId !== undefined) {
85
99
  return {
86
100
  id: proj.attributeId,
87
101
  name: outputType.columns[index].name,
88
102
  type: proj.node.getType(),
89
- sourceRelation: `${this.nodeType}:${this.id}`
103
+ sourceRelation: `${this.nodeType}:${this.id}`,
104
+ relationName: 'projection'
90
105
  };
91
106
  }
92
- // If this projection is a simple column reference, preserve its attribute ID
93
107
  if (proj.node instanceof ColumnReferenceNode) {
108
+ // Always preserve the original attribute ID so that any reference
109
+ // to the underlying column (e.g., in ORDER BY) remains valid even
110
+ // after aliasing. The alias is purely a name change, not a new column.
111
+ const colRef = proj.node;
94
112
  return {
95
- id: proj.node.attributeId,
96
- name: outputType.columns[index].name, // Use the deduplicated name
97
- type: proj.node.getType(),
98
- sourceRelation: `${this.nodeType}:${this.id}`
99
- };
100
- }
101
- else {
102
- // For computed expressions, generate new attribute ID
103
- return {
104
- id: PlanNode.nextAttrId(),
105
- name: outputType.columns[index].name, // Use the deduplicated name
113
+ id: colRef.attributeId,
114
+ name: outputType.columns[index].name,
106
115
  type: proj.node.getType(),
107
- sourceRelation: `${this.nodeType}:${this.id}`
116
+ sourceRelation: `${this.nodeType}:${this.id}`,
117
+ relationName: 'projection'
108
118
  };
109
119
  }
120
+ // Computed expression or aliased column – generate fresh attribute ID
121
+ return {
122
+ id: PlanNode.nextAttrId(),
123
+ name: outputType.columns[index].name,
124
+ type: proj.node.getType(),
125
+ sourceRelation: `${this.nodeType}:${this.id}`,
126
+ relationName: 'projection'
127
+ };
110
128
  });
111
129
  });
112
130
  }
@@ -155,7 +173,7 @@ export class ProjectNode extends PlanNode {
155
173
  }
156
174
  const [newSource, ...newProjectionNodes] = newChildren;
157
175
  // Type check
158
- if (!('getAttributes' in newSource) || typeof newSource.getAttributes !== 'function') {
176
+ if (!isRelationalNode(newSource)) {
159
177
  quereusError('ProjectNode: first child must be a RelationalPlanNode', StatusCode.INTERNAL);
160
178
  }
161
179
  // Check if anything changed
@@ -174,7 +192,8 @@ export class ProjectNode extends PlanNode {
174
192
  }));
175
193
  // Create new instance with predefined attributes
176
194
  return new ProjectNode(this.scope, newSource, newProjections, undefined, // estimatedCostOverride
177
- originalAttributes // Pass original attributes to preserve IDs
195
+ originalAttributes, // Pass original attributes to preserve IDs
196
+ this.preserveInputColumns // Preserve the flag
178
197
  );
179
198
  }
180
199
  }
@@ -1 +1 @@
1
- {"version":3,"file":"project-node.js","sourceRoot":"","sources":["../../../../src/planner/nodes/project-node.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"project-node.js","sourceRoot":"","sources":["../../../../src/planner/nodes/project-node.ts"],"names":[],"mappings":"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"}
@@ -20,7 +20,7 @@ export declare class RecursiveCTENode extends PlanNode implements CTEPlanNode {
20
20
  private attributesCache;
21
21
  private typeCache;
22
22
  private _recursiveCaseQuery;
23
- constructor(scope: Scope, cteName: string, columns: string[] | undefined, baseCaseQuery: RelationalPlanNode, recursiveCaseQuery: RelationalPlanNode, isUnionAll: boolean, materializationHint?: 'materialized' | 'not_materialized' | undefined, maxRecursion?: number | undefined);
23
+ constructor(scope: Scope, cteName: string, columns: string[] | undefined, baseCaseQuery: RelationalPlanNode, recursiveCaseQuery: RelationalPlanNode, isUnionAll: boolean, materializationHint?: 'materialized' | 'not_materialized' | undefined, maxRecursion?: number | undefined, tableDescriptor?: TableDescriptor);
24
24
  get recursiveCaseQuery(): RelationalPlanNode;
25
25
  /**
26
26
  * Sets the recursive case query after construction.
@@ -31,7 +31,7 @@ export declare class RecursiveCTENode extends PlanNode implements CTEPlanNode {
31
31
  private buildType;
32
32
  getAttributes(): Attribute[];
33
33
  getType(): RelationType;
34
- getChildren(): readonly [];
34
+ getChildren(): readonly [RelationalPlanNode, RelationalPlanNode];
35
35
  get source(): RelationalPlanNode;
36
36
  getRelations(): readonly [RelationalPlanNode];
37
37
  withChildren(newChildren: readonly PlanNode[]): PlanNode;
@@ -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,SAAS,EAAE,KAAK,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACzG,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,MAAM,eAAe,CAAC;AAEjD;;;GAGG;AACH,qBAAa,gBAAiB,SAAQ,QAAS,YAAW,WAAW;aAWnD,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;IAhBtC,QAAQ,CAAC,QAAQ,6BAA6B;IAC9C,QAAQ,CAAC,WAAW,QAAQ;IAC5B,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAM;IAE/C,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;IAQtC,IAAI,kBAAkB,IAAI,kBAAkB,CAE3C;IAED;;;OAGG;IACH,qBAAqB,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI;IAOtD,OAAO,CAAC,eAAe;IAgBvB,OAAO,CAAC,SAAS;IAcjB,aAAa,IAAI,SAAS,EAAE;IAI5B,OAAO,IAAI,YAAY;IAIvB,WAAW,IAAI,SAAS,EAAE;IAK1B,IAAI,MAAM,IAAI,kBAAkB,CAE/B;IAED,YAAY,IAAI,SAAS,CAAC,kBAAkB,CAAC;IAI7C,YAAY,CAAC,WAAW,EAAE,SAAS,QAAQ,EAAE,GAAG,QAAQ;IAO/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,SAAS,EAAE,KAAK,eAAe,EAAoB,MAAM,gBAAgB,CAAC;AAC3H,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,MAAM,eAAe,CAAC;AAEjD;;;GAGG;AACH,qBAAa,gBAAiB,SAAQ,QAAS,YAAW,WAAW;aAWnD,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;IAhBtC,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;IASlC,IAAI,kBAAkB,IAAI,kBAAkB,CAE3C;IAED;;;OAGG;IACH,qBAAqB,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI;IAOtD,OAAO,CAAC,eAAe;IAgBvB,OAAO,CAAC,SAAS;IAcjB,aAAa,IAAI,SAAS,EAAE;IAI5B,OAAO,IAAI,YAAY;IAIvB,WAAW,IAAI,SAAS,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;IAKhE,IAAI,MAAM,IAAI,kBAAkB,CAE/B;IAED,YAAY,IAAI,SAAS,CAAC,kBAAkB,CAAC;IAI7C,YAAY,CAAC,WAAW,EAAE,SAAS,QAAQ,EAAE,GAAG,QAAQ;IAiC/C,QAAQ,IAAI,MAAM;IAQlB,oBAAoB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAYxD"}
@@ -1,4 +1,4 @@
1
- import { PlanNode } from './plan-node.js';
1
+ import { PlanNode, isRelationalNode } from './plan-node.js';
2
2
  import { PlanNodeType } from './plan-node-type.js';
3
3
  import { Cached } from '../../util/cached.js';
4
4
  /**
@@ -14,11 +14,11 @@ export class RecursiveCTENode extends PlanNode {
14
14
  maxRecursion;
15
15
  nodeType = PlanNodeType.RecursiveCTE;
16
16
  isRecursive = true; // Always true for recursive CTEs
17
- tableDescriptor = {}; // Identity object for table context lookup
17
+ tableDescriptor;
18
18
  attributesCache;
19
19
  typeCache;
20
20
  _recursiveCaseQuery;
21
- constructor(scope, cteName, columns, baseCaseQuery, recursiveCaseQuery, isUnionAll, materializationHint = 'materialized', maxRecursion) {
21
+ constructor(scope, cteName, columns, baseCaseQuery, recursiveCaseQuery, isUnionAll, materializationHint = 'materialized', maxRecursion, tableDescriptor) {
22
22
  super(scope, baseCaseQuery.getTotalCost() + recursiveCaseQuery.getTotalCost() + 50); // Higher cost for recursion
23
23
  this.cteName = cteName;
24
24
  this.columns = columns;
@@ -27,6 +27,7 @@ export class RecursiveCTENode extends PlanNode {
27
27
  this.materializationHint = materializationHint;
28
28
  this.maxRecursion = maxRecursion;
29
29
  this._recursiveCaseQuery = recursiveCaseQuery;
30
+ this.tableDescriptor = tableDescriptor || {}; // Identity object for table context lookup
30
31
  this.attributesCache = new Cached(() => this.buildAttributes());
31
32
  this.typeCache = new Cached(() => this.buildType());
32
33
  }
@@ -50,7 +51,7 @@ export class RecursiveCTENode extends PlanNode {
50
51
  const baseCaseType = this.baseCaseQuery.getType();
51
52
  const columnNames = this.columns || baseCaseType.columns.map((c) => c.name);
52
53
  return baseCaseAttributes.map((attr, index) => ({
53
- id: PlanNode.nextAttrId(),
54
+ id: attr.id, // Preserve original attribute ID for proper context resolution
54
55
  name: columnNames[index] || attr.name,
55
56
  type: attr.type,
56
57
  sourceRelation: `recursive_cte:${this.cteName}`
@@ -76,7 +77,7 @@ export class RecursiveCTENode extends PlanNode {
76
77
  return this.typeCache.value;
77
78
  }
78
79
  getChildren() {
79
- return [];
80
+ return [this.baseCaseQuery, this.recursiveCaseQuery];
80
81
  }
81
82
  // For recursive CTEs, we consider the base case as the primary source
82
83
  get source() {
@@ -86,10 +87,21 @@ export class RecursiveCTENode extends PlanNode {
86
87
  return [this.baseCaseQuery];
87
88
  }
88
89
  withChildren(newChildren) {
89
- if (newChildren.length !== 0) {
90
- throw new Error(`RecursiveCTENode expects 0 children, got ${newChildren.length}`);
90
+ if (newChildren.length !== 2) {
91
+ throw new Error(`RecursiveCTENode expects 2 children, got ${newChildren.length}`);
91
92
  }
92
- return this; // No children in getChildren(), sources are accessed via getRelations()
93
+ const [newBaseCaseQuery, newRecursiveCaseQuery] = newChildren;
94
+ // Type check
95
+ if (!isRelationalNode(newBaseCaseQuery) || !isRelationalNode(newRecursiveCaseQuery)) {
96
+ throw new Error('RecursiveCTENode: children must be RelationalPlanNodes');
97
+ }
98
+ // Return same instance if nothing changed
99
+ if (newBaseCaseQuery === this.baseCaseQuery && newRecursiveCaseQuery === this.recursiveCaseQuery) {
100
+ return this;
101
+ }
102
+ // Create new instance with updated children
103
+ const newNode = new RecursiveCTENode(this.scope, this.cteName, this.columns, newBaseCaseQuery, newRecursiveCaseQuery, this.isUnionAll, this.materializationHint, this.maxRecursion, this.tableDescriptor);
104
+ return newNode;
93
105
  }
94
106
  toString() {
95
107
  const recursiveText = 'RECURSIVE ';
@@ -1 +1 @@
1
- {"version":3,"file":"recursive-cte-node.js","sourceRoot":"","sources":["../../../../src/planner/nodes/recursive-cte-node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAiE,MAAM,gBAAgB,CAAC;AAEzG,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAG9C;;;GAGG;AACH,MAAM,OAAO,gBAAiB,SAAQ,QAAQ;IAW5B;IACA;IACA;IAEA;IACA;IACA;IAhBR,QAAQ,GAAG,YAAY,CAAC,YAAY,CAAC;IACrC,WAAW,GAAG,IAAI,CAAC,CAAC,iCAAiC;IACrD,eAAe,GAAoB,EAAE,CAAC,CAAC,2CAA2C;IAEnF,eAAe,CAAsB;IACrC,SAAS,CAAuB;IAChC,mBAAmB,CAAqB;IAEhD,YACC,KAAY,EACI,OAAe,EACf,OAA6B,EAC7B,aAAiC,EACjD,kBAAsC,EACtB,UAAmB,EACnB,sBAAuE,cAAc,EACrF,YAAqB;QAErC,KAAK,CAAC,KAAK,EAAE,aAAa,CAAC,YAAY,EAAE,GAAG,kBAAkB,CAAC,YAAY,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,4BAA4B;QARjG,YAAO,GAAP,OAAO,CAAQ;QACf,YAAO,GAAP,OAAO,CAAsB;QAC7B,kBAAa,GAAb,aAAa,CAAoB;QAEjC,eAAU,GAAV,UAAU,CAAS;QACnB,wBAAmB,GAAnB,mBAAmB,CAAkE;QACrF,iBAAY,GAAZ,YAAY,CAAS;QAGrC,IAAI,CAAC,mBAAmB,GAAG,kBAAkB,CAAC;QAC9C,IAAI,CAAC,eAAe,GAAG,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC;QAChE,IAAI,CAAC,SAAS,GAAG,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;IACrD,CAAC;IAED,IAAI,kBAAkB;QACrB,OAAO,IAAI,CAAC,mBAAmB,CAAC;IACjC,CAAC;IAED;;;OAGG;IACH,qBAAqB,CAAC,KAAyB;QAC9C,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;QACjC,6DAA6D;QAC7D,IAAI,CAAC,eAAe,GAAG,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC;QAChE,IAAI,CAAC,SAAS,GAAG,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;IACrD,CAAC;IAEO,eAAe;QACtB,uDAAuD;QACvD,MAAM,kBAAkB,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE,CAAC;QAE9D,8EAA8E;QAC9E,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;QAClD,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,IAAI,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAEjF,OAAO,kBAAkB,CAAC,GAAG,CAAC,CAAC,IAAS,EAAE,KAAa,EAAE,EAAE,CAAC,CAAC;YAC5D,EAAE,EAAE,QAAQ,CAAC,UAAU,EAAE;YACzB,IAAI,EAAE,WAAW,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI;YACrC,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,cAAc,EAAE,iBAAiB,IAAI,CAAC,OAAO,EAAE;SAC/C,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,SAAS;QAChB,OAAO;YACN,SAAS,EAAE,UAAU;YACrB,UAAU,EAAE,KAAK;YACjB,KAAK,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,+CAA+C;YACxE,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,GAAG,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,CAAC;gBACjD,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,IAAI,EAAE,IAAI,CAAC,IAAI;aACf,CAAC,CAAC;YACH,IAAI,EAAE,EAAE,EAAE,0CAA0C;YACpD,cAAc,EAAE,EAAE;SAClB,CAAC;IACH,CAAC;IAED,aAAa;QACZ,OAAO,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;IACnC,CAAC;IAED,OAAO;QACN,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IAC7B,CAAC;IAED,WAAW;QACV,OAAO,EAAE,CAAC;IACX,CAAC;IAED,sEAAsE;IACtE,IAAI,MAAM;QACT,OAAO,IAAI,CAAC,aAAa,CAAC;IAC3B,CAAC;IAED,YAAY;QACX,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC7B,CAAC;IAED,YAAY,CAAC,WAAgC;QAC5C,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,4CAA4C,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC;QACnF,CAAC;QACD,OAAO,IAAI,CAAC,CAAC,wEAAwE;IACtF,CAAC;IAEQ,QAAQ;QAChB,MAAM,aAAa,GAAG,YAAY,CAAC;QACnC,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QACvE,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC;QAC1D,MAAM,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,mBAAmB,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzG,OAAO,GAAG,aAAa,OAAO,IAAI,CAAC,OAAO,GAAG,WAAW,KAAK,SAAS,IAAI,mBAAmB,EAAE,CAAC;IACjG,CAAC;IAEQ,oBAAoB;QAC5B,OAAO;YACN,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;YAC7C,WAAW,EAAE,IAAI;YACjB,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,YAAY,EAAE,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE;YAC1C,iBAAiB,EAAE,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE;SACpD,CAAC;IACH,CAAC;CACD"}
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":"reference.d.ts","sourceRoot":"","sources":["../../../../src/planner/nodes/reference.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reference.d.ts","sourceRoot":"","sources":["../../../../src/planner/nodes/reference.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACnF,OAAO,EAAE,QAAQ,EAAE,KAAK,qBAAqB,EAAE,KAAK,iBAAiB,EAAE,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC9G,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,KAAK,KAAK,GAAG,MAAM,qBAAqB,CAAC;AAGhD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAK/D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE/D,8DAA8D;AAC9D,qBAAa,kBAAmB,SAAQ,QAAS,YAAW,qBAAqB;aAQ/D,WAAW,EAAE,WAAW;aACxB,UAAU,EAAE,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC;aACxC,WAAW,CAAC,EAAE,OAAO;IATtC,SAAkB,QAAQ,+BAA+B;IAEzD,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,eAAe,CAAsB;gBAG5C,KAAK,EAAE,KAAK,EACI,WAAW,EAAE,WAAW,EACxB,UAAU,EAAE,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC,EACxC,WAAW,CAAC,EAAE,OAAO,YAAA,EACrC,qBAAqB,CAAC,EAAE,MAAM;IAsB/B,OAAO,IAAI,YAAY;IAIvB,aAAa,IAAI,SAAS,EAAE;IAI5B,WAAW,IAAI,SAAS,EAAE;IAI1B,YAAY,IAAI,SAAS,EAAE;IAI3B,YAAY,CAAC,WAAW,EAAE,SAAS,QAAQ,EAAE,GAAG,QAAQ;IAOxD,IAAI,aAAa,IAAI,MAAM,GAAG,SAAS,CAEtC;IAEQ,QAAQ,IAAI,MAAM;IAIlB,oBAAoB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAUxD;AAED,qBAAa,0BAA2B,SAAQ,QAAS,YAAW,qBAAqB;aAOvE,cAAc,EAAE,cAAc;IAN/C,SAAkB,QAAQ,uCAAuC;IAEjE,OAAO,CAAC,eAAe,CAAsB;gBAG5C,KAAK,EAAE,KAAK,EACI,cAAc,EAAE,cAAc,EAC9C,qBAAqB,CAAC,EAAE,MAAM;IAmB/B,OAAO,IAAI,YAAY;IAUvB,aAAa,IAAI,SAAS,EAAE;IAI5B,WAAW,IAAI,SAAS,EAAE;IAI1B,YAAY,IAAI,SAAS,EAAE;IAI3B,YAAY,CAAC,WAAW,EAAE,SAAS,QAAQ,EAAE,GAAG,QAAQ;IAOxD,IAAI,aAAa,IAAI,MAAM,GAAG,SAAS,CAEtC;IAEQ,QAAQ,IAAI,MAAM;IAIlB,oBAAoB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAYxD;AAED;;;GAGG;AACH,qBAAa,mBAAoB,SAAQ,QAAS,YAAW,iBAAiB;aAK5D,UAAU,EAAE,GAAG,CAAC,UAAU;aAC1B,UAAU,EAAE,UAAU;aACtB,WAAW,EAAE,MAAM;aACnB,WAAW,EAAE,MAAM;IAPpC,SAAkB,QAAQ,gCAAgC;gBAGzD,KAAK,EAAE,KAAK,EACI,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE,6CAA6C;IACzE,UAAU,EAAE,UAAU,EACtB,WAAW,EAAE,MAAM,EAAE,gDAAgD;IACrE,WAAW,EAAE,MAAM;IAKpC,OAAO,IAAI,UAAU;IAIrB,WAAW,IAAI,SAAS,EAAE;IAI1B,YAAY,IAAI,SAAS,EAAE;IAI3B,YAAY,CAAC,WAAW,EAAE,SAAS,QAAQ,EAAE,GAAG,QAAQ;IAO/C,QAAQ,IAAI,MAAM;IAMlB,oBAAoB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAQxD;AAED;;;GAGG;AACH,qBAAa,sBAAuB,SAAQ,QAAS,YAAW,iBAAiB;aAK/D,UAAU,EAAE,GAAG,CAAC,aAAa;aAC7B,WAAW,EAAE,MAAM,GAAG,MAAM;aAC5B,UAAU,EAAE,UAAU;IANvC,SAAkB,QAAQ,mCAAmC;gBAG5D,KAAK,EAAE,KAAK,EACI,UAAU,EAAE,GAAG,CAAC,aAAa,EAAE,6CAA6C;IAC5E,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,iDAAiD;IAC/E,UAAU,EAAE,UAAU;IAKvC,OAAO,IAAI,UAAU;IAIrB,WAAW,IAAI,SAAS,EAAE;IAI1B,YAAY,IAAI,SAAS,EAAE;IAI3B,YAAY,CAAC,WAAW,EAAE,SAAS,QAAQ,EAAE,GAAG,QAAQ;IAO/C,QAAQ,IAAI,MAAM;IAIlB,oBAAoB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAMxD;AAED,qBAAa,qBAAsB,SAAQ,QAAQ;aAKjC,cAAc,EAAE,cAAc;aAC9B,UAAU,EAAE,QAAQ;IALrC,SAAkB,QAAQ,uCAAuC;gBAGhE,KAAK,EAAE,KAAK,EACI,cAAc,EAAE,cAAc,EAC9B,UAAU,EAAE,QAAQ;IAMrC,OAAO,IAAI,QAAQ;IAInB,WAAW,IAAI,SAAS,EAAE;IAI1B,YAAY,IAAI,SAAS,EAAE;IAI3B,YAAY,CAAC,WAAW,EAAE,SAAS,QAAQ,EAAE,GAAG,QAAQ;IAO/C,QAAQ,IAAI,MAAM;IAIlB,oBAAoB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAOxD"}
@@ -32,7 +32,8 @@ export class TableReferenceNode extends PlanNode {
32
32
  isReadOnly: false,
33
33
  collationName: column.collation
34
34
  },
35
- sourceRelation: `${this.tableSchema.schemaName}.${this.tableSchema.name}`
35
+ sourceRelation: `${this.tableSchema.schemaName}.${this.tableSchema.name}`,
36
+ relationName: this.tableSchema.name
36
37
  }));
37
38
  });
38
39
  }
@@ -85,7 +86,8 @@ export class TableFunctionReferenceNode extends PlanNode {
85
86
  id: PlanNode.nextAttrId(),
86
87
  name: column.name,
87
88
  type: column.type,
88
- sourceRelation: `${this.functionSchema.name}()`
89
+ sourceRelation: `${this.functionSchema.name}()`,
90
+ relationName: this.functionSchema.name
89
91
  }));
90
92
  }
91
93
  return [];
@@ -1 +1 @@
1
- {"version":3,"file":"reference.js","sourceRoot":"","sources":["../../../../src/planner/nodes/reference.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reference.js","sourceRoot":"","sources":["../../../../src/planner/nodes/reference.ts"],"names":[],"mappings":"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"}
@@ -28,7 +28,7 @@ export declare class ReturningNode extends PlanNode implements RelationalPlanNod
28
28
  getType(): RelationType;
29
29
  getAttributes(): Attribute[];
30
30
  getRelations(): readonly RelationalPlanNode[];
31
- getChildren(): readonly ScalarPlanNode[];
31
+ getChildren(): readonly PlanNode[];
32
32
  withChildren(newChildren: readonly PlanNode[]): PlanNode;
33
33
  get estimatedRows(): number | undefined;
34
34
  toString(): string;
@@ -1 +1 @@
1
- {"version":3,"file":"returning-node.d.ts","sourceRoot":"","sources":["../../../../src/planner/nodes/returning-node.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,KAAK,kBAAkB,EAAE,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAC;AACnF,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAK7D,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,cAAc,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uEAAuE;IACvE,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;GAGG;AACH,qBAAa,aAAc,SAAQ,QAAS,YAAW,kBAAkB;aAQrD,QAAQ,EAAE,kBAAkB;aAC5B,WAAW,EAAE,aAAa,CAAC,mBAAmB,CAAC;IARjE,SAAkB,QAAQ,0BAA0B;IAEpD,OAAO,CAAC,eAAe,CAAuB;IAC9C,OAAO,CAAC,eAAe,CAAsB;gBAG3C,KAAK,EAAE,KAAK,EACI,QAAQ,EAAE,kBAAkB,EAAE,8CAA8C;IAC5E,WAAW,EAAE,aAAa,CAAC,mBAAmB,CAAC;IAC/D,4EAA4E;IAC5E,oBAAoB,CAAC,EAAE,SAAS,EAAE;IAepC,OAAO,CAAC,eAAe;IAwDvB,OAAO,CAAC,eAAe;IAqCvB,OAAO,IAAI,YAAY;IAIvB,aAAa,IAAI,SAAS,EAAE;IAI5B,YAAY,IAAI,SAAS,kBAAkB,EAAE;IAK7C,WAAW,IAAI,SAAS,cAAc,EAAE;IAIxC,YAAY,CAAC,WAAW,EAAE,SAAS,QAAQ,EAAE,GAAG,QAAQ;IAqCxD,IAAI,aAAa,IAAI,MAAM,GAAG,SAAS,CAEtC;IAEQ,QAAQ,IAAI,MAAM;IAOlB,oBAAoB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAUzD"}
1
+ {"version":3,"file":"returning-node.d.ts","sourceRoot":"","sources":["../../../../src/planner/nodes/returning-node.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,KAAK,kBAAkB,EAAE,KAAK,SAAS,EAAoB,MAAM,gBAAgB,CAAC;AACrG,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAK7D,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,cAAc,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uEAAuE;IACvE,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;GAGG;AACH,qBAAa,aAAc,SAAQ,QAAS,YAAW,kBAAkB;aAQrD,QAAQ,EAAE,kBAAkB;aAC5B,WAAW,EAAE,aAAa,CAAC,mBAAmB,CAAC;IARjE,SAAkB,QAAQ,0BAA0B;IAEpD,OAAO,CAAC,eAAe,CAAuB;IAC9C,OAAO,CAAC,eAAe,CAAsB;gBAG3C,KAAK,EAAE,KAAK,EACI,QAAQ,EAAE,kBAAkB,EAAE,8CAA8C;IAC5E,WAAW,EAAE,aAAa,CAAC,mBAAmB,CAAC;IAC/D,4EAA4E;IAC5E,oBAAoB,CAAC,EAAE,SAAS,EAAE;IAepC,OAAO,CAAC,eAAe;IAwDvB,OAAO,CAAC,eAAe;IAqCvB,OAAO,IAAI,YAAY;IAIvB,aAAa,IAAI,SAAS,EAAE;IAI5B,YAAY,IAAI,SAAS,kBAAkB,EAAE;IAK7C,WAAW,IAAI,SAAS,QAAQ,EAAE;IAKlC,YAAY,CAAC,WAAW,EAAE,SAAS,QAAQ,EAAE,GAAG,QAAQ;IAgDxD,IAAI,aAAa,IAAI,MAAM,GAAG,SAAS,CAEtC;IAEQ,QAAQ,IAAI,MAAM;IAOlB,oBAAoB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAUzD"}