@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":"stream-aggregate.d.ts","sourceRoot":"","sources":["../../../../src/planner/nodes/stream-aggregate.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,kBAAkB,EAAE,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3J,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAMhD;;;GAGG;AACH,qBAAa,mBAAoB,SAAQ,QAAS,YAAW,mBAAmB;aAO5D,MAAM,EAAE,kBAAkB;aAC1B,OAAO,EAAE,SAAS,cAAc,EAAE;aAClC,UAAU,EAAE,SAAS;QAAE,UAAU,EAAE,cAAc,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE;aAEpE,oBAAoB,CAAC,EAAE,SAAS,SAAS,EAAE;IAV7D,SAAkB,QAAQ,gCAAgC;IAE1D,OAAO,CAAC,eAAe,CAAsB;gBAG3C,KAAK,EAAE,KAAK,EACI,MAAM,EAAE,kBAAkB,EAC1B,OAAO,EAAE,SAAS,cAAc,EAAE,EAClC,UAAU,EAAE,SAAS;QAAE,UAAU,EAAE,cAAc,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,EACpF,qBAAqB,CAAC,EAAE,MAAM,EACd,oBAAoB,CAAC,EAAE,SAAS,SAAS,EAAE,YAAA;IAY7D,OAAO,CAAC,eAAe;IAiCvB,OAAO,CAAC,oBAAoB;IAU5B,OAAO,IAAI,YAAY;IA4BvB,aAAa,IAAI,SAAS,EAAE;IAI5B,WAAW,IAAI,SAAS,QAAQ,EAAE;IAIlC,YAAY,IAAI,SAAS,CAAC,kBAAkB,CAAC;IAI7C,IAAI,aAAa,IAAI,MAAM,GAAG,SAAS,CAYtC;IAED,eAAe,CAAC,iBAAiB,EAAE,kBAAkB,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAc5E,QAAQ,IAAI,MAAM;IAiBlB,oBAAoB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAoBxD,YAAY,CAAC,WAAW,EAAE,SAAS,QAAQ,EAAE,GAAG,QAAQ;CAwCzD"}
1
+ {"version":3,"file":"stream-aggregate.d.ts","sourceRoot":"","sources":["../../../../src/planner/nodes/stream-aggregate.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,kBAAkB,EAAE,KAAK,SAAS,EAAoB,MAAM,gBAAgB,CAAC;AAC7K,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAMhD;;;GAGG;AACH,qBAAa,mBAAoB,SAAQ,QAAS,YAAW,mBAAmB;aAO5D,MAAM,EAAE,kBAAkB;aAC1B,OAAO,EAAE,SAAS,cAAc,EAAE;aAClC,UAAU,EAAE,SAAS;QAAE,UAAU,EAAE,cAAc,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE;aAEpE,oBAAoB,CAAC,EAAE,SAAS,SAAS,EAAE;IAV7D,SAAkB,QAAQ,gCAAgC;IAE1D,OAAO,CAAC,eAAe,CAAsB;gBAG3C,KAAK,EAAE,KAAK,EACI,MAAM,EAAE,kBAAkB,EAC1B,OAAO,EAAE,SAAS,cAAc,EAAE,EAClC,UAAU,EAAE,SAAS;QAAE,UAAU,EAAE,cAAc,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,EACpF,qBAAqB,CAAC,EAAE,MAAM,EACd,oBAAoB,CAAC,EAAE,SAAS,SAAS,EAAE,YAAA;IAcrD,OAAO,CAAC,eAAe;IA+C/B,OAAO,CAAC,oBAAoB;IAU5B,OAAO,IAAI,YAAY;IAmDvB,aAAa,IAAI,SAAS,EAAE;IAI5B,iBAAiB,IAAI,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC;IAyBhD,WAAW,IAAI,SAAS,QAAQ,EAAE;IAIlC,YAAY,IAAI,SAAS,CAAC,kBAAkB,CAAC;IAI7C,IAAI,aAAa,IAAI,MAAM,GAAG,SAAS,CAYtC;IAED,eAAe,CAAC,iBAAiB,EAAE,kBAAkB,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAc5E,QAAQ,IAAI,MAAM;IAiBlB,oBAAoB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAoBxD,YAAY,CAAC,WAAW,EAAE,SAAS,QAAQ,EAAE,GAAG,QAAQ;CAwCzD"}
@@ -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 { quereusError } from '../../common/errors.js';
@@ -28,10 +28,12 @@ export class StreamAggregateNode extends PlanNode {
28
28
  this.attributesCache = new Cached(() => this.buildAttributes());
29
29
  }
30
30
  buildAttributes() {
31
- // If we have preserved attribute IDs, use them
31
+ // If we have preserved attribute IDs, use them directly
32
+ // The optimizer rule now passes both aggregate AND source attributes
32
33
  if (this.preserveAttributeIds) {
33
- return this.preserveAttributeIds.slice(); // Return a copy
34
+ return this.preserveAttributeIds.slice();
34
35
  }
36
+ // Fallback: build attributes from scratch (used when not created via optimizer)
35
37
  const attributes = [];
36
38
  // Group by columns come first
37
39
  this.groupBy.forEach((expr, index) => {
@@ -52,6 +54,16 @@ export class StreamAggregateNode extends PlanNode {
52
54
  sourceRelation: `${this.nodeType}:${this.id}`
53
55
  });
54
56
  });
57
+ // Add source attributes to support HAVING clauses
58
+ const sourceAttributes = this.source.getAttributes();
59
+ const existingAttrNames = new Set(attributes.map(attr => attr.name));
60
+ for (const sourceAttr of sourceAttributes) {
61
+ // Only add if not already present by name (avoid duplicates for GROUP BY columns)
62
+ if (!existingAttrNames.has(sourceAttr.name)) {
63
+ attributes.push(sourceAttr);
64
+ existingAttrNames.add(sourceAttr.name);
65
+ }
66
+ }
55
67
  return attributes;
56
68
  }
