@quereus/quereus 0.7.2 → 0.7.4

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 (566) hide show
  1. package/package.json +3 -3
  2. package/dist/src/common/constants.js.map +0 -1
  3. package/dist/src/common/datatype.js.map +0 -1
  4. package/dist/src/common/errors.js.map +0 -1
  5. package/dist/src/common/json-types.js.map +0 -1
  6. package/dist/src/common/logger.js.map +0 -1
  7. package/dist/src/common/type-inference.js.map +0 -1
  8. package/dist/src/common/types.js.map +0 -1
  9. package/dist/src/core/database-options.js.map +0 -1
  10. package/dist/src/core/database.js.map +0 -1
  11. package/dist/src/core/param.js.map +0 -1
  12. package/dist/src/core/statement.js.map +0 -1
  13. package/dist/src/func/builtins/aggregate.js.map +0 -1
  14. package/dist/src/func/builtins/builtin-window-functions.js.map +0 -1
  15. package/dist/src/func/builtins/conversion.js.map +0 -1
  16. package/dist/src/func/builtins/datetime.js.map +0 -1
  17. package/dist/src/func/builtins/explain.js.map +0 -1
  18. package/dist/src/func/builtins/generation.js.map +0 -1
  19. package/dist/src/func/builtins/index.js.map +0 -1
  20. package/dist/src/func/builtins/json-helpers.js.map +0 -1
  21. package/dist/src/func/builtins/json-tvf.js.map +0 -1
  22. package/dist/src/func/builtins/json.js.map +0 -1
  23. package/dist/src/func/builtins/scalar.js.map +0 -1
  24. package/dist/src/func/builtins/schema.js.map +0 -1
  25. package/dist/src/func/builtins/string.js.map +0 -1
  26. package/dist/src/func/builtins/timespan.js.map +0 -1
  27. package/dist/src/func/context.js.map +0 -1
  28. package/dist/src/func/registration.js.map +0 -1
  29. package/dist/src/index.js.map +0 -1
  30. package/dist/src/parser/ast.js.map +0 -1
  31. package/dist/src/parser/index.js.map +0 -1
  32. package/dist/src/parser/lexer.js.map +0 -1
  33. package/dist/src/parser/parser.js.map +0 -1
  34. package/dist/src/parser/utils.js.map +0 -1
  35. package/dist/src/parser/visitor.js.map +0 -1
  36. package/dist/src/planner/analysis/binding-collector.js.map +0 -1
  37. package/dist/src/planner/analysis/const-evaluator.js.map +0 -1
  38. package/dist/src/planner/analysis/const-pass.js.map +0 -1
  39. package/dist/src/planner/analysis/constraint-extractor.js.map +0 -1
  40. package/dist/src/planner/analysis/predicate-normalizer.js.map +0 -1
  41. package/dist/src/planner/building/alter-table.js.map +0 -1
  42. package/dist/src/planner/building/block.js.map +0 -1
  43. package/dist/src/planner/building/constraint-builder.js.map +0 -1
  44. package/dist/src/planner/building/create-assertion.js.map +0 -1
  45. package/dist/src/planner/building/create-view.js.map +0 -1
  46. package/dist/src/planner/building/ddl.js.map +0 -1
  47. package/dist/src/planner/building/declare-schema.js.map +0 -1
  48. package/dist/src/planner/building/delete.js.map +0 -1
  49. package/dist/src/planner/building/drop-assertion.js.map +0 -1
  50. package/dist/src/planner/building/drop-table.js.map +0 -1
  51. package/dist/src/planner/building/drop-view.js.map +0 -1
  52. package/dist/src/planner/building/expression.js.map +0 -1
  53. package/dist/src/planner/building/function-call.js.map +0 -1
  54. package/dist/src/planner/building/insert.js.map +0 -1
  55. package/dist/src/planner/building/pragma.js.map +0 -1
  56. package/dist/src/planner/building/schema-resolution.js.map +0 -1
  57. package/dist/src/planner/building/select-aggregates.js.map +0 -1
  58. package/dist/src/planner/building/select-compound.js.map +0 -1
  59. package/dist/src/planner/building/select-context.js.map +0 -1
  60. package/dist/src/planner/building/select-modifiers.js.map +0 -1
  61. package/dist/src/planner/building/select-projections.js.map +0 -1
  62. package/dist/src/planner/building/select-window.js.map +0 -1
  63. package/dist/src/planner/building/select.js.map +0 -1
  64. package/dist/src/planner/building/table-function.js.map +0 -1
  65. package/dist/src/planner/building/table.js.map +0 -1
  66. package/dist/src/planner/building/transaction.js.map +0 -1
  67. package/dist/src/planner/building/update.js.map +0 -1
  68. package/dist/src/planner/building/with.js.map +0 -1
  69. package/dist/src/planner/cache/correlation-detector.js.map +0 -1
  70. package/dist/src/planner/cache/materialization-advisory.js.map +0 -1
  71. package/dist/src/planner/cache/reference-graph.js.map +0 -1
  72. package/dist/src/planner/cost/index.js.map +0 -1
  73. package/dist/src/planner/debug/logger-utils.js.map +0 -1
  74. package/dist/src/planner/debug.js.map +0 -1
  75. package/dist/src/planner/framework/characteristics.js.map +0 -1
  76. package/dist/src/planner/framework/context.js.map +0 -1
  77. package/dist/src/planner/framework/pass.js.map +0 -1
  78. package/dist/src/planner/framework/physical-utils.js.map +0 -1
  79. package/dist/src/planner/framework/registry.js.map +0 -1
  80. package/dist/src/planner/framework/trace.js.map +0 -1
  81. package/dist/src/planner/nodes/add-constraint-node.js.map +0 -1
  82. package/dist/src/planner/nodes/aggregate-function.js.map +0 -1
  83. package/dist/src/planner/nodes/aggregate-node.js.map +0 -1
  84. package/dist/src/planner/nodes/array-index-node.js.map +0 -1
  85. package/dist/src/planner/nodes/block.js.map +0 -1
  86. package/dist/src/planner/nodes/cache-node.js.map +0 -1
  87. package/dist/src/planner/nodes/constraint-check-node.js.map +0 -1
  88. package/dist/src/planner/nodes/create-assertion-node.js.map +0 -1
  89. package/dist/src/planner/nodes/create-index-node.js.map +0 -1
  90. package/dist/src/planner/nodes/create-table-node.js.map +0 -1
  91. package/dist/src/planner/nodes/create-view-node.js.map +0 -1
  92. package/dist/src/planner/nodes/cte-node.js.map +0 -1
  93. package/dist/src/planner/nodes/cte-reference-node.js.map +0 -1
  94. package/dist/src/planner/nodes/declarative-schema.js.map +0 -1
  95. package/dist/src/planner/nodes/delete-node.js.map +0 -1
  96. package/dist/src/planner/nodes/distinct-node.js.map +0 -1
  97. package/dist/src/planner/nodes/dml-executor-node.js.map +0 -1
  98. package/dist/src/planner/nodes/drop-assertion-node.js.map +0 -1
  99. package/dist/src/planner/nodes/drop-table-node.js.map +0 -1
  100. package/dist/src/planner/nodes/drop-view-node.js.map +0 -1
  101. package/dist/src/planner/nodes/filter.js.map +0 -1
  102. package/dist/src/planner/nodes/function.js.map +0 -1
  103. package/dist/src/planner/nodes/insert-node.js.map +0 -1
  104. package/dist/src/planner/nodes/internal-recursive-cte-ref-node.js.map +0 -1
  105. package/dist/src/planner/nodes/join-node.js.map +0 -1
  106. package/dist/src/planner/nodes/limit-offset.js.map +0 -1
  107. package/dist/src/planner/nodes/plan-node-type.js.map +0 -1
  108. package/dist/src/planner/nodes/plan-node.js.map +0 -1
  109. package/dist/src/planner/nodes/pragma.js.map +0 -1
  110. package/dist/src/planner/nodes/project-node.js.map +0 -1
  111. package/dist/src/planner/nodes/recursive-cte-node.js.map +0 -1
  112. package/dist/src/planner/nodes/reference.js.map +0 -1
  113. package/dist/src/planner/nodes/remote-query-node.js.map +0 -1
  114. package/dist/src/planner/nodes/retrieve-node.js.map +0 -1
  115. package/dist/src/planner/nodes/returning-node.js.map +0 -1
  116. package/dist/src/planner/nodes/scalar.js.map +0 -1
  117. package/dist/src/planner/nodes/sequencing-node.js.map +0 -1
  118. package/dist/src/planner/nodes/set-operation-node.js.map +0 -1
  119. package/dist/src/planner/nodes/single-row.js.map +0 -1
  120. package/dist/src/planner/nodes/sink-node.js.map +0 -1
  121. package/dist/src/planner/nodes/sort.js.map +0 -1
  122. package/dist/src/planner/nodes/stream-aggregate.js.map +0 -1
  123. package/dist/src/planner/nodes/subquery.js.map +0 -1
  124. package/dist/src/planner/nodes/table-access-nodes.js.map +0 -1
  125. package/dist/src/planner/nodes/table-function-call.js.map +0 -1
  126. package/dist/src/planner/nodes/transaction-node.js.map +0 -1
  127. package/dist/src/planner/nodes/update-node.js.map +0 -1
  128. package/dist/src/planner/nodes/values-node.js.map +0 -1
  129. package/dist/src/planner/nodes/view-reference-node.js.map +0 -1
  130. package/dist/src/planner/nodes/window-function.js.map +0 -1
  131. package/dist/src/planner/nodes/window-node.js.map +0 -1
  132. package/dist/src/planner/optimizer-tuning.js.map +0 -1
  133. package/dist/src/planner/optimizer.js.map +0 -1
  134. package/dist/src/planner/planning-context.js.map +0 -1
  135. package/dist/src/planner/resolve.js.map +0 -1
  136. package/dist/src/planner/rules/access/rule-select-access-path.js.map +0 -1
  137. package/dist/src/planner/rules/aggregate/rule-aggregate-streaming.js.map +0 -1
  138. package/dist/src/planner/rules/cache/rule-cte-optimization.js.map +0 -1
  139. package/dist/src/planner/rules/cache/rule-materialization-advisory.js.map +0 -1
  140. package/dist/src/planner/rules/cache/rule-mutating-subquery-cache.js.map +0 -1
  141. package/dist/src/planner/rules/join/rule-join-greedy-commute.js.map +0 -1
  142. package/dist/src/planner/rules/join/rule-join-key-inference.js.map +0 -1
  143. package/dist/src/planner/rules/join/rule-quickpick-enumeration.js.map +0 -1
  144. package/dist/src/planner/rules/predicate/rule-predicate-pushdown.js.map +0 -1
  145. package/dist/src/planner/rules/retrieve/rule-grow-retrieve.js.map +0 -1
  146. package/dist/src/planner/scopes/aliased.js.map +0 -1
  147. package/dist/src/planner/scopes/base.js.map +0 -1
  148. package/dist/src/planner/scopes/empty.js.map +0 -1
  149. package/dist/src/planner/scopes/global.js.map +0 -1
  150. package/dist/src/planner/scopes/multi.js.map +0 -1
  151. package/dist/src/planner/scopes/param.js.map +0 -1
  152. package/dist/src/planner/scopes/registered.js.map +0 -1
  153. package/dist/src/planner/scopes/scope.js.map +0 -1
  154. package/dist/src/planner/stats/basic-estimates.js.map +0 -1
  155. package/dist/src/planner/stats/index.js.map +0 -1
  156. package/dist/src/planner/type-utils.js.map +0 -1
  157. package/dist/src/planner/util/key-utils.js.map +0 -1
  158. package/dist/src/planner/validation/determinism-validator.js.map +0 -1
  159. package/dist/src/planner/validation/plan-validator.js.map +0 -1
  160. package/dist/src/runtime/async-util.js.map +0 -1
  161. package/dist/src/runtime/cache/shared-cache.js.map +0 -1
  162. package/dist/src/runtime/context-helpers.js.map +0 -1
  163. package/dist/src/runtime/deferred-constraint-queue.js.map +0 -1
  164. package/dist/src/runtime/emission-context.js.map +0 -1
  165. package/dist/src/runtime/emit/add-constraint.js.map +0 -1
  166. package/dist/src/runtime/emit/aggregate.js.map +0 -1
  167. package/dist/src/runtime/emit/array-index.js.map +0 -1
  168. package/dist/src/runtime/emit/between.js.map +0 -1
  169. package/dist/src/runtime/emit/binary.js.map +0 -1
  170. package/dist/src/runtime/emit/block.js.map +0 -1
  171. package/dist/src/runtime/emit/cache.js.map +0 -1
  172. package/dist/src/runtime/emit/case.js.map +0 -1
  173. package/dist/src/runtime/emit/cast.js.map +0 -1
  174. package/dist/src/runtime/emit/collate.js.map +0 -1
  175. package/dist/src/runtime/emit/column-reference.js.map +0 -1
  176. package/dist/src/runtime/emit/constraint-check.js.map +0 -1
  177. package/dist/src/runtime/emit/create-assertion.js.map +0 -1
  178. package/dist/src/runtime/emit/create-index.js.map +0 -1
  179. package/dist/src/runtime/emit/create-table.js.map +0 -1
  180. package/dist/src/runtime/emit/create-view.js.map +0 -1
  181. package/dist/src/runtime/emit/cte-reference.js.map +0 -1
  182. package/dist/src/runtime/emit/cte.js.map +0 -1
  183. package/dist/src/runtime/emit/delete.js.map +0 -1
  184. package/dist/src/runtime/emit/distinct.js.map +0 -1
  185. package/dist/src/runtime/emit/dml-executor.js.map +0 -1
  186. package/dist/src/runtime/emit/drop-assertion.js.map +0 -1
  187. package/dist/src/runtime/emit/drop-table.js.map +0 -1
  188. package/dist/src/runtime/emit/drop-view.js.map +0 -1
  189. package/dist/src/runtime/emit/filter.js.map +0 -1
  190. package/dist/src/runtime/emit/insert.js.map +0 -1
  191. package/dist/src/runtime/emit/internal-recursive-cte-ref.js.map +0 -1
  192. package/dist/src/runtime/emit/join.js.map +0 -1
  193. package/dist/src/runtime/emit/limit-offset.js.map +0 -1
  194. package/dist/src/runtime/emit/literal.js.map +0 -1
  195. package/dist/src/runtime/emit/parameter.js.map +0 -1
  196. package/dist/src/runtime/emit/pragma.js.map +0 -1
  197. package/dist/src/runtime/emit/project.js.map +0 -1
  198. package/dist/src/runtime/emit/recursive-cte.js.map +0 -1
  199. package/dist/src/runtime/emit/remote-query.js.map +0 -1
  200. package/dist/src/runtime/emit/retrieve.js.map +0 -1
  201. package/dist/src/runtime/emit/returning.js.map +0 -1
  202. package/dist/src/runtime/emit/scalar-function.js.map +0 -1
  203. package/dist/src/runtime/emit/scan.js.map +0 -1
  204. package/dist/src/runtime/emit/schema-declarative.js.map +0 -1
  205. package/dist/src/runtime/emit/sequencing.js.map +0 -1
  206. package/dist/src/runtime/emit/set-operation.js.map +0 -1
  207. package/dist/src/runtime/emit/sink.js.map +0 -1
  208. package/dist/src/runtime/emit/sort.js.map +0 -1
  209. package/dist/src/runtime/emit/subquery.js.map +0 -1
  210. package/dist/src/runtime/emit/table-valued-function.js.map +0 -1
  211. package/dist/src/runtime/emit/temporal-arithmetic.js.map +0 -1
  212. package/dist/src/runtime/emit/transaction.js.map +0 -1
  213. package/dist/src/runtime/emit/unary.js.map +0 -1
  214. package/dist/src/runtime/emit/update.js.map +0 -1
  215. package/dist/src/runtime/emit/values.js.map +0 -1
  216. package/dist/src/runtime/emit/window-function.js.map +0 -1
  217. package/dist/src/runtime/emit/window.js.map +0 -1
  218. package/dist/src/runtime/emitters.js.map +0 -1
  219. package/dist/src/runtime/register.js.map +0 -1
  220. package/dist/src/runtime/scheduler.js.map +0 -1
  221. package/dist/src/runtime/types.js.map +0 -1
  222. package/dist/src/runtime/utils.js.map +0 -1
  223. package/dist/src/schema/assertion.js.map +0 -1
  224. package/dist/src/schema/catalog.js.map +0 -1
  225. package/dist/src/schema/change-events.js.map +0 -1
  226. package/dist/src/schema/column.js.map +0 -1
  227. package/dist/src/schema/declared-schema-manager.js.map +0 -1
  228. package/dist/src/schema/function.js.map +0 -1
  229. package/dist/src/schema/manager.js.map +0 -1
  230. package/dist/src/schema/schema-differ.js.map +0 -1
  231. package/dist/src/schema/schema-hasher.js.map +0 -1
  232. package/dist/src/schema/schema.js.map +0 -1
  233. package/dist/src/schema/table.js.map +0 -1
  234. package/dist/src/schema/view.js.map +0 -1
  235. package/dist/src/schema/window-function.js.map +0 -1
  236. package/dist/src/types/builtin-types.js.map +0 -1
  237. package/dist/src/types/index.js.map +0 -1
  238. package/dist/src/types/json-type.js.map +0 -1
  239. package/dist/src/types/logical-type.js.map +0 -1
  240. package/dist/src/types/plugin-interface.js.map +0 -1
  241. package/dist/src/types/registry.js.map +0 -1
  242. package/dist/src/types/temporal-types.js.map +0 -1
  243. package/dist/src/types/validation.js.map +0 -1
  244. package/dist/src/util/affinity.js.map +0 -1
  245. package/dist/src/util/ast-stringify.js.map +0 -1
  246. package/dist/src/util/cached.js.map +0 -1
  247. package/dist/src/util/coercion.js.map +0 -1
  248. package/dist/src/util/comparison.js.map +0 -1
  249. package/dist/src/util/environment.js.map +0 -1
  250. package/dist/src/util/hash.js.map +0 -1
  251. package/dist/src/util/latches.js.map +0 -1
  252. package/dist/src/util/mutation-statement.js.map +0 -1
  253. package/dist/src/util/patterns.js.map +0 -1
  254. package/dist/src/util/plan-formatter.js.map +0 -1
  255. package/dist/src/util/plugin-helper.js.map +0 -1
  256. package/dist/src/util/row-descriptor.js.map +0 -1
  257. package/dist/src/util/serialization.js.map +0 -1
  258. package/dist/src/util/sql-literal.js.map +0 -1
  259. package/dist/src/util/working-table-iterable.js.map +0 -1
  260. package/dist/src/vtab/best-access-plan.js.map +0 -1
  261. package/dist/src/vtab/connection.js.map +0 -1
  262. package/dist/src/vtab/filter-info.js.map +0 -1
  263. package/dist/src/vtab/index-info.js.map +0 -1
  264. package/dist/src/vtab/manifest.js.map +0 -1
  265. package/dist/src/vtab/memory/connection.js.map +0 -1
  266. package/dist/src/vtab/memory/index.js.map +0 -1
  267. package/dist/src/vtab/memory/layer/base-cursor.js.map +0 -1
  268. package/dist/src/vtab/memory/layer/base.js.map +0 -1
  269. package/dist/src/vtab/memory/layer/connection.js.map +0 -1
  270. package/dist/src/vtab/memory/layer/interface.js.map +0 -1
  271. package/dist/src/vtab/memory/layer/manager.js.map +0 -1
  272. package/dist/src/vtab/memory/layer/safe-iterate.js.map +0 -1
  273. package/dist/src/vtab/memory/layer/scan-plan.js.map +0 -1
  274. package/dist/src/vtab/memory/layer/transaction-cursor.js.map +0 -1
  275. package/dist/src/vtab/memory/layer/transaction.js.map +0 -1
  276. package/dist/src/vtab/memory/module.js.map +0 -1
  277. package/dist/src/vtab/memory/table.js.map +0 -1
  278. package/dist/src/vtab/memory/types.js.map +0 -1
  279. package/dist/src/vtab/memory/utils/logging.js.map +0 -1
  280. package/dist/src/vtab/memory/utils/primary-key.js.map +0 -1
  281. package/dist/src/vtab/module.js.map +0 -1
  282. package/dist/src/vtab/table.js.map +0 -1
  283. package/src/common/constants.ts +0 -60
  284. package/src/common/datatype.ts +0 -85
  285. package/src/common/errors.ts +0 -189
  286. package/src/common/json-types.ts +0 -16
  287. package/src/common/logger.ts +0 -97
  288. package/src/common/type-inference.ts +0 -39
  289. package/src/common/types.ts +0 -151
  290. package/src/core/database-options.ts +0 -258
  291. package/src/core/database.ts +0 -1461
  292. package/src/core/param.ts +0 -56
  293. package/src/core/statement.ts +0 -528
  294. package/src/func/builtins/aggregate.ts +0 -269
  295. package/src/func/builtins/builtin-window-functions.ts +0 -166
  296. package/src/func/builtins/conversion.ts +0 -226
  297. package/src/func/builtins/datetime.ts +0 -500
  298. package/src/func/builtins/explain.ts +0 -779
  299. package/src/func/builtins/generation.ts +0 -43
  300. package/src/func/builtins/index.ts +0 -167
  301. package/src/func/builtins/json-helpers.ts +0 -237
  302. package/src/func/builtins/json-tvf.ts +0 -224
  303. package/src/func/builtins/json.ts +0 -588
  304. package/src/func/builtins/scalar.ts +0 -423
  305. package/src/func/builtins/schema.ts +0 -213
  306. package/src/func/builtins/string.ts +0 -306
  307. package/src/func/builtins/timespan.ts +0 -179
  308. package/src/func/context.ts +0 -258
  309. package/src/func/registration.ts +0 -201
  310. package/src/index.ts +0 -172
  311. package/src/parser/ast.ts +0 -581
  312. package/src/parser/index.ts +0 -65
  313. package/src/parser/lexer.ts +0 -806
  314. package/src/parser/parser.ts +0 -3352
  315. package/src/parser/utils.ts +0 -10
  316. package/src/parser/visitor.ts +0 -188
  317. package/src/planner/analysis/README.md +0 -93
  318. package/src/planner/analysis/binding-collector.ts +0 -83
  319. package/src/planner/analysis/const-evaluator.ts +0 -63
  320. package/src/planner/analysis/const-pass.ts +0 -282
  321. package/src/planner/analysis/constraint-extractor.ts +0 -764
  322. package/src/planner/analysis/predicate-normalizer.ts +0 -237
  323. package/src/planner/building/alter-table.ts +0 -49
  324. package/src/planner/building/block.ts +0 -93
  325. package/src/planner/building/constraint-builder.ts +0 -178
  326. package/src/planner/building/create-assertion.ts +0 -7
  327. package/src/planner/building/create-view.ts +0 -29
  328. package/src/planner/building/ddl.ts +0 -24
  329. package/src/planner/building/declare-schema.ts +0 -22
  330. package/src/planner/building/delete.ts +0 -218
  331. package/src/planner/building/drop-assertion.ts +0 -11
  332. package/src/planner/building/drop-table.ts +0 -13
  333. package/src/planner/building/drop-view.ts +0 -19
  334. package/src/planner/building/expression.ts +0 -205
  335. package/src/planner/building/function-call.ts +0 -129
  336. package/src/planner/building/insert.ts +0 -435
  337. package/src/planner/building/pragma.ts +0 -34
  338. package/src/planner/building/schema-resolution.ts +0 -176
  339. package/src/planner/building/select-aggregates.ts +0 -318
  340. package/src/planner/building/select-compound.ts +0 -119
  341. package/src/planner/building/select-context.ts +0 -85
  342. package/src/planner/building/select-modifiers.ts +0 -236
  343. package/src/planner/building/select-projections.ts +0 -177
  344. package/src/planner/building/select-window.ts +0 -259
  345. package/src/planner/building/select.ts +0 -567
  346. package/src/planner/building/table-function.ts +0 -49
  347. package/src/planner/building/table.ts +0 -40
  348. package/src/planner/building/transaction.ts +0 -23
  349. package/src/planner/building/update.ts +0 -331
  350. package/src/planner/building/with.ts +0 -180
  351. package/src/planner/cache/correlation-detector.ts +0 -83
  352. package/src/planner/cache/materialization-advisory.ts +0 -265
  353. package/src/planner/cache/reference-graph.ts +0 -196
  354. package/src/planner/cost/index.ts +0 -169
  355. package/src/planner/debug/logger-utils.ts +0 -68
  356. package/src/planner/debug.ts +0 -480
  357. package/src/planner/framework/README.md +0 -132
  358. package/src/planner/framework/characteristics.ts +0 -503
  359. package/src/planner/framework/context.ts +0 -239
  360. package/src/planner/framework/pass.ts +0 -354
  361. package/src/planner/framework/physical-utils.ts +0 -210
  362. package/src/planner/framework/registry.ts +0 -261
  363. package/src/planner/framework/trace.ts +0 -259
  364. package/src/planner/nodes/add-constraint-node.ts +0 -62
  365. package/src/planner/nodes/aggregate-function.ts +0 -155
  366. package/src/planner/nodes/aggregate-node.ts +0 -267
  367. package/src/planner/nodes/array-index-node.ts +0 -50
  368. package/src/planner/nodes/block.ts +0 -80
  369. package/src/planner/nodes/cache-node.ts +0 -103
  370. package/src/planner/nodes/constraint-check-node.ts +0 -138
  371. package/src/planner/nodes/create-assertion-node.ts +0 -51
  372. package/src/planner/nodes/create-index-node.ts +0 -41
  373. package/src/planner/nodes/create-table-node.ts +0 -35
  374. package/src/planner/nodes/create-view-node.ts +0 -44
  375. package/src/planner/nodes/cte-node.ts +0 -168
  376. package/src/planner/nodes/cte-reference-node.ts +0 -125
  377. package/src/planner/nodes/declarative-schema.ts +0 -221
  378. package/src/planner/nodes/delete-node.ts +0 -102
  379. package/src/planner/nodes/distinct-node.ts +0 -107
  380. package/src/planner/nodes/dml-executor-node.ts +0 -104
  381. package/src/planner/nodes/drop-assertion-node.ts +0 -50
  382. package/src/planner/nodes/drop-table-node.ts +0 -36
  383. package/src/planner/nodes/drop-view-node.ts +0 -37
  384. package/src/planner/nodes/filter.ts +0 -144
  385. package/src/planner/nodes/function.ts +0 -98
  386. package/src/planner/nodes/insert-node.ts +0 -126
  387. package/src/planner/nodes/internal-recursive-cte-ref-node.ts +0 -61
  388. package/src/planner/nodes/join-node.ts +0 -336
  389. package/src/planner/nodes/limit-offset.ts +0 -144
  390. package/src/planner/nodes/plan-node-type.ts +0 -95
  391. package/src/planner/nodes/plan-node.ts +0 -503
  392. package/src/planner/nodes/pragma.ts +0 -98
  393. package/src/planner/nodes/project-node.ts +0 -337
  394. package/src/planner/nodes/recursive-cte-node.ts +0 -158
  395. package/src/planner/nodes/reference.ts +0 -334
  396. package/src/planner/nodes/remote-query-node.ts +0 -73
  397. package/src/planner/nodes/retrieve-node.ts +0 -86
  398. package/src/planner/nodes/returning-node.ts +0 -269
  399. package/src/planner/nodes/scalar.ts +0 -772
  400. package/src/planner/nodes/sequencing-node.ts +0 -113
  401. package/src/planner/nodes/set-operation-node.ts +0 -87
  402. package/src/planner/nodes/single-row.ts +0 -85
  403. package/src/planner/nodes/sink-node.ts +0 -61
  404. package/src/planner/nodes/sort.ts +0 -166
  405. package/src/planner/nodes/stream-aggregate.ts +0 -293
  406. package/src/planner/nodes/subquery.ts +0 -268
  407. package/src/planner/nodes/table-access-nodes.ts +0 -323
  408. package/src/planner/nodes/table-function-call.ts +0 -134
  409. package/src/planner/nodes/transaction-node.ts +0 -55
  410. package/src/planner/nodes/update-node.ts +0 -138
  411. package/src/planner/nodes/values-node.ts +0 -244
  412. package/src/planner/nodes/view-reference-node.ts +0 -97
  413. package/src/planner/nodes/window-function.ts +0 -73
  414. package/src/planner/nodes/window-node.ts +0 -199
  415. package/src/planner/optimizer-tuning.ts +0 -105
  416. package/src/planner/optimizer.ts +0 -332
  417. package/src/planner/planning-context.ts +0 -190
  418. package/src/planner/resolve.ts +0 -101
  419. package/src/planner/rules/README.md +0 -96
  420. package/src/planner/rules/access/rule-select-access-path.ts +0 -399
  421. package/src/planner/rules/aggregate/rule-aggregate-streaming.ts +0 -162
  422. package/src/planner/rules/cache/rule-cte-optimization.ts +0 -79
  423. package/src/planner/rules/cache/rule-materialization-advisory.ts +0 -77
  424. package/src/planner/rules/cache/rule-mutating-subquery-cache.ts +0 -104
  425. package/src/planner/rules/join/rule-join-greedy-commute.ts +0 -48
  426. package/src/planner/rules/join/rule-join-key-inference.ts +0 -35
  427. package/src/planner/rules/join/rule-quickpick-enumeration.ts +0 -267
  428. package/src/planner/rules/predicate/rule-predicate-pushdown.ts +0 -144
  429. package/src/planner/rules/retrieve/rule-grow-retrieve.ts +0 -337
  430. package/src/planner/scopes/aliased.ts +0 -50
  431. package/src/planner/scopes/base.ts +0 -10
  432. package/src/planner/scopes/empty.ts +0 -12
  433. package/src/planner/scopes/global.ts +0 -73
  434. package/src/planner/scopes/multi.ts +0 -40
  435. package/src/planner/scopes/param.ts +0 -95
  436. package/src/planner/scopes/registered.ts +0 -67
  437. package/src/planner/scopes/scope.ts +0 -16
  438. package/src/planner/stats/basic-estimates.ts +0 -107
  439. package/src/planner/stats/index.ts +0 -158
  440. package/src/planner/type-utils.ts +0 -87
  441. package/src/planner/util/key-utils.ts +0 -46
  442. package/src/planner/validation/determinism-validator.ts +0 -104
  443. package/src/planner/validation/plan-validator.ts +0 -335
  444. package/src/runtime/async-util.ts +0 -283
  445. package/src/runtime/cache/shared-cache.ts +0 -169
  446. package/src/runtime/context-helpers.ts +0 -191
  447. package/src/runtime/deferred-constraint-queue.ts +0 -196
  448. package/src/runtime/emission-context.ts +0 -319
  449. package/src/runtime/emit/add-constraint.ts +0 -78
  450. package/src/runtime/emit/aggregate.ts +0 -581
  451. package/src/runtime/emit/array-index.ts +0 -25
  452. package/src/runtime/emit/between.ts +0 -51
  453. package/src/runtime/emit/binary.ts +0 -357
  454. package/src/runtime/emit/block.ts +0 -23
  455. package/src/runtime/emit/cache.ts +0 -64
  456. package/src/runtime/emit/case.ts +0 -87
  457. package/src/runtime/emit/cast.ts +0 -151
  458. package/src/runtime/emit/collate.ts +0 -9
  459. package/src/runtime/emit/column-reference.ts +0 -17
  460. package/src/runtime/emit/constraint-check.ts +0 -290
  461. package/src/runtime/emit/create-assertion.ts +0 -82
  462. package/src/runtime/emit/create-index.ts +0 -15
  463. package/src/runtime/emit/create-table.ts +0 -15
  464. package/src/runtime/emit/create-view.ts +0 -52
  465. package/src/runtime/emit/cte-reference.ts +0 -38
  466. package/src/runtime/emit/cte.ts +0 -39
  467. package/src/runtime/emit/delete.ts +0 -24
  468. package/src/runtime/emit/distinct.ts +0 -40
  469. package/src/runtime/emit/dml-executor.ts +0 -198
  470. package/src/runtime/emit/drop-assertion.ts +0 -45
  471. package/src/runtime/emit/drop-table.ts +0 -27
  472. package/src/runtime/emit/drop-view.ts +0 -49
  473. package/src/runtime/emit/filter.ts +0 -30
  474. package/src/runtime/emit/insert.ts +0 -42
  475. package/src/runtime/emit/internal-recursive-cte-ref.ts +0 -37
  476. package/src/runtime/emit/join.ts +0 -148
  477. package/src/runtime/emit/limit-offset.ts +0 -73
  478. package/src/runtime/emit/literal.ts +0 -17
  479. package/src/runtime/emit/parameter.ts +0 -59
  480. package/src/runtime/emit/pragma.ts +0 -56
  481. package/src/runtime/emit/project.ts +0 -46
  482. package/src/runtime/emit/recursive-cte.ts +0 -111
  483. package/src/runtime/emit/remote-query.ts +0 -47
  484. package/src/runtime/emit/retrieve.ts +0 -15
  485. package/src/runtime/emit/returning.ts +0 -41
  486. package/src/runtime/emit/scalar-function.ts +0 -69
  487. package/src/runtime/emit/scan.ts +0 -106
  488. package/src/runtime/emit/schema-declarative.ts +0 -215
  489. package/src/runtime/emit/sequencing.ts +0 -24
  490. package/src/runtime/emit/set-operation.ts +0 -141
  491. package/src/runtime/emit/sink.ts +0 -27
  492. package/src/runtime/emit/sort.ts +0 -75
  493. package/src/runtime/emit/subquery.ts +0 -203
  494. package/src/runtime/emit/table-valued-function.ts +0 -106
  495. package/src/runtime/emit/temporal-arithmetic.ts +0 -302
  496. package/src/runtime/emit/transaction.ts +0 -205
  497. package/src/runtime/emit/unary.ts +0 -101
  498. package/src/runtime/emit/update.ts +0 -66
  499. package/src/runtime/emit/values.ts +0 -66
  500. package/src/runtime/emit/window-function.ts +0 -42
  501. package/src/runtime/emit/window.ts +0 -458
  502. package/src/runtime/emitters.ts +0 -183
  503. package/src/runtime/register.ts +0 -150
  504. package/src/runtime/scheduler.ts +0 -488
  505. package/src/runtime/types.ts +0 -242
  506. package/src/runtime/utils.ts +0 -177
  507. package/src/schema/assertion.ts +0 -21
  508. package/src/schema/catalog.ts +0 -269
  509. package/src/schema/change-events.ts +0 -80
  510. package/src/schema/column.ts +0 -51
  511. package/src/schema/declared-schema-manager.ts +0 -82
  512. package/src/schema/function.ts +0 -188
  513. package/src/schema/manager.ts +0 -1034
  514. package/src/schema/schema-differ.ts +0 -214
  515. package/src/schema/schema-hasher.ts +0 -26
  516. package/src/schema/schema.ts +0 -222
  517. package/src/schema/table.ts +0 -409
  518. package/src/schema/view.ts +0 -19
  519. package/src/schema/window-function.ts +0 -56
  520. package/src/types/builtin-types.ts +0 -350
  521. package/src/types/index.ts +0 -17
  522. package/src/types/json-type.ts +0 -152
  523. package/src/types/logical-type.ts +0 -91
  524. package/src/types/plugin-interface.ts +0 -10
  525. package/src/types/registry.ts +0 -204
  526. package/src/types/temporal-types.ts +0 -290
  527. package/src/types/validation.ts +0 -120
  528. package/src/util/affinity.ts +0 -151
  529. package/src/util/ast-stringify.ts +0 -887
  530. package/src/util/cached.ts +0 -25
  531. package/src/util/coercion.ts +0 -113
  532. package/src/util/comparison.ts +0 -510
  533. package/src/util/environment.ts +0 -52
  534. package/src/util/hash.ts +0 -90
  535. package/src/util/latches.ts +0 -47
  536. package/src/util/mutation-statement.ts +0 -135
  537. package/src/util/patterns.ts +0 -56
  538. package/src/util/plan-formatter.ts +0 -48
  539. package/src/util/plugin-helper.ts +0 -110
  540. package/src/util/row-descriptor.ts +0 -105
  541. package/src/util/serialization.ts +0 -47
  542. package/src/util/sql-literal.ts +0 -22
  543. package/src/util/working-table-iterable.ts +0 -38
  544. package/src/vtab/best-access-plan.ts +0 -244
  545. package/src/vtab/connection.ts +0 -36
  546. package/src/vtab/filter-info.ts +0 -23
  547. package/src/vtab/index-info.ts +0 -84
  548. package/src/vtab/manifest.ts +0 -86
  549. package/src/vtab/memory/connection.ts +0 -73
  550. package/src/vtab/memory/index.ts +0 -191
  551. package/src/vtab/memory/layer/base-cursor.ts +0 -124
  552. package/src/vtab/memory/layer/base.ts +0 -275
  553. package/src/vtab/memory/layer/connection.ts +0 -203
  554. package/src/vtab/memory/layer/interface.ts +0 -47
  555. package/src/vtab/memory/layer/manager.ts +0 -909
  556. package/src/vtab/memory/layer/safe-iterate.ts +0 -49
  557. package/src/vtab/memory/layer/scan-plan.ts +0 -84
  558. package/src/vtab/memory/layer/transaction-cursor.ts +0 -162
  559. package/src/vtab/memory/layer/transaction.ts +0 -229
  560. package/src/vtab/memory/module.ts +0 -667
  561. package/src/vtab/memory/table.ts +0 -251
  562. package/src/vtab/memory/types.ts +0 -23
  563. package/src/vtab/memory/utils/logging.ts +0 -36
  564. package/src/vtab/memory/utils/primary-key.ts +0 -163
  565. package/src/vtab/module.ts +0 -162
  566. package/src/vtab/table.ts +0 -177
