@quereus/quereus 2.7.0 → 2.9.0

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 (358) hide show
  1. package/dist/src/common/errors.d.ts +21 -0
  2. package/dist/src/common/errors.d.ts.map +1 -1
  3. package/dist/src/common/errors.js +29 -0
  4. package/dist/src/common/errors.js.map +1 -1
  5. package/dist/src/core/database.d.ts.map +1 -1
  6. package/dist/src/core/database.js +20 -7
  7. package/dist/src/core/database.js.map +1 -1
  8. package/dist/src/core/statement.d.ts.map +1 -1
  9. package/dist/src/core/statement.js +15 -5
  10. package/dist/src/core/statement.js.map +1 -1
  11. package/dist/src/emit/ast-stringify.d.ts.map +1 -1
  12. package/dist/src/emit/ast-stringify.js +0 -4
  13. package/dist/src/emit/ast-stringify.js.map +1 -1
  14. package/dist/src/func/builtins/explain.d.ts.map +1 -1
  15. package/dist/src/func/builtins/explain.js +39 -36
  16. package/dist/src/func/builtins/explain.js.map +1 -1
  17. package/dist/src/func/builtins/json-helpers.d.ts +1 -1
  18. package/dist/src/func/builtins/json-helpers.d.ts.map +1 -1
  19. package/dist/src/func/builtins/json-helpers.js.map +1 -1
  20. package/dist/src/func/builtins/json.d.ts.map +1 -1
  21. package/dist/src/func/builtins/json.js +5 -7
  22. package/dist/src/func/builtins/json.js.map +1 -1
  23. package/dist/src/func/builtins/scalar.d.ts.map +1 -1
  24. package/dist/src/func/builtins/scalar.js +17 -2
  25. package/dist/src/func/builtins/scalar.js.map +1 -1
  26. package/dist/src/func/builtins/string.d.ts.map +1 -1
  27. package/dist/src/func/builtins/string.js +4 -2
  28. package/dist/src/func/builtins/string.js.map +1 -1
  29. package/dist/src/parser/ast.d.ts +4 -3
  30. package/dist/src/parser/ast.d.ts.map +1 -1
  31. package/dist/src/parser/lexer.d.ts.map +1 -1
  32. package/dist/src/parser/lexer.js +8 -48
  33. package/dist/src/parser/lexer.js.map +1 -1
  34. package/dist/src/parser/parser.d.ts.map +1 -1
  35. package/dist/src/parser/parser.js +43 -11
  36. package/dist/src/parser/parser.js.map +1 -1
  37. package/dist/src/parser/utils.d.ts +10 -1
  38. package/dist/src/parser/utils.d.ts.map +1 -1
  39. package/dist/src/parser/utils.js +23 -0
  40. package/dist/src/parser/utils.js.map +1 -1
  41. package/dist/src/planner/analysis/constraint-extractor.d.ts.map +1 -1
  42. package/dist/src/planner/analysis/constraint-extractor.js +0 -1
  43. package/dist/src/planner/analysis/constraint-extractor.js.map +1 -1
  44. package/dist/src/planner/building/constraint-builder.d.ts +12 -1
  45. package/dist/src/planner/building/constraint-builder.d.ts.map +1 -1
  46. package/dist/src/planner/building/constraint-builder.js +60 -1
  47. package/dist/src/planner/building/constraint-builder.js.map +1 -1
  48. package/dist/src/planner/building/create-view.d.ts.map +1 -1
  49. package/dist/src/planner/building/create-view.js +16 -0
  50. package/dist/src/planner/building/create-view.js.map +1 -1
  51. package/dist/src/planner/building/delete.d.ts.map +1 -1
  52. package/dist/src/planner/building/delete.js +13 -7
  53. package/dist/src/planner/building/delete.js.map +1 -1
  54. package/dist/src/planner/building/foreign-key-builder.d.ts.map +1 -1
  55. package/dist/src/planner/building/foreign-key-builder.js +27 -17
  56. package/dist/src/planner/building/foreign-key-builder.js.map +1 -1
  57. package/dist/src/planner/building/insert.d.ts.map +1 -1
  58. package/dist/src/planner/building/insert.js +51 -43
  59. package/dist/src/planner/building/insert.js.map +1 -1
  60. package/dist/src/planner/building/select-aggregates.d.ts +4 -1
  61. package/dist/src/planner/building/select-aggregates.d.ts.map +1 -1
  62. package/dist/src/planner/building/select-aggregates.js +122 -21
  63. package/dist/src/planner/building/select-aggregates.js.map +1 -1
  64. package/dist/src/planner/building/select-modifiers.d.ts +6 -2
  65. package/dist/src/planner/building/select-modifiers.d.ts.map +1 -1
  66. package/dist/src/planner/building/select-modifiers.js +20 -5
  67. package/dist/src/planner/building/select-modifiers.js.map +1 -1
  68. package/dist/src/planner/building/select-ordinal.d.ts +20 -0
  69. package/dist/src/planner/building/select-ordinal.d.ts.map +1 -0
  70. package/dist/src/planner/building/select-ordinal.js +62 -0
  71. package/dist/src/planner/building/select-ordinal.js.map +1 -0
  72. package/dist/src/planner/building/select.d.ts.map +1 -1
  73. package/dist/src/planner/building/select.js +78 -19
  74. package/dist/src/planner/building/select.js.map +1 -1
  75. package/dist/src/planner/building/update.d.ts.map +1 -1
  76. package/dist/src/planner/building/update.js +38 -27
  77. package/dist/src/planner/building/update.js.map +1 -1
  78. package/dist/src/planner/building/with.d.ts.map +1 -1
  79. package/dist/src/planner/building/with.js +25 -2
  80. package/dist/src/planner/building/with.js.map +1 -1
  81. package/dist/src/planner/framework/characteristics.d.ts +3 -1
  82. package/dist/src/planner/framework/characteristics.d.ts.map +1 -1
  83. package/dist/src/planner/framework/characteristics.js +7 -0
  84. package/dist/src/planner/framework/characteristics.js.map +1 -1
  85. package/dist/src/planner/framework/physical-utils.d.ts +22 -1
  86. package/dist/src/planner/framework/physical-utils.d.ts.map +1 -1
  87. package/dist/src/planner/framework/physical-utils.js +47 -0
  88. package/dist/src/planner/framework/physical-utils.js.map +1 -1
  89. package/dist/src/planner/nodes/alias-node.d.ts.map +1 -1
  90. package/dist/src/planner/nodes/alias-node.js +2 -0
  91. package/dist/src/planner/nodes/alias-node.js.map +1 -1
  92. package/dist/src/planner/nodes/asof-scan-node.d.ts +137 -0
  93. package/dist/src/planner/nodes/asof-scan-node.d.ts.map +1 -0
  94. package/dist/src/planner/nodes/asof-scan-node.js +223 -0
  95. package/dist/src/planner/nodes/asof-scan-node.js.map +1 -0
  96. package/dist/src/planner/nodes/constraint-check-node.d.ts +25 -1
  97. package/dist/src/planner/nodes/constraint-check-node.d.ts.map +1 -1
  98. package/dist/src/planner/nodes/constraint-check-node.js +36 -6
  99. package/dist/src/planner/nodes/constraint-check-node.js.map +1 -1
  100. package/dist/src/planner/nodes/distinct-node.d.ts.map +1 -1
  101. package/dist/src/planner/nodes/distinct-node.js +7 -0
  102. package/dist/src/planner/nodes/distinct-node.js.map +1 -1
  103. package/dist/src/planner/nodes/filter.d.ts.map +1 -1
  104. package/dist/src/planner/nodes/filter.js +8 -2
  105. package/dist/src/planner/nodes/filter.js.map +1 -1
  106. package/dist/src/planner/nodes/function.d.ts +11 -1
  107. package/dist/src/planner/nodes/function.d.ts.map +1 -1
  108. package/dist/src/planner/nodes/function.js +94 -1
  109. package/dist/src/planner/nodes/function.js.map +1 -1
  110. package/dist/src/planner/nodes/hash-aggregate.d.ts.map +1 -1
  111. package/dist/src/planner/nodes/hash-aggregate.js +2 -0
  112. package/dist/src/planner/nodes/hash-aggregate.js.map +1 -1
  113. package/dist/src/planner/nodes/join-node.d.ts.map +1 -1
  114. package/dist/src/planner/nodes/join-node.js +10 -2
  115. package/dist/src/planner/nodes/join-node.js.map +1 -1
  116. package/dist/src/planner/nodes/join-utils.d.ts +19 -1
  117. package/dist/src/planner/nodes/join-utils.d.ts.map +1 -1
  118. package/dist/src/planner/nodes/join-utils.js +46 -0
  119. package/dist/src/planner/nodes/join-utils.js.map +1 -1
  120. package/dist/src/planner/nodes/limit-offset.d.ts.map +1 -1
  121. package/dist/src/planner/nodes/limit-offset.js +2 -0
  122. package/dist/src/planner/nodes/limit-offset.js.map +1 -1
  123. package/dist/src/planner/nodes/merge-join-node.d.ts.map +1 -1
  124. package/dist/src/planner/nodes/merge-join-node.js +4 -1
  125. package/dist/src/planner/nodes/merge-join-node.js.map +1 -1
  126. package/dist/src/planner/nodes/ordinal-slice-node.d.ts +50 -0
  127. package/dist/src/planner/nodes/ordinal-slice-node.d.ts.map +1 -0
  128. package/dist/src/planner/nodes/ordinal-slice-node.js +127 -0
  129. package/dist/src/planner/nodes/ordinal-slice-node.js.map +1 -0
  130. package/dist/src/planner/nodes/plan-node-type.d.ts +2 -0
  131. package/dist/src/planner/nodes/plan-node-type.d.ts.map +1 -1
  132. package/dist/src/planner/nodes/plan-node-type.js +2 -0
  133. package/dist/src/planner/nodes/plan-node-type.js.map +1 -1
  134. package/dist/src/planner/nodes/plan-node.d.ts +130 -1
  135. package/dist/src/planner/nodes/plan-node.d.ts.map +1 -1
  136. package/dist/src/planner/nodes/plan-node.js +49 -0
  137. package/dist/src/planner/nodes/plan-node.js.map +1 -1
  138. package/dist/src/planner/nodes/project-node.d.ts.map +1 -1
  139. package/dist/src/planner/nodes/project-node.js +6 -1
  140. package/dist/src/planner/nodes/project-node.js.map +1 -1
  141. package/dist/src/planner/nodes/recursive-cte-node.d.ts +5 -3
  142. package/dist/src/planner/nodes/recursive-cte-node.d.ts.map +1 -1
  143. package/dist/src/planner/nodes/recursive-cte-node.js +24 -8
  144. package/dist/src/planner/nodes/recursive-cte-node.js.map +1 -1
  145. package/dist/src/planner/nodes/reference.d.ts +4 -1
  146. package/dist/src/planner/nodes/reference.d.ts.map +1 -1
  147. package/dist/src/planner/nodes/reference.js +16 -0
  148. package/dist/src/planner/nodes/reference.js.map +1 -1
  149. package/dist/src/planner/nodes/returning-node.d.ts.map +1 -1
  150. package/dist/src/planner/nodes/returning-node.js +5 -12
  151. package/dist/src/planner/nodes/returning-node.js.map +1 -1
  152. package/dist/src/planner/nodes/scalar.d.ts +7 -1
  153. package/dist/src/planner/nodes/scalar.d.ts.map +1 -1
  154. package/dist/src/planner/nodes/scalar.js +100 -1
  155. package/dist/src/planner/nodes/scalar.js.map +1 -1
  156. package/dist/src/planner/nodes/set-operation-node.d.ts +2 -1
  157. package/dist/src/planner/nodes/set-operation-node.d.ts.map +1 -1
  158. package/dist/src/planner/nodes/set-operation-node.js +9 -0
  159. package/dist/src/planner/nodes/set-operation-node.js.map +1 -1
  160. package/dist/src/planner/nodes/sort.d.ts.map +1 -1
  161. package/dist/src/planner/nodes/sort.js +20 -0
  162. package/dist/src/planner/nodes/sort.js.map +1 -1
  163. package/dist/src/planner/nodes/stream-aggregate.d.ts.map +1 -1
  164. package/dist/src/planner/nodes/stream-aggregate.js +2 -0
  165. package/dist/src/planner/nodes/stream-aggregate.js.map +1 -1
  166. package/dist/src/planner/nodes/table-access-nodes.d.ts +37 -2
  167. package/dist/src/planner/nodes/table-access-nodes.d.ts.map +1 -1
  168. package/dist/src/planner/nodes/table-access-nodes.js +87 -10
  169. package/dist/src/planner/nodes/table-access-nodes.js.map +1 -1
  170. package/dist/src/planner/nodes/update-node.d.ts +1 -3
  171. package/dist/src/planner/nodes/update-node.d.ts.map +1 -1
  172. package/dist/src/planner/nodes/update-node.js +3 -9
  173. package/dist/src/planner/nodes/update-node.js.map +1 -1
  174. package/dist/src/planner/nodes/window-node.d.ts +61 -2
  175. package/dist/src/planner/nodes/window-node.d.ts.map +1 -1
  176. package/dist/src/planner/nodes/window-node.js +64 -3
  177. package/dist/src/planner/nodes/window-node.js.map +1 -1
  178. package/dist/src/planner/optimizer-tuning.d.ts +9 -0
  179. package/dist/src/planner/optimizer-tuning.d.ts.map +1 -1
  180. package/dist/src/planner/optimizer-tuning.js +3 -0
  181. package/dist/src/planner/optimizer-tuning.js.map +1 -1
  182. package/dist/src/planner/optimizer.d.ts.map +1 -1
  183. package/dist/src/planner/optimizer.js +91 -0
  184. package/dist/src/planner/optimizer.js.map +1 -1
  185. package/dist/src/planner/rules/access/rule-asof-strategy-select.d.ts +30 -0
  186. package/dist/src/planner/rules/access/rule-asof-strategy-select.d.ts.map +1 -0
  187. package/dist/src/planner/rules/access/rule-asof-strategy-select.js +112 -0
  188. package/dist/src/planner/rules/access/rule-asof-strategy-select.js.map +1 -0
  189. package/dist/src/planner/rules/access/rule-monotonic-limit-pushdown.d.ts +33 -0
  190. package/dist/src/planner/rules/access/rule-monotonic-limit-pushdown.d.ts.map +1 -0
  191. package/dist/src/planner/rules/access/rule-monotonic-limit-pushdown.js +162 -0
  192. package/dist/src/planner/rules/access/rule-monotonic-limit-pushdown.js.map +1 -0
  193. package/dist/src/planner/rules/access/rule-monotonic-range-access.d.ts +29 -0
  194. package/dist/src/planner/rules/access/rule-monotonic-range-access.d.ts.map +1 -0
  195. package/dist/src/planner/rules/access/rule-monotonic-range-access.js +175 -0
  196. package/dist/src/planner/rules/access/rule-monotonic-range-access.js.map +1 -0
  197. package/dist/src/planner/rules/access/rule-select-access-path.d.ts.map +1 -1
  198. package/dist/src/planner/rules/access/rule-select-access-path.js +53 -36
  199. package/dist/src/planner/rules/access/rule-select-access-path.js.map +1 -1
  200. package/dist/src/planner/rules/join/equi-pair-extractor.d.ts +61 -0
  201. package/dist/src/planner/rules/join/equi-pair-extractor.d.ts.map +1 -0
  202. package/dist/src/planner/rules/join/equi-pair-extractor.js +155 -0
  203. package/dist/src/planner/rules/join/equi-pair-extractor.js.map +1 -0
  204. package/dist/src/planner/rules/join/rule-join-physical-selection.d.ts.map +1 -1
  205. package/dist/src/planner/rules/join/rule-join-physical-selection.js +3 -123
  206. package/dist/src/planner/rules/join/rule-join-physical-selection.js.map +1 -1
  207. package/dist/src/planner/rules/join/rule-lateral-top1-asof.d.ts +21 -0
  208. package/dist/src/planner/rules/join/rule-lateral-top1-asof.d.ts.map +1 -0
  209. package/dist/src/planner/rules/join/rule-lateral-top1-asof.js +405 -0
  210. package/dist/src/planner/rules/join/rule-lateral-top1-asof.js.map +1 -0
  211. package/dist/src/planner/rules/join/rule-monotonic-merge-join.d.ts +31 -0
  212. package/dist/src/planner/rules/join/rule-monotonic-merge-join.d.ts.map +1 -0
  213. package/dist/src/planner/rules/join/rule-monotonic-merge-join.js +113 -0
  214. package/dist/src/planner/rules/join/rule-monotonic-merge-join.js.map +1 -0
  215. package/dist/src/planner/rules/join/rule-quickpick-enumeration.d.ts.map +1 -1
  216. package/dist/src/planner/rules/join/rule-quickpick-enumeration.js +7 -3
  217. package/dist/src/planner/rules/join/rule-quickpick-enumeration.js.map +1 -1
  218. package/dist/src/planner/rules/predicate/rule-filter-merge.js.map +1 -1
  219. package/dist/src/planner/rules/predicate/rule-predicate-pushdown.js.map +1 -1
  220. package/dist/src/planner/rules/retrieve/rule-grow-retrieve.d.ts.map +1 -1
  221. package/dist/src/planner/rules/retrieve/rule-grow-retrieve.js +161 -9
  222. package/dist/src/planner/rules/retrieve/rule-grow-retrieve.js.map +1 -1
  223. package/dist/src/planner/rules/subquery/rule-subquery-decorrelation.d.ts.map +1 -1
  224. package/dist/src/planner/rules/subquery/rule-subquery-decorrelation.js +2 -2
  225. package/dist/src/planner/rules/subquery/rule-subquery-decorrelation.js.map +1 -1
  226. package/dist/src/planner/rules/window/rule-monotonic-window.d.ts +47 -0
  227. package/dist/src/planner/rules/window/rule-monotonic-window.d.ts.map +1 -0
  228. package/dist/src/planner/rules/window/rule-monotonic-window.js +341 -0
  229. package/dist/src/planner/rules/window/rule-monotonic-window.js.map +1 -0
  230. package/dist/src/runtime/context-helpers.d.ts +9 -0
  231. package/dist/src/runtime/context-helpers.d.ts.map +1 -1
  232. package/dist/src/runtime/context-helpers.js +5 -0
  233. package/dist/src/runtime/context-helpers.js.map +1 -1
  234. package/dist/src/runtime/emit/alter-table.d.ts.map +1 -1
  235. package/dist/src/runtime/emit/alter-table.js +286 -7
  236. package/dist/src/runtime/emit/alter-table.js.map +1 -1
  237. package/dist/src/runtime/emit/asof-scan.d.ts +10 -0
  238. package/dist/src/runtime/emit/asof-scan.d.ts.map +1 -0
  239. package/dist/src/runtime/emit/asof-scan.js +467 -0
  240. package/dist/src/runtime/emit/asof-scan.js.map +1 -0
  241. package/dist/src/runtime/emit/binary.d.ts.map +1 -1
  242. package/dist/src/runtime/emit/binary.js +12 -7
  243. package/dist/src/runtime/emit/binary.js.map +1 -1
  244. package/dist/src/runtime/emit/constraint-check.d.ts.map +1 -1
  245. package/dist/src/runtime/emit/constraint-check.js +145 -62
  246. package/dist/src/runtime/emit/constraint-check.js.map +1 -1
  247. package/dist/src/runtime/emit/create-assertion.d.ts.map +1 -1
  248. package/dist/src/runtime/emit/create-assertion.js +6 -6
  249. package/dist/src/runtime/emit/create-assertion.js.map +1 -1
  250. package/dist/src/runtime/emit/dml-executor.d.ts.map +1 -1
  251. package/dist/src/runtime/emit/dml-executor.js +133 -76
  252. package/dist/src/runtime/emit/dml-executor.js.map +1 -1
  253. package/dist/src/runtime/emit/ordinal-slice.d.ts +13 -0
  254. package/dist/src/runtime/emit/ordinal-slice.d.ts.map +1 -0
  255. package/dist/src/runtime/emit/ordinal-slice.js +89 -0
  256. package/dist/src/runtime/emit/ordinal-slice.js.map +1 -0
  257. package/dist/src/runtime/emit/recursive-cte.d.ts.map +1 -1
  258. package/dist/src/runtime/emit/recursive-cte.js +61 -10
  259. package/dist/src/runtime/emit/recursive-cte.js.map +1 -1
  260. package/dist/src/runtime/emit/returning.d.ts.map +1 -1
  261. package/dist/src/runtime/emit/returning.js +9 -4
  262. package/dist/src/runtime/emit/returning.js.map +1 -1
  263. package/dist/src/runtime/emit/scalar-function.d.ts.map +1 -1
  264. package/dist/src/runtime/emit/scalar-function.js +2 -1
  265. package/dist/src/runtime/emit/scalar-function.js.map +1 -1
  266. package/dist/src/runtime/emit/scan.d.ts +19 -3
  267. package/dist/src/runtime/emit/scan.d.ts.map +1 -1
  268. package/dist/src/runtime/emit/scan.js +12 -8
  269. package/dist/src/runtime/emit/scan.js.map +1 -1
  270. package/dist/src/runtime/emit/schema-declarative.d.ts.map +1 -1
  271. package/dist/src/runtime/emit/schema-declarative.js +91 -14
  272. package/dist/src/runtime/emit/schema-declarative.js.map +1 -1
  273. package/dist/src/runtime/emit/table-valued-function.d.ts.map +1 -1
  274. package/dist/src/runtime/emit/table-valued-function.js +4 -2
  275. package/dist/src/runtime/emit/table-valued-function.js.map +1 -1
  276. package/dist/src/runtime/emit/update.d.ts.map +1 -1
  277. package/dist/src/runtime/emit/update.js +8 -5
  278. package/dist/src/runtime/emit/update.js.map +1 -1
  279. package/dist/src/runtime/emit/window.d.ts.map +1 -1
  280. package/dist/src/runtime/emit/window.js +732 -37
  281. package/dist/src/runtime/emit/window.js.map +1 -1
  282. package/dist/src/runtime/foreign-key-actions.js +7 -6
  283. package/dist/src/runtime/foreign-key-actions.js.map +1 -1
  284. package/dist/src/runtime/register.d.ts.map +1 -1
  285. package/dist/src/runtime/register.js +4 -0
  286. package/dist/src/runtime/register.js.map +1 -1
  287. package/dist/src/schema/catalog.d.ts +12 -0
  288. package/dist/src/schema/catalog.d.ts.map +1 -1
  289. package/dist/src/schema/catalog.js +47 -6
  290. package/dist/src/schema/catalog.js.map +1 -1
  291. package/dist/src/schema/column.d.ts +7 -0
  292. package/dist/src/schema/column.d.ts.map +1 -1
  293. package/dist/src/schema/column.js.map +1 -1
  294. package/dist/src/schema/function.d.ts +28 -3
  295. package/dist/src/schema/function.d.ts.map +1 -1
  296. package/dist/src/schema/function.js.map +1 -1
  297. package/dist/src/schema/manager.d.ts +42 -6
  298. package/dist/src/schema/manager.d.ts.map +1 -1
  299. package/dist/src/schema/manager.js +175 -23
  300. package/dist/src/schema/manager.js.map +1 -1
  301. package/dist/src/schema/rename-rewriter.d.ts +4 -0
  302. package/dist/src/schema/rename-rewriter.d.ts.map +1 -0
  303. package/dist/src/schema/rename-rewriter.js +506 -0
  304. package/dist/src/schema/rename-rewriter.js.map +1 -0
  305. package/dist/src/schema/schema-differ.d.ts +18 -1
  306. package/dist/src/schema/schema-differ.d.ts.map +1 -1
  307. package/dist/src/schema/schema-differ.js +344 -42
  308. package/dist/src/schema/schema-differ.js.map +1 -1
  309. package/dist/src/schema/table.d.ts +65 -2
  310. package/dist/src/schema/table.d.ts.map +1 -1
  311. package/dist/src/schema/table.js +144 -0
  312. package/dist/src/schema/table.js.map +1 -1
  313. package/dist/src/types/logical-type.d.ts +11 -0
  314. package/dist/src/types/logical-type.d.ts.map +1 -1
  315. package/dist/src/types/logical-type.js.map +1 -1
  316. package/dist/src/util/ast-literal.d.ts +11 -0
  317. package/dist/src/util/ast-literal.d.ts.map +1 -0
  318. package/dist/src/util/ast-literal.js +26 -0
  319. package/dist/src/util/ast-literal.js.map +1 -0
  320. package/dist/src/util/async-iterator.d.ts +2 -1
  321. package/dist/src/util/async-iterator.d.ts.map +1 -1
  322. package/dist/src/util/async-iterator.js +4 -4
  323. package/dist/src/util/async-iterator.js.map +1 -1
  324. package/dist/src/util/patterns.d.ts.map +1 -1
  325. package/dist/src/util/patterns.js +58 -10
  326. package/dist/src/util/patterns.js.map +1 -1
  327. package/dist/src/vtab/best-access-plan.d.ts +48 -0
  328. package/dist/src/vtab/best-access-plan.d.ts.map +1 -1
  329. package/dist/src/vtab/best-access-plan.js +29 -0
  330. package/dist/src/vtab/best-access-plan.js.map +1 -1
  331. package/dist/src/vtab/filter-info.d.ts +14 -0
  332. package/dist/src/vtab/filter-info.d.ts.map +1 -1
  333. package/dist/src/vtab/memory/index.d.ts +8 -0
  334. package/dist/src/vtab/memory/index.d.ts.map +1 -1
  335. package/dist/src/vtab/memory/index.js +11 -0
  336. package/dist/src/vtab/memory/index.js.map +1 -1
  337. package/dist/src/vtab/memory/layer/base.d.ts +8 -1
  338. package/dist/src/vtab/memory/layer/base.d.ts.map +1 -1
  339. package/dist/src/vtab/memory/layer/base.js +36 -2
  340. package/dist/src/vtab/memory/layer/base.js.map +1 -1
  341. package/dist/src/vtab/memory/layer/manager.d.ts +5 -1
  342. package/dist/src/vtab/memory/layer/manager.d.ts.map +1 -1
  343. package/dist/src/vtab/memory/layer/manager.js +63 -13
  344. package/dist/src/vtab/memory/layer/manager.js.map +1 -1
  345. package/dist/src/vtab/memory/layer/transaction.d.ts.map +1 -1
  346. package/dist/src/vtab/memory/layer/transaction.js +21 -2
  347. package/dist/src/vtab/memory/layer/transaction.js.map +1 -1
  348. package/dist/src/vtab/memory/module.d.ts +45 -2
  349. package/dist/src/vtab/memory/module.d.ts.map +1 -1
  350. package/dist/src/vtab/memory/module.js +268 -27
  351. package/dist/src/vtab/memory/module.js.map +1 -1
  352. package/dist/src/vtab/memory/utils/predicate.d.ts +27 -0
  353. package/dist/src/vtab/memory/utils/predicate.d.ts.map +1 -0
  354. package/dist/src/vtab/memory/utils/predicate.js +182 -0
  355. package/dist/src/vtab/memory/utils/predicate.js.map +1 -0
  356. package/dist/src/vtab/module.d.ts +24 -0
  357. package/dist/src/vtab/module.d.ts.map +1 -1
  358. package/package.json +3 -3
