@quereus/quereus 0.2.1 → 0.4.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 (760) hide show
  1. package/README.md +12 -1
  2. package/dist/src/common/errors.js.map +1 -1
  3. package/dist/src/common/json-types.d.ts +11 -0
  4. package/dist/src/common/json-types.d.ts.map +1 -0
  5. package/dist/src/common/json-types.js +3 -0
  6. package/dist/src/common/json-types.js.map +1 -0
  7. package/dist/src/common/types.d.ts +1 -0
  8. package/dist/src/common/types.d.ts.map +1 -1
  9. package/dist/src/core/database-options.d.ts +2 -2
  10. package/dist/src/core/database-options.d.ts.map +1 -1
  11. package/dist/src/core/database-options.js.map +1 -1
  12. package/dist/src/core/database.d.ts +61 -14
  13. package/dist/src/core/database.d.ts.map +1 -1
  14. package/dist/src/core/database.js +481 -54
  15. package/dist/src/core/database.js.map +1 -1
  16. package/dist/src/core/statement.d.ts.map +1 -1
  17. package/dist/src/core/statement.js +3 -1
  18. package/dist/src/core/statement.js.map +1 -1
  19. package/dist/src/func/builtins/builtin-window-functions.d.ts.map +1 -1
  20. package/dist/src/func/builtins/builtin-window-functions.js.map +1 -1
  21. package/dist/src/func/builtins/datetime.d.ts +2 -0
  22. package/dist/src/func/builtins/datetime.d.ts.map +1 -1
  23. package/dist/src/func/builtins/datetime.js +39 -0
  24. package/dist/src/func/builtins/datetime.js.map +1 -1
  25. package/dist/src/func/builtins/explain.d.ts +1 -0
  26. package/dist/src/func/builtins/explain.d.ts.map +1 -1
  27. package/dist/src/func/builtins/explain.js +159 -36
  28. package/dist/src/func/builtins/explain.js.map +1 -1
  29. package/dist/src/func/builtins/index.d.ts.map +1 -1
  30. package/dist/src/func/builtins/index.js +5 -2
  31. package/dist/src/func/builtins/index.js.map +1 -1
  32. package/dist/src/func/builtins/json-helpers.d.ts +8 -8
  33. package/dist/src/func/builtins/json-helpers.d.ts.map +1 -1
  34. package/dist/src/func/builtins/json-helpers.js +3 -3
  35. package/dist/src/func/builtins/json-helpers.js.map +1 -1
  36. package/dist/src/func/builtins/json-tvf.d.ts.map +1 -1
  37. package/dist/src/func/builtins/json-tvf.js +1 -1
  38. package/dist/src/func/builtins/json-tvf.js.map +1 -1
  39. package/dist/src/func/builtins/json.d.ts.map +1 -1
  40. package/dist/src/func/builtins/json.js +3 -2
  41. package/dist/src/func/builtins/json.js.map +1 -1
  42. package/dist/src/func/builtins/schema.d.ts.map +1 -1
  43. package/dist/src/func/builtins/schema.js +22 -1
  44. package/dist/src/func/builtins/schema.js.map +1 -1
  45. package/dist/src/func/context.d.ts.map +1 -1
  46. package/dist/src/func/context.js +5 -0
  47. package/dist/src/func/context.js.map +1 -1
  48. package/dist/src/func/registration.d.ts +2 -1
  49. package/dist/src/func/registration.d.ts.map +1 -1
  50. package/dist/src/func/registration.js.map +1 -1
  51. package/dist/src/index.d.ts +2 -2
  52. package/dist/src/index.d.ts.map +1 -1
  53. package/dist/src/index.js +2 -2
  54. package/dist/src/index.js.map +1 -1
  55. package/dist/src/parser/ast.d.ts +83 -4
  56. package/dist/src/parser/ast.d.ts.map +1 -1
  57. package/dist/src/parser/lexer.d.ts +11 -0
  58. package/dist/src/parser/lexer.d.ts.map +1 -1
  59. package/dist/src/parser/lexer.js +29 -21
  60. package/dist/src/parser/lexer.js.map +1 -1
  61. package/dist/src/parser/parser.d.ts +16 -0
  62. package/dist/src/parser/parser.d.ts.map +1 -1
  63. package/dist/src/parser/parser.js +542 -26
  64. package/dist/src/parser/parser.js.map +1 -1
  65. package/dist/src/parser/visitor.d.ts.map +1 -1
  66. package/dist/src/parser/visitor.js +1 -0
  67. package/dist/src/parser/visitor.js.map +1 -1
  68. package/dist/src/planner/analysis/binding-collector.d.ts +5 -0
  69. package/dist/src/planner/analysis/binding-collector.d.ts.map +1 -0
  70. package/dist/src/planner/analysis/binding-collector.js +73 -0
  71. package/dist/src/planner/analysis/binding-collector.js.map +1 -0
  72. package/dist/src/planner/analysis/const-evaluator.js +1 -1
  73. package/dist/src/planner/analysis/const-evaluator.js.map +1 -1
  74. package/dist/src/planner/analysis/const-pass.d.ts.map +1 -1
  75. package/dist/src/planner/analysis/const-pass.js +1 -1
  76. package/dist/src/planner/analysis/const-pass.js.map +1 -1
  77. package/dist/src/planner/analysis/constraint-extractor.d.ts +67 -31
  78. package/dist/src/planner/analysis/constraint-extractor.d.ts.map +1 -1
  79. package/dist/src/planner/analysis/constraint-extractor.js +513 -84
  80. package/dist/src/planner/analysis/constraint-extractor.js.map +1 -1
  81. package/dist/src/planner/analysis/predicate-normalizer.d.ts +17 -0
  82. package/dist/src/planner/analysis/predicate-normalizer.d.ts.map +1 -0
  83. package/dist/src/planner/analysis/predicate-normalizer.js +222 -0
  84. package/dist/src/planner/analysis/predicate-normalizer.js.map +1 -0
  85. package/dist/src/planner/building/alter-table.d.ts.map +1 -1
  86. package/dist/src/planner/building/alter-table.js +5 -2
  87. package/dist/src/planner/building/alter-table.js.map +1 -1
  88. package/dist/src/planner/building/block.d.ts.map +1 -1
  89. package/dist/src/planner/building/block.js +16 -0
  90. package/dist/src/planner/building/block.js.map +1 -1
  91. package/dist/src/planner/building/constraint-builder.d.ts +1 -1
  92. package/dist/src/planner/building/constraint-builder.d.ts.map +1 -1
  93. package/dist/src/planner/building/constraint-builder.js +52 -3
  94. package/dist/src/planner/building/constraint-builder.js.map +1 -1
  95. package/dist/src/planner/building/create-assertion.d.ts +5 -0
  96. package/dist/src/planner/building/create-assertion.d.ts.map +1 -0
  97. package/dist/src/planner/building/create-assertion.js +5 -0
  98. package/dist/src/planner/building/create-assertion.js.map +1 -0
  99. package/dist/src/planner/building/declare-schema.d.ts +8 -0
  100. package/dist/src/planner/building/declare-schema.d.ts.map +1 -0
  101. package/dist/src/planner/building/declare-schema.js +14 -0
  102. package/dist/src/planner/building/declare-schema.js.map +1 -0
  103. package/dist/src/planner/building/delete.d.ts.map +1 -1
  104. package/dist/src/planner/building/delete.js +37 -5
  105. package/dist/src/planner/building/delete.js.map +1 -1
  106. package/dist/src/planner/building/drop-assertion.d.ts +5 -0
  107. package/dist/src/planner/building/drop-assertion.d.ts.map +1 -0
  108. package/dist/src/planner/building/drop-assertion.js +8 -0
  109. package/dist/src/planner/building/drop-assertion.js.map +1 -0
  110. package/dist/src/planner/building/expression.d.ts.map +1 -1
  111. package/dist/src/planner/building/expression.js +1 -0
  112. package/dist/src/planner/building/expression.js.map +1 -1
  113. package/dist/src/planner/building/function-call.d.ts.map +1 -1
  114. package/dist/src/planner/building/function-call.js +2 -1
  115. package/dist/src/planner/building/function-call.js.map +1 -1
  116. package/dist/src/planner/building/insert.d.ts.map +1 -1
  117. package/dist/src/planner/building/insert.js +67 -10
  118. package/dist/src/planner/building/insert.js.map +1 -1
  119. package/dist/src/planner/building/pragma.d.ts.map +1 -1
  120. package/dist/src/planner/building/pragma.js +1 -0
  121. package/dist/src/planner/building/pragma.js.map +1 -1
  122. package/dist/src/planner/building/schema-resolution.d.ts +2 -2
  123. package/dist/src/planner/building/schema-resolution.d.ts.map +1 -1
  124. package/dist/src/planner/building/select-aggregates.d.ts.map +1 -1
  125. package/dist/src/planner/building/select-aggregates.js +3 -2
  126. package/dist/src/planner/building/select-aggregates.js.map +1 -1
  127. package/dist/src/planner/building/select-compound.d.ts +2 -2
  128. package/dist/src/planner/building/select-compound.d.ts.map +1 -1
  129. package/dist/src/planner/building/select-compound.js +10 -1
  130. package/dist/src/planner/building/select-compound.js.map +1 -1
  131. package/dist/src/planner/building/select-context.d.ts +3 -3
  132. package/dist/src/planner/building/select-context.d.ts.map +1 -1
  133. package/dist/src/planner/building/select-context.js.map +1 -1
  134. package/dist/src/planner/building/select-modifiers.d.ts +6 -5
  135. package/dist/src/planner/building/select-modifiers.d.ts.map +1 -1
  136. package/dist/src/planner/building/select-modifiers.js +5 -4
  137. package/dist/src/planner/building/select-modifiers.js.map +1 -1
  138. package/dist/src/planner/building/select-projections.d.ts.map +1 -1
  139. package/dist/src/planner/building/select-projections.js +4 -5
  140. package/dist/src/planner/building/select-projections.js.map +1 -1
  141. package/dist/src/planner/building/select-window.d.ts.map +1 -1
  142. package/dist/src/planner/building/select-window.js +6 -3
  143. package/dist/src/planner/building/select-window.js.map +1 -1
  144. package/dist/src/planner/building/select.d.ts +3 -3
  145. package/dist/src/planner/building/select.d.ts.map +1 -1
  146. package/dist/src/planner/building/select.js +18 -8
  147. package/dist/src/planner/building/select.js.map +1 -1
  148. package/dist/src/planner/building/table-function.d.ts.map +1 -1
  149. package/dist/src/planner/building/table-function.js +1 -1
  150. package/dist/src/planner/building/table-function.js.map +1 -1
  151. package/dist/src/planner/building/table.d.ts +5 -3
  152. package/dist/src/planner/building/table.d.ts.map +1 -1
  153. package/dist/src/planner/building/table.js +7 -2
  154. package/dist/src/planner/building/table.js.map +1 -1
  155. package/dist/src/planner/building/update.d.ts.map +1 -1
  156. package/dist/src/planner/building/update.js +38 -6
  157. package/dist/src/planner/building/update.js.map +1 -1
  158. package/dist/src/planner/building/with.d.ts +3 -3
  159. package/dist/src/planner/building/with.d.ts.map +1 -1
  160. package/dist/src/planner/building/with.js.map +1 -1
  161. package/dist/src/planner/debug.d.ts.map +1 -1
  162. package/dist/src/planner/debug.js.map +1 -1
  163. package/dist/src/planner/framework/characteristics.d.ts +235 -0
  164. package/dist/src/planner/framework/characteristics.d.ts.map +1 -0
  165. package/dist/src/planner/framework/characteristics.js +299 -0
  166. package/dist/src/planner/framework/characteristics.js.map +1 -0
  167. package/dist/src/planner/framework/context.d.ts +16 -5
  168. package/dist/src/planner/framework/context.d.ts.map +1 -1
  169. package/dist/src/planner/framework/context.js +2 -0
  170. package/dist/src/planner/framework/context.js.map +1 -1
  171. package/dist/src/planner/framework/pass.d.ts +116 -0
  172. package/dist/src/planner/framework/pass.d.ts.map +1 -0
  173. package/dist/src/planner/framework/pass.js +236 -0
  174. package/dist/src/planner/framework/pass.js.map +1 -0
  175. package/dist/src/planner/nodes/aggregate-node.d.ts +16 -6
  176. package/dist/src/planner/nodes/aggregate-node.d.ts.map +1 -1
  177. package/dist/src/planner/nodes/aggregate-node.js +40 -4
  178. package/dist/src/planner/nodes/aggregate-node.js.map +1 -1
  179. package/dist/src/planner/nodes/array-index-node.js.map +1 -1
  180. package/dist/src/planner/nodes/cache-node.d.ts +5 -2
  181. package/dist/src/planner/nodes/cache-node.d.ts.map +1 -1
  182. package/dist/src/planner/nodes/cache-node.js +6 -0
  183. package/dist/src/planner/nodes/cache-node.js.map +1 -1
  184. package/dist/src/planner/nodes/constraint-check-node.d.ts +10 -2
  185. package/dist/src/planner/nodes/constraint-check-node.d.ts.map +1 -1
  186. package/dist/src/planner/nodes/constraint-check-node.js +12 -4
  187. package/dist/src/planner/nodes/constraint-check-node.js.map +1 -1
  188. package/dist/src/planner/nodes/create-assertion-node.d.ts +22 -0
  189. package/dist/src/planner/nodes/create-assertion-node.d.ts.map +1 -0
  190. package/dist/src/planner/nodes/create-assertion-node.js +41 -0
  191. package/dist/src/planner/nodes/create-assertion-node.js.map +1 -0
  192. package/dist/src/planner/nodes/create-index-node.js +2 -2
  193. package/dist/src/planner/nodes/create-index-node.js.map +1 -1
  194. package/dist/src/planner/nodes/create-table-node.js +2 -2
  195. package/dist/src/planner/nodes/create-table-node.js.map +1 -1
  196. package/dist/src/planner/nodes/cte-node.d.ts +17 -2
  197. package/dist/src/planner/nodes/cte-node.d.ts.map +1 -1
  198. package/dist/src/planner/nodes/cte-node.js +9 -1
  199. package/dist/src/planner/nodes/cte-node.js.map +1 -1
  200. package/dist/src/planner/nodes/cte-reference-node.js +1 -1
  201. package/dist/src/planner/nodes/cte-reference-node.js.map +1 -1
  202. package/dist/src/planner/nodes/declarative-schema.d.ts +62 -0
  203. package/dist/src/planner/nodes/declarative-schema.d.ts.map +1 -0
  204. package/dist/src/planner/nodes/declarative-schema.js +181 -0
  205. package/dist/src/planner/nodes/declarative-schema.js.map +1 -0
  206. package/dist/src/planner/nodes/delete-node.d.ts +8 -3
  207. package/dist/src/planner/nodes/delete-node.d.ts.map +1 -1
  208. package/dist/src/planner/nodes/delete-node.js +10 -2
  209. package/dist/src/planner/nodes/delete-node.js.map +1 -1
  210. package/dist/src/planner/nodes/distinct-node.d.ts +3 -2
  211. package/dist/src/planner/nodes/distinct-node.d.ts.map +1 -1
  212. package/dist/src/planner/nodes/distinct-node.js +17 -4
  213. package/dist/src/planner/nodes/distinct-node.js.map +1 -1
  214. package/dist/src/planner/nodes/dml-executor-node.d.ts +1 -1
  215. package/dist/src/planner/nodes/dml-executor-node.d.ts.map +1 -1
  216. package/dist/src/planner/nodes/drop-assertion-node.d.ts +21 -0
  217. package/dist/src/planner/nodes/drop-assertion-node.d.ts.map +1 -0
  218. package/dist/src/planner/nodes/drop-assertion-node.js +41 -0
  219. package/dist/src/planner/nodes/drop-assertion-node.js.map +1 -0
  220. package/dist/src/planner/nodes/drop-table-node.d.ts.map +1 -1
  221. package/dist/src/planner/nodes/drop-table-node.js +1 -0
  222. package/dist/src/planner/nodes/drop-table-node.js.map +1 -1
  223. package/dist/src/planner/nodes/filter.d.ts +8 -3
  224. package/dist/src/planner/nodes/filter.d.ts.map +1 -1
  225. package/dist/src/planner/nodes/filter.js +44 -0
  226. package/dist/src/planner/nodes/filter.js.map +1 -1
  227. package/dist/src/planner/nodes/insert-node.d.ts +9 -3
  228. package/dist/src/planner/nodes/insert-node.d.ts.map +1 -1
  229. package/dist/src/planner/nodes/insert-node.js +11 -2
  230. package/dist/src/planner/nodes/insert-node.js.map +1 -1
  231. package/dist/src/planner/nodes/internal-recursive-cte-ref-node.d.ts +3 -4
  232. package/dist/src/planner/nodes/internal-recursive-cte-ref-node.d.ts.map +1 -1
  233. package/dist/src/planner/nodes/internal-recursive-cte-ref-node.js +1 -16
  234. package/dist/src/planner/nodes/internal-recursive-cte-ref-node.js.map +1 -1
  235. package/dist/src/planner/nodes/join-node.d.ts +12 -3
  236. package/dist/src/planner/nodes/join-node.d.ts.map +1 -1
  237. package/dist/src/planner/nodes/join-node.js +111 -2
  238. package/dist/src/planner/nodes/join-node.js.map +1 -1
  239. package/dist/src/planner/nodes/limit-offset.d.ts +7 -3
  240. package/dist/src/planner/nodes/limit-offset.d.ts.map +1 -1
  241. package/dist/src/planner/nodes/limit-offset.js +15 -0
  242. package/dist/src/planner/nodes/limit-offset.js.map +1 -1
  243. package/dist/src/planner/nodes/plan-node-type.d.ts +8 -0
  244. package/dist/src/planner/nodes/plan-node-type.d.ts.map +1 -1
  245. package/dist/src/planner/nodes/plan-node-type.js +8 -0
  246. package/dist/src/planner/nodes/plan-node-type.js.map +1 -1
  247. package/dist/src/planner/nodes/plan-node.d.ts +9 -9
  248. package/dist/src/planner/nodes/plan-node.d.ts.map +1 -1
  249. package/dist/src/planner/nodes/plan-node.js +3 -3
  250. package/dist/src/planner/nodes/plan-node.js.map +1 -1
  251. package/dist/src/planner/nodes/pragma.d.ts +2 -1
  252. package/dist/src/planner/nodes/pragma.d.ts.map +1 -1
  253. package/dist/src/planner/nodes/pragma.js +3 -1
  254. package/dist/src/planner/nodes/pragma.js.map +1 -1
  255. package/dist/src/planner/nodes/project-node.d.ts +16 -3
  256. package/dist/src/planner/nodes/project-node.d.ts.map +1 -1
  257. package/dist/src/planner/nodes/project-node.js +82 -2
  258. package/dist/src/planner/nodes/project-node.js.map +1 -1
  259. package/dist/src/planner/nodes/recursive-cte-node.d.ts +2 -2
  260. package/dist/src/planner/nodes/recursive-cte-node.d.ts.map +1 -1
  261. package/dist/src/planner/nodes/recursive-cte-node.js +1 -1
  262. package/dist/src/planner/nodes/recursive-cte-node.js.map +1 -1
  263. package/dist/src/planner/nodes/reference.d.ts +13 -4
  264. package/dist/src/planner/nodes/reference.d.ts.map +1 -1
  265. package/dist/src/planner/nodes/reference.js +16 -0
  266. package/dist/src/planner/nodes/reference.js.map +1 -1
  267. package/dist/src/planner/nodes/remote-query-node.d.ts +37 -0
  268. package/dist/src/planner/nodes/remote-query-node.d.ts.map +1 -0
  269. package/dist/src/planner/nodes/remote-query-node.js +63 -0
  270. package/dist/src/planner/nodes/remote-query-node.js.map +1 -0
  271. package/dist/src/planner/nodes/retrieve-node.d.ts +46 -0
  272. package/dist/src/planner/nodes/retrieve-node.d.ts.map +1 -0
  273. package/dist/src/planner/nodes/retrieve-node.js +77 -0
  274. package/dist/src/planner/nodes/retrieve-node.js.map +1 -0
  275. package/dist/src/planner/nodes/returning-node.d.ts +4 -3
  276. package/dist/src/planner/nodes/returning-node.d.ts.map +1 -1
  277. package/dist/src/planner/nodes/returning-node.js +44 -3
  278. package/dist/src/planner/nodes/returning-node.js.map +1 -1
  279. package/dist/src/planner/nodes/sequencing-node.d.ts +1 -1
  280. package/dist/src/planner/nodes/sequencing-node.d.ts.map +1 -1
  281. package/dist/src/planner/nodes/sequencing-node.js.map +1 -1
  282. package/dist/src/planner/nodes/set-operation-node.d.ts +1 -1
  283. package/dist/src/planner/nodes/set-operation-node.d.ts.map +1 -1
  284. package/dist/src/planner/nodes/set-operation-node.js.map +1 -1
  285. package/dist/src/planner/nodes/sort.d.ts +11 -2
  286. package/dist/src/planner/nodes/sort.d.ts.map +1 -1
  287. package/dist/src/planner/nodes/sort.js +23 -2
  288. package/dist/src/planner/nodes/sort.js.map +1 -1
  289. package/dist/src/planner/nodes/stream-aggregate.d.ts.map +1 -1
  290. package/dist/src/planner/nodes/stream-aggregate.js +4 -1
  291. package/dist/src/planner/nodes/stream-aggregate.js.map +1 -1
  292. package/dist/src/planner/nodes/table-access-nodes.d.ts +7 -1
  293. package/dist/src/planner/nodes/table-access-nodes.d.ts.map +1 -1
  294. package/dist/src/planner/nodes/table-access-nodes.js +22 -4
  295. package/dist/src/planner/nodes/table-access-nodes.js.map +1 -1
  296. package/dist/src/planner/nodes/table-function-call.d.ts +2 -1
  297. package/dist/src/planner/nodes/table-function-call.d.ts.map +1 -1
  298. package/dist/src/planner/nodes/table-function-call.js +12 -5
  299. package/dist/src/planner/nodes/table-function-call.js.map +1 -1
  300. package/dist/src/planner/nodes/transaction-node.js +2 -2
  301. package/dist/src/planner/nodes/transaction-node.js.map +1 -1
  302. package/dist/src/planner/nodes/update-node.d.ts +7 -1
  303. package/dist/src/planner/nodes/update-node.d.ts.map +1 -1
  304. package/dist/src/planner/nodes/update-node.js +11 -2
  305. package/dist/src/planner/nodes/update-node.js.map +1 -1
  306. package/dist/src/planner/nodes/view-reference-node.js.map +1 -1
  307. package/dist/src/planner/nodes/window-function.js.map +1 -1
  308. package/dist/src/planner/nodes/window-node.js.map +1 -1
  309. package/dist/src/planner/optimizer-tuning.d.ts +11 -0
  310. package/dist/src/planner/optimizer-tuning.d.ts.map +1 -1
  311. package/dist/src/planner/optimizer-tuning.js +6 -0
  312. package/dist/src/planner/optimizer-tuning.js.map +1 -1
  313. package/dist/src/planner/optimizer.d.ts +17 -3
  314. package/dist/src/planner/optimizer.d.ts.map +1 -1
  315. package/dist/src/planner/optimizer.js +159 -67
  316. package/dist/src/planner/optimizer.js.map +1 -1
  317. package/dist/src/planner/planning-context.d.ts +5 -3
  318. package/dist/src/planner/planning-context.d.ts.map +1 -1
  319. package/dist/src/planner/planning-context.js +2 -0
  320. package/dist/src/planner/planning-context.js.map +1 -1
  321. package/dist/src/planner/resolve.d.ts +3 -2
  322. package/dist/src/planner/resolve.d.ts.map +1 -1
  323. package/dist/src/planner/resolve.js +6 -5
  324. package/dist/src/planner/resolve.js.map +1 -1
  325. package/dist/src/planner/rules/access/rule-select-access-path.d.ts +8 -3
  326. package/dist/src/planner/rules/access/rule-select-access-path.d.ts.map +1 -1
  327. package/dist/src/planner/rules/access/rule-select-access-path.js +206 -47
  328. package/dist/src/planner/rules/access/rule-select-access-path.js.map +1 -1
  329. package/dist/src/planner/rules/aggregate/rule-aggregate-streaming.d.ts +10 -3
  330. package/dist/src/planner/rules/aggregate/rule-aggregate-streaming.d.ts.map +1 -1
  331. package/dist/src/planner/rules/aggregate/rule-aggregate-streaming.js +95 -87
  332. package/dist/src/planner/rules/aggregate/rule-aggregate-streaming.js.map +1 -1
  333. package/dist/src/planner/rules/cache/rule-cte-optimization.d.ts +8 -2
  334. package/dist/src/planner/rules/cache/rule-cte-optimization.d.ts.map +1 -1
  335. package/dist/src/planner/rules/cache/rule-cte-optimization.js +24 -13
  336. package/dist/src/planner/rules/cache/rule-cte-optimization.js.map +1 -1
  337. package/dist/src/planner/rules/cache/rule-materialization-advisory.d.ts +9 -2
  338. package/dist/src/planner/rules/cache/rule-materialization-advisory.d.ts.map +1 -1
  339. package/dist/src/planner/rules/cache/rule-materialization-advisory.js +14 -7
  340. package/dist/src/planner/rules/cache/rule-materialization-advisory.js.map +1 -1
  341. package/dist/src/planner/rules/cache/rule-mutating-subquery-cache.d.ts +9 -3
  342. package/dist/src/planner/rules/cache/rule-mutating-subquery-cache.d.ts.map +1 -1
  343. package/dist/src/planner/rules/cache/rule-mutating-subquery-cache.js +34 -37
  344. package/dist/src/planner/rules/cache/rule-mutating-subquery-cache.js.map +1 -1
  345. package/dist/src/planner/rules/join/rule-join-greedy-commute.d.ts +14 -0
  346. package/dist/src/planner/rules/join/rule-join-greedy-commute.d.ts.map +1 -0
  347. package/dist/src/planner/rules/join/rule-join-greedy-commute.js +33 -0
  348. package/dist/src/planner/rules/join/rule-join-greedy-commute.js.map +1 -0
  349. package/dist/src/planner/rules/join/rule-join-key-inference.d.ts +11 -0
  350. package/dist/src/planner/rules/join/rule-join-key-inference.d.ts.map +1 -0
  351. package/dist/src/planner/rules/join/rule-join-key-inference.js +32 -0
  352. package/dist/src/planner/rules/join/rule-join-key-inference.js.map +1 -0
  353. package/dist/src/planner/rules/join/rule-quickpick-enumeration.d.ts +4 -0
  354. package/dist/src/planner/rules/join/rule-quickpick-enumeration.d.ts.map +1 -0
  355. package/dist/src/planner/rules/join/rule-quickpick-enumeration.js +233 -0
  356. package/dist/src/planner/rules/join/rule-quickpick-enumeration.js.map +1 -0
  357. package/dist/src/planner/rules/predicate/rule-predicate-pushdown.d.ts +21 -0
  358. package/dist/src/planner/rules/predicate/rule-predicate-pushdown.d.ts.map +1 -0
  359. package/dist/src/planner/rules/predicate/rule-predicate-pushdown.js +125 -0
  360. package/dist/src/planner/rules/predicate/rule-predicate-pushdown.js.map +1 -0
  361. package/dist/src/planner/rules/retrieve/rule-grow-retrieve.d.ts +21 -0
  362. package/dist/src/planner/rules/retrieve/rule-grow-retrieve.d.ts.map +1 -0
  363. package/dist/src/planner/rules/retrieve/rule-grow-retrieve.js +261 -0
  364. package/dist/src/planner/rules/retrieve/rule-grow-retrieve.js.map +1 -0
  365. package/dist/src/planner/scopes/registered.d.ts +1 -0
  366. package/dist/src/planner/scopes/registered.d.ts.map +1 -1
  367. package/dist/src/planner/scopes/registered.js +7 -0
  368. package/dist/src/planner/scopes/registered.js.map +1 -1
  369. package/dist/src/planner/stats/index.d.ts +0 -17
  370. package/dist/src/planner/stats/index.d.ts.map +1 -1
  371. package/dist/src/planner/stats/index.js +0 -58
  372. package/dist/src/planner/stats/index.js.map +1 -1
  373. package/dist/src/planner/util/deferred-constraint.d.ts +14 -0
  374. package/dist/src/planner/util/deferred-constraint.d.ts.map +1 -0
  375. package/dist/src/planner/util/deferred-constraint.js +85 -0
  376. package/dist/src/planner/util/deferred-constraint.js.map +1 -0
  377. package/dist/src/planner/util/key-utils.d.ts +15 -0
  378. package/dist/src/planner/util/key-utils.d.ts.map +1 -0
  379. package/dist/src/planner/util/key-utils.js +43 -0
  380. package/dist/src/planner/util/key-utils.js.map +1 -0
  381. package/dist/src/planner/validation/plan-validator.d.ts.map +1 -1
  382. package/dist/src/planner/validation/plan-validator.js +1 -0
  383. package/dist/src/planner/validation/plan-validator.js.map +1 -1
  384. package/dist/src/runtime/deferred-constraint-queue.d.ts +33 -0
  385. package/dist/src/runtime/deferred-constraint-queue.d.ts.map +1 -0
  386. package/dist/src/runtime/deferred-constraint-queue.js +172 -0
  387. package/dist/src/runtime/deferred-constraint-queue.js.map +1 -0
  388. package/dist/src/runtime/emission-context.d.ts +9 -3
  389. package/dist/src/runtime/emission-context.d.ts.map +1 -1
  390. package/dist/src/runtime/emission-context.js +5 -1
  391. package/dist/src/runtime/emission-context.js.map +1 -1
  392. package/dist/src/runtime/emit/add-constraint.d.ts.map +1 -1
  393. package/dist/src/runtime/emit/add-constraint.js +22 -4
  394. package/dist/src/runtime/emit/add-constraint.js.map +1 -1
  395. package/dist/src/runtime/emit/aggregate.d.ts.map +1 -1
  396. package/dist/src/runtime/emit/aggregate.js +3 -2
  397. package/dist/src/runtime/emit/aggregate.js.map +1 -1
  398. package/dist/src/runtime/emit/array-index.js.map +1 -1
  399. package/dist/src/runtime/emit/binary.d.ts.map +1 -1
  400. package/dist/src/runtime/emit/binary.js +9 -2
  401. package/dist/src/runtime/emit/binary.js.map +1 -1
  402. package/dist/src/runtime/emit/cache.d.ts.map +1 -1
  403. package/dist/src/runtime/emit/cache.js +1 -1
  404. package/dist/src/runtime/emit/cache.js.map +1 -1
  405. package/dist/src/runtime/emit/cast.d.ts.map +1 -1
  406. package/dist/src/runtime/emit/cast.js.map +1 -1
  407. package/dist/src/runtime/emit/constraint-check.d.ts.map +1 -1
  408. package/dist/src/runtime/emit/constraint-check.js +110 -23
  409. package/dist/src/runtime/emit/constraint-check.js.map +1 -1
  410. package/dist/src/runtime/emit/create-assertion.d.ts +5 -0
  411. package/dist/src/runtime/emit/create-assertion.d.ts.map +1 -0
  412. package/dist/src/runtime/emit/create-assertion.js +70 -0
  413. package/dist/src/runtime/emit/create-assertion.js.map +1 -0
  414. package/dist/src/runtime/emit/cte-reference.d.ts.map +1 -1
  415. package/dist/src/runtime/emit/cte-reference.js.map +1 -1
  416. package/dist/src/runtime/emit/cte.d.ts.map +1 -1
  417. package/dist/src/runtime/emit/cte.js.map +1 -1
  418. package/dist/src/runtime/emit/distinct.d.ts.map +1 -1
  419. package/dist/src/runtime/emit/distinct.js.map +1 -1
  420. package/dist/src/runtime/emit/dml-executor.d.ts.map +1 -1
  421. package/dist/src/runtime/emit/dml-executor.js +17 -9
  422. package/dist/src/runtime/emit/dml-executor.js.map +1 -1
  423. package/dist/src/runtime/emit/drop-assertion.d.ts +5 -0
  424. package/dist/src/runtime/emit/drop-assertion.d.ts.map +1 -0
  425. package/dist/src/runtime/emit/drop-assertion.js +30 -0
  426. package/dist/src/runtime/emit/drop-assertion.js.map +1 -0
  427. package/dist/src/runtime/emit/filter.d.ts.map +1 -1
  428. package/dist/src/runtime/emit/filter.js.map +1 -1
  429. package/dist/src/runtime/emit/join.d.ts.map +1 -1
  430. package/dist/src/runtime/emit/join.js.map +1 -1
  431. package/dist/src/runtime/emit/limit-offset.d.ts.map +1 -1
  432. package/dist/src/runtime/emit/limit-offset.js.map +1 -1
  433. package/dist/src/runtime/emit/pragma.js.map +1 -1
  434. package/dist/src/runtime/emit/project.d.ts.map +1 -1
  435. package/dist/src/runtime/emit/project.js.map +1 -1
  436. package/dist/src/runtime/emit/recursive-cte.d.ts.map +1 -1
  437. package/dist/src/runtime/emit/recursive-cte.js +1 -1
  438. package/dist/src/runtime/emit/recursive-cte.js.map +1 -1
  439. package/dist/src/runtime/emit/remote-query.d.ts +9 -0
  440. package/dist/src/runtime/emit/remote-query.d.ts.map +1 -0
  441. package/dist/src/runtime/emit/remote-query.js +30 -0
  442. package/dist/src/runtime/emit/remote-query.js.map +1 -0
  443. package/dist/src/runtime/emit/retrieve.d.ts +5 -0
  444. package/dist/src/runtime/emit/retrieve.d.ts.map +1 -0
  445. package/dist/src/runtime/emit/retrieve.js +9 -0
  446. package/dist/src/runtime/emit/retrieve.js.map +1 -0
  447. package/dist/src/runtime/emit/returning.d.ts.map +1 -1
  448. package/dist/src/runtime/emit/returning.js +1 -1
  449. package/dist/src/runtime/emit/returning.js.map +1 -1
  450. package/dist/src/runtime/emit/scalar-function.d.ts.map +1 -1
  451. package/dist/src/runtime/emit/scalar-function.js.map +1 -1
  452. package/dist/src/runtime/emit/scan.d.ts.map +1 -1
  453. package/dist/src/runtime/emit/scan.js +20 -5
  454. package/dist/src/runtime/emit/scan.js.map +1 -1
  455. package/dist/src/runtime/emit/schema-declarative.d.ts +8 -0
  456. package/dist/src/runtime/emit/schema-declarative.d.ts.map +1 -0
  457. package/dist/src/runtime/emit/schema-declarative.js +163 -0
  458. package/dist/src/runtime/emit/schema-declarative.js.map +1 -0
  459. package/dist/src/runtime/emit/sequencing.d.ts.map +1 -1
  460. package/dist/src/runtime/emit/sequencing.js.map +1 -1
  461. package/dist/src/runtime/emit/set-operation.d.ts.map +1 -1
  462. package/dist/src/runtime/emit/set-operation.js +6 -6
  463. package/dist/src/runtime/emit/set-operation.js.map +1 -1
  464. package/dist/src/runtime/emit/sort.d.ts.map +1 -1
  465. package/dist/src/runtime/emit/sort.js.map +1 -1
  466. package/dist/src/runtime/emit/subquery.d.ts +1 -1
  467. package/dist/src/runtime/emit/subquery.d.ts.map +1 -1
  468. package/dist/src/runtime/emit/subquery.js +6 -6
  469. package/dist/src/runtime/emit/subquery.js.map +1 -1
  470. package/dist/src/runtime/emit/transaction.d.ts.map +1 -1
  471. package/dist/src/runtime/emit/transaction.js +48 -8
  472. package/dist/src/runtime/emit/transaction.js.map +1 -1
  473. package/dist/src/runtime/emit/values.d.ts.map +1 -1
  474. package/dist/src/runtime/emit/values.js.map +1 -1
  475. package/dist/src/runtime/emit/window.d.ts.map +1 -1
  476. package/dist/src/runtime/emit/window.js.map +1 -1
  477. package/dist/src/runtime/emitters.d.ts.map +1 -1
  478. package/dist/src/runtime/emitters.js +1 -0
  479. package/dist/src/runtime/emitters.js.map +1 -1
  480. package/dist/src/runtime/register.d.ts.map +1 -1
  481. package/dist/src/runtime/register.js +16 -2
  482. package/dist/src/runtime/register.js.map +1 -1
  483. package/dist/src/runtime/scheduler.js.map +1 -1
  484. package/dist/src/runtime/types.d.ts +2 -2
  485. package/dist/src/runtime/types.d.ts.map +1 -1
  486. package/dist/src/runtime/types.js +4 -1
  487. package/dist/src/runtime/types.js.map +1 -1
  488. package/dist/src/runtime/utils.d.ts +2 -2
  489. package/dist/src/runtime/utils.d.ts.map +1 -1
  490. package/dist/src/runtime/utils.js +1 -0
  491. package/dist/src/runtime/utils.js.map +1 -1
  492. package/dist/src/schema/assertion.d.ts +19 -0
  493. package/dist/src/schema/assertion.d.ts.map +1 -0
  494. package/dist/src/schema/assertion.js +2 -0
  495. package/dist/src/schema/assertion.js.map +1 -0
  496. package/dist/src/schema/catalog.d.ts +44 -0
  497. package/dist/src/schema/catalog.d.ts.map +1 -0
  498. package/dist/src/schema/catalog.js +148 -0
  499. package/dist/src/schema/catalog.js.map +1 -0
  500. package/dist/src/schema/change-events.d.ts +2 -2
  501. package/dist/src/schema/change-events.d.ts.map +1 -1
  502. package/dist/src/schema/column.d.ts +2 -0
  503. package/dist/src/schema/column.d.ts.map +1 -1
  504. package/dist/src/schema/column.js.map +1 -1
  505. package/dist/src/schema/declared-schema-manager.d.ts +42 -0
  506. package/dist/src/schema/declared-schema-manager.d.ts.map +1 -0
  507. package/dist/src/schema/declared-schema-manager.js +71 -0
  508. package/dist/src/schema/declared-schema-manager.js.map +1 -0
  509. package/dist/src/schema/function.d.ts +3 -2
  510. package/dist/src/schema/function.d.ts.map +1 -1
  511. package/dist/src/schema/function.js.map +1 -1
  512. package/dist/src/schema/manager.d.ts +8 -3
  513. package/dist/src/schema/manager.d.ts.map +1 -1
  514. package/dist/src/schema/manager.js +32 -3
  515. package/dist/src/schema/manager.js.map +1 -1
  516. package/dist/src/schema/schema-differ.d.ts +34 -0
  517. package/dist/src/schema/schema-differ.d.ts.map +1 -0
  518. package/dist/src/schema/schema-differ.js +157 -0
  519. package/dist/src/schema/schema-differ.js.map +1 -0
  520. package/dist/src/schema/schema-hasher.d.ts +10 -0
  521. package/dist/src/schema/schema-hasher.d.ts.map +1 -0
  522. package/dist/src/schema/schema-hasher.js +39 -0
  523. package/dist/src/schema/schema-hasher.js.map +1 -0
  524. package/dist/src/schema/schema.d.ts +7 -0
  525. package/dist/src/schema/schema.d.ts.map +1 -1
  526. package/dist/src/schema/schema.js +19 -0
  527. package/dist/src/schema/schema.js.map +1 -1
  528. package/dist/src/schema/table.d.ts +28 -3
  529. package/dist/src/schema/table.d.ts.map +1 -1
  530. package/dist/src/schema/table.js +17 -2
  531. package/dist/src/schema/table.js.map +1 -1
  532. package/dist/src/schema/window-function.d.ts.map +1 -1
  533. package/dist/src/schema/window-function.js.map +1 -1
  534. package/dist/src/util/ast-stringify.d.ts.map +1 -1
  535. package/dist/src/util/ast-stringify.js +116 -3
  536. package/dist/src/util/ast-stringify.js.map +1 -1
  537. package/dist/src/util/environment.js.map +1 -1
  538. package/dist/src/util/plugin-loader.d.ts +25 -0
  539. package/dist/src/util/plugin-loader.d.ts.map +1 -1
  540. package/dist/src/util/plugin-loader.js +137 -0
  541. package/dist/src/util/plugin-loader.js.map +1 -1
  542. package/dist/src/util/row-descriptor.d.ts +1 -1
  543. package/dist/src/util/row-descriptor.d.ts.map +1 -1
  544. package/dist/src/util/row-descriptor.js.map +1 -1
  545. package/dist/src/util/serialization.d.ts +3 -0
  546. package/dist/src/util/serialization.d.ts.map +1 -1
  547. package/dist/src/util/serialization.js +1 -0
  548. package/dist/src/util/serialization.js.map +1 -1
  549. package/dist/src/vtab/best-access-plan.d.ts +1 -1
  550. package/dist/src/vtab/best-access-plan.d.ts.map +1 -1
  551. package/dist/src/vtab/best-access-plan.js +1 -0
  552. package/dist/src/vtab/best-access-plan.js.map +1 -1
  553. package/dist/src/vtab/manifest.d.ts.map +1 -1
  554. package/dist/src/vtab/memory/layer/base.d.ts.map +1 -1
  555. package/dist/src/vtab/memory/layer/base.js +2 -0
  556. package/dist/src/vtab/memory/layer/base.js.map +1 -1
  557. package/dist/src/vtab/memory/layer/manager.d.ts +2 -1
  558. package/dist/src/vtab/memory/layer/manager.d.ts.map +1 -1
  559. package/dist/src/vtab/memory/layer/manager.js +24 -6
  560. package/dist/src/vtab/memory/layer/manager.js.map +1 -1
  561. package/dist/src/vtab/memory/layer/safe-iterate.d.ts.map +1 -1
  562. package/dist/src/vtab/memory/layer/safe-iterate.js.map +1 -1
  563. package/dist/src/vtab/memory/module.d.ts.map +1 -1
  564. package/dist/src/vtab/memory/module.js +5 -0
  565. package/dist/src/vtab/memory/module.js.map +1 -1
  566. package/dist/src/vtab/memory/table.d.ts +2 -1
  567. package/dist/src/vtab/memory/table.d.ts.map +1 -1
  568. package/dist/src/vtab/memory/table.js +3 -2
  569. package/dist/src/vtab/memory/table.js.map +1 -1
  570. package/dist/src/vtab/memory/utils/logging.d.ts +2 -2
  571. package/dist/src/vtab/memory/utils/logging.d.ts.map +1 -1
  572. package/dist/src/vtab/memory/utils/logging.js +6 -3
  573. package/dist/src/vtab/memory/utils/logging.js.map +1 -1
  574. package/dist/src/vtab/module.d.ts +25 -0
  575. package/dist/src/vtab/module.d.ts.map +1 -1
  576. package/dist/src/vtab/table.d.ts +17 -4
  577. package/dist/src/vtab/table.d.ts.map +1 -1
  578. package/dist/src/vtab/table.js.map +1 -1
  579. package/package.json +4 -2
  580. package/src/common/errors.ts +1 -1
  581. package/src/common/json-types.ts +16 -0
  582. package/src/common/types.ts +2 -0
  583. package/src/core/database-options.ts +8 -8
  584. package/src/core/database.ts +537 -71
  585. package/src/core/statement.ts +3 -1
  586. package/src/func/builtins/builtin-window-functions.ts +11 -10
  587. package/src/func/builtins/datetime.ts +42 -0
  588. package/src/func/builtins/explain.ts +186 -44
  589. package/src/func/builtins/index.ts +5 -2
  590. package/src/func/builtins/json-helpers.ts +21 -21
  591. package/src/func/builtins/json-tvf.ts +8 -9
  592. package/src/func/builtins/json.ts +10 -9
  593. package/src/func/builtins/schema.ts +24 -4
  594. package/src/func/context.ts +7 -0
  595. package/src/func/registration.ts +5 -1
  596. package/src/index.ts +2 -2
  597. package/src/parser/ast.ts +582 -481
  598. package/src/parser/lexer.ts +27 -21
  599. package/src/parser/parser.ts +3336 -2776
  600. package/src/parser/visitor.ts +1 -0
  601. package/src/planner/analysis/binding-collector.ts +83 -0
  602. package/src/planner/analysis/const-evaluator.ts +1 -1
  603. package/src/planner/analysis/const-pass.ts +3 -2
  604. package/src/planner/analysis/constraint-extractor.ts +610 -123
  605. package/src/planner/analysis/predicate-normalizer.ts +237 -0
  606. package/src/planner/building/alter-table.ts +3 -1
  607. package/src/planner/building/block.ts +93 -78
  608. package/src/planner/building/constraint-builder.ts +173 -114
  609. package/src/planner/building/create-assertion.ts +7 -0
  610. package/src/planner/building/declare-schema.ts +22 -0
  611. package/src/planner/building/delete.ts +214 -171
  612. package/src/planner/building/drop-assertion.ts +11 -0
  613. package/src/planner/building/expression.ts +1 -0
  614. package/src/planner/building/function-call.ts +6 -5
  615. package/src/planner/building/insert.ts +428 -349
  616. package/src/planner/building/pragma.ts +1 -0
  617. package/src/planner/building/schema-resolution.ts +176 -176
  618. package/src/planner/building/select-aggregates.ts +5 -3
  619. package/src/planner/building/select-compound.ts +22 -13
  620. package/src/planner/building/select-context.ts +6 -6
  621. package/src/planner/building/select-modifiers.ts +8 -7
  622. package/src/planner/building/select-projections.ts +177 -176
  623. package/src/planner/building/select-window.ts +259 -253
  624. package/src/planner/building/select.ts +531 -520
  625. package/src/planner/building/table-function.ts +49 -48
  626. package/src/planner/building/table.ts +9 -3
  627. package/src/planner/building/update.ts +319 -270
  628. package/src/planner/building/with.ts +7 -7
  629. package/src/planner/debug.ts +1 -0
  630. package/src/planner/framework/characteristics.ts +503 -0
  631. package/src/planner/framework/context.ts +23 -6
  632. package/src/planner/framework/pass.ts +354 -0
  633. package/src/planner/nodes/aggregate-node.ts +52 -7
  634. package/src/planner/nodes/array-index-node.ts +1 -1
  635. package/src/planner/nodes/cache-node.ts +11 -2
  636. package/src/planner/nodes/constraint-check-node.ts +14 -5
  637. package/src/planner/nodes/create-assertion-node.ts +51 -0
  638. package/src/planner/nodes/create-index-node.ts +2 -2
  639. package/src/planner/nodes/create-table-node.ts +2 -2
  640. package/src/planner/nodes/cte-node.ts +30 -4
  641. package/src/planner/nodes/cte-reference-node.ts +2 -2
  642. package/src/planner/nodes/declarative-schema.ts +221 -0
  643. package/src/planner/nodes/delete-node.ts +102 -96
  644. package/src/planner/nodes/distinct-node.ts +20 -6
  645. package/src/planner/nodes/dml-executor-node.ts +1 -1
  646. package/src/planner/nodes/drop-assertion-node.ts +50 -0
  647. package/src/planner/nodes/drop-table-node.ts +1 -0
  648. package/src/planner/nodes/filter.ts +56 -3
  649. package/src/planner/nodes/insert-node.ts +126 -120
  650. package/src/planner/nodes/internal-recursive-cte-ref-node.ts +5 -20
  651. package/src/planner/nodes/join-node.ts +122 -4
  652. package/src/planner/nodes/limit-offset.ts +132 -113
  653. package/src/planner/nodes/plan-node-type.ts +95 -87
  654. package/src/planner/nodes/plan-node.ts +8 -8
  655. package/src/planner/nodes/pragma.ts +6 -3
  656. package/src/planner/nodes/project-node.ts +101 -7
  657. package/src/planner/nodes/recursive-cte-node.ts +6 -6
  658. package/src/planner/nodes/reference.ts +334 -312
  659. package/src/planner/nodes/remote-query-node.ts +73 -0
  660. package/src/planner/nodes/retrieve-node.ts +86 -0
  661. package/src/planner/nodes/returning-node.ts +52 -10
  662. package/src/planner/nodes/sequencing-node.ts +2 -2
  663. package/src/planner/nodes/set-operation-node.ts +3 -3
  664. package/src/planner/nodes/sort.ts +33 -4
  665. package/src/planner/nodes/stream-aggregate.ts +5 -1
  666. package/src/planner/nodes/table-access-nodes.ts +31 -6
  667. package/src/planner/nodes/table-function-call.ts +134 -127
  668. package/src/planner/nodes/transaction-node.ts +2 -2
  669. package/src/planner/nodes/update-node.ts +138 -132
  670. package/src/planner/nodes/view-reference-node.ts +1 -1
  671. package/src/planner/nodes/window-function.ts +2 -2
  672. package/src/planner/nodes/window-node.ts +1 -1
  673. package/src/planner/optimizer-tuning.ts +18 -0
  674. package/src/planner/optimizer.ts +171 -96
  675. package/src/planner/planning-context.ts +10 -3
  676. package/src/planner/resolve.ts +10 -9
  677. package/src/planner/rules/README.md +96 -96
  678. package/src/planner/rules/access/rule-select-access-path.ts +384 -184
  679. package/src/planner/rules/aggregate/rule-aggregate-streaming.ts +118 -104
  680. package/src/planner/rules/cache/rule-cte-optimization.ts +29 -16
  681. package/src/planner/rules/cache/rule-materialization-advisory.ts +14 -7
  682. package/src/planner/rules/cache/rule-mutating-subquery-cache.ts +38 -44
  683. package/src/planner/rules/join/rule-join-greedy-commute.ts +48 -0
  684. package/src/planner/rules/join/rule-join-key-inference.ts +35 -0
  685. package/src/planner/rules/join/rule-quickpick-enumeration.ts +267 -0
  686. package/src/planner/rules/predicate/rule-predicate-pushdown.ts +144 -0
  687. package/src/planner/rules/retrieve/rule-grow-retrieve.ts +337 -0
  688. package/src/planner/scopes/registered.ts +8 -0
  689. package/src/planner/stats/index.ts +0 -65
  690. package/src/planner/util/key-utils.ts +46 -0
  691. package/src/planner/validation/plan-validator.ts +5 -3
  692. package/src/runtime/deferred-constraint-queue.ts +196 -0
  693. package/src/runtime/emission-context.ts +11 -5
  694. package/src/runtime/emit/add-constraint.ts +26 -5
  695. package/src/runtime/emit/aggregate.ts +9 -7
  696. package/src/runtime/emit/array-index.ts +2 -2
  697. package/src/runtime/emit/binary.ts +26 -8
  698. package/src/runtime/emit/cache.ts +2 -2
  699. package/src/runtime/emit/cast.ts +2 -2
  700. package/src/runtime/emit/constraint-check.ts +148 -26
  701. package/src/runtime/emit/create-assertion.ts +82 -0
  702. package/src/runtime/emit/cte-reference.ts +2 -2
  703. package/src/runtime/emit/cte.ts +2 -2
  704. package/src/runtime/emit/distinct.ts +2 -2
  705. package/src/runtime/emit/dml-executor.ts +20 -12
  706. package/src/runtime/emit/drop-assertion.ts +45 -0
  707. package/src/runtime/emit/filter.ts +4 -4
  708. package/src/runtime/emit/join.ts +8 -7
  709. package/src/runtime/emit/limit-offset.ts +2 -2
  710. package/src/runtime/emit/pragma.ts +2 -2
  711. package/src/runtime/emit/project.ts +2 -2
  712. package/src/runtime/emit/recursive-cte.ts +2 -2
  713. package/src/runtime/emit/remote-query.ts +47 -0
  714. package/src/runtime/emit/retrieve.ts +15 -0
  715. package/src/runtime/emit/returning.ts +4 -4
  716. package/src/runtime/emit/scalar-function.ts +2 -2
  717. package/src/runtime/emit/scan.ts +29 -13
  718. package/src/runtime/emit/schema-declarative.ts +205 -0
  719. package/src/runtime/emit/sequencing.ts +3 -3
  720. package/src/runtime/emit/set-operation.ts +7 -7
  721. package/src/runtime/emit/sort.ts +2 -2
  722. package/src/runtime/emit/subquery.ts +10 -10
  723. package/src/runtime/emit/transaction.ts +46 -8
  724. package/src/runtime/emit/values.ts +2 -2
  725. package/src/runtime/emit/window.ts +3 -3
  726. package/src/runtime/emitters.ts +1 -0
  727. package/src/runtime/register.ts +150 -135
  728. package/src/runtime/scheduler.ts +2 -2
  729. package/src/runtime/types.ts +10 -7
  730. package/src/runtime/utils.ts +3 -2
  731. package/src/schema/assertion.ts +21 -0
  732. package/src/schema/catalog.ts +208 -0
  733. package/src/schema/change-events.ts +2 -2
  734. package/src/schema/column.ts +2 -0
  735. package/src/schema/declared-schema-manager.ts +82 -0
  736. package/src/schema/function.ts +5 -2
  737. package/src/schema/manager.ts +742 -709
  738. package/src/schema/schema-differ.ts +214 -0
  739. package/src/schema/schema-hasher.ts +44 -0
  740. package/src/schema/schema.ts +23 -0
  741. package/src/schema/table.ts +398 -364
  742. package/src/schema/window-function.ts +2 -0
  743. package/src/util/ast-stringify.ts +869 -764
  744. package/src/util/environment.ts +2 -2
  745. package/src/util/plugin-loader.ts +184 -0
  746. package/src/util/row-descriptor.ts +1 -1
  747. package/src/util/serialization.ts +2 -0
  748. package/src/vtab/best-access-plan.ts +2 -1
  749. package/src/vtab/manifest.ts +1 -0
  750. package/src/vtab/memory/index.ts +178 -178
  751. package/src/vtab/memory/layer/base.ts +275 -273
  752. package/src/vtab/memory/layer/interface.ts +47 -47
  753. package/src/vtab/memory/layer/manager.ts +33 -11
  754. package/src/vtab/memory/layer/safe-iterate.ts +3 -3
  755. package/src/vtab/memory/layer/transaction.ts +229 -229
  756. package/src/vtab/memory/module.ts +24 -18
  757. package/src/vtab/memory/table.ts +256 -253
  758. package/src/vtab/memory/utils/logging.ts +6 -3
  759. package/src/vtab/module.ts +170 -140
  760. package/src/vtab/table.ts +162 -143
