@supabase/pg-delta 1.0.0-alpha.11 → 1.0.0-alpha.12

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 (387) hide show
  1. package/dist/core/expand-replace-dependencies.js +23 -0
  2. package/dist/core/integrations/serialize/dsl.d.ts +1 -8
  3. package/dist/core/integrations/serialize/serialize.types.d.ts +31 -0
  4. package/dist/core/integrations/supabase.js +19 -0
  5. package/dist/core/objects/aggregate/changes/aggregate.alter.d.ts +2 -1
  6. package/dist/core/objects/aggregate/changes/aggregate.alter.js +1 -1
  7. package/dist/core/objects/aggregate/changes/aggregate.comment.d.ts +3 -2
  8. package/dist/core/objects/aggregate/changes/aggregate.comment.js +2 -2
  9. package/dist/core/objects/aggregate/changes/aggregate.create.d.ts +2 -1
  10. package/dist/core/objects/aggregate/changes/aggregate.create.js +1 -1
  11. package/dist/core/objects/aggregate/changes/aggregate.drop.d.ts +2 -1
  12. package/dist/core/objects/aggregate/changes/aggregate.drop.js +1 -1
  13. package/dist/core/objects/aggregate/changes/aggregate.privilege.d.ts +4 -3
  14. package/dist/core/objects/aggregate/changes/aggregate.privilege.js +3 -3
  15. package/dist/core/objects/base.change.d.ts +2 -1
  16. package/dist/core/objects/collation/changes/collation.alter.d.ts +3 -2
  17. package/dist/core/objects/collation/changes/collation.alter.js +2 -2
  18. package/dist/core/objects/collation/changes/collation.comment.d.ts +3 -2
  19. package/dist/core/objects/collation/changes/collation.comment.js +2 -2
  20. package/dist/core/objects/collation/changes/collation.create.d.ts +2 -1
  21. package/dist/core/objects/collation/changes/collation.create.js +1 -1
  22. package/dist/core/objects/collation/changes/collation.drop.d.ts +2 -1
  23. package/dist/core/objects/collation/changes/collation.drop.js +1 -1
  24. package/dist/core/objects/domain/changes/domain.alter.d.ts +9 -8
  25. package/dist/core/objects/domain/changes/domain.alter.js +8 -8
  26. package/dist/core/objects/domain/changes/domain.comment.d.ts +3 -2
  27. package/dist/core/objects/domain/changes/domain.comment.js +2 -2
  28. package/dist/core/objects/domain/changes/domain.create.d.ts +2 -1
  29. package/dist/core/objects/domain/changes/domain.create.js +1 -1
  30. package/dist/core/objects/domain/changes/domain.drop.d.ts +2 -1
  31. package/dist/core/objects/domain/changes/domain.drop.js +1 -1
  32. package/dist/core/objects/domain/changes/domain.privilege.d.ts +4 -3
  33. package/dist/core/objects/domain/changes/domain.privilege.js +3 -3
  34. package/dist/core/objects/event-trigger/changes/event-trigger.alter.d.ts +3 -2
  35. package/dist/core/objects/event-trigger/changes/event-trigger.alter.js +2 -2
  36. package/dist/core/objects/event-trigger/changes/event-trigger.comment.d.ts +3 -2
  37. package/dist/core/objects/event-trigger/changes/event-trigger.comment.js +2 -2
  38. package/dist/core/objects/event-trigger/changes/event-trigger.create.d.ts +2 -1
  39. package/dist/core/objects/event-trigger/changes/event-trigger.create.js +1 -1
  40. package/dist/core/objects/event-trigger/changes/event-trigger.drop.d.ts +2 -1
  41. package/dist/core/objects/event-trigger/changes/event-trigger.drop.js +1 -1
  42. package/dist/core/objects/extension/changes/extension.alter.d.ts +3 -2
  43. package/dist/core/objects/extension/changes/extension.alter.js +2 -2
  44. package/dist/core/objects/extension/changes/extension.comment.d.ts +3 -2
  45. package/dist/core/objects/extension/changes/extension.comment.js +2 -2
  46. package/dist/core/objects/extension/changes/extension.create.d.ts +2 -1
  47. package/dist/core/objects/extension/changes/extension.create.js +4 -2
  48. package/dist/core/objects/extension/changes/extension.drop.d.ts +2 -1
  49. package/dist/core/objects/extension/changes/extension.drop.js +1 -1
  50. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.alter.d.ts +3 -2
  51. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.alter.js +2 -2
  52. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.comment.d.ts +3 -2
  53. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.comment.js +2 -2
  54. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.create.d.ts +2 -1
  55. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.create.js +1 -1
  56. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.drop.d.ts +2 -1
  57. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.drop.js +1 -1
  58. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.privilege.d.ts +4 -3
  59. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.privilege.js +3 -3
  60. package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.alter.d.ts +10 -9
  61. package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.alter.js +9 -9
  62. package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.comment.d.ts +3 -2
  63. package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.comment.js +2 -2
  64. package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.create.d.ts +2 -1
  65. package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.create.js +1 -1
  66. package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.drop.d.ts +2 -1
  67. package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.drop.js +1 -1
  68. package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.privilege.d.ts +4 -3
  69. package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.privilege.js +3 -3
  70. package/dist/core/objects/foreign-data-wrapper/server/changes/server.alter.d.ts +4 -3
  71. package/dist/core/objects/foreign-data-wrapper/server/changes/server.alter.js +3 -3
  72. package/dist/core/objects/foreign-data-wrapper/server/changes/server.comment.d.ts +3 -2
  73. package/dist/core/objects/foreign-data-wrapper/server/changes/server.comment.js +2 -2
  74. package/dist/core/objects/foreign-data-wrapper/server/changes/server.create.d.ts +2 -1
  75. package/dist/core/objects/foreign-data-wrapper/server/changes/server.create.js +1 -1
  76. package/dist/core/objects/foreign-data-wrapper/server/changes/server.drop.d.ts +2 -1
  77. package/dist/core/objects/foreign-data-wrapper/server/changes/server.drop.js +1 -1
  78. package/dist/core/objects/foreign-data-wrapper/server/changes/server.privilege.d.ts +4 -3
  79. package/dist/core/objects/foreign-data-wrapper/server/changes/server.privilege.js +3 -3
  80. package/dist/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.alter.d.ts +2 -1
  81. package/dist/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.alter.js +1 -1
  82. package/dist/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.create.d.ts +2 -1
  83. package/dist/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.create.js +1 -1
  84. package/dist/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.drop.d.ts +2 -1
  85. package/dist/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.drop.js +1 -1
  86. package/dist/core/objects/index/changes/index.alter.d.ts +4 -3
  87. package/dist/core/objects/index/changes/index.alter.js +3 -3
  88. package/dist/core/objects/index/changes/index.comment.d.ts +3 -2
  89. package/dist/core/objects/index/changes/index.comment.js +2 -2
  90. package/dist/core/objects/index/changes/index.create.d.ts +2 -1
  91. package/dist/core/objects/index/changes/index.create.js +1 -1
  92. package/dist/core/objects/index/changes/index.drop.d.ts +2 -1
  93. package/dist/core/objects/index/changes/index.drop.js +1 -1
  94. package/dist/core/objects/language/changes/language.alter.d.ts +2 -1
  95. package/dist/core/objects/language/changes/language.alter.js +1 -1
  96. package/dist/core/objects/language/changes/language.comment.d.ts +3 -2
  97. package/dist/core/objects/language/changes/language.comment.js +2 -2
  98. package/dist/core/objects/language/changes/language.create.d.ts +2 -1
  99. package/dist/core/objects/language/changes/language.create.js +1 -1
  100. package/dist/core/objects/language/changes/language.drop.d.ts +2 -1
  101. package/dist/core/objects/language/changes/language.drop.js +1 -1
  102. package/dist/core/objects/language/changes/language.privilege.d.ts +4 -3
  103. package/dist/core/objects/language/changes/language.privilege.js +3 -3
  104. package/dist/core/objects/materialized-view/changes/materialized-view.alter.d.ts +3 -2
  105. package/dist/core/objects/materialized-view/changes/materialized-view.alter.js +2 -2
  106. package/dist/core/objects/materialized-view/changes/materialized-view.comment.d.ts +5 -4
  107. package/dist/core/objects/materialized-view/changes/materialized-view.comment.js +4 -4
  108. package/dist/core/objects/materialized-view/changes/materialized-view.create.d.ts +2 -1
  109. package/dist/core/objects/materialized-view/changes/materialized-view.create.js +1 -1
  110. package/dist/core/objects/materialized-view/changes/materialized-view.drop.d.ts +2 -1
  111. package/dist/core/objects/materialized-view/changes/materialized-view.drop.js +1 -1
  112. package/dist/core/objects/materialized-view/changes/materialized-view.privilege.d.ts +4 -3
  113. package/dist/core/objects/materialized-view/changes/materialized-view.privilege.js +3 -3
  114. package/dist/core/objects/procedure/changes/procedure.alter.d.ts +8 -7
  115. package/dist/core/objects/procedure/changes/procedure.alter.js +7 -7
  116. package/dist/core/objects/procedure/changes/procedure.comment.d.ts +3 -2
  117. package/dist/core/objects/procedure/changes/procedure.comment.js +2 -2
  118. package/dist/core/objects/procedure/changes/procedure.create.d.ts +2 -1
  119. package/dist/core/objects/procedure/changes/procedure.create.js +1 -1
  120. package/dist/core/objects/procedure/changes/procedure.drop.d.ts +2 -1
  121. package/dist/core/objects/procedure/changes/procedure.drop.js +1 -1
  122. package/dist/core/objects/procedure/changes/procedure.privilege.d.ts +4 -3
  123. package/dist/core/objects/procedure/changes/procedure.privilege.js +3 -3
  124. package/dist/core/objects/publication/changes/publication.alter.d.ts +9 -7
  125. package/dist/core/objects/publication/changes/publication.alter.js +12 -7
  126. package/dist/core/objects/publication/changes/publication.comment.d.ts +3 -2
  127. package/dist/core/objects/publication/changes/publication.comment.js +2 -2
  128. package/dist/core/objects/publication/changes/publication.create.d.ts +2 -1
  129. package/dist/core/objects/publication/changes/publication.create.js +1 -1
  130. package/dist/core/objects/publication/changes/publication.drop.d.ts +2 -1
  131. package/dist/core/objects/publication/changes/publication.drop.js +1 -1
  132. package/dist/core/objects/rls-policy/changes/rls-policy.alter.d.ts +4 -3
  133. package/dist/core/objects/rls-policy/changes/rls-policy.alter.js +3 -3
  134. package/dist/core/objects/rls-policy/changes/rls-policy.comment.d.ts +3 -2
  135. package/dist/core/objects/rls-policy/changes/rls-policy.comment.js +2 -2
  136. package/dist/core/objects/rls-policy/changes/rls-policy.create.d.ts +2 -1
  137. package/dist/core/objects/rls-policy/changes/rls-policy.create.js +1 -1
  138. package/dist/core/objects/rls-policy/changes/rls-policy.drop.d.ts +2 -1
  139. package/dist/core/objects/rls-policy/changes/rls-policy.drop.js +1 -1
  140. package/dist/core/objects/role/changes/role.alter.d.ts +3 -2
  141. package/dist/core/objects/role/changes/role.alter.js +2 -2
  142. package/dist/core/objects/role/changes/role.comment.d.ts +3 -2
  143. package/dist/core/objects/role/changes/role.comment.js +2 -2
  144. package/dist/core/objects/role/changes/role.create.d.ts +2 -1
  145. package/dist/core/objects/role/changes/role.create.js +1 -1
  146. package/dist/core/objects/role/changes/role.drop.d.ts +2 -1
  147. package/dist/core/objects/role/changes/role.drop.js +1 -1
  148. package/dist/core/objects/role/changes/role.privilege.d.ts +6 -5
  149. package/dist/core/objects/role/changes/role.privilege.js +5 -5
  150. package/dist/core/objects/rule/changes/rule.alter.d.ts +3 -2
  151. package/dist/core/objects/rule/changes/rule.alter.js +2 -2
  152. package/dist/core/objects/rule/changes/rule.comment.d.ts +3 -2
  153. package/dist/core/objects/rule/changes/rule.comment.js +2 -2
  154. package/dist/core/objects/rule/changes/rule.create.d.ts +2 -1
  155. package/dist/core/objects/rule/changes/rule.create.js +1 -1
  156. package/dist/core/objects/rule/changes/rule.drop.d.ts +2 -1
  157. package/dist/core/objects/rule/changes/rule.drop.js +1 -1
  158. package/dist/core/objects/schema/changes/schema.alter.d.ts +2 -1
  159. package/dist/core/objects/schema/changes/schema.alter.js +1 -1
  160. package/dist/core/objects/schema/changes/schema.comment.d.ts +3 -2
  161. package/dist/core/objects/schema/changes/schema.comment.js +2 -2
  162. package/dist/core/objects/schema/changes/schema.create.d.ts +3 -5
  163. package/dist/core/objects/schema/changes/schema.drop.d.ts +2 -1
  164. package/dist/core/objects/schema/changes/schema.drop.js +1 -1
  165. package/dist/core/objects/schema/changes/schema.privilege.d.ts +4 -3
  166. package/dist/core/objects/schema/changes/schema.privilege.js +3 -3
  167. package/dist/core/objects/sequence/changes/sequence.alter.d.ts +3 -2
  168. package/dist/core/objects/sequence/changes/sequence.alter.js +2 -2
  169. package/dist/core/objects/sequence/changes/sequence.comment.d.ts +3 -2
  170. package/dist/core/objects/sequence/changes/sequence.comment.js +2 -2
  171. package/dist/core/objects/sequence/changes/sequence.create.d.ts +2 -1
  172. package/dist/core/objects/sequence/changes/sequence.create.js +1 -1
  173. package/dist/core/objects/sequence/changes/sequence.drop.d.ts +2 -1
  174. package/dist/core/objects/sequence/changes/sequence.drop.js +11 -3
  175. package/dist/core/objects/sequence/changes/sequence.privilege.d.ts +4 -3
  176. package/dist/core/objects/sequence/changes/sequence.privilege.js +3 -3
  177. package/dist/core/objects/sequence/sequence.diff.d.ts +4 -1
  178. package/dist/core/objects/sequence/sequence.diff.js +12 -0
  179. package/dist/core/objects/subscription/changes/subscription.alter.d.ts +7 -6
  180. package/dist/core/objects/subscription/changes/subscription.alter.js +6 -6
  181. package/dist/core/objects/subscription/changes/subscription.comment.d.ts +3 -2
  182. package/dist/core/objects/subscription/changes/subscription.comment.js +2 -2
  183. package/dist/core/objects/subscription/changes/subscription.create.d.ts +2 -1
  184. package/dist/core/objects/subscription/changes/subscription.create.js +1 -1
  185. package/dist/core/objects/subscription/changes/subscription.drop.d.ts +2 -1
  186. package/dist/core/objects/subscription/changes/subscription.drop.js +1 -1
  187. package/dist/core/objects/table/changes/table.alter.d.ts +65 -22
  188. package/dist/core/objects/table/changes/table.alter.js +107 -22
  189. package/dist/core/objects/table/changes/table.comment.d.ts +7 -6
  190. package/dist/core/objects/table/changes/table.comment.js +6 -6
  191. package/dist/core/objects/table/changes/table.create.d.ts +2 -1
  192. package/dist/core/objects/table/changes/table.create.js +1 -1
  193. package/dist/core/objects/table/changes/table.drop.d.ts +4 -3
  194. package/dist/core/objects/table/changes/table.drop.js +7 -1
  195. package/dist/core/objects/table/changes/table.privilege.d.ts +4 -3
  196. package/dist/core/objects/table/changes/table.privilege.js +3 -3
  197. package/dist/core/objects/table/table.diff.js +46 -1
  198. package/dist/core/objects/trigger/changes/trigger.alter.d.ts +2 -1
  199. package/dist/core/objects/trigger/changes/trigger.alter.js +1 -1
  200. package/dist/core/objects/trigger/changes/trigger.comment.d.ts +3 -2
  201. package/dist/core/objects/trigger/changes/trigger.comment.js +2 -2
  202. package/dist/core/objects/trigger/changes/trigger.create.d.ts +2 -1
  203. package/dist/core/objects/trigger/changes/trigger.create.js +1 -1
  204. package/dist/core/objects/trigger/changes/trigger.drop.d.ts +2 -1
  205. package/dist/core/objects/trigger/changes/trigger.drop.js +1 -1
  206. package/dist/core/objects/type/composite-type/changes/composite-type.alter.d.ts +5 -4
  207. package/dist/core/objects/type/composite-type/changes/composite-type.alter.js +4 -4
  208. package/dist/core/objects/type/composite-type/changes/composite-type.comment.d.ts +5 -4
  209. package/dist/core/objects/type/composite-type/changes/composite-type.comment.js +4 -4
  210. package/dist/core/objects/type/composite-type/changes/composite-type.create.d.ts +2 -1
  211. package/dist/core/objects/type/composite-type/changes/composite-type.create.js +1 -1
  212. package/dist/core/objects/type/composite-type/changes/composite-type.drop.d.ts +2 -1
  213. package/dist/core/objects/type/composite-type/changes/composite-type.drop.js +1 -1
  214. package/dist/core/objects/type/composite-type/changes/composite-type.privilege.d.ts +4 -3
  215. package/dist/core/objects/type/composite-type/changes/composite-type.privilege.js +3 -3
  216. package/dist/core/objects/type/enum/changes/enum.alter.d.ts +3 -2
  217. package/dist/core/objects/type/enum/changes/enum.alter.js +2 -2
  218. package/dist/core/objects/type/enum/changes/enum.comment.d.ts +3 -2
  219. package/dist/core/objects/type/enum/changes/enum.comment.js +2 -2
  220. package/dist/core/objects/type/enum/changes/enum.create.d.ts +2 -1
  221. package/dist/core/objects/type/enum/changes/enum.create.js +1 -1
  222. package/dist/core/objects/type/enum/changes/enum.drop.d.ts +2 -1
  223. package/dist/core/objects/type/enum/changes/enum.drop.js +1 -1
  224. package/dist/core/objects/type/enum/changes/enum.privilege.d.ts +4 -3
  225. package/dist/core/objects/type/enum/changes/enum.privilege.js +3 -3
  226. package/dist/core/objects/type/range/changes/range.alter.d.ts +2 -1
  227. package/dist/core/objects/type/range/changes/range.alter.js +1 -1
  228. package/dist/core/objects/type/range/changes/range.comment.d.ts +3 -2
  229. package/dist/core/objects/type/range/changes/range.comment.js +2 -2
  230. package/dist/core/objects/type/range/changes/range.create.d.ts +2 -1
  231. package/dist/core/objects/type/range/changes/range.create.js +1 -1
  232. package/dist/core/objects/type/range/changes/range.drop.d.ts +2 -1
  233. package/dist/core/objects/type/range/changes/range.drop.js +1 -1
  234. package/dist/core/objects/type/range/changes/range.privilege.d.ts +4 -3
  235. package/dist/core/objects/type/range/changes/range.privilege.js +3 -3
  236. package/dist/core/objects/view/changes/view.alter.d.ts +4 -3
  237. package/dist/core/objects/view/changes/view.alter.js +3 -3
  238. package/dist/core/objects/view/changes/view.comment.d.ts +3 -2
  239. package/dist/core/objects/view/changes/view.comment.js +2 -2
  240. package/dist/core/objects/view/changes/view.create.d.ts +2 -1
  241. package/dist/core/objects/view/changes/view.create.js +1 -1
  242. package/dist/core/objects/view/changes/view.drop.d.ts +2 -1
  243. package/dist/core/objects/view/changes/view.drop.js +1 -1
  244. package/dist/core/objects/view/changes/view.privilege.d.ts +4 -3
  245. package/dist/core/objects/view/changes/view.privilege.js +3 -3
  246. package/dist/core/sort/custom-constraints.js +64 -0
  247. package/package.json +1 -1
  248. package/src/core/expand-replace-dependencies.test.ts +126 -1
  249. package/src/core/expand-replace-dependencies.ts +50 -0
  250. package/src/core/integrations/serialize/dsl.test.ts +20 -1
  251. package/src/core/integrations/serialize/dsl.ts +1 -10
  252. package/src/core/integrations/serialize/serialize.types.ts +37 -0
  253. package/src/core/integrations/supabase.ts +19 -0
  254. package/src/core/objects/aggregate/changes/aggregate.alter.ts +2 -1
  255. package/src/core/objects/aggregate/changes/aggregate.comment.ts +3 -2
  256. package/src/core/objects/aggregate/changes/aggregate.create.ts +2 -1
  257. package/src/core/objects/aggregate/changes/aggregate.drop.ts +2 -1
  258. package/src/core/objects/aggregate/changes/aggregate.privilege.ts +4 -3
  259. package/src/core/objects/base.change.ts +3 -1
  260. package/src/core/objects/collation/changes/collation.alter.ts +3 -2
  261. package/src/core/objects/collation/changes/collation.comment.ts +3 -2
  262. package/src/core/objects/collation/changes/collation.create.ts +2 -1
  263. package/src/core/objects/collation/changes/collation.drop.ts +2 -1
  264. package/src/core/objects/domain/changes/domain.alter.ts +9 -8
  265. package/src/core/objects/domain/changes/domain.comment.ts +3 -2
  266. package/src/core/objects/domain/changes/domain.create.ts +2 -1
  267. package/src/core/objects/domain/changes/domain.drop.ts +2 -1
  268. package/src/core/objects/domain/changes/domain.privilege.ts +4 -3
  269. package/src/core/objects/event-trigger/changes/event-trigger.alter.ts +3 -2
  270. package/src/core/objects/event-trigger/changes/event-trigger.comment.ts +3 -2
  271. package/src/core/objects/event-trigger/changes/event-trigger.create.ts +2 -1
  272. package/src/core/objects/event-trigger/changes/event-trigger.drop.ts +2 -1
  273. package/src/core/objects/extension/changes/extension.alter.ts +3 -2
  274. package/src/core/objects/extension/changes/extension.comment.ts +3 -2
  275. package/src/core/objects/extension/changes/extension.create.test.ts +22 -0
  276. package/src/core/objects/extension/changes/extension.create.ts +5 -2
  277. package/src/core/objects/extension/changes/extension.drop.ts +2 -1
  278. package/src/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.alter.ts +3 -2
  279. package/src/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.comment.ts +3 -2
  280. package/src/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.create.ts +2 -1
  281. package/src/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.drop.ts +2 -1
  282. package/src/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.privilege.ts +4 -3
  283. package/src/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.alter.ts +10 -9
  284. package/src/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.comment.ts +3 -2
  285. package/src/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.create.ts +2 -1
  286. package/src/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.drop.ts +2 -1
  287. package/src/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.privilege.ts +4 -3
  288. package/src/core/objects/foreign-data-wrapper/server/changes/server.alter.ts +4 -3
  289. package/src/core/objects/foreign-data-wrapper/server/changes/server.comment.ts +3 -2
  290. package/src/core/objects/foreign-data-wrapper/server/changes/server.create.ts +2 -1
  291. package/src/core/objects/foreign-data-wrapper/server/changes/server.drop.ts +2 -1
  292. package/src/core/objects/foreign-data-wrapper/server/changes/server.privilege.ts +4 -3
  293. package/src/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.alter.ts +2 -1
  294. package/src/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.create.ts +2 -1
  295. package/src/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.drop.ts +2 -1
  296. package/src/core/objects/index/changes/index.alter.ts +4 -3
  297. package/src/core/objects/index/changes/index.comment.ts +3 -2
  298. package/src/core/objects/index/changes/index.create.ts +2 -1
  299. package/src/core/objects/index/changes/index.drop.ts +2 -1
  300. package/src/core/objects/language/changes/language.alter.ts +2 -1
  301. package/src/core/objects/language/changes/language.comment.ts +3 -2
  302. package/src/core/objects/language/changes/language.create.ts +2 -1
  303. package/src/core/objects/language/changes/language.drop.ts +2 -1
  304. package/src/core/objects/language/changes/language.privilege.ts +4 -3
  305. package/src/core/objects/materialized-view/changes/materialized-view.alter.ts +3 -2
  306. package/src/core/objects/materialized-view/changes/materialized-view.comment.ts +5 -4
  307. package/src/core/objects/materialized-view/changes/materialized-view.create.ts +2 -1
  308. package/src/core/objects/materialized-view/changes/materialized-view.drop.ts +2 -1
  309. package/src/core/objects/materialized-view/changes/materialized-view.privilege.ts +4 -3
  310. package/src/core/objects/procedure/changes/procedure.alter.ts +8 -7
  311. package/src/core/objects/procedure/changes/procedure.comment.ts +3 -2
  312. package/src/core/objects/procedure/changes/procedure.create.ts +2 -1
  313. package/src/core/objects/procedure/changes/procedure.drop.ts +2 -1
  314. package/src/core/objects/procedure/changes/procedure.privilege.ts +4 -3
  315. package/src/core/objects/publication/changes/publication.alter.test.ts +4 -0
  316. package/src/core/objects/publication/changes/publication.alter.ts +14 -7
  317. package/src/core/objects/publication/changes/publication.comment.ts +3 -2
  318. package/src/core/objects/publication/changes/publication.create.ts +2 -1
  319. package/src/core/objects/publication/changes/publication.drop.ts +2 -1
  320. package/src/core/objects/rls-policy/changes/rls-policy.alter.ts +4 -3
  321. package/src/core/objects/rls-policy/changes/rls-policy.comment.ts +3 -2
  322. package/src/core/objects/rls-policy/changes/rls-policy.create.ts +2 -1
  323. package/src/core/objects/rls-policy/changes/rls-policy.drop.ts +2 -1
  324. package/src/core/objects/role/changes/role.alter.ts +3 -2
  325. package/src/core/objects/role/changes/role.comment.ts +3 -2
  326. package/src/core/objects/role/changes/role.create.ts +2 -1
  327. package/src/core/objects/role/changes/role.drop.ts +2 -1
  328. package/src/core/objects/role/changes/role.privilege.ts +6 -5
  329. package/src/core/objects/rule/changes/rule.alter.ts +3 -2
  330. package/src/core/objects/rule/changes/rule.comment.ts +3 -2
  331. package/src/core/objects/rule/changes/rule.create.ts +2 -1
  332. package/src/core/objects/rule/changes/rule.drop.ts +2 -1
  333. package/src/core/objects/schema/changes/schema.alter.ts +2 -1
  334. package/src/core/objects/schema/changes/schema.comment.ts +3 -2
  335. package/src/core/objects/schema/changes/schema.create.ts +3 -3
  336. package/src/core/objects/schema/changes/schema.drop.ts +2 -1
  337. package/src/core/objects/schema/changes/schema.privilege.ts +4 -3
  338. package/src/core/objects/sequence/changes/sequence.alter.ts +3 -2
  339. package/src/core/objects/sequence/changes/sequence.comment.ts +3 -2
  340. package/src/core/objects/sequence/changes/sequence.create.ts +2 -1
  341. package/src/core/objects/sequence/changes/sequence.drop.ts +16 -3
  342. package/src/core/objects/sequence/changes/sequence.privilege.ts +4 -3
  343. package/src/core/objects/sequence/sequence.diff.test.ts +73 -1
  344. package/src/core/objects/sequence/sequence.diff.ts +24 -2
  345. package/src/core/objects/subscription/changes/subscription.alter.ts +7 -6
  346. package/src/core/objects/subscription/changes/subscription.comment.ts +3 -2
  347. package/src/core/objects/subscription/changes/subscription.create.ts +2 -1
  348. package/src/core/objects/subscription/changes/subscription.drop.ts +2 -1
  349. package/src/core/objects/table/changes/table.alter.test.ts +38 -0
  350. package/src/core/objects/table/changes/table.alter.ts +123 -22
  351. package/src/core/objects/table/changes/table.comment.ts +7 -6
  352. package/src/core/objects/table/changes/table.create.ts +2 -1
  353. package/src/core/objects/table/changes/table.drop.ts +20 -1
  354. package/src/core/objects/table/changes/table.privilege.ts +4 -3
  355. package/src/core/objects/table/table.diff.test.ts +121 -0
  356. package/src/core/objects/table/table.diff.ts +64 -1
  357. package/src/core/objects/trigger/changes/trigger.alter.ts +2 -1
  358. package/src/core/objects/trigger/changes/trigger.comment.ts +3 -2
  359. package/src/core/objects/trigger/changes/trigger.create.ts +2 -1
  360. package/src/core/objects/trigger/changes/trigger.drop.ts +2 -1
  361. package/src/core/objects/type/composite-type/changes/composite-type.alter.ts +5 -4
  362. package/src/core/objects/type/composite-type/changes/composite-type.comment.ts +5 -4
  363. package/src/core/objects/type/composite-type/changes/composite-type.create.ts +2 -1
  364. package/src/core/objects/type/composite-type/changes/composite-type.drop.ts +2 -1
  365. package/src/core/objects/type/composite-type/changes/composite-type.privilege.ts +4 -3
  366. package/src/core/objects/type/enum/changes/enum.alter.ts +3 -2
  367. package/src/core/objects/type/enum/changes/enum.comment.ts +3 -2
  368. package/src/core/objects/type/enum/changes/enum.create.ts +2 -1
  369. package/src/core/objects/type/enum/changes/enum.drop.ts +2 -1
  370. package/src/core/objects/type/enum/changes/enum.privilege.ts +4 -3
  371. package/src/core/objects/type/range/changes/range.alter.ts +2 -1
  372. package/src/core/objects/type/range/changes/range.comment.ts +3 -2
  373. package/src/core/objects/type/range/changes/range.create.ts +2 -1
  374. package/src/core/objects/type/range/changes/range.drop.ts +2 -1
  375. package/src/core/objects/type/range/changes/range.privilege.ts +4 -3
  376. package/src/core/objects/view/changes/view.alter.ts +4 -3
  377. package/src/core/objects/view/changes/view.comment.ts +3 -2
  378. package/src/core/objects/view/changes/view.create.ts +2 -1
  379. package/src/core/objects/view/changes/view.drop.ts +2 -1
  380. package/src/core/objects/view/changes/view.privilege.ts +4 -3
  381. package/src/core/plan/sql-format/format-off.test.ts +1 -1
  382. package/src/core/plan/sql-format/format-pretty-lower-leading.test.ts +1 -1
  383. package/src/core/plan/sql-format/format-pretty-narrow.test.ts +1 -1
  384. package/src/core/plan/sql-format/format-pretty-preserve.test.ts +1 -1
  385. package/src/core/plan/sql-format/format-pretty-upper.test.ts +1 -1
  386. package/src/core/sort/custom-constraints.ts +74 -0
  387. package/src/typedoc.ts +5 -0
