@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":"explain.js","sourceRoot":"","sources":["../../../../src/func/builtins/explain.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"explain.js","sourceRoot":"","sources":["../../../../src/func/builtins/explain.ts"],"names":[],"mappings":"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"}
@@ -7,14 +7,21 @@
7
7
  export { Database } from './core/database.js';
8
8
  export { Statement } from './core/statement.js';
9
9
  export { StatusCode, SqlDataType } from './common/types.js';
10
- export type { SqlValue, SqlParameters, Row } from './common/types.js';
11
- export { ConflictResolution } from './common/constants.js';
10
+ export type { SqlValue, SqlParameters, Row, MaybePromise, RowOp } from './common/types.js';
11
+ export { ConflictResolution, IndexConstraintOp, VTabConfig, FunctionFlags } from './common/constants.js';
12
12
  export { QuereusError, MisuseError, ConstraintError, unwrapError, formatErrorChain, getPrimaryError } from './common/errors.js';
13
13
  export type { ErrorInfo } from './common/errors.js';
14
14
  export { VirtualTable } from './vtab/table.js';
15
+ export type { VirtualTableConnection } from './vtab/connection.js';
15
16
  export { MemoryTableModule } from './vtab/memory/module.js';
16
- export type { IndexInfo, IndexConstraint, IndexConstraintUsage, IndexOrderBy, IndexScanFlags } from './vtab/index-info.js';
17
+ export type { IndexInfo, IndexConstraint, IndexConstraintUsage, IndexOrderBy } from './vtab/index-info.js';
18
+ export { IndexScanFlags } from './vtab/index-info.js';
17
19
  export type { FilterInfo } from './vtab/filter-info.js';
20
+ export type { BaseModuleConfig, SchemaChangeInfo } from './vtab/module.js';
21
+ export type { BestAccessPlanRequest, BestAccessPlanResult, ConstraintOp, ColumnMeta, PredicateConstraint, OrderingSpec } from './vtab/best-access-plan.js';
22
+ export { AccessPlanBuilder, validateAccessPlan } from './vtab/best-access-plan.js';
23
+ export type { CollationFunction } from './util/comparison.js';
24
+ export { BINARY_COLLATION, NOCASE_COLLATION, RTRIM_COLLATION, registerCollation, getCollation, resolveCollation } from './util/comparison.js';
18
25
  export { Parser } from './parser/parser.js';
19
26
  export { Lexer, TokenType } from './parser/lexer.js';
20
27
  export { ParseError } from './parser/parser.js';