@@ -1055,7 +1055,7 @@ export class Parser {
1055
1055
  // Consume JOIN token
1056
1056
  this.consume(TokenType.JOIN, "Expected 'JOIN'.");
1057
1057
  // Optional LATERAL before right side
1058
- const _isLateral = this.match(TokenType.LATERAL);
1058
+ const isLateral = this.match(TokenType.LATERAL);
1059
1059
  // Parse right side of join
1060
1060
  const right = this.tableSource(withClause);
1061
1061
  // Parse join condition
@@ -1085,6 +1085,7 @@ export class Parser {
1085
1085
  right,
1086
1086
  condition,
1087
1087
  columns,
1088
+ isLateral: isLateral || undefined,
1088
1089
  loc: _createLoc(joinStartToken, endToken),
1089
1090
  };
1090
1091
  }
@@ -2172,8 +2173,20 @@ export class Parser {
2172
2173
  this.consume(TokenType.RPAREN, "Expected ')' after view column list.");
2173
2174
  }
2174
2175
  this.consumeKeyword('AS', "Expected 'AS' before SELECT statement for CREATE VIEW.");
2176
+ // CREATE VIEW body may optionally start with a WITH (CTE) clause; the WITH attaches to
2177
+ // the inner SELECT, not to the CREATE VIEW itself.
2178
+ let innerWith;
2179
+ if (this.check(TokenType.WITH)) {
2180
+ innerWith = this.tryParseWithClause();
2181
+ }
2175
2182
  const selectStartToken = this.consume(TokenType.SELECT, "Expected 'SELECT' after 'AS' in CREATE VIEW.");
