@quereus/quereus 2.7.0 → 2.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (358) hide show
  1. package/dist/src/common/errors.d.ts +21 -0
  2. package/dist/src/common/errors.d.ts.map +1 -1
  3. package/dist/src/common/errors.js +29 -0
  4. package/dist/src/common/errors.js.map +1 -1
  5. package/dist/src/core/database.d.ts.map +1 -1
  6. package/dist/src/core/database.js +20 -7
  7. package/dist/src/core/database.js.map +1 -1
  8. package/dist/src/core/statement.d.ts.map +1 -1
  9. package/dist/src/core/statement.js +15 -5
  10. package/dist/src/core/statement.js.map +1 -1
  11. package/dist/src/emit/ast-stringify.d.ts.map +1 -1
  12. package/dist/src/emit/ast-stringify.js +0 -4
  13. package/dist/src/emit/ast-stringify.js.map +1 -1
  14. package/dist/src/func/builtins/explain.d.ts.map +1 -1
  15. package/dist/src/func/builtins/explain.js +39 -36
  16. package/dist/src/func/builtins/explain.js.map +1 -1
  17. package/dist/src/func/builtins/json-helpers.d.ts +1 -1
  18. package/dist/src/func/builtins/json-helpers.d.ts.map +1 -1
  19. package/dist/src/func/builtins/json-helpers.js.map +1 -1
  20. package/dist/src/func/builtins/json.d.ts.map +1 -1
  21. package/dist/src/func/builtins/json.js +5 -7
  22. package/dist/src/func/builtins/json.js.map +1 -1
  23. package/dist/src/func/builtins/scalar.d.ts.map +1 -1
  24. package/dist/src/func/builtins/scalar.js +17 -2
  25. package/dist/src/func/builtins/scalar.js.map +1 -1
  26. package/dist/src/func/builtins/string.d.ts.map +1 -1
  27. package/dist/src/func/builtins/string.js +4 -2
  28. package/dist/src/func/builtins/string.js.map +1 -1
  29. package/dist/src/parser/ast.d.ts +4 -3
  30. package/dist/src/parser/ast.d.ts.map +1 -1
  31. package/dist/src/parser/lexer.d.ts.map +1 -1
  32. package/dist/src/parser/lexer.js +8 -48
  33. package/dist/src/parser/lexer.js.map +1 -1
  34. package/dist/src/parser/parser.d.ts.map +1 -1
  35. package/dist/src/parser/parser.js +43 -11
  36. package/dist/src/parser/parser.js.map +1 -1
  37. package/dist/src/parser/utils.d.ts +10 -1
  38. package/dist/src/parser/utils.d.ts.map +1 -1
  39. package/dist/src/parser/utils.js +23 -0
  40. package/dist/src/parser/utils.js.map +1 -1
  41. package/dist/src/planner/analysis/constraint-extractor.d.ts.map +1 -1
  42. package/dist/src/planner/analysis/constraint-extractor.js +0 -1
  43. package/dist/src/planner/analysis/constraint-extractor.js.map +1 -1
  44. package/dist/src/planner/building/constraint-builder.d.ts +12 -1
  45. package/dist/src/planner/building/constraint-builder.d.ts.map +1 -1
  46. package/dist/src/planner/building/constraint-builder.js +60 -1
  47. package/dist/src/planner/building/constraint-builder.js.map +1 -1
  48. package/dist/src/planner/building/create-view.d.ts.map +1 -1
  49. package/dist/src/planner/building/create-view.js +16 -0
  50. package/dist/src/planner/building/create-view.js.map +1 -1
  51. package/dist/src/planner/building/delete.d.ts.map +1 -1
  52. package/dist/src/planner/building/delete.js +13 -7
  53. package/dist/src/planner/building/delete.js.map +1 -1
  54. package/dist/src/planner/building/foreign-key-builder.d.ts.map +1 -1
  55. package/dist/src/planner/building/foreign-key-builder.js +27 -17
  56. package/dist/src/planner/building/foreign-key-builder.js.map +1 -1
  57. package/dist/src/planner/building/insert.d.ts.map +1 -1
  58. package/dist/src/planner/building/insert.js +51 -43
  59. package/dist/src/planner/building/insert.js.map +1 -1
  60. package/dist/src/planner/building/select-aggregates.d.ts +4 -1
  61. package/dist/src/planner/building/select-aggregates.d.ts.map +1 -1
  62. package/dist/src/planner/building/select-aggregates.js +122 -21
  63. package/dist/src/planner/building/select-aggregates.js.map +1 -1
  64. package/dist/src/planner/building/select-modifiers.d.ts +6 -2
  65. package/dist/src/planner/building/select-modifiers.d.ts.map +1 -1
  66. package/dist/src/planner/building/select-modifiers.js +20 -5
  67. package/dist/src/planner/building/select-modifiers.js.map +1 -1
  68. package/dist/src/planner/building/select-ordinal.d.ts +20 -0
  69. package/dist/src/planner/building/select-ordinal.d.ts.map +1 -0
  70. package/dist/src/planner/building/select-ordinal.js +62 -0
  71. package/dist/src/planner/building/select-ordinal.js.map +1 -0
  72. package/dist/src/planner/building/select.d.ts.map +1 -1
  73. package/dist/src/planner/building/select.js +78 -19
  74. package/dist/src/planner/building/select.js.map +1 -1
  75. package/dist/src/planner/building/update.d.ts.map +1 -1
  76. package/dist/src/planner/building/update.js +38 -27
  77. package/dist/src/planner/building/update.js.map +1 -1
  78. package/dist/src/planner/building/with.d.ts.map +1 -1
  79. package/dist/src/planner/building/with.js +25 -2
  80. package/dist/src/planner/building/with.js.map +1 -1
  81. package/dist/src/planner/framework/characteristics.d.ts +3 -1
  82. package/dist/src/planner/framework/characteristics.d.ts.map +1 -1
  83. package/dist/src/planner/framework/characteristics.js +7 -0
  84. package/dist/src/planner/framework/characteristics.js.map +1 -1
  85. package/dist/src/planner/framework/physical-utils.d.ts +22 -1
  86. package/dist/src/planner/framework/physical-utils.d.ts.map +1 -1
  87. package/dist/src/planner/framework/physical-utils.js +47 -0
  88. package/dist/src/planner/framework/physical-utils.js.map +1 -1
  89. package/dist/src/planner/nodes/alias-node.d.ts.map +1 -1
  90. package/dist/src/planner/nodes/alias-node.js +2 -0
  91. package/dist/src/planner/nodes/alias-node.js.map +1 -1
  92. package/dist/src/planner/nodes/asof-scan-node.d.ts +137 -0
  93. package/dist/src/planner/nodes/asof-scan-node.d.ts.map +1 -0
  94. package/dist/src/planner/nodes/asof-scan-node.js +223 -0
  95. package/dist/src/planner/nodes/asof-scan-node.js.map +1 -0
  96. package/dist/src/planner/nodes/constraint-check-node.d.ts +25 -1
  97. package/dist/src/planner/nodes/constraint-check-node.d.ts.map +1 -1
  98. package/dist/src/planner/nodes/constraint-check-node.js +36 -6
  99. package/dist/src/planner/nodes/constraint-check-node.js.map +1 -1
  100. package/dist/src/planner/nodes/distinct-node.d.ts.map +1 -1
  101. package/dist/src/planner/nodes/distinct-node.js +7 -0
  102. package/dist/src/planner/nodes/distinct-node.js.map +1 -1
  103. package/dist/src/planner/nodes/filter.d.ts.map +1 -1
  104. package/dist/src/planner/nodes/filter.js +8 -2
  105. package/dist/src/planner/nodes/filter.js.map +1 -1
  106. package/dist/src/planner/nodes/function.d.ts +11 -1
  107. package/dist/src/planner/nodes/function.d.ts.map +1 -1
  108. package/dist/src/planner/nodes/function.js +94 -1
  109. package/dist/src/planner/nodes/function.js.map +1 -1
  110. package/dist/src/planner/nodes/hash-aggregate.d.ts.map +1 -1
  111. package/dist/src/planner/nodes/hash-aggregate.js +2 -0
  112. package/dist/src/planner/nodes/hash-aggregate.js.map +1 -1
  113. package/dist/src/planner/nodes/join-node.d.ts.map +1 -1
  114. package/dist/src/planner/nodes/join-node.js +10 -2
  115. package/dist/src/planner/nodes/join-node.js.map +1 -1
  116. package/dist/src/planner/nodes/join-utils.d.ts +19 -1
  117. package/dist/src/planner/nodes/join-utils.d.ts.map +1 -1
  118. package/dist/src/planner/nodes/join-utils.js +46 -0
  119. package/dist/src/planner/nodes/join-utils.js.map +1 -1
  120. package/dist/src/planner/nodes/limit-offset.d.ts.map +1 -1
  121. package/dist/src/planner/nodes/limit-offset.js +2 -0
  122. package/dist/src/planner/nodes/limit-offset.js.map +1 -1
  123. package/dist/src/planner/nodes/merge-join-node.d.ts.map +1 -1
  124. package/dist/src/planner/nodes/merge-join-node.js +4 -1
  125. package/dist/src/planner/nodes/merge-join-node.js.map +1 -1
  126. package/dist/src/planner/nodes/ordinal-slice-node.d.ts +50 -0
  127. package/dist/src/planner/nodes/ordinal-slice-node.d.ts.map +1 -0
  128. package/dist/src/planner/nodes/ordinal-slice-node.js +127 -0
  129. package/dist/src/planner/nodes/ordinal-slice-node.js.map +1 -0
  130. package/dist/src/planner/nodes/plan-node-type.d.ts +2 -0
  131. package/dist/src/planner/nodes/plan-node-type.d.ts.map +1 -1
  132. package/dist/src/planner/nodes/plan-node-type.js +2 -0
  133. package/dist/src/planner/nodes/plan-node-type.js.map +1 -1
  134. package/dist/src/planner/nodes/plan-node.d.ts +130 -1
  135. package/dist/src/planner/nodes/plan-node.d.ts.map +1 -1
  136. package/dist/src/planner/nodes/plan-node.js +49 -0
  137. package/dist/src/planner/nodes/plan-node.js.map +1 -1
  138. package/dist/src/planner/nodes/project-node.d.ts.map +1 -1
  139. package/dist/src/planner/nodes/project-node.js +6 -1
  140. package/dist/src/planner/nodes/project-node.js.map +1 -1
  141. package/dist/src/planner/nodes/recursive-cte-node.d.ts +5 -3
  142. package/dist/src/planner/nodes/recursive-cte-node.d.ts.map +1 -1
  143. package/dist/src/planner/nodes/recursive-cte-node.js +24 -8
  144. package/dist/src/planner/nodes/recursive-cte-node.js.map +1 -1
  145. package/dist/src/planner/nodes/reference.d.ts +4 -1
  146. package/dist/src/planner/nodes/reference.d.ts.map +1 -1
  147. package/dist/src/planner/nodes/reference.js +16 -0
  148. package/dist/src/planner/nodes/reference.js.map +1 -1
  149. package/dist/src/planner/nodes/returning-node.d.ts.map +1 -1
  150. package/dist/src/planner/nodes/returning-node.js +5 -12
  151. package/dist/src/planner/nodes/returning-node.js.map +1 -1
  152. package/dist/src/planner/nodes/scalar.d.ts +7 -1
  153. package/dist/src/planner/nodes/scalar.d.ts.map +1 -1
  154. package/dist/src/planner/nodes/scalar.js +100 -1
  155. package/dist/src/planner/nodes/scalar.js.map +1 -1
  156. package/dist/src/planner/nodes/set-operation-node.d.ts +2 -1
  157. package/dist/src/planner/nodes/set-operation-node.d.ts.map +1 -1
  158. package/dist/src/planner/nodes/set-operation-node.js +9 -0
  159. package/dist/src/planner/nodes/set-operation-node.js.map +1 -1
  160. package/dist/src/planner/nodes/sort.d.ts.map +1 -1
  161. package/dist/src/planner/nodes/sort.js +20 -0
  162. package/dist/src/planner/nodes/sort.js.map +1 -1
  163. package/dist/src/planner/nodes/stream-aggregate.d.ts.map +1 -1
  164. package/dist/src/planner/nodes/stream-aggregate.js +2 -0
  165. package/dist/src/planner/nodes/stream-aggregate.js.map +1 -1
  166. package/dist/src/planner/nodes/table-access-nodes.d.ts +37 -2
  167. package/dist/src/planner/nodes/table-access-nodes.d.ts.map +1 -1
  168. package/dist/src/planner/nodes/table-access-nodes.js +87 -10
  169. package/dist/src/planner/nodes/table-access-nodes.js.map +1 -1
  170. package/dist/src/planner/nodes/update-node.d.ts +1 -3
  171. package/dist/src/planner/nodes/update-node.d.ts.map +1 -1
  172. package/dist/src/planner/nodes/update-node.js +3 -9
  173. package/dist/src/planner/nodes/update-node.js.map +1 -1
  174. package/dist/src/planner/nodes/window-node.d.ts +61 -2
  175. package/dist/src/planner/nodes/window-node.d.ts.map +1 -1
  176. package/dist/src/planner/nodes/window-node.js +64 -3
  177. package/dist/src/planner/nodes/window-node.js.map +1 -1
  178. package/dist/src/planner/optimizer-tuning.d.ts +9 -0
  179. package/dist/src/planner/optimizer-tuning.d.ts.map +1 -1
  180. package/dist/src/planner/optimizer-tuning.js +3 -0
  181. package/dist/src/planner/optimizer-tuning.js.map +1 -1
  182. package/dist/src/planner/optimizer.d.ts.map +1 -1
  183. package/dist/src/planner/optimizer.js +91 -0
  184. package/dist/src/planner/optimizer.js.map +1 -1
  185. package/dist/src/planner/rules/access/rule-asof-strategy-select.d.ts +30 -0
  186. package/dist/src/planner/rules/access/rule-asof-strategy-select.d.ts.map +1 -0
  187. package/dist/src/planner/rules/access/rule-asof-strategy-select.js +112 -0
  188. package/dist/src/planner/rules/access/rule-asof-strategy-select.js.map +1 -0
  189. package/dist/src/planner/rules/access/rule-monotonic-limit-pushdown.d.ts +33 -0
  190. package/dist/src/planner/rules/access/rule-monotonic-limit-pushdown.d.ts.map +1 -0
  191. package/dist/src/planner/rules/access/rule-monotonic-limit-pushdown.js +162 -0
  192. package/dist/src/planner/rules/access/rule-monotonic-limit-pushdown.js.map +1 -0
  193. package/dist/src/planner/rules/access/rule-monotonic-range-access.d.ts +29 -0
  194. package/dist/src/planner/rules/access/rule-monotonic-range-access.d.ts.map +1 -0
  195. package/dist/src/planner/rules/access/rule-monotonic-range-access.js +175 -0
  196. package/dist/src/planner/rules/access/rule-monotonic-range-access.js.map +1 -0
  197. package/dist/src/planner/rules/access/rule-select-access-path.d.ts.map +1 -1
  198. package/dist/src/planner/rules/access/rule-select-access-path.js +53 -36
  199. package/dist/src/planner/rules/access/rule-select-access-path.js.map +1 -1
  200. package/dist/src/planner/rules/join/equi-pair-extractor.d.ts +61 -0
  201. package/dist/src/planner/rules/join/equi-pair-extractor.d.ts.map +1 -0
  202. package/dist/src/planner/rules/join/equi-pair-extractor.js +155 -0
  203. package/dist/src/planner/rules/join/equi-pair-extractor.js.map +1 -0
  204. package/dist/src/planner/rules/join/rule-join-physical-selection.d.ts.map +1 -1
  205. package/dist/src/planner/rules/join/rule-join-physical-selection.js +3 -123
  206. package/dist/src/planner/rules/join/rule-join-physical-selection.js.map +1 -1
  207. package/dist/src/planner/rules/join/rule-lateral-top1-asof.d.ts +21 -0
  208. package/dist/src/planner/rules/join/rule-lateral-top1-asof.d.ts.map +1 -0
  209. package/dist/src/planner/rules/join/rule-lateral-top1-asof.js +405 -0
  210. package/dist/src/planner/rules/join/rule-lateral-top1-asof.js.map +1 -0
  211. package/dist/src/planner/rules/join/rule-monotonic-merge-join.d.ts +31 -0
  212. package/dist/src/planner/rules/join/rule-monotonic-merge-join.d.ts.map +1 -0
  213. package/dist/src/planner/rules/join/rule-monotonic-merge-join.js +113 -0
  214. package/dist/src/planner/rules/join/rule-monotonic-merge-join.js.map +1 -0
  215. package/dist/src/planner/rules/join/rule-quickpick-enumeration.d.ts.map +1 -1
  216. package/dist/src/planner/rules/join/rule-quickpick-enumeration.js +7 -3
  217. package/dist/src/planner/rules/join/rule-quickpick-enumeration.js.map +1 -1
  218. package/dist/src/planner/rules/predicate/rule-filter-merge.js.map +1 -1
  219. package/dist/src/planner/rules/predicate/rule-predicate-pushdown.js.map +1 -1
  220. package/dist/src/planner/rules/retrieve/rule-grow-retrieve.d.ts.map +1 -1
  221. package/dist/src/planner/rules/retrieve/rule-grow-retrieve.js +161 -9
  222. package/dist/src/planner/rules/retrieve/rule-grow-retrieve.js.map +1 -1
  223. package/dist/src/planner/rules/subquery/rule-subquery-decorrelation.d.ts.map +1 -1
  224. package/dist/src/planner/rules/subquery/rule-subquery-decorrelation.js +2 -2
  225. package/dist/src/planner/rules/subquery/rule-subquery-decorrelation.js.map +1 -1
  226. package/dist/src/planner/rules/window/rule-monotonic-window.d.ts +47 -0
  227. package/dist/src/planner/rules/window/rule-monotonic-window.d.ts.map +1 -0
  228. package/dist/src/planner/rules/window/rule-monotonic-window.js +341 -0
  229. package/dist/src/planner/rules/window/rule-monotonic-window.js.map +1 -0
  230. package/dist/src/runtime/context-helpers.d.ts +9 -0
  231. package/dist/src/runtime/context-helpers.d.ts.map +1 -1
  232. package/dist/src/runtime/context-helpers.js +5 -0
  233. package/dist/src/runtime/context-helpers.js.map +1 -1
  234. package/dist/src/runtime/emit/alter-table.d.ts.map +1 -1
  235. package/dist/src/runtime/emit/alter-table.js +286 -7
  236. package/dist/src/runtime/emit/alter-table.js.map +1 -1
  237. package/dist/src/runtime/emit/asof-scan.d.ts +10 -0
  238. package/dist/src/runtime/emit/asof-scan.d.ts.map +1 -0
  239. package/dist/src/runtime/emit/asof-scan.js +467 -0
  240. package/dist/src/runtime/emit/asof-scan.js.map +1 -0
  241. package/dist/src/runtime/emit/binary.d.ts.map +1 -1
  242. package/dist/src/runtime/emit/binary.js +12 -7
  243. package/dist/src/runtime/emit/binary.js.map +1 -1
  244. package/dist/src/runtime/emit/constraint-check.d.ts.map +1 -1
  245. package/dist/src/runtime/emit/constraint-check.js +145 -62
  246. package/dist/src/runtime/emit/constraint-check.js.map +1 -1
  247. package/dist/src/runtime/emit/create-assertion.d.ts.map +1 -1
  248. package/dist/src/runtime/emit/create-assertion.js +6 -6
  249. package/dist/src/runtime/emit/create-assertion.js.map +1 -1
  250. package/dist/src/runtime/emit/dml-executor.d.ts.map +1 -1
  251. package/dist/src/runtime/emit/dml-executor.js +133 -76
  252. package/dist/src/runtime/emit/dml-executor.js.map +1 -1
  253. package/dist/src/runtime/emit/ordinal-slice.d.ts +13 -0
  254. package/dist/src/runtime/emit/ordinal-slice.d.ts.map +1 -0
  255. package/dist/src/runtime/emit/ordinal-slice.js +89 -0
  256. package/dist/src/runtime/emit/ordinal-slice.js.map +1 -0
  257. package/dist/src/runtime/emit/recursive-cte.d.ts.map +1 -1
  258. package/dist/src/runtime/emit/recursive-cte.js +61 -10
  259. package/dist/src/runtime/emit/recursive-cte.js.map +1 -1
  260. package/dist/src/runtime/emit/returning.d.ts.map +1 -1
  261. package/dist/src/runtime/emit/returning.js +9 -4
  262. package/dist/src/runtime/emit/returning.js.map +1 -1
  263. package/dist/src/runtime/emit/scalar-function.d.ts.map +1 -1
  264. package/dist/src/runtime/emit/scalar-function.js +2 -1
  265. package/dist/src/runtime/emit/scalar-function.js.map +1 -1
  266. package/dist/src/runtime/emit/scan.d.ts +19 -3
  267. package/dist/src/runtime/emit/scan.d.ts.map +1 -1
  268. package/dist/src/runtime/emit/scan.js +12 -8
  269. package/dist/src/runtime/emit/scan.js.map +1 -1
  270. package/dist/src/runtime/emit/schema-declarative.d.ts.map +1 -1
  271. package/dist/src/runtime/emit/schema-declarative.js +91 -14
  272. package/dist/src/runtime/emit/schema-declarative.js.map +1 -1
  273. package/dist/src/runtime/emit/table-valued-function.d.ts.map +1 -1
  274. package/dist/src/runtime/emit/table-valued-function.js +4 -2
  275. package/dist/src/runtime/emit/table-valued-function.js.map +1 -1
  276. package/dist/src/runtime/emit/update.d.ts.map +1 -1
  277. package/dist/src/runtime/emit/update.js +8 -5
  278. package/dist/src/runtime/emit/update.js.map +1 -1
  279. package/dist/src/runtime/emit/window.d.ts.map +1 -1
  280. package/dist/src/runtime/emit/window.js +732 -37
  281. package/dist/src/runtime/emit/window.js.map +1 -1
  282. package/dist/src/runtime/foreign-key-actions.js +7 -6
  283. package/dist/src/runtime/foreign-key-actions.js.map +1 -1
  284. package/dist/src/runtime/register.d.ts.map +1 -1
  285. package/dist/src/runtime/register.js +4 -0
  286. package/dist/src/runtime/register.js.map +1 -1
  287. package/dist/src/schema/catalog.d.ts +12 -0
  288. package/dist/src/schema/catalog.d.ts.map +1 -1
  289. package/dist/src/schema/catalog.js +47 -6
  290. package/dist/src/schema/catalog.js.map +1 -1
  291. package/dist/src/schema/column.d.ts +7 -0
  292. package/dist/src/schema/column.d.ts.map +1 -1
  293. package/dist/src/schema/column.js.map +1 -1
  294. package/dist/src/schema/function.d.ts +28 -3
  295. package/dist/src/schema/function.d.ts.map +1 -1
  296. package/dist/src/schema/function.js.map +1 -1
  297. package/dist/src/schema/manager.d.ts +42 -6
  298. package/dist/src/schema/manager.d.ts.map +1 -1
  299. package/dist/src/schema/manager.js +175 -23
  300. package/dist/src/schema/manager.js.map +1 -1
  301. package/dist/src/schema/rename-rewriter.d.ts +4 -0
  302. package/dist/src/schema/rename-rewriter.d.ts.map +1 -0
  303. package/dist/src/schema/rename-rewriter.js +506 -0
  304. package/dist/src/schema/rename-rewriter.js.map +1 -0
  305. package/dist/src/schema/schema-differ.d.ts +18 -1
  306. package/dist/src/schema/schema-differ.d.ts.map +1 -1
  307. package/dist/src/schema/schema-differ.js +344 -42
  308. package/dist/src/schema/schema-differ.js.map +1 -1
  309. package/dist/src/schema/table.d.ts +65 -2
  310. package/dist/src/schema/table.d.ts.map +1 -1
  311. package/dist/src/schema/table.js +144 -0
  312. package/dist/src/schema/table.js.map +1 -1
  313. package/dist/src/types/logical-type.d.ts +11 -0
  314. package/dist/src/types/logical-type.d.ts.map +1 -1
  315. package/dist/src/types/logical-type.js.map +1 -1
  316. package/dist/src/util/ast-literal.d.ts +11 -0
  317. package/dist/src/util/ast-literal.d.ts.map +1 -0
  318. package/dist/src/util/ast-literal.js +26 -0
  319. package/dist/src/util/ast-literal.js.map +1 -0
  320. package/dist/src/util/async-iterator.d.ts +2 -1
  321. package/dist/src/util/async-iterator.d.ts.map +1 -1
  322. package/dist/src/util/async-iterator.js +4 -4
  323. package/dist/src/util/async-iterator.js.map +1 -1
  324. package/dist/src/util/patterns.d.ts.map +1 -1
  325. package/dist/src/util/patterns.js +58 -10
  326. package/dist/src/util/patterns.js.map +1 -1
  327. package/dist/src/vtab/best-access-plan.d.ts +48 -0
  328. package/dist/src/vtab/best-access-plan.d.ts.map +1 -1
  329. package/dist/src/vtab/best-access-plan.js +29 -0
  330. package/dist/src/vtab/best-access-plan.js.map +1 -1
  331. package/dist/src/vtab/filter-info.d.ts +14 -0
  332. package/dist/src/vtab/filter-info.d.ts.map +1 -1
  333. package/dist/src/vtab/memory/index.d.ts +8 -0
  334. package/dist/src/vtab/memory/index.d.ts.map +1 -1
  335. package/dist/src/vtab/memory/index.js +11 -0
  336. package/dist/src/vtab/memory/index.js.map +1 -1
  337. package/dist/src/vtab/memory/layer/base.d.ts +8 -1
  338. package/dist/src/vtab/memory/layer/base.d.ts.map +1 -1
  339. package/dist/src/vtab/memory/layer/base.js +36 -2
  340. package/dist/src/vtab/memory/layer/base.js.map +1 -1
  341. package/dist/src/vtab/memory/layer/manager.d.ts +5 -1
  342. package/dist/src/vtab/memory/layer/manager.d.ts.map +1 -1
  343. package/dist/src/vtab/memory/layer/manager.js +63 -13
  344. package/dist/src/vtab/memory/layer/manager.js.map +1 -1
  345. package/dist/src/vtab/memory/layer/transaction.d.ts.map +1 -1
  346. package/dist/src/vtab/memory/layer/transaction.js +21 -2
  347. package/dist/src/vtab/memory/layer/transaction.js.map +1 -1
  348. package/dist/src/vtab/memory/module.d.ts +45 -2
  349. package/dist/src/vtab/memory/module.d.ts.map +1 -1
  350. package/dist/src/vtab/memory/module.js +268 -27
  351. package/dist/src/vtab/memory/module.js.map +1 -1
  352. package/dist/src/vtab/memory/utils/predicate.d.ts +27 -0
  353. package/dist/src/vtab/memory/utils/predicate.d.ts.map +1 -0
  354. package/dist/src/vtab/memory/utils/predicate.js +182 -0
  355. package/dist/src/vtab/memory/utils/predicate.js.map +1 -0
  356. package/dist/src/vtab/module.d.ts +24 -0
  357. package/dist/src/vtab/module.d.ts.map +1 -1
  358. package/package.json +3 -3