@@ -28,7 +35,8 @@ export type { ScalarFunc, TableValuedFunc, AggregateReducer, AggregateFinalizer
28
35
  export { Latches } from './util/latches.js';
29
36
  import './runtime/register.js';
30
37
  export { dynamicLoadModule, validatePluginUrl } from './util/plugin-loader.js';
31
- export type { PluginManifest, PluginRecord, PluginSetting } from './vtab/manifest.js';
38
+ export type { PluginManifest, PluginRecord, PluginSetting, VTablePluginInfo, FunctionPluginInfo, CollationPluginInfo, PluginRegistrations } from './vtab/manifest.js';
32
39
  export type { VirtualTableModule } from './vtab/module.js';
33
- export { serializePlanTree } from './planner/debug.js';
40
+ export { serializePlanTree, formatPlanTree, formatPlanSummary, serializePlanTreeWithOptions } from './planner/debug.js';
41
+ export type { PlanDisplayOptions } from './planner/debug.js';
34
42
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAGhD,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAC5D,YAAY,EAAE,QAAQ,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,WAAW,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAChI,YAAY,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAGpD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,YAAY,EAAE,SAAS,EAAE,eAAe,EAAE,oBAAoB,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3H,YAAY,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAGxD,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGhD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,YAAY,EAAE,WAAW,EAAE,WAAW,IAAI,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACtF,YAAY,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,YAAY,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAG3D,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAG3E,OAAO,EACN,oBAAoB,EACpB,yBAAyB,EACzB,uBAAuB,EACvB,MAAM,wBAAwB,CAAC;AAEhC,YAAY,EACX,UAAU,EACV,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAG5C,OAAO,uBAAuB,CAAC;AAG/B,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC/E,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGtF,YAAY,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAG3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
package/dist/src/index.js CHANGED
@@ -9,11 +9,14 @@ export { Database } from './core/database.js';
9
9
  export { Statement } from './core/statement.js';
10
10
  // Common data types and constants
11
11
  export { StatusCode, SqlDataType } from './common/types.js';
12
- export { ConflictResolution } from './common/constants.js';
12
+ export { ConflictResolution, IndexConstraintOp, VTabConfig, FunctionFlags } from './common/constants.js';
13
13
  export { QuereusError, MisuseError, ConstraintError, unwrapError, formatErrorChain, getPrimaryError } from './common/errors.js';
14
14
  // Virtual Table API
15
15
  export { VirtualTable } from './vtab/table.js';
16
16
  export { MemoryTableModule } from './vtab/memory/module.js';
17
+ export { IndexScanFlags } from './vtab/index-info.js';
18
+ export { AccessPlanBuilder, validateAccessPlan } from './vtab/best-access-plan.js';
19
+ export { BINARY_COLLATION, NOCASE_COLLATION, RTRIM_COLLATION, registerCollation, getCollation, resolveCollation } from './util/comparison.js';
17
20
  // SQL Parser and Compiler
18
21
  export { Parser } from './parser/parser.js';
19
22
  export { Lexer, TokenType } from './parser/lexer.js';
@@ -31,5 +34,5 @@ import './runtime/register.js';
31
34
  // Re-export plugin system
32
35
  export { dynamicLoadModule, validatePluginUrl } from './util/plugin-loader.js';
33
36
  // Debug and development utilities
34
- export { serializePlanTree } from './planner/debug.js';
37
+ export { serializePlanTree, formatPlanTree, formatPlanSummary, serializePlanTreeWithOptions } from './planner/debug.js';
35
38
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,8BAA8B;AAC9B,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEhD,kCAAkC;AAClC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAE5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,WAAW,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAGhI,oBAAoB;AACpB,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAI5D,0BAA0B;AAC1B,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD,oBAAoB;AACpB,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAKpD,oBAAoB;AACpB,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE3E,kCAAkC;AAClC,OAAO,EACN,oBAAoB,EACpB,yBAAyB,EACzB,uBAAuB,EACvB,MAAM,wBAAwB,CAAC;AAShC,oBAAoB;AACpB,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAE5C,iEAAiE;AACjE,OAAO,uBAAuB,CAAC;AAE/B,0BAA0B;AAC1B,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAM/E,kCAAkC;AAClC,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,8BAA8B;AAC9B,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEhD,kCAAkC;AAClC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAE5D,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACzG,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,WAAW,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAGhI,oBAAoB;AACpB,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE5D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAatD,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAInF,OAAO,EACN,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,YAAY,EACZ,gBAAgB,EAChB,MAAM,sBAAsB,CAAC;AAE9B,0BAA0B;AAC1B,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD,oBAAoB;AACpB,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAKpD,oBAAoB;AACpB,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE3E,kCAAkC;AAClC,OAAO,EACN,oBAAoB,EACpB,yBAAyB,EACzB,uBAAuB,EACvB,MAAM,wBAAwB,CAAC;AAShC,oBAAoB;AACpB,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAE5C,iEAAiE;AACjE,OAAO,uBAAuB,CAAC;AAE/B,0BAA0B;AAC1B,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAc/E,kCAAkC;AAClC,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,iBAAiB,EAAE,4BAA4B,EAAE,MAAM,oBAAoB,CAAC"}
@@ -1,11 +1,11 @@
1
- import type { MaybePromise, SqlValue } from '../common/types.js';
1
+ import type { MaybePromise, RowOp, SqlValue } from '../common/types.js';
2
2
  import type { ConflictResolution } from '../common/constants.js';
3
3
  /**
4
4
  * SQL Abstract Syntax Tree (AST) definitions
5
5
  * These interfaces define the structure of parsed SQL statements
6
6
  */
7
7
  export interface AstNode {
8
- type: 'literal' | 'identifier' | 'column' | 'binary' | 'unary' | 'function' | 'cast' | 'parameter' | 'subquery' | 'select' | 'insert' | 'update' | 'delete' | 'createTable' | 'createIndex' | 'createView' | 'alterTable' | 'drop' | 'begin' | 'commit' | 'rollback' | 'table' | 'join' | 'savepoint' | 'release' | 'functionSource' | 'with' | 'commonTableExpr' | 'pragma' | 'collate' | 'primaryKey' | 'notNull' | 'null' | 'unique' | 'check' | 'default' | 'foreignKey' | 'generated' | 'windowFunction' | 'windowDefinition' | 'windowFrame' | 'currentRow' | 'unboundedPreceding' | 'unboundedFollowing' | 'preceding' | 'following' | 'subquerySource' | 'mutatingSubquerySource' | 'case' | 'in' | 'exists' | 'values';
8
+ type: 'literal' | 'identifier' | 'column' | 'binary' | 'unary' | 'function' | 'cast' | 'parameter' | 'subquery' | 'select' | 'insert' | 'update' | 'delete' | 'createTable' | 'createIndex' | 'createView' | 'alterTable' | 'drop' | 'begin' | 'commit' | 'rollback' | 'table' | 'join' | 'savepoint' | 'release' | 'functionSource' | 'with' | 'commonTableExpr' | 'pragma' | 'collate' | 'primaryKey' | 'notNull' | 'null' | 'unique' | 'check' | 'default' | 'foreignKey' | 'generated' | 'windowFunction' | 'windowDefinition' | 'windowFrame' | 'currentRow' | 'unboundedPreceding' | 'unboundedFollowing' | 'preceding' | 'following' | 'subquerySource' | 'mutatingSubquerySource' | 'case' | 'in' | 'exists' | 'values' | 'between';
9
9
  loc?: {
10
10
  start: {
11
11
  line: number;
@@ -19,7 +19,7 @@ export interface AstNode {
19
19
  };
20
20
  };
21
21
  }
22
- export type Expression = LiteralExpr | IdentifierExpr | BinaryExpr | UnaryExpr | FunctionExpr | CastExpr | ParameterExpr | SubqueryExpr | ColumnExpr | FunctionSource | CollateExpr | WindowFunctionExpr | CaseExpr | InExpr | ExistsExpr;
22
+ export type Expression = LiteralExpr | IdentifierExpr | BinaryExpr | UnaryExpr | FunctionExpr | CastExpr | ParameterExpr | SubqueryExpr | ColumnExpr | FunctionSource | CollateExpr | WindowFunctionExpr | CaseExpr | InExpr | ExistsExpr | BetweenExpr;
23
23
  export interface LiteralExpr extends AstNode {
24
24
  type: 'literal';
25
25
  value: MaybePromise<SqlValue>;
@@ -101,6 +101,13 @@ export interface SubqueryExpr extends AstNode {
101
101
  type: 'subquery';
102
102
  query: SelectStmt;
103
103
  }
104
+ export interface BetweenExpr extends AstNode {
105
+ type: 'between';
106
+ expr: Expression;
107
+ lower: Expression;
108
+ upper: Expression;
109
+ not?: boolean;
110
+ }
104
111
  export interface InExpr extends AstNode {
105
112
  type: 'in';
106
113
  expr: Expression;
@@ -272,7 +279,6 @@ export interface ColumnDef {
272
279
  dataType?: string;
273
280
  constraints: ColumnConstraint[];
274
281
  }
275
- export type RowOp = 'insert' | 'update' | 'delete';
276
282
  export interface ColumnConstraint extends AstNode {
277
283
  type: 'primaryKey' | 'notNull' | 'null' | 'unique' | 'check' | 'default' | 'foreignKey' | 'collate' | 'generated';
278
284
  name?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"ast.d.ts","sourceRoot":"","sources":["../../../src/parser/ast.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ast.d.ts","sourceRoot":"","sources":["../../../src/parser/ast.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../../src/parser/parser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../../src/parser/parser.ts"],"names":[],"mappings":"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"}
@@ -455,7 +455,24 @@ export class Parser {
455
455
  const expr = this.expression();
456
456
  const direction = this.match(TokenType.DESC) ? 'desc' :
457
457
  (this.match(TokenType.ASC) ? 'asc' : 'asc'); // Default to ASC
458
- orderBy.push({ expr, direction });
458
+ // Handle NULLS FIRST/LAST
459
+ let nulls;
460
+ if (this.matchKeyword('NULLS')) {
461
+ if (this.matchKeyword('FIRST')) {
462
+ nulls = 'first';
463
+ }
464
+ else if (this.matchKeyword('LAST')) {
465
+ nulls = 'last';
466
+ }
467
+ else {
468
+ throw this.error(this.peek(), "Expected 'FIRST' or 'LAST' after 'NULLS'.");
469
+ }
470
+ }
471
+ const orderClause = { expr, direction };
472
+ if (nulls) {
473
+ orderClause.nulls = nulls;
474
+ }
475
+ orderBy.push(orderClause);
459
476
  } while (this.match(TokenType.COMMA));
460
477
  lastConsumedToken = this.previous(); // After last order by clause
461
478
  }
@@ -1060,30 +1077,17 @@ export class Parser {
1060
1077
  }
1061
1078
  else if (this.match(TokenType.BETWEEN)) {
1062
1079
  // NOT BETWEEN
1063
- const low = this.term();
1080
+ const lower = this.term();
1064
1081
  this.consume(TokenType.AND, "Expected 'AND' after NOT BETWEEN lower bound.");
1065
- const high = this.term();
1066
- const endToken = this.previous(); // End token is end of high expr
1067
- // Create a binary AND expression for the bounds
1068
- const boundsExpr = {
1069
- type: 'binary',
1070
- operator: 'AND',
1071
- left: low,
1072
- right: high,
1073
- loc: _createLoc(low.loc?.start ? this.tokens.find(t => t.startOffset === low.loc.start.offset) ?? this.peek() : this.peek(), endToken)
1074
- };
1075
- // Create the BETWEEN expression as a binary expression, then wrap in NOT
1076
- const betweenExpr = {
1077
- type: 'binary',
1078
- operator: 'BETWEEN',
1079
- left: expr,
1080
- right: boundsExpr,
1081
- loc: _createLoc(startToken, endToken),
1082
- };
1082
+ const upper = this.term();
1083
+ const endToken = this.previous(); // End token is end of upper expr
1084
+ // Create the NOT BETWEEN expression as a dedicated node type
1083
1085
  expr = {
1084
- type: 'unary',
1085
- operator: 'NOT',
1086
- expr: betweenExpr,
1086
+ type: 'between',
1087
+ expr,
1088
+ lower,
1089
+ upper,
1090
+ not: true,
1087
1091
  loc: _createLoc(notStartToken, endToken),
1088
1092
  };
1089
1093
  }
@@ -1127,24 +1131,16 @@ export class Parser {
1127
1131
  }
1128
1132
  else if (operatorToken.type === TokenType.BETWEEN) {
1129
1133
  // Parse BETWEEN expression: expr BETWEEN low AND high
1130
- const low = this.term();
1134
+ const lower = this.term();
1131
1135
  this.consume(TokenType.AND, "Expected 'AND' after BETWEEN lower bound.");
1132
- const high = this.term();
1133
- const endToken = this.previous(); // End token is end of high expr
1134
- // Create a binary AND expression for the bounds
1135
- const boundsExpr = {
1136
- type: 'binary',
1137
- operator: 'AND',
1138
- left: low,
1139
- right: high,
1140
- loc: _createLoc(low.loc?.start ? this.tokens.find(t => t.startOffset === low.loc.start.offset) ?? this.peek() : this.peek(), endToken)
1141
- };
1142
- // Create the BETWEEN expression as a binary expression
1136
+ const upper = this.term();
1137
+ const endToken = this.previous(); // End token is end of upper expr
1138
+ // Create the BETWEEN expression as a dedicated node type
1143
1139
  expr = {
1144
- type: 'binary',
1145
- operator: 'BETWEEN',
1146
- left: expr,
1147
- right: boundsExpr,
1140
+ type: 'between',
1141
+ expr,
1142
+ lower,
1143
+ upper,
1148
1144
  loc: _createLoc(startToken, endToken),
1149
1145
  };
1150
1146
  }
@@ -1521,21 +1517,21 @@ export class Parser {
1521
1517
  const expr = this.expression();
1522
1518
  const direction = this.match(TokenType.DESC) ? 'desc' : (this.match(TokenType.ASC) ? 'asc' : 'asc');
1523
1519
  // Handle NULLS FIRST/LAST
1524
- let nullsOrdering;
1520
+ let nulls;
1525
1521
  if (this.matchKeyword('NULLS')) {
1526
1522
  if (this.matchKeyword('FIRST')) {
1527
- nullsOrdering = 'first';
1523
+ nulls = 'first';
1528
1524
  }
1529
1525
  else if (this.matchKeyword('LAST')) {
1530
- nullsOrdering = 'last';
1526
+ nulls = 'last';
1531
1527
  }
1532
1528
  else {
1533
1529
  throw this.error(this.peek(), "Expected 'FIRST' or 'LAST' after 'NULLS'.");
1534
1530
  }
1535
1531
  }
1536
1532
  const orderClause = { expr, direction };
1537
- if (nullsOrdering) {
1538
- orderClause.nullsOrdering = nullsOrdering;
1533
+ if (nulls) {
1534
+ orderClause.nulls = nulls;
1539
1535
  }
1540
1536
  orderBy.push(orderClause);
1541
1537
  } while (this.match(TokenType.COMMA));