2176
- const select = this.selectStatement(selectStartToken, withClause);
2183
+ const select = this.selectStatement(selectStartToken, innerWith ?? withClause);
2184
+ if (innerWith) {
2185
+ select.withClause = innerWith;
2186
+ if (innerWith.loc && select.loc) {
2187
+ select.loc.start = innerWith.loc.start;
2188
+ }
2189
+ }
2177
2190
  // Parse optional WITH TAGS
2178
2191
  let tags;
2179
2192
  if (this.matchKeyword('WITH')) {
@@ -2519,7 +2532,12 @@ export class Parser {
2519
2532
  }
2520
2533
  else if (this.peekKeyword('INDEX')) {
2521
2534
  this.advance();
2522
- items.push(this.declareIndexItem());
2535
+ items.push(this.declareIndexItem(false));
2536
+ }
2537
+ else if (this.peekKeyword('UNIQUE')) {
2538
+ this.advance();
2539
+ this.consumeKeyword('INDEX', "Expected 'INDEX' after 'UNIQUE'.");
2540
+ items.push(this.declareIndexItem(true));
2523
2541
  }
2524
2542
  else if (this.peekKeyword('VIEW')) {
2525
2543
  this.advance();
@@ -2645,7 +2663,7 @@ export class Parser {
2645
2663
  };
2646
2664
  return { type: 'declaredTable', tableStmt };
2647
2665
  }
2648
- declareIndexItem() {
2666
+ declareIndexItem(isUnique) {
2649
2667
  const indexName = this.consumeIdentifier('Expected index name.');
2650
2668
  this.consumeKeyword('ON', "Expected 'ON' after index name.");
2651
2669
  const tableName = this.consumeIdentifier('Expected table name after ON.');
@@ -2668,7 +2686,7 @@ export class Parser {
2668
2686
  table: { type: 'identifier', name: tableName },
2669
2687
  ifNotExists: false,
2670
2688
  columns,
2671
- isUnique: false,
2689
+ isUnique,
2672
2690
  tags
2673
2691
  };
2674
2692
  return { type: 'declaredIndex', indexStmt };
@@ -2784,7 +2802,11 @@ export class Parser {
2784
2802
  options.allowDestructive = this.consumeBooleanLiteral();
2785
2803
  else if (key === 'rename_policy') {
2786
2804
  const vtok = this.consume(TokenType.STRING, "Expected string for rename_policy.");
2787
- options.renamePolicy = String(vtok.literal);
2805
+ const v = String(vtok.literal);
2806
+ if (v !== 'allow' && v !== 'require-hint' && v !== 'deny') {
2807
+ throw new ParseError(vtok, `Unknown rename_policy '${v}'. Expected 'allow', 'require-hint', or 'deny'.`);
2808
+ }
2809
+ options.renamePolicy = v;
2788
2810
  }
2789
2811
  else {
2790
2812
  // consume literal
@@ -3241,7 +3263,10 @@ export class Parser {
3241
3263
  this.consume(TokenType.LPAREN, "Expected '(' after CHECK.");
3242
3264
  const expr = this.expression();
3243
3265
  endToken = this.consume(TokenType.RPAREN, "Expected ')' after CHECK expression.");
3244
- result = { type: 'check', name, expr, operations, loc: _createLoc(startToken, endToken) };
3266
+ const onConflict = this.parseConflictClause();
3267
+ if (onConflict)
3268
+ endToken = this.previous();
3269
+ result = { type: 'check', name, expr, operations, onConflict, loc: _createLoc(startToken, endToken) };
3245
3270
  }
3246
3271
  else if (this.match(TokenType.DEFAULT)) {
3247
3272
  const expr = this.expression();
@@ -3281,8 +3306,12 @@ export class Parser {
3281
3306
  else {
3282
3307
  throw this.error(this.peek(), "Expected column constraint type (PRIMARY KEY, NOT NULL, UNIQUE, CHECK, DEFAULT, COLLATE, REFERENCES, GENERATED).");
3283
3308
  }
3284
- // Parse optional trailing WITH TAGS for the constraint
3285
- if (this.matchKeyword('WITH')) {
3309
+ // Parse optional trailing WITH TAGS for the constraint.
3310
+ // Only consume here for *named* constraints (CONSTRAINT <name> ...).
3311
+ // Unnamed inline constraints leave any trailing WITH TAGS for the
3312
+ // surrounding column-level parser, since users naturally write
3313
+ // `name text not null with tags (...)` to tag the column.
3314
+ if (name !== undefined && this.matchKeyword('WITH')) {
3286
3315
  if (this.matchKeyword('TAGS')) {
3287
3316
  result.tags = this.parseTags();
3288
3317
  }
@@ -3334,7 +3363,10 @@ export class Parser {
3334
3363
  this.consume(TokenType.LPAREN, "Expected '(' after CHECK.");
3335
3364
  const expr = this.expression();
3336
3365
  endToken = this.consume(TokenType.RPAREN, "Expected ')' after CHECK expression.");
3337
- result = { type: 'check', name, expr, operations, loc: _createLoc(startToken, endToken) };
3366
+ const onConflict = this.parseConflictClause();
3367
+ if (onConflict)
3368
+ endToken = this.previous();
3369
+ result = { type: 'check', name, expr, operations, onConflict, loc: _createLoc(startToken, endToken) };
3338
3370
  }
3339
3371
  else if (this.match(TokenType.FOREIGN)) {
3340
3372
  this.consume(TokenType.KEY, "Expected KEY after FOREIGN.");
@@ -3457,7 +3489,7 @@ export class Parser {
3457
3489
  }
3458
3490
  else if (this.match(TokenType.NO)) {
3459
3491
  this.consume(TokenType.ACTION, "Expected ACTION after NO.");
3460
- return 'ignore';
3492
+ return 'restrict';
3461
3493
  }
3462
3494
  throw this.error(this.peek(), "Expected foreign key action (SET NULL, SET DEFAULT, CASCADE, RESTRICT, NO ACTION).");
3463
3495
  }