@@ -1 +1 @@
1
- {"version":3,"file":"constraint-extractor.js","sourceRoot":"","sources":["../../../../src/planner/analysis/constraint-extractor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"constraint-extractor.js","sourceRoot":"","sources":["../../../../src/planner/analysis/constraint-extractor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import type { ScalarPlanNode } from '../nodes/plan-node.js';
2
+ /**
3
+ * Normalize a predicate for push-down and constraint extraction.
4
+ *
5
+ * Transformations (conservative, no CNF/DNF expansion):
6
+ * - Push NOT down (De Morgan) for AND/OR and double-negation elimination
7
+ * - Invert simple comparisons under NOT (>, >=, <, <=)
8
+ * - Canonicalize nested AND/OR by flattening binary trees
9
+ * - Normalize child predicates recursively
10
+ *
11
+ * Notes:
12
+ * - We intentionally do NOT distribute OR over AND (to avoid blow-ups)
13
+ * - NOT of equality becomes "!="; extractor treats it as residual (acceptable)
14
+ * - NOT of BETWEEN toggles the node's 'not' flag
15
+ */
16
+ export declare function normalizePredicate(expr: ScalarPlanNode): ScalarPlanNode;
17
+ //# sourceMappingURL=predicate-normalizer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"predicate-normalizer.d.ts","sourceRoot":"","sources":["../../../../src/planner/analysis/predicate-normalizer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAO5D;;;;;;;;;;;;;GAaG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,cAAc,GAAG,cAAc,CAEvE"}
@@ -0,0 +1,222 @@
1
+ import { PlanNodeType } from '../nodes/plan-node-type.js';
2
+ import { BinaryOpNode, UnaryOpNode, LiteralNode, BetweenNode } from '../nodes/scalar.js';
3
+ import { InNode } from '../nodes/subquery.js';
4
+ /**
5
+ * Normalize a predicate for push-down and constraint extraction.
6
+ *
7
+ * Transformations (conservative, no CNF/DNF expansion):
8
+ * - Push NOT down (De Morgan) for AND/OR and double-negation elimination
9
+ * - Invert simple comparisons under NOT (>, >=, <, <=)
10
+ * - Canonicalize nested AND/OR by flattening binary trees
11
+ * - Normalize child predicates recursively
12
+ *
13
+ * Notes:
14
+ * - We intentionally do NOT distribute OR over AND (to avoid blow-ups)
15
+ * - NOT of equality becomes "!="; extractor treats it as residual (acceptable)
16
+ * - NOT of BETWEEN toggles the node's 'not' flag
17
+ */
18
+ export function normalizePredicate(expr) {
19
+ return normalize(expr);
20
+ }
21
+ function normalize(node) {
22
+ switch (node.nodeType) {
23
+ case PlanNodeType.UnaryOp: {
24
+ const u = node;
25
+ if (u.expression.operator === 'NOT') {
26
+ return pushNotDown(u.operand);
27
+ }
28
+ // Recurse
29
+ const normalizedOperand = normalize(u.operand);
30
+ return normalizedOperand === u.operand
31
+ ? u
32
+ : new UnaryOpNode(u.scope, u.expression, normalizedOperand);
33
+ }
34
+ case PlanNodeType.BinaryOp: {
35
+ const b = node;
36
+ const op = b.expression.operator;
37
+ if (op === 'AND' || op === 'OR') {
38
+ // Normalize children first
39
+ const left = normalize(b.left);
40
+ const right = normalize(b.right);
41
+ // Flatten nested same-op nodes
42
+ const parts = collectAssociative(op, [left, right]);
43
+ if (op === 'OR') {
44
+ const collapsed = tryCollapseOrToIn(b.scope, parts);
45
+ if (collapsed)
46
+ return collapsed;
47
+ }
48
+ return rebuildAssociative(b.scope, op, parts, b.expression);
49
+ }
50
+ // Other binary ops: normalize children only
51
+ const nLeft = normalize(b.left);
52
+ const nRight = normalize(b.right);
53
+ if (nLeft === b.left && nRight === b.right) {
54
+ return b;
55
+ }
56
+ return new BinaryOpNode(b.scope, b.expression, nLeft, nRight);
57
+ }
58
+ case PlanNodeType.Between: {
59
+ // Normalize sub-expressions only
60
+ const bt = node;
61
+ const nExpr = normalize(bt.expr);
62
+ const nLower = normalize(bt.lower);
63
+ const nUpper = normalize(bt.upper);
64
+ if (nExpr === bt.expr && nLower === bt.lower && nUpper === bt.upper) {
65
+ return bt;
66
+ }
67
+ return new BetweenNode(bt.scope, bt.expression, nExpr, nLower, nUpper);
68
+ }
69
+ default:
70
+ return node;
71
+ }
72
+ }
73
+ function pushNotDown(node) {
74
+ // NOT over NOT
75
+ if (node.nodeType === PlanNodeType.UnaryOp) {
76
+ const u = node;
77
+ if (u.expression.operator === 'NOT') {
78
+ return normalize(u.operand);
79
+ }
80
+ // NOT over other unary ops: leave as residual NOT(op)
81
+ const nOp = normalize(u.operand);
82
+ return nOp === u.operand ? new UnaryOpNode(u.scope, u.expression, nOp) : new UnaryOpNode(u.scope, u.expression, nOp);
83
+ }
84
+ if (node.nodeType === PlanNodeType.BinaryOp) {
85
+ const b = node;
86
+ const op = b.expression.operator;
87
+ // De Morgan for boolean connectives
88
+ if (op === 'AND' || op === 'OR') {
89
+ const negLeft = pushNotDown(b.left);
90
+ const negRight = pushNotDown(b.right);
91
+ const flipped = op === 'AND' ? 'OR' : 'AND';
92
+ const expr = { type: 'binary', operator: flipped, left: b.expression.left, right: b.expression.right };
93
+ // Rebuild and normalize/flatten
94
+ const combined = rebuildAssociative(b.scope, flipped, [negLeft, negRight], expr);
95
+ return combined;
96
+ }
97
+ // Invert simple comparisons
98
+ const inverted = invertComparisonIfPossible(b);
99
+ if (inverted) {
100
+ return normalize(inverted);
101
+ }
102
+ // Otherwise, keep as NOT(binary) by wrapping a NOT
103
+ const normalizedLeft = normalize(b.left);
104
+ const normalizedRight = normalize(b.right);
105
+ const rebuilt = (normalizedLeft === b.left && normalizedRight === b.right)
106
+ ? b
107
+ : new BinaryOpNode(b.scope, b.expression, normalizedLeft, normalizedRight);
108
+ const notAst = { type: 'unary', operator: 'NOT', expr: b.expression };
109
+ return new UnaryOpNode(b.scope, notAst, rebuilt);
110
+ }
111
+ if (node.nodeType === PlanNodeType.Between) {
112
+ // Toggle the NOT flag on BETWEEN
113
+ const bt = node;
114
+ const ast = { ...bt.expression, not: !bt.expression.not };
115
+ const nExpr = normalize(bt.expr);
116
+ const nLower = normalize(bt.lower);
117
+ const nUpper = normalize(bt.upper);
118
+ return new BetweenNode(bt.scope, ast, nExpr, nLower, nUpper);
119
+ }
120
+ // Generic fallback: NOT(expr) as unary
121
+ const notAst = { type: 'unary', operator: 'NOT', expr: node.expression };
122
+ return new UnaryOpNode(node.scope, notAst, normalize(node));
123
+ }
124
+ function collectAssociative(op, parts) {
125
+ const result = [];
126
+ for (const p of parts) {
127
+ if (p.nodeType === PlanNodeType.BinaryOp) {
128
+ const b = p;
129
+ if (b.expression.operator === op) {
130
+ result.push(...collectAssociative(op, [b.left, b.right]));
131
+ continue;
132
+ }
133
+ }
134
+ result.push(p);
135
+ }
136
+ return result;
137
+ }
138
+ function rebuildAssociative(scope, op, parts, baseExpr) {
139
+ if (parts.length === 0) {
140
+ // Degenerate; shouldn't happen
141
+ return new LiteralNode(scope, { type: 'literal', value: 1 });
142
+ }
143
+ if (parts.length === 1) {
144
+ return parts[0];
145
+ }
146
+ // Left-associative rebuild
147
+ let acc = parts[0];
148
+ for (let i = 1; i < parts.length; i++) {
149
+ const right = parts[i];
150
+ const newAst = { type: 'binary', operator: op, left: acc.expression ?? baseExpr.left, right: right.expression ?? baseExpr.right };
151
+ acc = new BinaryOpNode(scope, newAst, acc, right);
152
+ }
153
+ return acc;
154
+ }
155
+ function invertComparisonIfPossible(b) {
156
+ const op = b.expression.operator;
157
+ const flippedOp = flipComparison(op);
158
+ if (!flippedOp) {
159
+ return null;
160
+ }
161
+ const ast = { type: 'binary', operator: flippedOp, left: b.expression.left, right: b.expression.right };
162
+ return new BinaryOpNode(b.scope, ast, b.left, b.right);
163
+ }
164
+ function flipComparison(op) {
165
+ switch (op) {
166
+ case '>': return '<=';
167
+ case '>=': return '<';
168
+ case '<': return '>=';
169
+ case '<=': return '>';
170
+ case '=': return '!='; // extractor will treat as residual; acceptable
171
+ default: return null;
172
+ }
173
+ }
174
+ // Attempt to collapse OR of equalities into an IN list when:
175
+ // - All disjuncts are of the form (col = literal)
176
+ // - The same column is used
177
+ // - Literal list is small (<= 32) to avoid large INs
178
+ function tryCollapseOrToIn(scope, disjuncts) {
179
+ const values = [];
180
+ let column = null;
181
+ for (const d of disjuncts) {
182
+ if (d.nodeType !== PlanNodeType.BinaryOp)
183
+ return null;
184
+ const b = d;
185
+ if (b.expression.operator !== '=')
186
+ return null;
187
+ // Two patterns: col = lit OR lit = col
188
+ let col = null;
189
+ let lit = null;
190
+ if (b.left.nodeType === PlanNodeType.ColumnReference && b.right.nodeType === PlanNodeType.Literal) {
191
+ col = b.left;
192
+ lit = b.right;
193
+ }
194
+ else if (b.left.nodeType === PlanNodeType.Literal && b.right.nodeType === PlanNodeType.ColumnReference) {
195
+ col = b.right;
196
+ lit = b.left;
197
+ }
198
+ else {
199
+ return null;
200
+ }
201
+ if (!column) {
202
+ column = col;
203
+ }
204
+ else if (column.attributeId !== col.attributeId) {
205
+ return null;
206
+ }
207
+ values.push(lit);
208
+ if (values.length > 32)
209
+ return null; // avoid creating huge IN lists
210
+ }
211
+ if (!column || values.length === 0)
212
+ return null;
213
+ // Build an InNode with constant values
214
+ const ast = {
215
+ type: 'in',
216
+ expr: column.expression,
217
+ values: values.map(v => v.expression)
218
+ };
219
+ const inNode = new InNode(column.scope, ast, column, undefined, values);
220
+ return inNode;
221
+ }
222
+ //# sourceMappingURL=predicate-normalizer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"predicate-normalizer.js","sourceRoot":"","sources":["../../../../src/planner/analysis/predicate-normalizer.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"alter-table.d.ts","sourceRoot":"","sources":["../../../../src/planner/building/alter-table.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,GAAG,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAK9D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEtD,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,eAAe,EACpB,IAAI,EAAE,GAAG,CAAC,cAAc,GACvB,QAAQ,CAmCV"}
1
+ {"version":3,"file":"alter-table.d.ts","sourceRoot":"","sources":["../../../../src/planner/building/alter-table.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,GAAG,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAK9D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEtD,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,eAAe,EACpB,IAAI,EAAE,GAAG,CAAC,cAAc,GACvB,QAAQ,CAqCV"}
@@ -3,7 +3,8 @@ import { buildTableReference } from './table.js';
3
3
  import { QuereusError } from '../../common/errors.js';
4
4
  import { StatusCode } from '../../common/types.js';
5
5
  export function buildAlterTableStmt(ctx, stmt) {
6
- const tableReference = buildTableReference({ type: 'table', table: stmt.table }, ctx);
6
+ const tableRetrieve = buildTableReference({ type: 'table', table: stmt.table }, ctx);
7
+ const tableReference = tableRetrieve.tableRef; // Extract the actual TableReferenceNode
7
8
  switch (stmt.action.type) {
8
9
  case 'addConstraint': {
9
10
  // Convert RowOp[] (e.g., ['insert','update']) to bitmask understood by runtime.
@@ -20,7 +21,9 @@ export function buildAlterTableStmt(ctx, stmt) {
20
21
  case 'dropColumn':
21
22
  throw new QuereusError(`ALTER TABLE ${stmt.action.type} is not yet implemented`, StatusCode.UNSUPPORTED);
22
23
  default:
23
- throw new QuereusError(`Unknown ALTER TABLE action: ${stmt.action.type}`, StatusCode.INTERNAL);
24
+ throw new QuereusError(
25
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
26
+ `Unknown ALTER TABLE action: ${stmt.action.type}`, StatusCode.INTERNAL);
24
27
  }
25
28
  }
26
29
  //# sourceMappingURL=alter-table.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"alter-table.js","sourceRoot":"","sources":["../../../../src/planner/building/alter-table.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAGnD,MAAM,UAAU,mBAAmB,CACjC,GAAoB,EACpB,IAAwB;IAExB,MAAM,cAAc,GAAG,mBAAmB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,GAAG,CAAC,CAAC;IAEtF,QAAQ,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACzB,KAAK,eAAe,CAAC,CAAC,CAAC;YACrB,gFAAgF;YAChF,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,IAAI,CAAC,QAAQ,EAAC,QAAQ,CAAC,CAAC;YAE5E,MAAM,qBAAqB,GAAG;gBAC5B,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU;gBACzB,UAAU;aACX,CAAC;YAEF,OAAO,IAAI,iBAAiB,CAC1B,GAAG,CAAC,KAAK,EACT,cAAc,EACd,qBAAqB,CACtB,CAAC;QACN,CAAC;QAEC,KAAK,aAAa,CAAC;QACnB,KAAK,cAAc,CAAC;QACpB,KAAK,WAAW,CAAC;QACjB,KAAK,YAAY;YACf,MAAM,IAAI,YAAY,CACpB,eAAe,IAAI,CAAC,MAAM,CAAC,IAAI,yBAAyB,EACxD,UAAU,CAAC,WAAW,CACvB,CAAC;QAEJ;YACE,MAAM,IAAI,YAAY,CACpB,+BAAgC,IAAI,CAAC,MAAc,CAAC,IAAI,EAAE,EAC1D,UAAU,CAAC,QAAQ,CACpB,CAAC;IACN,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"alter-table.js","sourceRoot":"","sources":["../../../../src/planner/building/alter-table.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAGnD,MAAM,UAAU,mBAAmB,CACjC,GAAoB,EACpB,IAAwB;IAExB,MAAM,aAAa,GAAG,mBAAmB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,GAAG,CAAC,CAAC;IACrF,MAAM,cAAc,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC,wCAAwC;IAEvF,QAAQ,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACzB,KAAK,eAAe,CAAC,CAAC,CAAC;YACrB,gFAAgF;YAChF,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,IAAI,CAAC,QAAQ,EAAC,QAAQ,CAAC,CAAC;YAE5E,MAAM,qBAAqB,GAAG;gBAC5B,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU;gBACzB,UAAU;aACX,CAAC;YAEF,OAAO,IAAI,iBAAiB,CAC1B,GAAG,CAAC,KAAK,EACT,cAAc,EACd,qBAAqB,CACtB,CAAC;QACN,CAAC;QAEC,KAAK,aAAa,CAAC;QACnB,KAAK,cAAc,CAAC;QACpB,KAAK,WAAW,CAAC;QACjB,KAAK,YAAY;YACf,MAAM,IAAI,YAAY,CACpB,eAAe,IAAI,CAAC,MAAM,CAAC,IAAI,yBAAyB,EACxD,UAAU,CAAC,WAAW,CACvB,CAAC;QAEJ;YACE,MAAM,IAAI,YAAY;YACpB,8DAA8D;YAC9D,+BAAgC,IAAI,CAAC,MAAc,CAAC,IAAI,EAAE,EAC1D,UAAU,CAAC,QAAQ,CACpB,CAAC;IACN,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"block.d.ts","sourceRoot":"","sources":["../../../../src/planner/building/block.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,KAAK,GAAG,MAAM,qBAAqB,CAAC;AAG3C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAgB9D,wBAAgB,UAAU,CAAC,GAAG,EAAE,eAAe,EAAE,UAAU,EAAE,GAAG,CAAC,SAAS,EAAE,GAAG,SAAS,CAuDvF"}
1
+ {"version":3,"file":"block.d.ts","sourceRoot":"","sources":["../../../../src/planner/building/block.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,KAAK,GAAG,MAAM,qBAAqB,CAAC;AAG3C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAmB9D,wBAAgB,UAAU,CAAC,GAAG,EAAE,eAAe,EAAE,UAAU,EAAE,GAAG,CAAC,SAAS,EAAE,GAAG,SAAS,CAmEvF"}
@@ -5,6 +5,8 @@ import { buildCreateIndexStmt } from './ddl.js';
5
5
  import { buildDropTableStmt } from './drop-table.js';
6
6
  import { buildCreateViewStmt } from './create-view.js';
7
7
  import { buildDropViewStmt } from './drop-view.js';
8
+ import { buildCreateAssertionStmt } from './create-assertion.js';
9
+ import { buildDropAssertionStmt } from './drop-assertion.js';
8
10
  import { buildInsertStmt } from './insert.js';
9
11
  import { buildUpdateStmt } from './update.js';
10
12
  import { buildDeleteStmt } from './delete.js';
@@ -14,6 +16,7 @@ import { buildPragmaStmt } from './pragma.js';
14
16
  import { buildValuesStmt } from './select.js';
15
17
  import { quereusError } from '../../common/errors.js';
16
18
  import { StatusCode } from '../../common/types.js';
19
+ import { buildDeclareSchemaStmt, buildDiffSchemaStmt, buildApplySchemaStmt, buildExplainSchemaStmt } from './declare-schema.js';
17
20
  export function buildBlock(ctx, statements) {
18
21
  const plannedStatements = statements.map((stmt) => {
19
22
  switch (stmt.type) {
@@ -26,6 +29,8 @@ export function buildBlock(ctx, statements) {
26
29
  return buildCreateIndexStmt(ctx, stmt);
27
30
  case 'createView':
28
31
  return buildCreateViewStmt(ctx, stmt);
32
+ case 'createAssertion':
33
+ return buildCreateAssertionStmt(ctx, stmt);
29
34
  case 'drop':
30
35
  if (stmt.objectType === 'table') {
31
36
  return buildDropTableStmt(ctx, stmt);
@@ -33,6 +38,9 @@ export function buildBlock(ctx, statements) {
33
38
  else if (stmt.objectType === 'view') {
34
39
  return buildDropViewStmt(ctx, stmt);
35
40
  }
41
+ else if (stmt.objectType === 'assertion') {
42
+ return buildDropAssertionStmt(ctx, stmt);
43
+ }
36
44
  break;
37
45
  case 'insert':
38
46
  return buildInsertStmt(ctx, stmt);
@@ -56,6 +64,14 @@ export function buildBlock(ctx, statements) {
56
64
  return buildAlterTableStmt(ctx, stmt);
57
65
  case 'values':
58
66
  return buildValuesStmt(ctx, stmt);
67
+ case 'declareSchema':
68
+ return buildDeclareSchemaStmt(ctx, stmt);
69
+ case 'diffSchema':
70
+ return buildDiffSchemaStmt(ctx, stmt);
71
+ case 'applySchema':
72
+ return buildApplySchemaStmt(ctx, stmt);
73
+ case 'explainSchema':
74
+ return buildExplainSchemaStmt(ctx, stmt);
59
75
  default:
60
76
  // Throw an exception for unsupported statement types
61
77
  quereusError(`Unsupported statement type: ${stmt.type}`, StatusCode.UNSUPPORTED, undefined, stmt);
@@ -1 +1 @@
1
- {"version":3,"file":"block.js","sourceRoot":"","sources":["../../../../src/planner/building/block.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"block.js","sourceRoot":"","sources":["../../../../src/planner/building/block.ts"],"names":[],"mappings":"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"}
@@ -7,5 +7,5 @@ import type { ConstraintCheck } from '../nodes/constraint-check-node.js';
7
7
  * Builds constraint check expressions at plan time.
8
8
  * This allows the optimizer to see and optimize constraint expressions.
9
9
  */
10
- export declare function buildConstraintChecks(ctx: PlanningContext, tableSchema: TableSchema, operation: RowOpFlag, oldAttributes: Attribute[], newAttributes: Attribute[], _flatRowDescriptor: RowDescriptor): ConstraintCheck[];
10
+ export declare function buildConstraintChecks(ctx: PlanningContext, tableSchema: TableSchema, operation: RowOpFlag, oldAttributes: Attribute[], newAttributes: Attribute[], _flatRowDescriptor: RowDescriptor, contextAttributes?: Attribute[]): ConstraintCheck[];
11
11
  //# sourceMappingURL=constraint-builder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constraint-builder.d.ts","sourceRoot":"","sources":["../../../../src/planner/building/constraint-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAuB,MAAM,uBAAuB,CAAC;AAC9E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AAezE;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,eAAe,EACpB,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,SAAS,EACpB,aAAa,EAAE,SAAS,EAAE,EAC1B,aAAa,EAAE,SAAS,EAAE,EAC1B,kBAAkB,EAAE,aAAa,GAChC,eAAe,EAAE,CAmFnB"}
1
+ {"version":3,"file":"constraint-builder.d.ts","sourceRoot":"","sources":["../../../../src/planner/building/constraint-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAuB,MAAM,uBAAuB,CAAC;AAC9E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AAgBzE;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,eAAe,EACpB,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,SAAS,EACpB,aAAa,EAAE,SAAS,EAAE,EAC1B,aAAa,EAAE,SAAS,EAAE,EAC1B,kBAAkB,EAAE,aAAa,EACjC,iBAAiB,GAAE,SAAS,EAAO,GAClC,eAAe,EAAE,CA6HnB"}
@@ -1,5 +1,6 @@
1
1
  import { RegisteredScope } from '../scopes/registered.js';
2
2
  import { buildExpression } from './expression.js';
3
+ import { PlanNodeType } from '../nodes/plan-node-type.js';
3
4
  import { ColumnReferenceNode } from '../nodes/reference.js';
4
5
  /**
5
6
  * Determines if a constraint should be checked for the given operation
@@ -12,7 +13,7 @@ function shouldCheckConstraint(constraint, operation) {
12
13
  * Builds constraint check expressions at plan time.
13
14
  * This allows the optimizer to see and optimize constraint expressions.
14
15
  */
15
- export function buildConstraintChecks(ctx, tableSchema, operation, oldAttributes, newAttributes, _flatRowDescriptor) {
16
+ export function buildConstraintChecks(ctx, tableSchema, operation, oldAttributes, newAttributes, _flatRowDescriptor, contextAttributes = []) {
16
17
  // Build attribute ID mappings for column registration
17
18
  const newAttrIdByCol = {};
18
19
  const oldAttrIdByCol = {};
@@ -35,6 +36,16 @@ export function buildConstraintChecks(ctx, tableSchema, operation, oldAttributes
35
36
  return applicableConstraints.map(constraint => {
36
37
  // Create scope with OLD/NEW column access for constraint evaluation
37
38
  const constraintScope = new RegisteredScope(ctx.scope);
39
+ // Register mutation context variables FIRST (so they shadow column names if conflicts exist)
40
+ contextAttributes.forEach((attr, contextVarIndex) => {
41
+ if (contextVarIndex < (tableSchema.mutationContext?.length || 0)) {
42
+ const contextVar = tableSchema.mutationContext[contextVarIndex];
43
+ const varNameLower = contextVar.name.toLowerCase();
44
+ // Register both unqualified and qualified names
45
+ constraintScope.subscribeFactory(varNameLower, (exp, s) => new ColumnReferenceNode(s, exp, attr.type, attr.id, contextVarIndex));
46
+ constraintScope.subscribeFactory(`context.${varNameLower}`, (exp, s) => new ColumnReferenceNode(s, exp, attr.type, attr.id, contextVarIndex));
47
+ }
48
+ });
38
49
  // Register column symbols (similar to current emitConstraintCheck logic)
39
50
  tableSchema.columns.forEach((tableColumn, tableColIndex) => {
40
51
  const colNameLower = tableColumn.name.toLowerCase();
@@ -72,8 +83,46 @@ export function buildConstraintChecks(ctx, tableSchema, operation, oldAttributes
72
83
  }
73
84
  });
74
85
  // Build the constraint expression using the specialized scope
75
- const expression = buildExpression({ ...ctx, scope: constraintScope }, constraint.expr);
76
- return { constraint, expression };
86
+ // Temporarily set the current schema to match the table's schema
87
+ // This ensures unqualified table references in CHECK constraints resolve correctly
88
+ const originalCurrentSchema = ctx.schemaManager.getCurrentSchemaName();
89
+ const needsSchemaSwitch = tableSchema.schemaName !== originalCurrentSchema;
90
+ if (needsSchemaSwitch) {
91
+ ctx.schemaManager.setCurrentSchema(tableSchema.schemaName);
92
+ }
93
+ try {
94
+ const expression = buildExpression({ ...ctx, scope: constraintScope }, constraint.expr);
95
+ // Heuristic: auto-defer if the expression contains a subquery
96
+ // or references a different relation via attribute bindings (NEW/OLD already localized).
97
+ const needsDeferred = containsSubquery(expression);
98
+ return {
99
+ constraint,
100
+ expression,
101
+ deferrable: needsDeferred,
102
+ initiallyDeferred: needsDeferred,
103
+ containsSubquery: needsDeferred
104
+ };
105
+ }
106
+ finally {
107
+ // Restore original schema context
108
+ if (needsSchemaSwitch) {
109
+ ctx.schemaManager.setCurrentSchema(originalCurrentSchema);
110
+ }
111
+ }
77
112
  });
78
113
  }
114
+ function containsSubquery(expr) {
115
+ const stack = [expr];
116
+ while (stack.length) {
117
+ const n = stack.pop();
118
+ if (n.nodeType === PlanNodeType.ScalarSubquery || n.nodeType === PlanNodeType.Exists) {
119
+ return true;
120
+ }
121
+ for (const c of n.getChildren()) {
122
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
123
+ stack.push(c);
124
+ }
125
+ }
126
+ return false;
127
+ }
79
128
  //# sourceMappingURL=constraint-builder.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constraint-builder.js","sourceRoot":"","sources":["../../../../src/planner/building/constraint-builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"constraint-builder.js","sourceRoot":"","sources":["../../../../src/planner/building/constraint-builder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import type { PlanningContext } from '../planning-context.js';
2
+ import type * as AST from '../../parser/ast.js';
3
+ import { CreateAssertionNode } from '../nodes/create-assertion-node.js';
4
+ export declare function buildCreateAssertionStmt(ctx: PlanningContext, stmt: AST.CreateAssertionStmt): CreateAssertionNode;
5
+ //# sourceMappingURL=create-assertion.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-assertion.d.ts","sourceRoot":"","sources":["../../../../src/planner/building/create-assertion.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,KAAK,GAAG,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAExE,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,eAAe,EAAE,IAAI,EAAE,GAAG,CAAC,mBAAmB,GAAG,mBAAmB,CAEjH"}
@@ -0,0 +1,5 @@
1
+ import { CreateAssertionNode } from '../nodes/create-assertion-node.js';
2
+ export function buildCreateAssertionStmt(ctx, stmt) {
3
+ return new CreateAssertionNode(ctx.scope, stmt.name, stmt.check);
4
+ }
5
+ //# sourceMappingURL=create-assertion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-assertion.js","sourceRoot":"","sources":["../../../../src/planner/building/create-assertion.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAExE,MAAM,UAAU,wBAAwB,CAAC,GAAoB,EAAE,IAA6B;IAC3F,OAAO,IAAI,mBAAmB,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;AAClE,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type * as AST from '../../parser/ast.js';
2
+ import type { PlanningContext } from '../planning-context.js';
3
+ import type { PlanNode } from '../nodes/plan-node.js';
4
+ export declare function buildDeclareSchemaStmt(ctx: PlanningContext, stmt: AST.DeclareSchemaStmt): PlanNode;
5
+ export declare function buildDiffSchemaStmt(ctx: PlanningContext, stmt: AST.DiffSchemaStmt): PlanNode;
6
+ export declare function buildApplySchemaStmt(ctx: PlanningContext, stmt: AST.ApplySchemaStmt): PlanNode;
7
+ export declare function buildExplainSchemaStmt(ctx: PlanningContext, stmt: AST.ExplainSchemaStmt): PlanNode;
8
+ //# sourceMappingURL=declare-schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"declare-schema.d.ts","sourceRoot":"","sources":["../../../../src/planner/building/declare-schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,GAAG,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAGtD,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,eAAe,EAAE,IAAI,EAAE,GAAG,CAAC,iBAAiB,GAAG,QAAQ,CAElG;AAED,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,eAAe,EAAE,IAAI,EAAE,GAAG,CAAC,cAAc,GAAG,QAAQ,CAE5F;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,eAAe,EAAE,IAAI,EAAE,GAAG,CAAC,eAAe,GAAG,QAAQ,CAE9F;AAED,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,eAAe,EAAE,IAAI,EAAE,GAAG,CAAC,iBAAiB,GAAG,QAAQ,CAElG"}
@@ -0,0 +1,14 @@
1
+ import { DeclareSchemaNode, DiffSchemaNode, ApplySchemaNode, ExplainSchemaNode } from '../nodes/declarative-schema.js';
2
+ export function buildDeclareSchemaStmt(ctx, stmt) {
3
+ return new DeclareSchemaNode(ctx.scope, stmt);
4
+ }
5
+ export function buildDiffSchemaStmt(ctx, stmt) {
6
+ return new DiffSchemaNode(ctx.scope, stmt);
7
+ }
8
+ export function buildApplySchemaStmt(ctx, stmt) {
9
+ return new ApplySchemaNode(ctx.scope, stmt);
10
+ }
11
+ export function buildExplainSchemaStmt(ctx, stmt) {
12
+ return new ExplainSchemaNode(ctx.scope, stmt);
13
+ }
14
+ //# sourceMappingURL=declare-schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"declare-schema.js","sourceRoot":"","sources":["../../../../src/planner/building/declare-schema.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAEvH,MAAM,UAAU,sBAAsB,CAAC,GAAoB,EAAE,IAA2B;IACvF,OAAO,IAAI,iBAAiB,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,GAAoB,EAAE,IAAwB;IACjF,OAAO,IAAI,cAAc,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,GAAoB,EAAE,IAAyB;IACnF,OAAO,IAAI,eAAe,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,GAAoB,EAAE,IAA2B;IACvF,OAAO,IAAI,iBAAiB,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AAC/C,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"delete.d.ts","sourceRoot":"","sources":["../../../../src/planner/building/delete.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,GAAG,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAI9D,OAAO,EAAE,QAAQ,EAAgD,MAAM,uBAAuB,CAAC;AAc/F,wBAAgB,eAAe,CAC7B,GAAG,EAAE,eAAe,EACpB,IAAI,EAAE,GAAG,CAAC,UAAU,GACnB,QAAQ,CAoJV"}
1
+ {"version":3,"file":"delete.d.ts","sourceRoot":"","sources":["../../../../src/planner/building/delete.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,GAAG,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAI9D,OAAO,EAAE,QAAQ,EAAoF,MAAM,uBAAuB,CAAC;AAcnI,wBAAgB,eAAe,CAC7B,GAAG,EAAE,eAAe,EACpB,IAAI,EAAE,GAAG,CAAC,UAAU,GACnB,QAAQ,CA+LV"}