57
69
  // Helper function to extract a meaningful name from a GROUP BY expression
@@ -65,21 +77,41 @@ export class StreamAggregateNode extends PlanNode {
65
77
  return `group_${index}`;
66
78
  }
67
79
  getType() {
68
- // Same output type as logical aggregate
69
- const columns = [
80
+ const columns = [];
81
+ // Start with preserved attributes if we have them, otherwise build GROUP BY + aggregates
82
+ if (this.preserveAttributeIds) {
83
+ // Use preserved attributes to match getAttributes() exactly
84
+ for (const attr of this.preserveAttributeIds) {
85
+ columns.push({
86
+ name: attr.name,
87
+ type: attr.type,
88
+ generated: false // Source attributes are not generated
89
+ });
90
+ }
91
+ }
92
+ else {
70
93
  // Group by columns come first
71
- ...this.groupBy.map((expr, index) => ({
94
+ columns.push(...this.groupBy.map((expr, index) => ({
72
95
  name: this.getGroupByColumnName(expr, index),
73
96
  type: expr.getType(),
74
97
  generated: false
75
- })),
98
+ })));
76
99
  // Then aggregate columns
77
- ...this.aggregates.map(agg => ({
100
+ columns.push(...this.aggregates.map(agg => ({
78
101
  name: agg.alias,
79
102
  type: agg.expression.getType(),
80
103
  generated: true
81
- }))
82
- ];
104
+ })));
105
+ // Add all source columns to support HAVING clauses (consistent with getAttributes())
106
+ const sourceType = this.source.getType();
107
+ const existingNames = new Set(columns.map(col => col.name));
108
+ for (const sourceCol of sourceType.columns) {
109
+ // Only add if not already present (avoid duplicates for GROUP BY columns)
110
+ if (!existingNames.has(sourceCol.name)) {
111
+ columns.push(sourceCol);
112
+ }
113
+ }
114
+ }
83
115
  return {
84
116
  typeClass: 'relation',
85
117
  columns,
@@ -93,6 +125,27 @@ export class StreamAggregateNode extends PlanNode {
93
125
  getAttributes() {
94
126
  return this.attributesCache.value;
95
127
  }
128
+ getProducingExprs() {
129
+ const attributes = this.getAttributes();
130
+ const map = new Map();
131
+ // Map GROUP BY expressions to their attribute IDs
132
+ for (let i = 0; i < this.groupBy.length; i++) {
133
+ const expr = this.groupBy[i];
134
+ const attr = attributes[i];
135
+ if (attr) {
136
+ map.set(attr.id, expr);
137
+ }
138
+ }
139
+ // Map aggregate expressions to their attribute IDs
140
+ for (let i = 0; i < this.aggregates.length; i++) {
141
+ const agg = this.aggregates[i];
142
+ const attr = attributes[this.groupBy.length + i]; // Aggregates come after GROUP BY
143
+ if (attr) {
144
+ map.set(attr.id, agg.expression);
145
+ }
146
+ }
147
+ return map;
148
+ }
96
149
  getChildren() {
97
150
  return [this.source, ...this.groupBy, ...this.aggregates.map(agg => agg.expression)];
98
151
  }
@@ -162,7 +215,7 @@ export class StreamAggregateNode extends PlanNode {
162
215
  const newGroupBy = restChildren.slice(0, this.groupBy.length);
163
216
  const newAggregateExpressions = restChildren.slice(this.groupBy.length);
164
217
  // Type check
165
- if (!('getAttributes' in newSource) || typeof newSource.getAttributes !== 'function') {
218
+ if (!isRelationalNode(newSource)) {
166
219
  quereusError('StreamAggregateNode: first child must be a RelationalPlanNode', StatusCode.INTERNAL);
167
220
  }
168
221
  // Check if anything changed
@@ -1 +1 @@
1
- {"version":3,"file":"stream-aggregate.js","sourceRoot":"","sources":["../../../../src/planner/nodes/stream-aggregate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stream-aggregate.js","sourceRoot":"","sources":["../../../../src/planner/nodes/stream-aggregate.ts"],"names":[],"mappings":"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"}
@@ -13,7 +13,7 @@ export declare class ScalarSubqueryNode extends PlanNode implements ScalarPlanNo
13
13
  constructor(scope: Scope, expression: Expression, // The original SubqueryExpr AST node
14
14
  subquery: RelationalPlanNode);
15
15
  getType(): ScalarType;
16
- getChildren(): readonly [];
16
+ getChildren(): readonly PlanNode[];
17
17
  getRelations(): readonly [RelationalPlanNode];
18
18
  withChildren(newChildren: readonly PlanNode[]): PlanNode;
19
19
  toString(): string;
@@ -31,7 +31,7 @@ export declare class InNode extends PlanNode implements ScalarPlanNode {
31
31
  condition: ScalarPlanNode, source?: RelationalPlanNode | undefined, // For IN subquery
32
32
  values?: ScalarPlanNode[] | undefined);
33
33
  getType(): ScalarType;
34
- getChildren(): readonly ScalarPlanNode[];
34
+ getChildren(): readonly PlanNode[];
35
35
  getRelations(): readonly RelationalPlanNode[];
36
36
  withChildren(newChildren: readonly PlanNode[]): PlanNode;
37
37
  toString(): string;
@@ -45,8 +45,8 @@ export declare class ExistsNode extends PlanNode implements ScalarPlanNode {
45
45
  constructor(scope: Scope, expression: Expression, // The original ExistsExpr AST node
46
46
  subquery: RelationalPlanNode);
47
47
  getType(): ScalarType;
48
- getChildren(): readonly [];
49
- getRelations(): readonly [RelationalPlanNode];
48
+ getChildren(): readonly PlanNode[];
49
+ getRelations(): readonly RelationalPlanNode[];
50
50
  withChildren(newChildren: readonly PlanNode[]): PlanNode;
51
51
  toString(): string;
52
52
  getLogicalAttributes(): Record<string, unknown>;
@@ -1 +1 @@
1
- {"version":3,"file":"subquery.d.ts","sourceRoot":"","sources":["../../../../src/planner/nodes/subquery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAC/D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,KAAK,SAAS,EAAe,MAAM,uBAAuB,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAEhD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAGtD,qBAAa,kBAAmB,SAAQ,QAAS,YAAW,cAAc;IAIxE,QAAQ,CAAC,KAAK,EAAE,KAAK;IACrB,QAAQ,CAAC,UAAU,EAAE,UAAU;IAC/B,QAAQ,CAAC,QAAQ,EAAE,kBAAkB;IALtC,SAAkB,QAAQ,+BAA+B;gBAG/C,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,UAAU,EAAE,qCAAqC;IAC7D,QAAQ,EAAE,kBAAkB;IAKtC,OAAO,IAAI,UAAU;IAiBrB,WAAW,IAAI,SAAS,EAAE;IAI1B,YAAY,IAAI,SAAS,CAAC,kBAAkB,CAAC;IAI7C,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,MAAO,SAAQ,QAAS,YAAW,cAAc;IAM5D,QAAQ,CAAC,KAAK,EAAE,KAAK;IACrB,QAAQ,CAAC,UAAU,EAAE,UAAU;IAC/B,QAAQ,CAAC,SAAS,EAAE,cAAc;IAClC,QAAQ,CAAC,MAAM,CAAC,EAAE,kBAAkB;IACpC,QAAQ,CAAC,MAAM,CAAC,EAAE,cAAc,EAAE;IATnC,SAAkB,QAAQ,mBAAmB;IAE7C,SAAgB,UAAU,EAAE,SAAS,CAAC;gBAG5B,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,UAAU,EAAE,+BAA+B;IACvD,SAAS,EAAE,cAAc,EACzB,MAAM,CAAC,EAAE,kBAAkB,YAAA,EAAG,kBAAkB;IAChD,MAAM,CAAC,EAAE,cAAc,EAAE,YAAA;IAMnC,OAAO,IAAI,UAAU;IAUrB,WAAW,IAAI,SAAS,cAAc,EAAE;IAOxC,YAAY,IAAI,SAAS,kBAAkB,EAAE;IAO7C,YAAY,CAAC,WAAW,EAAE,SAAS,QAAQ,EAAE,GAAG,QAAQ;IAqC/C,QAAQ,IAAI,MAAM;IAQlB,oBAAoB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAQxD;AAED,qBAAa,UAAW,SAAQ,QAAS,YAAW,cAAc;IAIhE,QAAQ,CAAC,KAAK,EAAE,KAAK;IACrB,QAAQ,CAAC,UAAU,EAAE,UAAU;IAC/B,QAAQ,CAAC,QAAQ,EAAE,kBAAkB;IALtC,SAAkB,QAAQ,uBAAuB;gBAGvC,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,UAAU,EAAE,mCAAmC;IAC3D,QAAQ,EAAE,kBAAkB;IAKtC,OAAO,IAAI,UAAU;IAUrB,WAAW,IAAI,SAAS,EAAE;IAI1B,YAAY,IAAI,SAAS,CAAC,kBAAkB,CAAC;IAI7C,YAAY,CAAC,WAAW,EAAE,SAAS,QAAQ,EAAE,GAAG,QAAQ;IAO/C,QAAQ,IAAI,MAAM;IAIlB,oBAAoB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAMxD"}
1
+ {"version":3,"file":"subquery.d.ts","sourceRoot":"","sources":["../../../../src/planner/nodes/subquery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAC/D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,KAAK,SAAS,EAAe,MAAM,uBAAuB,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAEhD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAKtD,qBAAa,kBAAmB,SAAQ,QAAS,YAAW,cAAc;IAIxE,QAAQ,CAAC,KAAK,EAAE,KAAK;IACrB,QAAQ,CAAC,UAAU,EAAE,UAAU;IAC/B,QAAQ,CAAC,QAAQ,EAAE,kBAAkB;IALtC,SAAkB,QAAQ,+BAA+B;gBAG/C,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,UAAU,EAAE,qCAAqC;IAC7D,QAAQ,EAAE,kBAAkB;IAKtC,OAAO,IAAI,UAAU;IAiBrB,WAAW,IAAI,SAAS,QAAQ,EAAE;IAKlC,YAAY,IAAI,SAAS,CAAC,kBAAkB,CAAC;IAI7C,YAAY,CAAC,WAAW,EAAE,SAAS,QAAQ,EAAE,GAAG,QAAQ;IAyB/C,QAAQ,IAAI,MAAM;IAIlB,oBAAoB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAMxD;AAED,qBAAa,MAAO,SAAQ,QAAS,YAAW,cAAc;IAM5D,QAAQ,CAAC,KAAK,EAAE,KAAK;IACrB,QAAQ,CAAC,UAAU,EAAE,UAAU;IAC/B,QAAQ,CAAC,SAAS,EAAE,cAAc;IAClC,QAAQ,CAAC,MAAM,CAAC,EAAE,kBAAkB;IACpC,QAAQ,CAAC,MAAM,CAAC,EAAE,cAAc,EAAE;IATnC,SAAkB,QAAQ,mBAAmB;IAE7C,SAAgB,UAAU,EAAE,SAAS,CAAC;gBAG5B,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,UAAU,EAAE,+BAA+B;IACvD,SAAS,EAAE,cAAc,EACzB,MAAM,CAAC,EAAE,kBAAkB,YAAA,EAAG,kBAAkB;IAChD,MAAM,CAAC,EAAE,cAAc,EAAE,YAAA;IAMnC,OAAO,IAAI,UAAU;IAUrB,WAAW,IAAI,SAAS,QAAQ,EAAE;IAYlC,YAAY,IAAI,SAAS,kBAAkB,EAAE;IAO7C,YAAY,CAAC,WAAW,EAAE,SAAS,QAAQ,EAAE,GAAG,QAAQ;IAuD/C,QAAQ,IAAI,MAAM;IAQlB,oBAAoB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAQxD;AAED,qBAAa,UAAW,SAAQ,QAAS,YAAW,cAAc;IAIhE,QAAQ,CAAC,KAAK,EAAE,KAAK;IACrB,QAAQ,CAAC,UAAU,EAAE,UAAU;IAC/B,QAAQ,CAAC,QAAQ,EAAE,kBAAkB;IALtC,SAAkB,QAAQ,uBAAuB;gBAGvC,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,UAAU,EAAE,mCAAmC;IAC3D,QAAQ,EAAE,kBAAkB;IAKtC,OAAO,IAAI,UAAU;IAUrB,WAAW,IAAI,SAAS,QAAQ,EAAE;IAKlC,YAAY,IAAI,SAAS,kBAAkB,EAAE;IAI7C,YAAY,CAAC,WAAW,EAAE,SAAS,QAAQ,EAAE,GAAG,QAAQ;IAyB/C,QAAQ,IAAI,MAAM;IAIlB,oBAAoB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAMxD"}
@@ -3,6 +3,8 @@ import { SqlDataType } from "../../common/types.js";
3
3
  import { PlanNodeType } from "./plan-node-type.js";
4
4
  import { compareSqlValues } from "../../util/comparison.js";
5
5
  import { formatExpression, formatScalarType } from "../../util/plan-formatter.js";
6
+ import { quereusError } from "../../common/errors.js";
7
+ import { StatusCode } from "../../common/types.js";
6
8
  export class ScalarSubqueryNode extends PlanNode {
7
9
  scope;
8
10
  expression;
@@ -32,16 +34,27 @@ export class ScalarSubqueryNode extends PlanNode {
32
34
  };
33
35
  }
34
36
  getChildren() {
35
- return [];
37
+ // Include the subquery so the optimizer can visit it
38
+ return [this.subquery];
36
39
  }
37
40
  getRelations() {
38
41
  return [this.subquery];
39
42
  }
40
43
  withChildren(newChildren) {
41
- if (newChildren.length !== 0) {
42
- throw new Error(`ScalarSubqueryNode expects 0 children, got ${newChildren.length}`);
44
+ if (newChildren.length !== 1) {
45
+ quereusError(`ScalarSubqueryNode expects 1 child, got ${newChildren.length}`, StatusCode.INTERNAL);
46
+ }
47
+ const [newSubquery] = newChildren;
48
+ // Type check
49
+ if (newSubquery.getType().typeClass !== 'relation') {
50
+ quereusError('ScalarSubqueryNode: child must be a RelationalPlanNode', StatusCode.INTERNAL);
51
+ }
52
+ // Check if anything changed
53
+ if (newSubquery === this.subquery) {
54
+ return this;
43
55
  }
44
- return this; // No children in getChildren(), subquery is accessed via getRelations()
56
+ // Create new instance
57
+ return new ScalarSubqueryNode(this.scope, this.expression, newSubquery);
45
58
  }
46
59
  toString() {
47
60
  return `(subquery)`;
@@ -82,10 +95,15 @@ export class InNode extends PlanNode {
82
95
  };
83
96
  }
84
97
  getChildren() {
98
+ // Include condition, values (if any), and source subquery (if any)
99
+ const children = [this.condition];
85
100
  if (this.values) {
86
- return [this.condition, ...this.values];
101
+ children.push(...this.values);
102
+ }
103
+ if (this.source) {
104
+ children.push(this.source);
87
105
  }
88
- return [this.condition];
106
+ return children;
89
107
  }
90
108
  getRelations() {
91
109
  if (this.source) {
@@ -94,29 +112,45 @@ export class InNode extends PlanNode {
94
112
  return [];
95
113
  }
96
114
  withChildren(newChildren) {
97
- const expectedLength = this.values ? 1 + this.values.length : 1;
115
+ const expectedLength = 1 + (this.values?.length ?? 0) + (this.source ? 1 : 0);
98
116
  if (newChildren.length !== expectedLength) {
99
- throw new Error(`InNode expects ${expectedLength} children, got ${newChildren.length}`);
117
+ quereusError(`InNode expects ${expectedLength} children, got ${newChildren.length}`, StatusCode.INTERNAL);
100
118
  }
101
- const [newCondition, ...newValues] = newChildren;
102
- // Type check
103
- if (!('expression' in newCondition)) {
104
- throw new Error('InNode: condition must be a ScalarPlanNode');
119
+ let childIndex = 0;
120
+ const newCondition = newChildren[childIndex++];
121
+ // Type check condition
122
+ if (newCondition.getType().typeClass !== 'scalar') {
123
+ quereusError('InNode: condition must be a ScalarPlanNode', StatusCode.INTERNAL);
105
124
  }
106
- for (const value of newValues) {
107
- if (!('expression' in value)) {
108
- throw new Error('InNode: values must be ScalarPlanNodes');
125
+ // Extract new values if they exist
126
+ let newValues;
127
+ if (this.values) {
128
+ newValues = [];
129
+ for (let i = 0; i < this.values.length; i++) {
130
+ const value = newChildren[childIndex++];
131
+ if (value.getType().typeClass !== 'scalar') {
132
+ quereusError('InNode: values must be ScalarPlanNodes', StatusCode.INTERNAL);
133
+ }
134
+ newValues.push(value);
135
+ }
136
+ }
137
+ // Extract new source if it exists
138
+ let newSource;
139
+ if (this.source) {
140
+ newSource = newChildren[childIndex++];
141
+ if (newSource.getType().typeClass !== 'relation') {
142
+ quereusError('InNode: source must be a RelationalPlanNode', StatusCode.INTERNAL);
109
143
  }
110
144
  }
111
145
  // Check if anything changed
112
146
  const conditionChanged = newCondition !== this.condition;
113
- const valuesChanged = this.values && newValues.some((val, i) => val !== this.values[i]);
114
- if (!conditionChanged && !valuesChanged) {
147
+ const valuesChanged = this.values && newValues && newValues.some((val, i) => val !== this.values[i]);
148
+ const sourceChanged = newSource !== this.source;
149
+ if (!conditionChanged && !valuesChanged && !sourceChanged) {
115
150
  return this;
116
151
  }
117
152
  // Create new instance
118
- return new InNode(this.scope, this.expression, newCondition, this.source, // Source doesn't change via withChildren
119
- this.values ? newValues : undefined);
153
+ return new InNode(this.scope, this.expression, newCondition, newSource, newValues);
120
154
  }
121
155
  toString() {
122
156
  if (this.source) {
@@ -157,16 +191,27 @@ export class ExistsNode extends PlanNode {
157
191
  };
158
192
  }
159
193
  getChildren() {
160
- return [];
194
+ // Include the subquery so the optimizer can visit it
195
+ return [this.subquery];
161
196
  }
162
197
  getRelations() {
163
198
  return [this.subquery];
164
199
  }
165
200
  withChildren(newChildren) {
166
- if (newChildren.length !== 0) {
167
- throw new Error(`ExistsNode expects 0 children, got ${newChildren.length}`);
201
+ if (newChildren.length !== 1) {
202
+ quereusError(`ExistsNode expects 1 child, got ${newChildren.length}`, StatusCode.INTERNAL);
168
203
  }
169
- return this; // No children in getChildren(), subquery is accessed via getRelations()
204
+ const [newSubquery] = newChildren;
205
+ // Type check
206
+ if (newSubquery.getType().typeClass !== 'relation') {
207
+ quereusError('ExistsNode: child must be a RelationalPlanNode', StatusCode.INTERNAL);
208
+ }
209
+ // Check if anything changed
210
+ if (newSubquery === this.subquery) {
211
+ return this;
212
+ }
213
+ // Create new instance
214
+ return new ExistsNode(this.scope, this.expression, newSubquery);
170
215
  }
171
216
  toString() {
172
217
  return `EXISTS (subquery)`;
@@ -1 +1 @@
1
- {"version":3,"file":"subquery.js","sourceRoot":"","sources":["../../../../src/planner/nodes/subquery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"subquery.js","sourceRoot":"","sources":["../../../../src/planner/nodes/subquery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAuB,MAAM,gBAAgB,CAAC;AAG/D,OAAO,EAAkB,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAE5D,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAClF,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAEnD,MAAM,OAAO,kBAAmB,SAAQ,QAAQ;IAIrC;IACA;IACA;IALQ,QAAQ,GAAG,YAAY,CAAC,cAAc,CAAC;IAEzD,YACU,KAAY,EACZ,UAAsB,EAAE,qCAAqC;IAC7D,QAA4B;QAErC,KAAK,CAAC,KAAK,CAAC,CAAC;QAJJ,UAAK,GAAL,KAAK,CAAO;QACZ,eAAU,GAAV,UAAU,CAAY;QACtB,aAAQ,GAAR,QAAQ,CAAoB;IAGtC,CAAC;IAED,OAAO;QACN,wFAAwF;QACxF,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;QAC7C,IAAI,YAAY,CAAC,SAAS,KAAK,UAAU,IAAI,YAAY,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9E,MAAM,WAAW,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAC5C,OAAO,WAAW,CAAC,IAAI,CAAC;QACzB,CAAC;QACD,uDAAuD;QACvD,OAAO;YACN,SAAS,EAAE,QAAQ;YACnB,QAAQ,EAAE,WAAW,CAAC,IAAI;YAC1B,QAAQ,EAAE,IAAI;YACd,UAAU,EAAE,IAAI;YAChB,QAAQ,EAAE,WAAW,CAAC,IAAI;SAC1B,CAAC;IACH,CAAC;IAED,WAAW;QACV,qDAAqD;QACrD,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACxB,CAAC;IAED,YAAY;QACX,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACxB,CAAC;IAED,YAAY,CAAC,WAAgC;QAC5C,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,YAAY,CAAC,2CAA2C,WAAW,CAAC,MAAM,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;QACpG,CAAC;QAED,MAAM,CAAC,WAAW,CAAC,GAAG,WAAW,CAAC;QAElC,aAAa;QACb,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC,SAAS,KAAK,UAAU,EAAE,CAAC;YACpD,YAAY,CAAC,wDAAwD,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;QAC7F,CAAC;QAED,4BAA4B;QAC5B,IAAI,WAAW,KAAK,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnC,OAAO,IAAI,CAAC;QACb,CAAC;QAED,sBAAsB;QACtB,OAAO,IAAI,kBAAkB,CAC5B,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,UAAU,EACf,WAAiC,CACjC,CAAC;IACH,CAAC;IAEQ,QAAQ;QAChB,OAAO,YAAY,CAAC;IACrB,CAAC;IAEQ,oBAAoB;QAC5B,OAAO;YACN,YAAY,EAAE,QAAQ;YACtB,UAAU,EAAE,gBAAgB,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;SAC5C,CAAC;IACH,CAAC;CACD;AAED,MAAM,OAAO,MAAO,SAAQ,QAAQ;IAMzB;IACA;IACA;IACA;IACA;IATQ,QAAQ,GAAG,YAAY,CAAC,EAAE,CAAC;IAE7B,UAAU,CAAY;IAEtC,YACU,KAAY,EACZ,UAAsB,EAAE,+BAA+B;IACvD,SAAyB,EACzB,MAA2B,EAAG,kBAAkB;IAChD,MAAyB;QAElC,KAAK,CAAC,KAAK,CAAC,CAAC;QANJ,UAAK,GAAL,KAAK,CAAO;QACZ,eAAU,GAAV,UAAU,CAAY;QACtB,cAAS,GAAT,SAAS,CAAgB;QACzB,WAAM,GAAN,MAAM,CAAqB;QAC3B,WAAM,GAAN,MAAM,CAAmB;QAGlC,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACpD,CAAC;IAED,OAAO;QACN,OAAO;YACN,SAAS,EAAE,QAAQ;YACnB,QAAQ,EAAE,WAAW,CAAC,OAAO;YAC7B,QAAQ,EAAE,KAAK;YACf,UAAU,EAAE,IAAI;YAChB,QAAQ,EAAE,WAAW,CAAC,OAAO;SAC7B,CAAA;IACF,CAAC;IAED,WAAW;QACV,mEAAmE;QACnE,MAAM,QAAQ,GAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC9C,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;QAC/B,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC5B,CAAC;QACD,OAAO,QAAQ,CAAC;IACjB,CAAC;IAED,YAAY;QACX,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACtB,CAAC;QACD,OAAO,EAAE,CAAC;IACX,CAAC;IAED,YAAY,CAAC,WAAgC;QAC5C,MAAM,cAAc,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9E,IAAI,WAAW,CAAC,MAAM,KAAK,cAAc,EAAE,CAAC;YAC3C,YAAY,CAAC,kBAAkB,cAAc,kBAAkB,WAAW,CAAC,MAAM,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;QAC3G,CAAC;QAED,IAAI,UAAU,GAAG,CAAC,CAAC;QACnB,MAAM,YAAY,GAAG,WAAW,CAAC,UAAU,EAAE,CAAC,CAAC;QAE/C,uBAAuB;QACvB,IAAI,YAAY,CAAC,OAAO,EAAE,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;YACnD,YAAY,CAAC,4CAA4C,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;QACjF,CAAC;QAED,mCAAmC;QACnC,IAAI,SAAuC,CAAC;QAC5C,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,SAAS,GAAG,EAAE,CAAC;YACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC7C,MAAM,KAAK,GAAG,WAAW,CAAC,UAAU,EAAE,CAAC,CAAC;gBACxC,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;oBAC5C,YAAY,CAAC,wCAAwC,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;gBAC7E,CAAC;gBACD,SAAS,CAAC,IAAI,CAAC,KAAuB,CAAC,CAAC;YACzC,CAAC;QACF,CAAC;QAED,kCAAkC;QAClC,IAAI,SAAyC,CAAC;QAC9C,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,SAAS,GAAG,WAAW,CAAC,UAAU,EAAE,CAAuB,CAAC;YAC5D,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC,SAAS,KAAK,UAAU,EAAE,CAAC;gBAClD,YAAY,CAAC,6CAA6C,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;YAClF,CAAC;QACF,CAAC;QAED,4BAA4B;QAC5B,MAAM,gBAAgB,GAAG,YAAY,KAAK,IAAI,CAAC,SAAS,CAAC;QACzD,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,IAAI,SAAS,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,IAAI,CAAC,MAAO,CAAC,CAAC,CAAC,CAAC,CAAC;QACtG,MAAM,aAAa,GAAG,SAAS,KAAK,IAAI,CAAC,MAAM,CAAC;QAEhD,IAAI,CAAC,gBAAgB,IAAI,CAAC,aAAa,IAAI,CAAC,aAAa,EAAE,CAAC;YAC3D,OAAO,IAAI,CAAC;QACb,CAAC;QAED,sBAAsB;QACtB,OAAO,IAAI,MAAM,CAChB,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,UAAU,EACf,YAA8B,EAC9B,SAAS,EACT,SAAS,CACT,CAAC;IACH,CAAC;IAEQ,QAAQ;QAChB,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,OAAO,GAAG,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC;QAC5D,CAAC;aAAM,CAAC;YACP,OAAO,GAAG,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC;QAC1D,CAAC;IACF,CAAC;IAEQ,oBAAoB;QAC5B,OAAO;YACN,SAAS,EAAE,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC;YAC3C,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ;YACjD,UAAU,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM;YAC/B,UAAU,EAAE,gBAAgB,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;SAC5C,CAAC;IACH,CAAC;CACD;AAED,MAAM,OAAO,UAAW,SAAQ,QAAQ;IAI7B;IACA;IACA;IALQ,QAAQ,GAAG,YAAY,CAAC,MAAM,CAAC;IAEjD,YACU,KAAY,EACZ,UAAsB,EAAE,mCAAmC;IAC3D,QAA4B;QAErC,KAAK,CAAC,KAAK,CAAC,CAAC;QAJJ,UAAK,GAAL,KAAK,CAAO;QACZ,eAAU,GAAV,UAAU,CAAY;QACtB,aAAQ,GAAR,QAAQ,CAAoB;IAGtC,CAAC;IAED,OAAO;QACN,OAAO;YACN,SAAS,EAAE,QAAQ;YACnB,QAAQ,EAAE,WAAW,CAAC,OAAO;YAC7B,QAAQ,EAAE,KAAK;YACf,UAAU,EAAE,IAAI;YAChB,QAAQ,EAAE,WAAW,CAAC,OAAO;SAC7B,CAAC;IACH,CAAC;IAED,WAAW;QACV,qDAAqD;QACrD,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACxB,CAAC;IAED,YAAY;QACX,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACxB,CAAC;IAED,YAAY,CAAC,WAAgC;QAC5C,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,YAAY,CAAC,mCAAmC,WAAW,CAAC,MAAM,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;QAC5F,CAAC;QAED,MAAM,CAAC,WAAW,CAAC,GAAG,WAAW,CAAC;QAElC,aAAa;QACb,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC,SAAS,KAAK,UAAU,EAAE,CAAC;YACpD,YAAY,CAAC,gDAAgD,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;QACrF,CAAC;QAED,4BAA4B;QAC5B,IAAI,WAAW,KAAK,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnC,OAAO,IAAI,CAAC;QACb,CAAC;QAED,sBAAsB;QACtB,OAAO,IAAI,UAAU,CACpB,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,UAAU,EACf,WAAiC,CACjC,CAAC;IACH,CAAC;IAEQ,QAAQ;QAChB,OAAO,mBAAmB,CAAC;IAC5B,CAAC;IAEQ,oBAAoB;QAC5B,OAAO;YACN,YAAY,EAAE,QAAQ;YACtB,UAAU,EAAE,gBAAgB,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;SAC5C,CAAC;IACH,CAAC;CACD"}
@@ -0,0 +1,83 @@
1
+ /**
2
+ * Physical table access nodes for seek and range scan operations
3
+ * These replace logical TableReferenceNode during optimization
4
+ */
5
+ import { PlanNodeType } from './plan-node-type.js';
6
+ import { PlanNode, type UnaryRelationalNode, type PhysicalProperties, type Attribute } from './plan-node.js';
7
+ import { TableReferenceNode } from './reference.js';
8
+ import type { RelationType } from '../../common/datatype.js';
9
+ import type { Scope } from '../scopes/scope.js';
10
+ import type { FilterInfo } from '../../vtab/filter-info.js';
11
+ import type { ScalarPlanNode } from './plan-node.js';
12
+ /**
13
+ * Base class for physical table access operations
14
+ * Provides common functionality for sequential scan, index scan, and index seek
15
+ */
16
+ export declare abstract class TableAccessNode extends PlanNode implements UnaryRelationalNode {
17
+ readonly source: TableReferenceNode;
18
+ readonly filterInfo: FilterInfo;
19
+ private attributesCache;
20
+ private outputType;
21
+ constructor(scope: Scope, source: TableReferenceNode, filterInfo: FilterInfo, estimatedCostOverride?: number);
22
+ getAttributes(): Attribute[];
23
+ getType(): RelationType;
24
+ getChildren(): readonly PlanNode[];
25
+ getRelations(): readonly [TableReferenceNode];
26
+ withChildren(newChildren: readonly PlanNode[]): PlanNode;
27
+ getLogicalAttributes(): Record<string, unknown>;
28
+ }
29
+ /**
30
+ * Sequential scan - reads entire table without using indexes
31
+ * Used when no suitable index exists or for small tables
32
+ */
33
+ export declare class SeqScanNode extends TableAccessNode {
34
+ readonly nodeType = PlanNodeType.SeqScan;
35
+ computePhysical(): Partial<PhysicalProperties>;
36
+ toString(): string;
37
+ withChildren(newChildren: readonly PlanNode[]): PlanNode;
38
+ }
39
+ /**
40
+ * Index scan - uses an index to read table data in order
41
+ * Provides ordering and can handle range queries efficiently
42
+ */
43
+ export declare class IndexScanNode extends TableAccessNode {
44
+ readonly indexName: string;
45
+ readonly providesOrdering?: {
46
+ column: number;
47
+ desc: boolean;
48
+ }[] | undefined;
49
+ readonly nodeType = PlanNodeType.IndexScan;
50
+ constructor(scope: Scope, source: TableReferenceNode, filterInfo: FilterInfo, indexName: string, providesOrdering?: {
51
+ column: number;
52
+ desc: boolean;
53
+ }[] | undefined, estimatedCostOverride?: number);
54
+ computePhysical(): Partial<PhysicalProperties>;
55
+ toString(): string;
56
+ getLogicalAttributes(): Record<string, unknown>;
57
+ withChildren(newChildren: readonly PlanNode[]): PlanNode;
58
+ }
59
+ /**
60
+ * Index seek - point lookup or tight range using an index
61
+ * Very efficient for equality constraints and small ranges
62
+ */
63
+ export declare class IndexSeekNode extends TableAccessNode {
64
+ readonly indexName: string;
65
+ readonly seekKeys: ScalarPlanNode[];
66
+ readonly isRange: boolean;
67
+ readonly providesOrdering?: {
68
+ column: number;
69
+ desc: boolean;
70
+ }[] | undefined;
71
+ readonly nodeType = PlanNodeType.IndexSeek;
72
+ constructor(scope: Scope, source: TableReferenceNode, filterInfo: FilterInfo, indexName: string, seekKeys: ScalarPlanNode[], isRange?: boolean, providesOrdering?: {
73
+ column: number;
74
+ desc: boolean;
75
+ }[] | undefined, estimatedCostOverride?: number);
76
+ computePhysical(): Partial<PhysicalProperties>;
77
+ toString(): string;
78
+ getLogicalAttributes(): Record<string, unknown>;
79
+ getSeekKeys(): readonly ScalarPlanNode[];
80
+ getChildren(): readonly PlanNode[];
81
+ withChildren(newChildren: readonly PlanNode[]): PlanNode;
82
+ }
83
+ //# sourceMappingURL=table-access-nodes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table-access-nodes.d.ts","sourceRoot":"","sources":["../../../../src/planner/nodes/table-access-nodes.ts"],"names":[],"mappings":"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"}