@@ -1,3 +1,4 @@
1
+ import type { SerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
1
2
  import type { Rule } from "../rule.model.ts";
2
3
  import { CreateRuleChange } from "./rule.base.ts";
3
4
  export declare class CreateRule extends CreateRuleChange {
@@ -10,5 +11,5 @@ export declare class CreateRule extends CreateRuleChange {
10
11
  });
11
12
  get creates(): `rule:${string}`[];
12
13
  get requires(): string[];
13
- serialize(): string;
14
+ serialize(_options?: SerializeOptions): string;
14
15
  }
@@ -18,7 +18,7 @@ export class CreateRule extends CreateRuleChange {
18
18
  ...this.rule.columns.map((column) => stableId.column(this.rule.schema, this.rule.table_name, column)),
19
19
  ];
20
20
  }
21
- serialize() {
21
+ serialize(_options) {
22
22
  let definition = this.rule.definition.trim();
23
23
  definition = definition.replace(/^CREATE\s+(?:OR\s+REPLACE\s+)?/i, `CREATE ${this.orReplace ? "OR REPLACE " : ""}`);
24
24
  // Remove trailing semicolons (pg_get_ruledef includes them, but we add our own)
@@ -1,3 +1,4 @@
1
+ import type { SerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
1
2
  import type { Rule } from "../rule.model.ts";
2
3
  import { DropRuleChange } from "./rule.base.ts";
3
4
  export declare class DropRule extends DropRuleChange {
@@ -8,5 +9,5 @@ export declare class DropRule extends DropRuleChange {
8
9
  });
9
10
  get drops(): `rule:${string}`[];
10
11
  get requires(): string[];
11
- serialize(): string;
12
+ serialize(_options?: SerializeOptions): string;
12
13
  }
@@ -12,7 +12,7 @@ export class DropRule extends DropRuleChange {
12
12
  get requires() {
13
13
  return [this.rule.stableId, this.rule.relationStableId];
14
14
  }
15
- serialize() {
15
+ serialize(_options) {
16
16
  return [
17
17
  "DROP RULE",
18
18
  this.rule.name,
@@ -1,3 +1,4 @@
1
+ import type { SerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
1
2
  import type { Schema } from "../schema.model.ts";
2
3
  import { AlterSchemaChange } from "./schema.base.ts";
3
4
  /**
@@ -24,7 +25,7 @@ export declare class AlterSchemaChangeOwner extends AlterSchemaChange {
24
25
  owner: string;
25
26
  });
26
27
  get requires(): `schema:${string}`[];
27
- serialize(): string;
28
+ serialize(_options?: SerializeOptions): string;
28
29
  }
29
30
  /**
30
31
  * Replace a schema by dropping and recreating it.
@@ -14,7 +14,7 @@ export class AlterSchemaChangeOwner extends AlterSchemaChange {
14
14
  get requires() {
15
15
  return [this.schema.stableId];
16
16
  }
17
- serialize() {
17
+ serialize(_options) {
18
18
  return ["ALTER SCHEMA", this.schema.name, "OWNER TO", this.owner].join(" ");
19
19
  }
20
20
  }
@@ -1,3 +1,4 @@
1
+ import type { SerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
1
2
  import type { Schema } from "../schema.model.ts";
2
3
  import { CreateSchemaChange, DropSchemaChange } from "./schema.base.ts";
3
4
  export type CommentSchema = CreateCommentOnSchema | DropCommentOnSchema;
@@ -9,7 +10,7 @@ export declare class CreateCommentOnSchema extends CreateSchemaChange {
9
10
  });
10
11
  get creates(): `comment:${string}`[];
11
12
  get requires(): `schema:${string}`[];
12
- serialize(): string;
13
+ serialize(_options?: SerializeOptions): string;
13
14
  }
14
15
  export declare class DropCommentOnSchema extends DropSchemaChange {
15
16
  readonly schema: Schema;
@@ -19,5 +20,5 @@ export declare class DropCommentOnSchema extends DropSchemaChange {
19
20
  });
20
21
  get drops(): `comment:${string}`[];
21
22
  get requires(): (`schema:${string}` | `comment:${string}`)[];
22
- serialize(): string;
23
+ serialize(_options?: SerializeOptions): string;
23
24
  }
@@ -14,7 +14,7 @@ export class CreateCommentOnSchema extends CreateSchemaChange {
14
14
  get requires() {
15
15
  return [this.schema.stableId];
16
16
  }
17
- serialize() {
17
+ serialize(_options) {
18
18
  return [
19
19
  "COMMENT ON SCHEMA",
20
20
  this.schema.name,
@@ -37,7 +37,7 @@ export class DropCommentOnSchema extends DropSchemaChange {
37
37
  get requires() {
38
38
  return [stableId.comment(this.schema.stableId), this.schema.stableId];
39
39
  }
40
- serialize() {
40
+ serialize(_options) {
41
41
  return ["COMMENT ON SCHEMA", this.schema.name, "IS NULL"].join(" ");
42
42
  }
43
43
  }
@@ -1,3 +1,4 @@
1
+ import type { SchemaSerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
1
2
  import type { Schema } from "../schema.model.ts";
2
3
  import { CreateSchemaChange } from "./schema.base.ts";
3
4
  /**
@@ -17,11 +18,8 @@ export declare class CreateSchema extends CreateSchemaChange {
17
18
  readonly scope: "object";
18
19
  constructor(props: {
19
20
  schema: Schema;
20
- skipAuthorization?: boolean;
21
- });
21
+ } & SchemaSerializeOptions);
22
22
  get creates(): `schema:${string}`[];
23
23
  get requires(): `role:${string}`[];
24
- serialize(options?: {
25
- skipAuthorization?: boolean;
26
- }): string;
24
+ serialize(options?: SchemaSerializeOptions): string;
27
25
  }
@@ -1,3 +1,4 @@
1
+ import type { SerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
1
2
  import type { Schema } from "../schema.model.ts";
2
3
  import { DropSchemaChange } from "./schema.base.ts";
3
4
  /**
@@ -18,5 +19,5 @@ export declare class DropSchema extends DropSchemaChange {
18
19
  });
19
20
  get drops(): `schema:${string}`[];
20
21
  get requires(): `schema:${string}`[];
21
- serialize(): string;
22
+ serialize(_options?: SerializeOptions): string;
22
23
  }
@@ -22,7 +22,7 @@ export class DropSchema extends DropSchemaChange {
22
22
  get requires() {
23
23
  return [this.schema.stableId];
24
24
  }
25
- serialize() {
25
+ serialize(_options) {
26
26
  return ["DROP SCHEMA", this.schema.name].join(" ");
27
27
  }
28
28
  }
@@ -1,3 +1,4 @@
1
+ import type { SerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
1
2
  import type { Schema } from "../schema.model.ts";
2
3
  import { AlterSchemaChange } from "./schema.base.ts";
3
4
  export type SchemaPrivilege = GrantSchemaPrivileges | RevokeSchemaPrivileges | RevokeGrantOptionSchemaPrivileges;
@@ -34,7 +35,7 @@ export declare class GrantSchemaPrivileges extends AlterSchemaChange {
34
35
  });
35
36
  get creates(): `acl:${string}::grantee:${string}`[];
36
37
  get requires(): (`schema:${string}` | `role:${string}`)[];
37
- serialize(): string;
38
+ serialize(_options?: SerializeOptions): string;
38
39
  }
39
40
  /**
40
41
  * Revoke privileges on a schema.
@@ -71,7 +72,7 @@ export declare class RevokeSchemaPrivileges extends AlterSchemaChange {
71
72
  });
72
73
  get drops(): `acl:${string}::grantee:${string}`[];
73
74
  get requires(): (`schema:${string}` | `acl:${string}::grantee:${string}` | `role:${string}`)[];
74
- serialize(): string;
75
+ serialize(_options?: SerializeOptions): string;
75
76
  }
76
77
  /**
77
78
  * Revoke grant option for privileges on a schema.
@@ -93,5 +94,5 @@ export declare class RevokeGrantOptionSchemaPrivileges extends AlterSchemaChange
93
94
  version?: number;
94
95
  });
95
96
  get requires(): (`schema:${string}` | `acl:${string}::grantee:${string}` | `role:${string}`)[];
96
- serialize(): string;
97
+ serialize(_options?: SerializeOptions): string;
97
98
  }
@@ -33,7 +33,7 @@ export class GrantSchemaPrivileges extends AlterSchemaChange {
33
33
  get requires() {
34
34
  return [this.schema.stableId, stableId.role(this.grantee)];
35
35
  }
36
- serialize() {
36
+ serialize(_options) {
37
37
  const hasGrantable = this.privileges.some((p) => p.grantable);
38
38
  const hasBase = this.privileges.some((p) => !p.grantable);
39
39
  if (hasGrantable && hasBase) {
@@ -87,7 +87,7 @@ export class RevokeSchemaPrivileges extends AlterSchemaChange {
87
87
  stableId.role(this.grantee),
88
88
  ];
89
89
  }
90
- serialize() {
90
+ serialize(_options) {
91
91
  const kindPrefix = getObjectKindPrefix("SCHEMA");
92
92
  const list = this.privileges.map((p) => p.privilege);
93
93
  const privSql = formatObjectPrivilegeList("SCHEMA", list, this.version);
@@ -122,7 +122,7 @@ export class RevokeGrantOptionSchemaPrivileges extends AlterSchemaChange {
122
122
  stableId.role(this.grantee),
123
123
  ];
124
124
  }
125
- serialize() {
125
+ serialize(_options) {
126
126
  const kindPrefix = getObjectKindPrefix("SCHEMA");
127
127
  const privSql = formatObjectPrivilegeList("SCHEMA", this.privilegeNames, this.version);
128
128
  const schemaName = this.schema.name;
@@ -1,3 +1,4 @@
1
+ import type { SerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
1
2
  import type { Sequence } from "../sequence.model.ts";
2
3
  import { AlterSequenceChange } from "./sequence.base.ts";
3
4
  /**
@@ -35,7 +36,7 @@ export declare class AlterSequenceSetOwnedBy extends AlterSequenceChange {
35
36
  });
36
37
  get creates(): never[];
37
38
  get requires(): (`column:${string}.${string}.${string}` | `sequence:${string}`)[];
38
- serialize(): string;
39
+ serialize(_options?: SerializeOptions): string;
39
40
  }
40
41
  /**
41
42
  * ALTER SEQUENCE ... set options ...
@@ -51,7 +52,7 @@ export declare class AlterSequenceSetOptions extends AlterSequenceChange {
51
52
  });
52
53
  get creates(): never[];
53
54
  get requires(): `sequence:${string}`[];
54
- serialize(): string;
55
+ serialize(_options?: SerializeOptions): string;
55
56
  }
56
57
  /**
57
58
  * Replace a sequence by dropping and recreating it.
@@ -25,7 +25,7 @@ export class AlterSequenceSetOwnedBy extends AlterSequenceChange {
25
25
  : []),
26
26
  ];
27
27
  }
28
- serialize() {
28
+ serialize(_options) {
29
29
  const head = [
30
30
  "ALTER SEQUENCE",
31
31
  `${this.sequence.schema}.${this.sequence.name}`,
@@ -60,7 +60,7 @@ export class AlterSequenceSetOptions extends AlterSequenceChange {
60
60
  return [this.sequence.stableId];
61
61
  }
62
62
  // Note: default max computation moved to diff when building options
63
- serialize() {
63
+ serialize(_options) {
64
64
  const parts = [
65
65
  "ALTER SEQUENCE",
66
66
  `${this.sequence.schema}.${this.sequence.name}`,
@@ -1,3 +1,4 @@
1
+ import type { SerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
1
2
  import type { Sequence } from "../sequence.model.ts";
2
3
  import { CreateSequenceChange, DropSequenceChange } from "./sequence.base.ts";
3
4
  export type CommentSequence = CreateCommentOnSequence | DropCommentOnSequence;
@@ -9,7 +10,7 @@ export declare class CreateCommentOnSequence extends CreateSequenceChange {
9
10
  });
10
11
  get creates(): `comment:${string}`[];
11
12
  get requires(): `sequence:${string}`[];
12
- serialize(): string;
13
+ serialize(_options?: SerializeOptions): string;
13
14
  }
14
15
  export declare class DropCommentOnSequence extends DropSequenceChange {
15
16
  readonly sequence: Sequence;
@@ -19,5 +20,5 @@ export declare class DropCommentOnSequence extends DropSequenceChange {
19
20
  });
20
21
  get drops(): `comment:${string}`[];
21
22
  get requires(): (`comment:${string}` | `sequence:${string}`)[];
22
- serialize(): string;
23
+ serialize(_options?: SerializeOptions): string;
23
24
  }
@@ -14,7 +14,7 @@ export class CreateCommentOnSequence extends CreateSequenceChange {
14
14
  get requires() {
15
15
  return [this.sequence.stableId];
16
16
  }
17
- serialize() {
17
+ serialize(_options) {
18
18
  return [
19
19
  "COMMENT ON SEQUENCE",
20
20
  `${this.sequence.schema}.${this.sequence.name}`,
@@ -37,7 +37,7 @@ export class DropCommentOnSequence extends DropSequenceChange {
37
37
  get requires() {
38
38
  return [stableId.comment(this.sequence.stableId), this.sequence.stableId];
39
39
  }
40
- serialize() {
40
+ serialize(_options) {
41
41
  return [
42
42
  "COMMENT ON SEQUENCE",
43
43
  `${this.sequence.schema}.${this.sequence.name}`,
@@ -1,3 +1,4 @@
1
+ import type { SerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
1
2
  import type { Sequence } from "../sequence.model.ts";
2
3
  import { CreateSequenceChange } from "./sequence.base.ts";
3
4
  /**
@@ -21,5 +22,5 @@ export declare class CreateSequence extends CreateSequenceChange {
21
22
  });
22
23
  get creates(): `sequence:${string}`[];
23
24
  get requires(): string[];
24
- serialize(): string;
25
+ serialize(_options?: SerializeOptions): string;
25
26
  }
@@ -38,7 +38,7 @@ export class CreateSequence extends CreateSequenceChange {
38
38
  }
39
39
  return Array.from(dependencies);
40
40
  }
41
- serialize() {
41
+ serialize(_options) {
42
42
  const parts = ["CREATE SEQUENCE"];
43
43
  // Add schema and name
44
44
  parts.push(`${this.sequence.schema}.${this.sequence.name}`);
@@ -1,3 +1,4 @@
1
+ import type { SerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
1
2
  import type { Sequence } from "../sequence.model.ts";
2
3
  import { DropSequenceChange } from "./sequence.base.ts";
3
4
  /**
@@ -18,5 +19,5 @@ export declare class DropSequence extends DropSequenceChange {
18
19
  });
19
20
  get drops(): `sequence:${string}`[];
20
21
  get requires(): `sequence:${string}`[];
21
- serialize(): string;
22
+ serialize(_options?: SerializeOptions): string;
22
23
  }
@@ -22,10 +22,18 @@ export class DropSequence extends DropSequenceChange {
22
22
  get requires() {
23
23
  return [this.sequence.stableId];
24
24
  }
25
- serialize() {
26
- return [
25
+ serialize(_options) {
26
+ const parts = [
27
27
  "DROP SEQUENCE",
28
28
  `${this.sequence.schema}.${this.sequence.name}`,
29
- ].join(" ");
29
+ ];
30
+ // Owned sequences still need CASCADE here because DROP runs in the earlier
31
+ // phase and later ALTER TABLE statements will re-establish the desired default.
32
+ if (this.sequence.owned_by_schema &&
33
+ this.sequence.owned_by_table &&
34
+ this.sequence.owned_by_column) {
35
+ parts.push("CASCADE");
36
+ }
37
+ return parts.join(" ");
30
38
  }
31
39
  }
@@ -1,3 +1,4 @@
1
+ import type { SerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
1
2
  import type { Sequence } from "../sequence.model.ts";
2
3
  import { AlterSequenceChange } from "./sequence.base.ts";
3
4
  export type SequencePrivilege = GrantSequencePrivileges | RevokeSequencePrivileges | RevokeGrantOptionSequencePrivileges;
@@ -36,7 +37,7 @@ export declare class GrantSequencePrivileges extends AlterSequenceChange {
36
37
  });
37
38
  get creates(): `acl:${string}::grantee:${string}`[];
38
39
  get requires(): (`role:${string}` | `sequence:${string}`)[];
39
- serialize(): string;
40
+ serialize(_options?: SerializeOptions): string;
40
41
  }
41
42
  /**
42
43
  * Revoke privileges on a sequence.
@@ -75,7 +76,7 @@ export declare class RevokeSequencePrivileges extends AlterSequenceChange {
75
76
  });
76
77
  get drops(): `acl:${string}::grantee:${string}`[];
77
78
  get requires(): (`acl:${string}::grantee:${string}` | `role:${string}` | `sequence:${string}`)[];
78
- serialize(): string;
79
+ serialize(_options?: SerializeOptions): string;
79
80
  }
80
81
  /**
81
82
  * Revoke grant option for privileges on a sequence.
@@ -97,5 +98,5 @@ export declare class RevokeGrantOptionSequencePrivileges extends AlterSequenceCh
97
98
  version?: number;
98
99
  });
99
100
  get requires(): (`acl:${string}::grantee:${string}` | `role:${string}` | `sequence:${string}`)[];
100
- serialize(): string;
101
+ serialize(_options?: SerializeOptions): string;
101
102
  }
@@ -35,7 +35,7 @@ export class GrantSequencePrivileges extends AlterSequenceChange {
35
35
  get requires() {
36
36
  return [this.sequence.stableId, stableId.role(this.grantee)];
37
37
  }
38
- serialize() {
38
+ serialize(_options) {
39
39
  const hasGrantable = this.privileges.some((p) => p.grantable);
40
40
  const hasBase = this.privileges.some((p) => !p.grantable);
41
41
  if (hasGrantable && hasBase) {
@@ -91,7 +91,7 @@ export class RevokeSequencePrivileges extends AlterSequenceChange {
91
91
  stableId.role(this.grantee),
92
92
  ];
93
93
  }
94
- serialize() {
94
+ serialize(_options) {
95
95
  const kindPrefix = getObjectKindPrefix("SEQUENCE");
96
96
  const list = this.privileges.map((p) => p.privilege);
97
97
  const privSql = formatObjectPrivilegeList("SEQUENCE", list, this.version);
@@ -126,7 +126,7 @@ export class RevokeGrantOptionSequencePrivileges extends AlterSequenceChange {
126
126
  stableId.role(this.grantee),
127
127
  ];
128
128
  }
129
- serialize() {
129
+ serialize(_options) {
130
130
  const kindPrefix = getObjectKindPrefix("SEQUENCE");
131
131
  const privSql = formatObjectPrivilegeList("SEQUENCE", this.privilegeNames, this.version);
132
132
  const sequenceName = `${this.sequence.schema}.${this.sequence.name}`;
@@ -1,7 +1,9 @@
1
1
  import type { ObjectDiffContext } from "../diff-context.ts";
2
+ import { AlterTableAlterColumnSetDefault } from "../table/changes/table.alter.ts";
2
3
  import type { Table } from "../table/table.model.ts";
3
4
  import type { SequenceChange } from "./changes/sequence.types.ts";
4
5
  import type { Sequence } from "./sequence.model.ts";
6
+ type SequenceOrColumnSetDefaultChange = AlterTableAlterColumnSetDefault | SequenceChange;
5
7
  /**
6
8
  * Diff two sets of sequences from main and branch catalogs.
7
9
  *
@@ -11,4 +13,5 @@ import type { Sequence } from "./sequence.model.ts";
11
13
  * @param branchTables - The tables in the branch catalog (used to check if owning tables are being dropped).
12
14
  * @returns A list of changes to apply to main to make it match branch.
13
15
  */
14
- export declare function diffSequences(ctx: Pick<ObjectDiffContext, "version" | "currentUser" | "defaultPrivilegeState">, main: Record<string, Sequence>, branch: Record<string, Sequence>, branchTables?: Record<string, Table>): SequenceChange[];
16
+ export declare function diffSequences(ctx: Pick<ObjectDiffContext, "version" | "currentUser" | "defaultPrivilegeState">, main: Record<string, Sequence>, branch: Record<string, Sequence>, branchTables?: Record<string, Table>): SequenceOrColumnSetDefaultChange[];
17
+ export {};
@@ -1,5 +1,6 @@
1
1
  import { diffObjects } from "../base.diff.js";
2
2
  import { diffPrivileges, emitObjectPrivilegeChanges, } from "../base.privilege-diff.js";
3
+ import { AlterTableAlterColumnSetDefault } from "../table/changes/table.alter.js";
3
4
  import { hasNonAlterableChanges } from "../utils.js";
4
5
  import { AlterSequenceSetOptions, AlterSequenceSetOwnedBy, } from "./changes/sequence.alter.js";
5
6
  import { CreateCommentOnSequence, DropCommentOnSequence, } from "./changes/sequence.comment.js";
@@ -90,6 +91,9 @@ export function diffSequences(ctx, main, branch, branchTables = {}) {
90
91
  if (branchSequence.owned_by_schema !== null &&
91
92
  branchSequence.owned_by_table !== null &&
92
93
  branchSequence.owned_by_column !== null) {
94
+ const ownedByTableId = `table:${branchSequence.owned_by_schema}.${branchSequence.owned_by_table}`;
95
+ const ownedByTable = branchTables[ownedByTableId];
96
+ const ownedByColumn = ownedByTable?.columns?.find((column) => column.name === branchSequence.owned_by_column);
93
97
  changes.push(new AlterSequenceSetOwnedBy({
94
98
  sequence: branchSequence,
95
99
  ownedBy: {
@@ -98,6 +102,14 @@ export function diffSequences(ctx, main, branch, branchTables = {}) {
98
102
  column: branchSequence.owned_by_column,
99
103
  },
100
104
  }));
105
+ // Replacing an owned sequence with DROP ... CASCADE removes the column's
106
+ // existing nextval(...) default, so restore it after ownership is reattached.
107
+ if (ownedByTable && ownedByColumn && ownedByColumn.default !== null) {
108
+ changes.push(new AlterTableAlterColumnSetDefault({
109
+ table: ownedByTable,
110
+ column: ownedByColumn,
111
+ }));
112
+ }
101
113
  }
102
114
  else if (mainSequence.owned_by_schema !== null ||
103
115
  mainSequence.owned_by_table !== null ||
@@ -1,3 +1,4 @@
1
+ import type { SerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
1
2
  import type { Subscription } from "../subscription.model.ts";
2
3
  import { type SubscriptionSettableOption } from "../utils.ts";
3
4
  import { AlterSubscriptionChange } from "./subscription.base.ts";
@@ -7,7 +8,7 @@ export declare class AlterSubscriptionSetConnection extends AlterSubscriptionCha
7
8
  constructor(props: {
8
9
  subscription: Subscription;
9
10
  });
10
- serialize(): string;
11
+ serialize(_options?: SerializeOptions): string;
11
12
  }
12
13
  export declare class AlterSubscriptionSetPublication extends AlterSubscriptionChange {
13
14
  readonly subscription: Subscription;
@@ -15,7 +16,7 @@ export declare class AlterSubscriptionSetPublication extends AlterSubscriptionCh
15
16
  constructor(props: {
16
17
  subscription: Subscription;
17
18
  });
18
- serialize(): string;
19
+ serialize(_options?: SerializeOptions): string;
19
20
  }
20
21
  export declare class AlterSubscriptionEnable extends AlterSubscriptionChange {
21
22
  readonly subscription: Subscription;
@@ -23,7 +24,7 @@ export declare class AlterSubscriptionEnable extends AlterSubscriptionChange {
23
24
  constructor(props: {
24
25
  subscription: Subscription;
25
26
  });
26
- serialize(): string;
27
+ serialize(_options?: SerializeOptions): string;
27
28
  }
28
29
  export declare class AlterSubscriptionDisable extends AlterSubscriptionChange {
29
30
  readonly subscription: Subscription;
@@ -31,7 +32,7 @@ export declare class AlterSubscriptionDisable extends AlterSubscriptionChange {
31
32
  constructor(props: {
32
33
  subscription: Subscription;
33
34
  });
34
- serialize(): string;
35
+ serialize(_options?: SerializeOptions): string;
35
36
  }
36
37
  export declare class AlterSubscriptionSetOptions extends AlterSubscriptionChange {
37
38
  readonly subscription: Subscription;
@@ -41,7 +42,7 @@ export declare class AlterSubscriptionSetOptions extends AlterSubscriptionChange
41
42
  subscription: Subscription;
42
43
  options: SubscriptionSettableOption[];
43
44
  });
44
- serialize(): string;
45
+ serialize(_options?: SerializeOptions): string;
45
46
  }
46
47
  export declare class AlterSubscriptionSetOwner extends AlterSubscriptionChange {
47
48
  readonly subscription: Subscription;
@@ -52,5 +53,5 @@ export declare class AlterSubscriptionSetOwner extends AlterSubscriptionChange {
52
53
  owner: string;
53
54
  });
54
55
  get requires(): `role:${string}`[];
55
- serialize(): string;
56
+ serialize(_options?: SerializeOptions): string;
56
57
  }
@@ -9,7 +9,7 @@ export class AlterSubscriptionSetConnection extends AlterSubscriptionChange {
9
9
  super();
10
10
  this.subscription = props.subscription;
11
11
  }
12
- serialize() {
12
+ serialize(_options) {
13
13
  return `ALTER SUBSCRIPTION ${this.subscription.name} CONNECTION ${quoteLiteral(this.subscription.conninfo)}`;
14
14
  }
15
15
  }
@@ -20,7 +20,7 @@ export class AlterSubscriptionSetPublication extends AlterSubscriptionChange {
20
20
  super();
21
21
  this.subscription = props.subscription;
22
22
  }
23
- serialize() {
23
+ serialize(_options) {
24
24
  const base = `ALTER SUBSCRIPTION ${this.subscription.name} SET PUBLICATION ${this.subscription.publications.join(", ")}`;
25
25
  if (!this.subscription.enabled) {
26
26
  return `${base} WITH (refresh = false)`;
@@ -35,7 +35,7 @@ export class AlterSubscriptionEnable extends AlterSubscriptionChange {
35
35
  super();
36
36
  this.subscription = props.subscription;
37
37
  }
38
- serialize() {
38
+ serialize(_options) {
39
39
  return `ALTER SUBSCRIPTION ${this.subscription.name} ENABLE`;
40
40
  }
41
41
  }
@@ -46,7 +46,7 @@ export class AlterSubscriptionDisable extends AlterSubscriptionChange {
46
46
  super();
47
47
  this.subscription = props.subscription;
48
48
  }
49
- serialize() {
49
+ serialize(_options) {
50
50
  return `ALTER SUBSCRIPTION ${this.subscription.name} DISABLE`;
51
51
  }
52
52
  }
@@ -59,7 +59,7 @@ export class AlterSubscriptionSetOptions extends AlterSubscriptionChange {
59
59
  this.subscription = props.subscription;
60
60
  this.options = props.options;
61
61
  }
62
- serialize() {
62
+ serialize(_options) {
63
63
  const assignments = this.options.map((option) => formatSubscriptionOption(this.subscription, option));
64
64
  return `ALTER SUBSCRIPTION ${this.subscription.name} SET (${assignments.join(", ")})`;
65
65
  }
@@ -76,7 +76,7 @@ export class AlterSubscriptionSetOwner extends AlterSubscriptionChange {
76
76
  get requires() {
77
77
  return [stableId.role(this.owner)];
78
78
  }
79
- serialize() {
79
+ serialize(_options) {
80
80
  return `ALTER SUBSCRIPTION ${this.subscription.name} OWNER TO ${this.owner}`;
81
81
  }
82
82
  }
@@ -1,3 +1,4 @@
1
+ import type { SerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
1
2
  import type { Subscription } from "../subscription.model.ts";
2
3
  import { CreateSubscriptionChange, DropSubscriptionChange } from "./subscription.base.ts";
3
4
  export type CommentSubscription = CreateCommentOnSubscription | DropCommentOnSubscription;
@@ -9,7 +10,7 @@ export declare class CreateCommentOnSubscription extends CreateSubscriptionChang
9
10
  });
10
11
  get creates(): `comment:${string}`[];
11
12
  get requires(): `subscription:${string}`[];
12
- serialize(): string;
13
+ serialize(_options?: SerializeOptions): string;
13
14
  }
14
15
  export declare class DropCommentOnSubscription extends DropSubscriptionChange {
15
16
  readonly subscription: Subscription;
@@ -19,5 +20,5 @@ export declare class DropCommentOnSubscription extends DropSubscriptionChange {
19
20
  });
20
21
  get drops(): `comment:${string}`[];
21
22
  get requires(): (`comment:${string}` | `subscription:${string}`)[];
22
- serialize(): string;
23
+ serialize(_options?: SerializeOptions): string;
23
24
  }
@@ -14,7 +14,7 @@ export class CreateCommentOnSubscription extends CreateSubscriptionChange {
14
14
  get requires() {
15
15
  return [this.subscription.stableId];
16
16
  }
17
- serialize() {
17
+ serialize(_options) {
18
18
  return [
19
19
  "COMMENT ON SUBSCRIPTION",
20
20
  this.subscription.name,
@@ -40,7 +40,7 @@ export class DropCommentOnSubscription extends DropSubscriptionChange {
40
40
  this.subscription.stableId,
41
41
  ];
42
42
  }
43
- serialize() {
43
+ serialize(_options) {
44
44
  return `COMMENT ON SUBSCRIPTION ${this.subscription.name} IS NULL`;
45
45
  }
46
46
  }
@@ -1,3 +1,4 @@
1
+ import type { SerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
1
2
  import type { Subscription } from "../subscription.model.ts";
2
3
  import { CreateSubscriptionChange } from "./subscription.base.ts";
3
4
  export declare class CreateSubscription extends CreateSubscriptionChange {
@@ -8,5 +9,5 @@ export declare class CreateSubscription extends CreateSubscriptionChange {
8
9
  });
9
10
  get creates(): `subscription:${string}`[];
10
11
  get requires(): `role:${string}`[];
11
- serialize(): string;
12
+ serialize(_options?: SerializeOptions): string;
12
13
  }
@@ -16,7 +16,7 @@ export class CreateSubscription extends CreateSubscriptionChange {
16
16
  get requires() {
17
17
  return [stableId.role(this.subscription.owner)];
18
18
  }
19
- serialize() {
19
+ serialize(_options) {
20
20
  const parts = [
21
21
  "CREATE SUBSCRIPTION",
22
22
  this.subscription.name,
@@ -1,3 +1,4 @@
1
+ import type { SerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
1
2
  import type { Subscription } from "../subscription.model.ts";
2
3
  import { DropSubscriptionChange } from "./subscription.base.ts";
3
4
  export declare class DropSubscription extends DropSubscriptionChange {
@@ -7,5 +8,5 @@ export declare class DropSubscription extends DropSubscriptionChange {
7
8
  subscription: Subscription;
8
9
  });
9
10
  get drops(): `subscription:${string}`[];
10
- serialize(): string;
11
+ serialize(_options?: SerializeOptions): string;
11
12
  }
@@ -9,7 +9,7 @@ export class DropSubscription extends DropSubscriptionChange {
9
9
  get drops() {
10
10
  return [this.subscription.stableId];
11
11
  }
12
- serialize() {
12
+ serialize(_options) {
13
13
  return `DROP SUBSCRIPTION ${this.subscription.name}`;
14
14
  }
15
15
  }