@@ -1,10 +1,17 @@
1
1
  import { createTableToString, createViewToString, createIndexToString, createAssertionToString, columnDefToString, quoteIdentifier, expressionToString } from '../emit/ast-stringify.js';
2
2
  import { QuereusError } from '../common/errors.js';
3
3
  import { StatusCode } from '../common/types.js';
4
+ import { createLogger } from '../common/logger.js';
5
+ const log = createLogger('schema:differ');
6
+ const warnLog = log.extend('warn');
7
+ /** Reserved tag namespace prefix used for differ-recognized hints. */
8
+ const QUEREUS_TAG_PREFIX = 'quereus.';
9
+ /** Recognized tag keys under the `quereus.*` namespace. */
10
+ const KNOWN_QUEREUS_KEYS = new Set(['quereus.id', 'quereus.previous_name']);
4
11
  /**
5
12
  * Computes the difference between declared schema and actual catalog
6
13
  */
7
- export function computeSchemaDiff(declaredSchema, actualCatalog) {
14
+ export function computeSchemaDiff(declaredSchema, actualCatalog, policy = 'allow') {
8
15
  const diff = {
9
16
  tablesToCreate: [],
10
17
  tablesToDrop: [],
@@ -14,7 +21,8 @@ export function computeSchemaDiff(declaredSchema, actualCatalog) {
14
21
  indexesToCreate: [],
15
22
  indexesToDrop: [],
16
23
  assertionsToCreate: [],
17
- assertionsToDrop: []
24
+ assertionsToDrop: [],
25
+ renames: [],
18
26
  };
19
27
  const targetSchemaName = actualCatalog.schemaName;
20
28
  // Extract schema-level default module settings
@@ -29,12 +37,22 @@ export function computeSchemaDiff(declaredSchema, actualCatalog) {
29
37
  switch (item.type) {
30
38
  case 'declaredTable':
31
39
  declaredTables.set(item.tableStmt.table.name.toLowerCase(), item);
40
+ warnUnknownQuereusKeys(item.tableStmt.tags, 'table', item.tableStmt.table.name);
41
+ for (const col of item.tableStmt.columns) {
42
+ warnUnknownQuereusKeys(col.tags, 'column', `${item.tableStmt.table.name}.${col.name}`);
43
+ }
44
+ for (const c of item.tableStmt.constraints ?? []) {
45
+ if (c.name)
46
+ warnUnknownQuereusKeys(c.tags, 'constraint', c.name);
47
+ }
32
48
  break;
33
49
  case 'declaredView':
34
50
  declaredViews.set(item.viewStmt.view.name.toLowerCase(), item);
51
+ warnUnknownQuereusKeys(item.viewStmt.tags, 'view', item.viewStmt.view.name);
35
52
  break;
36
53
  case 'declaredIndex':
37
54
  declaredIndexes.set(item.indexStmt.index.name.toLowerCase(), item);
55
+ warnUnknownQuereusKeys(item.indexStmt.tags, 'index', item.indexStmt.index.name);
38
56
  break;
39
57
  case 'declaredAssertion':
40
58
  declaredAssertions.set(item.assertionStmt.name.toLowerCase(), item);
@@ -45,54 +63,111 @@ export function computeSchemaDiff(declaredSchema, actualCatalog) {
45
63
  const actualTables = new Map(actualCatalog.tables.map(t => [t.name.toLowerCase(), t]));
46
64
  const actualViews = new Map(actualCatalog.views.map(v => [v.name.toLowerCase(), v]));
47
65
  const actualIndexes = new Map(actualCatalog.indexes.map(i => [i.name.toLowerCase(), i]));
48
- // Find tables to create (in declared but not in actual)
66
+ // Resolve renames per-kind. Each call returns:
67
+ // - rename ops (oldName -> newName)
68
+ // - matched pairs (declaredKey -> actual): for the alter-diff loop later
69
+ // - consumedActuals: actuals that are now spoken-for by a rename and must
70
+ // not be dropped
71
+ const tableRenames = resolveRenames({
72
+ kind: 'table',
73
+ declared: declaredTables,
74
+ actual: actualTables,
75
+ getDeclaredName: d => d.tableStmt.table.name,
76
+ getActualName: a => a.name,
77
+ getDeclaredTags: d => d.tableStmt.tags,
78
+ getActualTags: a => a.tags,
79
+ policy,
80
+ });
81
+ diff.renames.push(...tableRenames.renames);
82
+ const viewRenames = resolveRenames({
83
+ kind: 'view',
84
+ declared: declaredViews,
85
+ actual: actualViews,
86
+ getDeclaredName: d => d.viewStmt.view.name,
87
+ getActualName: a => a.name,
88
+ getDeclaredTags: d => d.viewStmt.tags,
89
+ getActualTags: a => a.tags,
90
+ policy,
91
+ });
92
+ diff.renames.push(...viewRenames.renames);
93
+ const indexRenames = resolveRenames({
94
+ kind: 'index',
95
+ declared: declaredIndexes,
96
+ actual: actualIndexes,
97
+ getDeclaredName: d => d.indexStmt.index.name,
98
+ getActualName: a => a.name,
99
+ getDeclaredTags: d => d.indexStmt.tags,
100
+ getActualTags: a => a.tags,
101
+ policy,
102
+ });
103
+ diff.renames.push(...indexRenames.renames);
104
+ // Tables: creates / alters
49
105
  for (const [name, declaredTable] of declaredTables) {
50
- if (!actualTables.has(name)) {
51
- // Build the effective table statement, applying schema-level defaults
52
- const tableStmt = declaredTable.tableStmt;
53
- const effectiveStmt = applyTableDefaults(tableStmt, targetSchemaName, defaultVtabModule, defaultVtabArgs);
54
- diff.tablesToCreate.push(createTableToString(effectiveStmt));
55
- }
56
- else {
57
- // Table exists - check if it needs alteration
58
- const alterDiff = computeTableAlterDiff(declaredTable, actualTables.get(name));
59
- if (alterDiff.columnsToAdd.length > 0 || alterDiff.columnsToDrop.length > 0 || alterDiff.columnsToAlter.length > 0 || alterDiff.primaryKeyChange) {
106
+ const tableStmt = declaredTable.tableStmt;
107
+ const matchedActual = tableRenames.pairs.get(name);
108
+ if (matchedActual) {
109
+ // Either a rename match or a name-based match — compute alter diff against the matched actual.
110
+ const alterDiff = computeTableAlterDiff(declaredTable, matchedActual, policy);
111
+ // If this was a rename, set the alter target to the new name (post-rename)
112
+ if (matchedActual.name.toLowerCase() !== name) {
113
+ alterDiff.tableName = tableStmt.table.name;
114
+ }
115
+ if (alterDiff.columnsToAdd.length > 0
116
+ || alterDiff.columnsToDrop.length > 0
117
+ || alterDiff.columnsToAlter.length > 0
118
+ || alterDiff.columnsToRename.length > 0
119
+ || (alterDiff.constraintsToRename?.length ?? 0) > 0
120
+ || alterDiff.primaryKeyChange) {
60
121
  diff.tablesToAlter.push(alterDiff);
61
122
  }
62
123
  }
124
+ else {
125
+ const effectiveStmt = applyTableDefaults(tableStmt, targetSchemaName, defaultVtabModule, defaultVtabArgs);
126
+ diff.tablesToCreate.push(createTableToString(effectiveStmt));
127
+ }
63
128
  }
64
- // Find tables to drop (in actual but not in declared)
129
+ // Tables: drops (skip those consumed by a rename)
130
+ const dropSet = new Set();
65
131
  for (const [name] of actualTables) {
66
- if (!declaredTables.has(name)) {
67
- diff.tablesToDrop.push(name);
68
- }
132
+ if (tableRenames.consumedActuals.has(name))
133
+ continue;
134
+ if (!declaredTables.has(name))
135
+ dropSet.add(name);
69
136
  }
70
- // Find views to create/drop
137
+ diff.tablesToDrop = orderDropsByFKDependency(dropSet, actualTables);
138
+ // Views: creates / drops
71
139
  for (const [name, declaredView] of declaredViews) {
72
- if (!actualViews.has(name)) {
73
- // Generate proper view DDL using AST stringifier
140
+ if (!viewRenames.pairs.has(name)) {
74
141
  diff.viewsToCreate.push(createViewToString(declaredView.viewStmt));
75
142
  }
76
143
  }
77
144
  for (const [name] of actualViews) {
78
- if (!declaredViews.has(name)) {
145
+ if (viewRenames.consumedActuals.has(name))
146
+ continue;
147
+ if (!declaredViews.has(name))
79
148
  diff.viewsToDrop.push(name);
80
- }
81
149
  }
82
- // Find indexes to create/drop
150
+ // Indexes: creates / drops
83
151
  for (const [name, declaredIndex] of declaredIndexes) {
84
- if (!actualIndexes.has(name)) {
85
- // Apply schema name to the index and its table reference
152
+ if (!indexRenames.pairs.has(name)) {
86
153
  const effectiveStmt = applyIndexDefaults(declaredIndex.indexStmt, targetSchemaName);
87
154
  diff.indexesToCreate.push(createIndexToString(effectiveStmt));
88
155
  }
89
156
  }
90
157
  for (const [name] of actualIndexes) {
91
- if (!declaredIndexes.has(name)) {
158
+ if (indexRenames.consumedActuals.has(name))
159
+ continue;
160
+ if (!declaredIndexes.has(name))
92
161
  diff.indexesToDrop.push(name);
93
- }
94
162
  }
95
- // Find assertions to create/drop
163
+ // Apply 'require-hint' policy: any unhinted name change is an error rather
164
+ // than a silent drop+create.
165
+ if (policy === 'require-hint') {
166
+ enforceRequireHint('table', diff.tablesToCreate.length, diff.tablesToDrop.length);
167
+ enforceRequireHint('view', diff.viewsToCreate.length, diff.viewsToDrop.length);
168
+ enforceRequireHint('index', diff.indexesToCreate.length, diff.indexesToDrop.length);
169
+ }
170
+ // Assertions (no rename support — names are explicitly part of the contract).
96
171
  const actualAssertions = new Map(actualCatalog.assertions.map(a => [a.name.toLowerCase(), a]));
97
172
  for (const [name, declaredAssertion] of declaredAssertions) {
98
173
  if (!actualAssertions.has(name)) {
@@ -106,6 +181,132 @@ export function computeSchemaDiff(declaredSchema, actualCatalog) {
106
181
  }
107
182
  return diff;
108
183
  }
184
+ /**
185
+ * Generic resolver: pair declared and actual objects by name first, then by
186
+ * `quereus.id` and `quereus.previous_name` tag hints to detect renames.
187
+ *
188
+ * Returns:
189
+ * - `renames`: ordered RenameOps to perform.
190
+ * - `pairs`: map from lowercased *declared* name to the matched actual,
191
+ * for use by alter-diff (covers both name-matched and rename-matched).
192
+ * - `consumedActuals`: lowercase actual names that are spoken-for by a rename
193
+ * (so the drop loop skips them).
194
+ */
195
+ function resolveRenames(args) {
196
+ const { kind, declared, actual, getDeclaredName, getActualName, getDeclaredTags, getActualTags, policy } = args;
197
+ const renames = [];
198
+ const pairs = new Map();
199
+ const consumedActuals = new Set();
200
+ // Under 'deny' policy, skip rename detection entirely — only name matches.
201
+ if (policy === 'deny') {
202
+ for (const [dn] of declared) {
203
+ const nameMatch = actual.get(dn);
204
+ if (nameMatch)
205
+ pairs.set(dn, nameMatch);
206
+ }
207
+ return { renames, pairs, consumedActuals };
208
+ }
209
+ // Build (id → actual) index for quick stable-id lookup.
210
+ const actualById = new Map();
211
+ for (const [, a] of actual) {
212
+ const id = readQuereusHint(getActualTags(a), 'id');
213
+ if (id) {
214
+ if (actualById.has(id)) {
215
+ throw new QuereusError(`Duplicate quereus.id '${id}' on ${kind}s in actual catalog`, StatusCode.ERROR);
216
+ }
217
+ actualById.set(id, a);
218
+ }
219
+ }
220
+ // Iterate declared in insertion order. For each declared:
221
+ // - hintMatch: actual resolved by quereus.id (preferred) or previous_name
222
+ // - nameMatch: actual sharing the declared's name
223
+ // If both exist and refer to *different* actuals → conflict (always error,
224
+ // independent of policy beyond 'deny').
225
+ for (const [dn, d] of declared) {
226
+ const tags = getDeclaredTags(d);
227
+ const declaredId = readQuereusHint(tags, 'id');
228
+ const prevNamesRaw = readQuereusHint(tags, 'previous_name');
229
+ let hintMatch;
230
+ let hintMatchKey;
231
+ if (declaredId) {
232
+ const byId = actualById.get(declaredId);
233
+ if (byId) {
234
+ hintMatch = byId;
235
+ hintMatchKey = getActualName(byId).toLowerCase();
236
+ }
237
+ }
238
+ if (!hintMatch && prevNamesRaw) {
239
+ const candidates = prevNamesRaw
240
+ .split(',')
241
+ .map(s => s.trim().toLowerCase())
242
+ .filter(s => s.length > 0);
243
+ for (const cand of candidates) {
244
+ if (cand === dn)
245
+ continue; // self-reference is never a rename source
246
+ const byPrev = actual.get(cand);
247
+ if (byPrev) {
248
+ hintMatch = byPrev;
249
+ hintMatchKey = cand;
250
+ break;
251
+ }
252
+ }
253
+ }
254
+ const nameMatch = actual.get(dn);
255
+ const hintIsSelf = hintMatch && hintMatchKey === dn;
256
+ // Conflict: declared name AND hint each resolve to *distinct* existing actuals.
257
+ if (nameMatch && hintMatch && !hintIsSelf) {
258
+ throw new QuereusError(`Rename conflict for ${kind} '${getDeclaredName(d)}': declared name and quereus.previous_name/id resolve to different existing objects ('${dn}' vs '${hintMatchKey}')`, StatusCode.ERROR);
259
+ }
260
+ if (nameMatch) {
261
+ pairs.set(dn, nameMatch);
262
+ continue;
263
+ }
264
+ if (hintMatch && !hintIsSelf) {
265
+ if (consumedActuals.has(hintMatchKey)) {
266
+ throw new QuereusError(`Rename conflict for ${kind} '${getDeclaredName(d)}': old object '${hintMatchKey}' already consumed by another rename`, StatusCode.ERROR);
267
+ }
268
+ renames.push({ kind, oldName: getActualName(hintMatch), newName: getDeclaredName(d) });
269
+ pairs.set(dn, hintMatch);
270
+ consumedActuals.add(hintMatchKey);
271
+ }
272
+ // Else: create path (caller emits CREATE)
273
+ }
274
+ return { renames, pairs, consumedActuals };
275
+ }
276
+ /**
277
+ * Read a `quereus.<key>` tag value as a string. Returns undefined if not present
278
+ * or non-string.
279
+ */
280
+ function readQuereusHint(tags, key) {
281
+ if (!tags)
282
+ return undefined;
283
+ const fullKey = QUEREUS_TAG_PREFIX + key;
284
+ const v = tags[fullKey];
285
+ if (typeof v !== 'string')
286
+ return undefined;
287
+ const trimmed = v.trim();
288
+ return trimmed.length > 0 ? trimmed : undefined;
289
+ }
290
+ /**
291
+ * Soft-warn on unrecognized `quereus.*` tag keys so future versions can add
292
+ * keys without breaking older parsers.
293
+ */
294
+ function warnUnknownQuereusKeys(tags, subject, subjectName) {
295
+ if (!tags)
296
+ return;
297
+ for (const key of Object.keys(tags)) {
298
+ if (!key.startsWith(QUEREUS_TAG_PREFIX))
299
+ continue;
300
+ if (KNOWN_QUEREUS_KEYS.has(key))
301
+ continue;
302
+ warnLog('Unknown reserved tag key %s on %s %s', key, subject, subjectName);
303
+ }
304
+ }
305
+ function enforceRequireHint(kind, creates, drops) {
306
+ if (creates > 0 && drops > 0) {
307
+ throw new QuereusError(`rename_policy = 'require-hint': ${kind} drops and creates both present (${drops} drop / ${creates} create); add 'quereus.previous_name' or 'quereus.id' to hint renames, or use 'allow' / 'deny'.`, StatusCode.ERROR);
308
+ }
309
+ }
109
310
  /**
110
311
  * Applies schema-level defaults (schema name, default vtab module) to a table statement
111
312
  */
@@ -170,43 +371,93 @@ function applyIndexDefaults(indexStmt, targetSchemaName) {
170
371
  }
171
372
  return result;
172
373
  }
173
- function computeTableAlterDiff(declaredTable, actualTable) {
374
+ function computeTableAlterDiff(declaredTable, actualTable, policy) {
174
375
  const diff = {
175
- tableName: declaredTable.tableStmt.table.name,
376
+ // Default to actual's name; caller may override to declared name when this is a rename target.
377
+ tableName: actualTable.name,
176
378
  columnsToAdd: [],
177
379
  columnsToDrop: [],
178
380
  columnsToAlter: [],
381
+ columnsToRename: [],
179
382
  };
180
- const declaredColumnsByName = new Map();
383
+ // Detect column renames first so subsequent add/drop/alter operate on the
384
+ // post-rename column set.
385
+ const declaredColumns = new Map();
181
386
  for (const col of declaredTable.tableStmt.columns) {
182
- declaredColumnsByName.set(col.name.toLowerCase(), col);
387
+ declaredColumns.set(col.name.toLowerCase(), col);
183
388
  }
184
- const actualColumnsByName = new Map();
389
+ const actualColumns = new Map();
185
390
  for (const col of actualTable.columns) {
186
- actualColumnsByName.set(col.name.toLowerCase(), col);
391
+ actualColumns.set(col.name.toLowerCase(), col);
392
+ }
393
+ const colRenames = resolveRenames({
394
+ kind: 'constraint', // unused for ColumnRenameOp; kind only flows into RenameOp not surfaced here
395
+ declared: declaredColumns,
396
+ actual: actualColumns,
397
+ getDeclaredName: d => d.name,
398
+ getActualName: a => a.name,
399
+ getDeclaredTags: d => d.tags,
400
+ getActualTags: a => a.tags,
401
+ policy,
402
+ });
403
+ for (const r of colRenames.renames) {
404
+ diff.columnsToRename.push({ oldName: r.oldName, newName: r.newName });
187
405
  }
188
406
  // Find columns to add (store full column definition for DDL generation)
189
407
  for (const col of declaredTable.tableStmt.columns) {
190
- if (!actualColumnsByName.has(col.name.toLowerCase())) {
408
+ if (!colRenames.pairs.has(col.name.toLowerCase())) {
191
409
  diff.columnsToAdd.push(columnDefToString(col));
192
410
  }
193
411
  }
194
- // Find columns to drop
412
+ // Find columns to drop (skip those consumed by a rename)
195
413
  for (const col of actualTable.columns) {
196
- if (!declaredColumnsByName.has(col.name.toLowerCase())) {
414
+ const ln = col.name.toLowerCase();
415
+ if (colRenames.consumedActuals.has(ln))
416
+ continue;
417
+ if (!declaredColumns.has(ln)) {
197
418
  diff.columnsToDrop.push(col.name);
198
419
  }
199
420
  }
200
- // Detect attribute changes for surviving columns (present in both declared + actual)
421
+ // Detect attribute changes for surviving columns (matched declared/actual pair)
201
422
  for (const col of declaredTable.tableStmt.columns) {
202
- const actual = actualColumnsByName.get(col.name.toLowerCase());
203
- if (!actual)
423
+ const matched = colRenames.pairs.get(col.name.toLowerCase());
424
+ if (!matched)
204
425
  continue;
205
- const change = computeColumnAttributeChange(col, actual);
426
+ const change = computeColumnAttributeChange(col, matched);
206
427
  if (change) {
207
428
  diff.columnsToAlter.push(change);
208
429
  }
209
430
  }
431
+ // Apply require-hint to columns within this table
432
+ if (policy === 'require-hint') {
433
+ enforceRequireHint(`column (${actualTable.name})`, diff.columnsToAdd.length, diff.columnsToDrop.length);
434
+ }
435
+ // Detect named-constraint renames (table-level only). We do not surface
436
+ // drops/creates of constraints here — the engine has no ALTER for those
437
+ // today; the caller would have to manage that out-of-band. For renames,
438
+ // when a primitive doesn't exist this becomes drop+recreate at DDL emit time.
439
+ const declaredNamedConstraints = new Map();
440
+ for (const c of declaredTable.tableStmt.constraints ?? []) {
441
+ if (c.name)
442
+ declaredNamedConstraints.set(c.name.toLowerCase(), c);
443
+ }
444
+ const actualNamedConstraints = new Map();
445
+ for (const c of actualTable.namedConstraints ?? []) {
446
+ actualNamedConstraints.set(c.name.toLowerCase(), c);
447
+ }
448
+ const constraintRenames = resolveRenames({
449
+ kind: 'constraint',
450
+ declared: declaredNamedConstraints,
451
+ actual: actualNamedConstraints,
452
+ getDeclaredName: d => d.name,
453
+ getActualName: a => a.name,
454
+ getDeclaredTags: d => d.tags,
455
+ getActualTags: a => a.tags,
456
+ policy,
457
+ });
458
+ if (constraintRenames.renames.length > 0) {
459
+ diff.constraintsToRename = constraintRenames.renames.map(r => ({ oldName: r.oldName, newName: r.newName }));
460
+ }
210
461
  // Detect PK changes
211
462
  const declaredPk = extractDeclaredPK(declaredTable);
212
463
  const actualPk = actualTable.primaryKey;
@@ -340,12 +591,59 @@ function pkSequencesEqual(declared, actual) {
340
591
  export function serializeSchemaDiff(diff) {
341
592
  return JSON.stringify(diff, null, 2);
342
593
  }
594
+ /**
595
+ * Topologically sort the to-be-dropped table set so that, for every edge
596
+ * "child references parent" within the set, child appears before parent.
597
+ * Falls back to the input order on a cycle (shouldn't happen for simple FKs,
598
+ * but self/cyclic FKs would otherwise hang the migration).
599
+ */
600
+ function orderDropsByFKDependency(dropSet, actualTables) {
601
+ const result = [];
602
+ const visited = new Set();
603
+ const visiting = new Set();
604
+ function visit(name) {
605
+ if (visited.has(name))
606
+ return;
607
+ if (visiting.has(name))
608
+ return; // cycle; bail out gracefully
609
+ visiting.add(name);
610
+ const table = actualTables.get(name);
611
+ if (table) {
612
+ for (const refName of table.referencedTables) {
613
+ if (dropSet.has(refName) && refName !== name)
614
+ visit(refName);
615
+ }
616
+ }
617
+ visiting.delete(name);
618
+ visited.add(name);
619
+ result.push(name);
620
+ }
621
+ // DFS post-order along child→parent edges puts parents first; reverse to
622
+ // drop children before parents.
623
+ for (const name of dropSet)
624
+ visit(name);
625
+ return result.reverse();
626
+ }
343
627
  /**
344
628
  * Generates migration DDL statements from a schema diff
345
629
  */
346
630
  export function generateMigrationDDL(diff, schemaName) {
347
631
  const statements = [];
348
632
  const schemaPrefix = (schemaName && schemaName !== 'main') ? `${quoteIdentifier(schemaName)}.` : '';
633
+ // Renames first — they free old names for subsequent creates and re-target
634
+ // dependents (handled inside ALTER TABLE ... RENAME by the rename rewriter).
635
+ // Tables get a primitive ALTER TABLE RENAME; views/indexes/named constraints
636
+ // have no engine primitive yet — fall back to drop+recreate is left to the
637
+ // caller (we surface only the rename op here for tables and the alter-diff
638
+ // pipeline already drops+recreates non-table objects via diff.viewsToDrop /
639
+ // indexesToDrop when no rename hint is present).
640
+ for (const r of diff.renames) {
641
+ if (r.kind === 'table') {
642
+ statements.push(`ALTER TABLE ${schemaPrefix}${quoteIdentifier(r.oldName)} RENAME TO ${quoteIdentifier(r.newName)}`);
643
+ }
644
+ // View / index / constraint renames have no primitive — caller emits
645
+ // drop+recreate via the standard buckets.
646
+ }
349
647
  // Drop assertions first (they may reference tables)
350
648
  for (const name of diff.assertionsToDrop) {
351
649
  statements.push(`DROP ASSERTION IF EXISTS ${schemaPrefix}${quoteIdentifier(name)}`);
@@ -367,13 +665,17 @@ export function generateMigrationDDL(diff, schemaName) {
367
665
  statements.push(...diff.assertionsToCreate);
368
666
  // Alter existing tables.
369
667
  // Phase order within one table:
370
- // ADD COLUMN
668
+ // RENAME COLUMN (so subsequent phases see post-rename column names)
669
+ // → ADD COLUMN
371
670
  // → ALTER COLUMN (type, then default, then nullability — so SET NOT NULL
372
671
  // can rely on an already-populated DEFAULT for backfill)
373
672
  // → ALTER PRIMARY KEY
374
673
  // → DROP COLUMN (last, so NOT NULL relaxation never blocks subsequent drops)
375
674
  for (const alter of diff.tablesToAlter) {
376
675
  const quotedTable = `${schemaPrefix}${quoteIdentifier(alter.tableName)}`;
676
+ for (const r of alter.columnsToRename) {
677
+ statements.push(`ALTER TABLE ${quotedTable} RENAME COLUMN ${quoteIdentifier(r.oldName)} TO ${quoteIdentifier(r.newName)}`);
678
+ }
377
679
  for (const colDef of alter.columnsToAdd) {
378
680
  statements.push(`ALTER TABLE ${quotedTable} ADD COLUMN ${colDef}`);
379
681
  }
@@ -1 +1 @@
1
- {"version":3,"file":"schema-differ.js","sourceRoot":"","sources":["../../../src/schema/schema-differ.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema-differ.js","sourceRoot":"","sources":["../../../src/schema/schema-differ.ts"],"names":[],"mappings":"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"}