package/src/parser/ast.ts DELETED
@@ -1,581 +0,0 @@
1
- import type { MaybePromise, RowOp, SqlValue } from '../common/types.js';
2
- import type { ConflictResolution } from '../common/constants.js';
3
-
4
- /**
5
- * SQL Abstract Syntax Tree (AST) definitions
6
- * These interfaces define the structure of parsed SQL statements
7
- */
8
-
9
- // Base for all AST nodes
10
- export interface AstNode {
11
- type: 'literal' | 'identifier' | 'column' | 'binary' | 'unary' | 'function' | 'cast' | 'parameter' | 'subquery' | 'select'
12
- | 'insert' | 'update' | 'delete' | 'createTable' | 'createIndex' | 'createView' | 'createAssertion' | 'alterTable' | 'drop' | 'begin' | 'commit'
13
- | 'rollback' | 'table' | 'join' | 'savepoint' | 'release' | 'functionSource' | 'with' | 'commonTableExpr' | 'pragma'
14
- | 'collate' | 'primaryKey' | 'notNull' | 'null' | 'unique' | 'check' | 'default' | 'foreignKey' | 'generated' | 'windowFunction'
15
- | 'windowDefinition' | 'windowFrame' | 'currentRow' | 'unboundedPreceding' | 'unboundedFollowing' | 'preceding' | 'following'
16
- | 'subquerySource' | 'mutatingSubquerySource' | 'case' | 'in' | 'exists' | 'values' | 'between'
17
- | 'declareSchema' | 'diffSchema' | 'applySchema' | 'explainSchema'
18
- | 'declaredTable' | 'declaredIndex' | 'declaredView' | 'declaredSeed' | 'declareIgnored';
19
- loc?: {
20
- start: { line: number, column: number, offset: number };
21
- end: { line: number, column: number, offset: number };
22
- };
23
- }
24
-
25
- // Expression types
26
- export type Expression = LiteralExpr | IdentifierExpr | BinaryExpr | UnaryExpr | FunctionExpr | CastExpr
27
- | ParameterExpr | SubqueryExpr | ColumnExpr | FunctionSource | CollateExpr | WindowFunctionExpr | CaseExpr
28
- | InExpr | ExistsExpr | BetweenExpr;
29
-
30
- // Literal value expression (number, string, null, etc.)
31
- export interface LiteralExpr extends AstNode {
32
- type: 'literal';
33
- value: MaybePromise<SqlValue>;
34
- lexeme?: string; // Optional: Original text representation, e.g., for numbers like '2.0'
35
- }
36
-
37
- // Identifier expression (table name or pragma name)
38
- export interface IdentifierExpr extends AstNode {
39
- type: 'identifier';
40
- name: string;
41
- schema?: string; // Optional schema qualifier
42
- }
43
-
44
- // Column reference expression
45
- export interface ColumnExpr extends AstNode {
46
- type: 'column';
47
- name: string;
48
- table?: string; // Optional table qualifier
49
- schema?: string; // Optional schema qualifier
50
- alias?: string; // Optional column alias
51
- }
52
-
53
- // Binary operation expression
54
- export interface BinaryExpr extends AstNode {
55
- type: 'binary';
56
- operator: string; // +, -, *, /, AND, OR, =, <, etc.
57
- left: Expression;
58
- right: Expression;
59
- }
60
-
61
- // Unary operation expression
62
- export interface UnaryExpr extends AstNode {
63
- type: 'unary';
64
- operator: string; // NOT, -, +, etc.
65
- expr: Expression;
66
- }
67
-
68
- // Function call expression
69
- export interface FunctionExpr extends AstNode {
70
- type: 'function';
71
- name: string;
72
- args: Expression[];
73
- distinct?: boolean; // For DISTINCT in aggregate functions like COUNT(DISTINCT col)
74
- }
75
-
76
- // Window function expression
77
- export interface WindowFunctionExpr extends AstNode {
78
- type: 'windowFunction';
79
- function: FunctionExpr;
80
- window?: WindowDefinition;
81
- alias?: string;
82
- }
83
-
84
- // Window definition (OVER clause)
85
- export interface WindowDefinition extends AstNode {
86
- type: 'windowDefinition';
87
- partitionBy?: Expression[];
88
- orderBy?: OrderByClause[];
89
- frame?: WindowFrame;
90
- }
91
-
92
- // Window frame clause
93
- export interface WindowFrame {
94
- type: WindowFrameUnits; // Changed from 'windowFrame' to WindowFrameUnits
95
- start: WindowFrameBound;
96
- end: WindowFrameBound | null; // Can be just START bound
97
- exclusion?: WindowFrameExclusion;
98
- }
99
-
100
- // Window frame bound
101
- export type WindowFrameBound =
102
- | { type: 'currentRow' }
103
- | { type: 'unboundedPreceding' }
104
- | { type: 'unboundedFollowing' }
105
- | { type: 'preceding', value: Expression }
106
- | { type: 'following', value: Expression };
107
-
108
- // Window frame units
109
- export type WindowFrameUnits = 'rows' | 'range';
110
-
111
- // Window frame exclusion
112
- export type WindowFrameExclusion = 'no others' | 'current row' | 'group' | 'ties';
113
-
114
- // CAST expression
115
- export interface CastExpr extends AstNode {
116
- type: 'cast';
117
- expr: Expression;
118
- targetType: string;
119
- }
120
-
121
- // Parameter expression (? or :name or $name)
122
- export interface ParameterExpr extends AstNode {
123
- type: 'parameter';
124
- index?: number; // For positional parameters (?)
125
- name?: string; // For named parameters (:name or $name)
126
- }
127
-
128
- // Subquery expression
129
- export interface SubqueryExpr extends AstNode {
130
- type: 'subquery';
131
- query: SelectStmt;
132
- }
133
-
134
- // BETWEEN expression
135
- export interface BetweenExpr extends AstNode {
136
- type: 'between';
137
- expr: Expression; // Left side of BETWEEN
138
- lower: Expression; // Lower bound
139
- upper: Expression; // Upper bound
140
- not?: boolean; // For NOT BETWEEN
141
- }
142
-
143
- // IN expression
144
- export interface InExpr extends AstNode {
145
- type: 'in';
146
- expr: Expression; // Left side of IN
147
- values?: Expression[]; // For IN (value1, value2, ...)
148
- subquery?: SelectStmt; // For IN (SELECT ...)
149
- }
150
-
151
- // EXISTS expression
152
- export interface ExistsExpr extends AstNode {
153
- type: 'exists';
154
- subquery: SelectStmt; // EXISTS (SELECT ...)
155
- }
156
-
157
- // --- Statement Types ---
158
-
159
- // --- Add FunctionSource type ---
160
- export interface FunctionSource extends AstNode {
161
- type: 'functionSource';
162
- name: IdentifierExpr; // Function name (potentially schema.name)
163
- args: Expression[]; // Arguments passed to the function
164
- alias?: string; // Optional alias for the generated table
165
- columns?: string[]; // Optional column list after alias: alias(col1, col2, ...)
166
- }
167
-
168
- // SELECT statement
169
- export interface SelectStmt extends AstNode {
170
- type: 'select';
171
- withClause?: WithClause;
172
- columns: ResultColumn[];
173
- from?: FromClause[];
174
- where?: Expression;
175
- groupBy?: Expression[];
176
- having?: Expression;
177
- orderBy?: OrderByClause[];
178
- limit?: Expression;
179
- offset?: Expression;
180
- distinct?: boolean;
181
- all?: boolean;
182
- union?: SelectStmt;
183
- unionAll?: boolean;
184
- compound?: { op: 'union' | 'unionAll' | 'intersect' | 'except' | 'diff'; select: SelectStmt };
185
- }
186
-
187
- // INSERT statement
188
- export interface InsertStmt extends AstNode {
189
- type: 'insert';
190
- withClause?: WithClause;
191
- table: IdentifierExpr;
192
- columns?: string[];
193
- values?: Expression[][]; // For VALUES (...), (...), ...
194
- select?: SelectStmt; // For INSERT ... SELECT
195
- onConflict?: ConflictResolution;
196
- returning?: ResultColumn[];
197
- contextValues?: ContextAssignment[]; // Optional mutation context assignments
198
- }
199
-
200
- // UPDATE statement
201
- export interface UpdateStmt extends AstNode {
202
- type: 'update';
203
- withClause?: WithClause;
204
- table: IdentifierExpr;
205
- assignments: { column: string; value: Expression }[];
206
- where?: Expression;
207
- onConflict?: ConflictResolution;
208
- returning?: ResultColumn[];
209
- contextValues?: ContextAssignment[]; // Optional mutation context assignments
210
- }
211
-
212
- // DELETE statement
213
- export interface DeleteStmt extends AstNode {
214
- type: 'delete';
215
- withClause?: WithClause;
216
- table: IdentifierExpr;
217
- where?: Expression;
218
- returning?: ResultColumn[];
219
- contextValues?: ContextAssignment[]; // Optional mutation context assignments
220
- }
221
-
222
- // VALUES statement
223
- export interface ValuesStmt extends AstNode {
224
- type: 'values';
225
- values: Expression[][]; // Array of value lists: VALUES (1, 'a'), (2, 'b'), ...
226
- }
227
-
228
- // CREATE TABLE statement
229
- export interface CreateTableStmt extends AstNode {
230
- type: 'createTable';
231
- table: IdentifierExpr;
232
- ifNotExists: boolean;
233
- columns: ColumnDef[];
234
- constraints: TableConstraint[];
235
- isTemporary?: boolean;
236
- moduleName?: string; // Optional module name from USING clause
237
- moduleArgs?: Record<string, SqlValue>; // Optional module arguments from USING clause
238
- contextDefinitions?: MutationContextVar[]; // Optional mutation context variables
239
- }
240
-
241
- // CREATE INDEX statement
242
- export interface CreateIndexStmt extends AstNode {
243
- type: 'createIndex';
244
- index: IdentifierExpr;
245
- table: IdentifierExpr;
246
- ifNotExists: boolean;
247
- columns: IndexedColumn[];
248
- where?: Expression;
249
- isUnique?: boolean;
250
- }
251
-
252
- // CREATE ASSERTION statement
253
- export interface CreateAssertionStmt extends AstNode {
254
- type: 'createAssertion';
255
- name: string;
256
- check: Expression; // The CHECK (<violation-query>) expression
257
- }
258
-
259
- // CREATE VIEW statement
260
- export interface CreateViewStmt extends AstNode {
261
- type: 'createView';
262
- view: IdentifierExpr;
263
- ifNotExists: boolean;
264
- columns?: string[];
265
- select: SelectStmt;
266
- isTemporary?: boolean;
267
- }
268
-
269
- // ALTER TABLE statement
270
- export interface AlterTableStmt extends AstNode {
271
- type: 'alterTable';
272
- table: IdentifierExpr;
273
- action: AlterTableAction;
274
- }
275
-
276
- // DROP statement
277
- export interface DropStmt extends AstNode {
278
- type: 'drop';
279
- objectType: 'table' | 'view' | 'index' | 'trigger' | 'assertion';
280
- name: IdentifierExpr;
281
- ifExists: boolean;
282
- }
283
-
284
- // TRANSACTION statements
285
- export interface BeginStmt extends AstNode {
286
- type: 'begin';
287
- }
288
-
289
- export interface CommitStmt extends AstNode {
290
- type: 'commit';
291
- }
292
-
293
- export interface RollbackStmt extends AstNode {
294
- type: 'rollback';
295
- savepoint?: string;
296
- }
297
-
298
- // --- Add Savepoint/Release ---
299
- export interface SavepointStmt extends AstNode {
300
- type: 'savepoint';
301
- name: string;
302
- }
303
-
304
- export interface ReleaseStmt extends AstNode {
305
- type: 'release';
306
- savepoint?: string; // Optional savepoint name
307
- }
308
-
309
- // --- Supporting Types ---
310
-
311
- export type ResultColumnExpr = {
312
- type: 'column',
313
- expr: Expression,
314
- alias?: string
315
- }
316
-
317
- // Result column in SELECT
318
- export type ResultColumn =
319
- | { type: 'all', table?: string }
320
- | ResultColumnExpr;
321
-
322
- // FROM clause item (table, join, function call, or subquery)
323
- export type FromClause = TableSource | JoinClause | FunctionSource | SubquerySource | MutatingSubquerySource;
324
-
325
- // Table source in FROM clause
326
- export interface TableSource extends AstNode {
327
- type: 'table';
328
- table: IdentifierExpr;
329
- alias?: string;
330
- }
331
-
332
- // Subquery source in FROM clause: (SELECT ...) AS alias
333
- export interface SubquerySource extends AstNode {
334
- type: 'subquerySource';
335
- subquery: SelectStmt | ValuesStmt;
336
- alias: string;
337
- columns?: string[]; // Optional column list: AS alias(col1, col2, ...)
338
- }
339
-
340
- // Mutating subquery source in FROM clause: (INSERT/UPDATE/DELETE ... RETURNING ...) AS alias
341
- export interface MutatingSubquerySource extends AstNode {
342
- type: 'mutatingSubquerySource';
343
- stmt: InsertStmt | UpdateStmt | DeleteStmt; // Must have RETURNING clause
344
- alias: string;
345
- columns?: string[]; // Optional column list: AS alias(col1, col2, ...)
346
- }
347
-
348
- // JOIN clause in FROM
349
- export interface JoinClause extends AstNode {
350
- type: 'join';
351
- joinType: 'inner' | 'left' | 'right' | 'full' | 'cross';
352
- left: FromClause;
353
- right: FromClause;
354
- condition?: Expression; // For ON clause
355
- columns?: string[]; // For USING clause
356
- }
357
-
358
- // ORDER BY clause
359
- export interface OrderByClause {
360
- expr: Expression;
361
- direction: 'asc' | 'desc';
362
- nulls?: 'first' | 'last';
363
- }
364
-
365
- // Column definition in CREATE TABLE
366
- export interface ColumnDef {
367
- name: string;
368
- dataType?: string;
369
- constraints: ColumnConstraint[];
370
- }
371
-
372
- // Mutation context variable definition
373
- export interface MutationContextVar {
374
- name: string;
375
- dataType?: string;
376
- notNull?: boolean;
377
- }
378
-
379
- // Mutation context assignment
380
- export interface ContextAssignment {
381
- name: string;
382
- value: Expression;
383
- }
384
-
385
- // Column constraint (PRIMARY KEY, NOT NULL, etc.)
386
- export interface ColumnConstraint extends AstNode {
387
- type: 'primaryKey' | 'notNull' | 'null' | 'unique' | 'check' | 'default' | 'foreignKey' | 'collate' | 'generated';
388
- name?: string;
389
- expr?: Expression; // For CHECK or DEFAULT
390
- operations?: RowOp[]; // ADDED: For CHECK ON (...)
391
- collation?: string; // For COLLATE
392
- autoincrement?: boolean; // For PRIMARY KEY AUTOINCREMENT
393
- direction?: 'asc' | 'desc'; // ADDED: For PRIMARY KEY ASC/DESC
394
- onConflict?: ConflictResolution;
395
- foreignKey?: ForeignKeyClause;
396
- generated?: {
397
- expr: Expression;
398
- stored: boolean; // STORED or VIRTUAL
399
- };
400
- deferrable?: boolean;
401
- initiallyDeferred?: boolean;
402
- }
403
-
404
- // Table constraint (PRIMARY KEY, UNIQUE, etc.)
405
- export interface TableConstraint extends AstNode {
406
- type: 'primaryKey' | 'unique' | 'check' | 'foreignKey';
407
- name?: string;
408
- columns?: { name: string; direction?: 'asc' | 'desc' }[];
409
- expr?: Expression; // For CHECK
410
- operations?: RowOp[]; // ADDED: For CHECK ON (...)
411
- onConflict?: ConflictResolution;
412
- foreignKey?: ForeignKeyClause;
413
- deferrable?: boolean;
414
- initiallyDeferred?: boolean;
415
- }
416
-
417
- // Foreign key clause
418
- export interface ForeignKeyClause {
419
- table: string;
420
- columns?: string[];
421
- onDelete?: ForeignKeyAction;
422
- onUpdate?: ForeignKeyAction;
423
- deferrable?: boolean;
424
- initiallyDeferred?: boolean;
425
- }
426
-
427
- // Foreign key action
428
- export type ForeignKeyAction = 'setNull' | 'setDefault' | 'cascade' | 'restrict' | 'noAction';
429
-
430
- // Column in index definition
431
- export interface IndexedColumn {
432
- name?: string; // Column name
433
- expr?: Expression; // Or expression
434
- collation?: string;
435
- direction?: 'asc' | 'desc';
436
- }
437
-
438
- // Alter table action
439
- export type AlterTableAction =
440
- | { type: 'renameTable', newName: string }
441
- | { type: 'renameColumn', oldName: string, newName: string }
442
- | { type: 'addColumn', column: ColumnDef }
443
- | { type: 'dropColumn', name: string }
444
- | { type: 'addConstraint', constraint: TableConstraint };
445
-
446
- // Add PragmaStmt interface
447
- export interface PragmaStmt extends AstNode {
448
- type: 'pragma';
449
- name: string; // Name of the pragma
450
- value?: LiteralExpr | IdentifierExpr; // Value being assigned (optional for some pragmas)
451
- }
452
-
453
- export interface WithClause extends AstNode {
454
- type: 'with';
455
- recursive: boolean;
456
- ctes: CommonTableExpr[];
457
- options?: WithClauseOptions;
458
- }
459
-
460
- export interface WithClauseOptions {
461
- maxRecursion?: number;
462
- }
463
-
464
- export interface CommonTableExpr extends AstNode {
465
- type: 'commonTableExpr';
466
- name: string;
467
- columns?: string[];
468
- query: SelectStmt | InsertStmt | UpdateStmt | DeleteStmt; // CTE body
469
- materializationHint?: 'materialized' | 'not_materialized';
470
- }
471
-
472
- /**
473
- * Represents a COLLATE expression in SQL, which specifies the collation sequence
474
- * to use for a string operation
475
- */
476
- export interface CollateExpr extends AstNode {
477
- type: 'collate';
478
- expr: Expression;
479
- collation: string;
480
- }
481
-
482
- export interface CaseExprWhenThenClause {
483
- when: Expression;
484
- then: Expression;
485
- }
486
-
487
- export interface CaseExpr extends AstNode {
488
- type: 'case'; // New type
489
- baseExpr?: Expression; // Optional: for CASE expr WHEN ...
490
- whenThenClauses: CaseExprWhenThenClause[];
491
- elseExpr?: Expression; // Optional: for ELSE ...
492
- }
493
-
494
- // --- Utility Type for Top-Level Statements ---
495
- export type Statement =
496
- | SelectStmt
497
- | InsertStmt
498
- | UpdateStmt
499
- | DeleteStmt
500
- | ValuesStmt
501
- | CreateTableStmt
502
- | CreateIndexStmt
503
- | CreateViewStmt
504
- | CreateAssertionStmt
505
- | DropStmt
506
- | AlterTableStmt
507
- | BeginStmt
508
- | CommitStmt
509
- | RollbackStmt
510
- | SavepointStmt
511
- | ReleaseStmt
512
- | PragmaStmt
513
- | DeclareSchemaStmt
514
- | DiffSchemaStmt
515
- | ApplySchemaStmt
516
- | ExplainSchemaStmt;
517
-
518
- // === Declarative Schema AST ===
519
-
520
- export interface DeclareSchemaStmt extends AstNode {
521
- type: 'declareSchema';
522
- schemaName?: string;
523
- version?: string;
524
- using?: { defaultVtabModule?: string; defaultVtabArgs?: string };
525
- items: readonly DeclareItem[];
526
- }
527
-
528
- export type DeclareItem = DeclaredTable | DeclaredIndex | DeclaredView | DeclaredSeed | DeclareIgnoredItem;
529
-
530
- export interface DeclaredTable extends AstNode {
531
- type: 'declaredTable';
532
- tableStmt: CreateTableStmt;
533
- }
534
-
535
- export interface DeclaredIndex extends AstNode {
536
- type: 'declaredIndex';
537
- indexStmt: CreateIndexStmt;
538
- }
539
-
540
- export interface DeclaredView extends AstNode {
541
- type: 'declaredView';
542
- viewStmt: CreateViewStmt;
543
- }
544
-
545
- export interface DeclaredSeed extends AstNode {
546
- type: 'declaredSeed';
547
- tableName: string;
548
- columns?: readonly string[];
549
- seedData?: readonly SqlValue[][];
550
- }
551
-
552
- /** Placeholder for domain/collation/import items to keep parser forward-compatible */
553
- export interface DeclareIgnoredItem extends AstNode {
554
- type: 'declareIgnored';
555
- kind: 'domain' | 'collation' | 'import';
556
- text: string; // original text snippet for hashing/canonicalization if needed
557
- }
558
-
559
- export interface DiffSchemaStmt extends AstNode {
560
- type: 'diffSchema';
561
- schemaName?: string;
562
- }
563
-
564
- export interface ApplySchemaStmt extends AstNode {
565
- type: 'applySchema';
566
- schemaName?: string;
567
- toVersion?: string;
568
- withSeed?: boolean;
569
- options?: {
570
- dryRun?: boolean;
571
- validateOnly?: boolean;
572
- allowDestructive?: boolean;
573
- renamePolicy?: 'require-hint' | 'infer-id';
574
- };
575
- }
576
-
577
- export interface ExplainSchemaStmt extends AstNode {
578
- type: 'explainSchema';
579
- schemaName?: string;
580
- version?: string;
581
- }
@@ -1,65 +0,0 @@
1
- import { quereusError } from '../common/errors.js';
2
- import { StatusCode } from '../common/types.js';
3
- export * from './ast.js';
4
- export * from './parser.js';
5
- export * from './lexer.js';
6
-
7
- import { Parser } from './parser.js';
8
- import type { SelectStmt, InsertStmt } from './ast.js';
9
-
10
- /**
11
- * Parse a SQL SELECT statement
12
- *
13
- * @param sql SQL SELECT statement
14
- * @returns AST for the SELECT statement
15
- * @throws ParseError if the SQL is invalid or not a SELECT statement
16
- */
17
- export function parseSelect(sql: string): SelectStmt {
18
- const parser = new Parser();
19
- return parser.initialize(sql).selectStatement();
20
- }
21
-
22
- /**
23
- * Parse a SQL INSERT statement
24
- *
25
- * @param sql SQL INSERT statement
26
- * @returns AST for the INSERT statement
27
- * @throws Error if the SQL is not an INSERT statement
28
- */
29
- export function parseInsert(sql: string): InsertStmt {
30
- const stmt = parse(sql);
31
- if (stmt.type !== 'insert') {
32
- quereusError(
33
- `Expected INSERT statement, but got ${stmt.type}`,
34
- StatusCode.ERROR,
35
- undefined,
36
- stmt
37
- );
38
- }
39
- return stmt as InsertStmt;
40
- }
41
-
42
- /**
43
- * Parse a SQL statement
44
- *
45
- * @param sql SQL statement
46
- * @returns AST for the statement
47
- * @throws Error if the statement type is not supported
48
- */
49
- export function parse(sql: string): SelectStmt | InsertStmt {
50
- const parser = new Parser();
51
- const stmt = parser.parse(sql);
52
-
53
- if (stmt.type === 'select') {
54
- return stmt as SelectStmt;
55
- } else if (stmt.type === 'insert') {
56
- return stmt as InsertStmt;
57
- }
58
-
59
- quereusError(
60
- `Unsupported SQL statement type: ${stmt.type}`,
61
- StatusCode.UNSUPPORTED,
62
- undefined,
63
- stmt
64
- );
65
- }