@supabase/pg-delta 1.0.0-alpha.10 → 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 (496) hide show
  1. package/dist/cli/commands/declarative-export.js +12 -17
  2. package/dist/cli/commands/plan.js +10 -13
  3. package/dist/cli/commands/sync.js +8 -12
  4. package/dist/cli/utils/integrations.d.ts +30 -6
  5. package/dist/cli/utils/integrations.js +98 -6
  6. package/dist/core/change-utils.d.ts +9 -0
  7. package/dist/core/change-utils.js +71 -0
  8. package/dist/core/change.types.d.ts +22 -0
  9. package/dist/core/change.types.js +37 -1
  10. package/dist/core/depend.js +25 -0
  11. package/dist/core/expand-replace-dependencies.js +23 -0
  12. package/dist/core/export/file-mapper.d.ts +2 -2
  13. package/dist/core/integrations/filter/dsl.d.ts +78 -74
  14. package/dist/core/integrations/filter/dsl.js +127 -79
  15. package/dist/core/integrations/filter/flatten.d.ts +51 -0
  16. package/dist/core/integrations/filter/flatten.js +116 -0
  17. package/dist/core/integrations/integration-dsl.d.ts +17 -1
  18. package/dist/core/integrations/merge.d.ts +20 -0
  19. package/dist/core/integrations/merge.js +60 -0
  20. package/dist/core/integrations/serialize/dsl.d.ts +8 -12
  21. package/dist/core/integrations/serialize/dsl.js +2 -2
  22. package/dist/core/integrations/serialize/serialize.types.d.ts +31 -0
  23. package/dist/core/integrations/supabase.js +42 -8
  24. package/dist/core/objects/aggregate/changes/aggregate.alter.d.ts +2 -1
  25. package/dist/core/objects/aggregate/changes/aggregate.alter.js +1 -1
  26. package/dist/core/objects/aggregate/changes/aggregate.comment.d.ts +3 -2
  27. package/dist/core/objects/aggregate/changes/aggregate.comment.js +2 -2
  28. package/dist/core/objects/aggregate/changes/aggregate.create.d.ts +2 -1
  29. package/dist/core/objects/aggregate/changes/aggregate.create.js +1 -1
  30. package/dist/core/objects/aggregate/changes/aggregate.drop.d.ts +2 -1
  31. package/dist/core/objects/aggregate/changes/aggregate.drop.js +1 -1
  32. package/dist/core/objects/aggregate/changes/aggregate.privilege.d.ts +4 -3
  33. package/dist/core/objects/aggregate/changes/aggregate.privilege.js +3 -3
  34. package/dist/core/objects/aggregate/changes/aggregate.types.d.ts +1 -0
  35. package/dist/core/objects/base.change.d.ts +12 -1
  36. package/dist/core/objects/base.change.js +10 -0
  37. package/dist/core/objects/base.model.d.ts +4 -1
  38. package/dist/core/objects/base.model.js +5 -2
  39. package/dist/core/objects/collation/changes/collation.alter.d.ts +3 -2
  40. package/dist/core/objects/collation/changes/collation.alter.js +2 -2
  41. package/dist/core/objects/collation/changes/collation.comment.d.ts +3 -2
  42. package/dist/core/objects/collation/changes/collation.comment.js +2 -2
  43. package/dist/core/objects/collation/changes/collation.create.d.ts +2 -1
  44. package/dist/core/objects/collation/changes/collation.create.js +1 -1
  45. package/dist/core/objects/collation/changes/collation.drop.d.ts +2 -1
  46. package/dist/core/objects/collation/changes/collation.drop.js +1 -1
  47. package/dist/core/objects/collation/changes/collation.types.d.ts +1 -0
  48. package/dist/core/objects/domain/changes/domain.alter.d.ts +9 -8
  49. package/dist/core/objects/domain/changes/domain.alter.js +8 -8
  50. package/dist/core/objects/domain/changes/domain.comment.d.ts +3 -2
  51. package/dist/core/objects/domain/changes/domain.comment.js +2 -2
  52. package/dist/core/objects/domain/changes/domain.create.d.ts +3 -2
  53. package/dist/core/objects/domain/changes/domain.create.js +8 -2
  54. package/dist/core/objects/domain/changes/domain.drop.d.ts +2 -1
  55. package/dist/core/objects/domain/changes/domain.drop.js +1 -1
  56. package/dist/core/objects/domain/changes/domain.privilege.d.ts +4 -3
  57. package/dist/core/objects/domain/changes/domain.privilege.js +3 -3
  58. package/dist/core/objects/domain/changes/domain.types.d.ts +1 -0
  59. package/dist/core/objects/event-trigger/changes/event-trigger.alter.d.ts +3 -2
  60. package/dist/core/objects/event-trigger/changes/event-trigger.alter.js +2 -2
  61. package/dist/core/objects/event-trigger/changes/event-trigger.comment.d.ts +3 -2
  62. package/dist/core/objects/event-trigger/changes/event-trigger.comment.js +2 -2
  63. package/dist/core/objects/event-trigger/changes/event-trigger.create.d.ts +2 -1
  64. package/dist/core/objects/event-trigger/changes/event-trigger.create.js +1 -1
  65. package/dist/core/objects/event-trigger/changes/event-trigger.drop.d.ts +2 -1
  66. package/dist/core/objects/event-trigger/changes/event-trigger.drop.js +1 -1
  67. package/dist/core/objects/event-trigger/changes/event-trigger.types.d.ts +1 -0
  68. package/dist/core/objects/extension/changes/extension.alter.d.ts +3 -2
  69. package/dist/core/objects/extension/changes/extension.alter.js +2 -2
  70. package/dist/core/objects/extension/changes/extension.comment.d.ts +3 -2
  71. package/dist/core/objects/extension/changes/extension.comment.js +2 -2
  72. package/dist/core/objects/extension/changes/extension.create.d.ts +2 -1
  73. package/dist/core/objects/extension/changes/extension.create.js +4 -2
  74. package/dist/core/objects/extension/changes/extension.drop.d.ts +2 -1
  75. package/dist/core/objects/extension/changes/extension.drop.js +1 -1
  76. package/dist/core/objects/extension/changes/extension.types.d.ts +1 -0
  77. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.alter.d.ts +3 -2
  78. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.alter.js +2 -2
  79. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.comment.d.ts +3 -2
  80. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.comment.js +2 -2
  81. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.create.d.ts +2 -1
  82. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.create.js +1 -1
  83. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.drop.d.ts +2 -1
  84. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.drop.js +1 -1
  85. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.privilege.d.ts +4 -3
  86. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.privilege.js +3 -3
  87. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.types.d.ts +1 -0
  88. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper.types.d.ts +1 -0
  89. package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.alter.d.ts +10 -9
  90. package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.alter.js +9 -9
  91. package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.comment.d.ts +3 -2
  92. package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.comment.js +2 -2
  93. package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.create.d.ts +2 -1
  94. package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.create.js +1 -1
  95. package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.drop.d.ts +2 -1
  96. package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.drop.js +1 -1
  97. package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.privilege.d.ts +4 -3
  98. package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.privilege.js +3 -3
  99. package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.types.d.ts +1 -0
  100. package/dist/core/objects/foreign-data-wrapper/server/changes/server.alter.d.ts +4 -3
  101. package/dist/core/objects/foreign-data-wrapper/server/changes/server.alter.js +3 -3
  102. package/dist/core/objects/foreign-data-wrapper/server/changes/server.comment.d.ts +3 -2
  103. package/dist/core/objects/foreign-data-wrapper/server/changes/server.comment.js +2 -2
  104. package/dist/core/objects/foreign-data-wrapper/server/changes/server.create.d.ts +2 -1
  105. package/dist/core/objects/foreign-data-wrapper/server/changes/server.create.js +1 -1
  106. package/dist/core/objects/foreign-data-wrapper/server/changes/server.drop.d.ts +2 -1
  107. package/dist/core/objects/foreign-data-wrapper/server/changes/server.drop.js +1 -1
  108. package/dist/core/objects/foreign-data-wrapper/server/changes/server.privilege.d.ts +4 -3
  109. package/dist/core/objects/foreign-data-wrapper/server/changes/server.privilege.js +3 -3
  110. package/dist/core/objects/foreign-data-wrapper/server/changes/server.types.d.ts +1 -0
  111. package/dist/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.alter.d.ts +2 -1
  112. package/dist/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.alter.js +1 -1
  113. package/dist/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.create.d.ts +2 -1
  114. package/dist/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.create.js +1 -1
  115. package/dist/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.drop.d.ts +2 -1
  116. package/dist/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.drop.js +1 -1
  117. package/dist/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.types.d.ts +1 -0
  118. package/dist/core/objects/index/changes/index.alter.d.ts +4 -3
  119. package/dist/core/objects/index/changes/index.alter.js +3 -3
  120. package/dist/core/objects/index/changes/index.comment.d.ts +3 -2
  121. package/dist/core/objects/index/changes/index.comment.js +2 -2
  122. package/dist/core/objects/index/changes/index.create.d.ts +2 -1
  123. package/dist/core/objects/index/changes/index.create.js +1 -1
  124. package/dist/core/objects/index/changes/index.drop.d.ts +2 -1
  125. package/dist/core/objects/index/changes/index.drop.js +1 -1
  126. package/dist/core/objects/index/changes/index.types.d.ts +1 -0
  127. package/dist/core/objects/language/changes/language.alter.d.ts +2 -1
  128. package/dist/core/objects/language/changes/language.alter.js +1 -1
  129. package/dist/core/objects/language/changes/language.comment.d.ts +3 -2
  130. package/dist/core/objects/language/changes/language.comment.js +2 -2
  131. package/dist/core/objects/language/changes/language.create.d.ts +2 -1
  132. package/dist/core/objects/language/changes/language.create.js +1 -1
  133. package/dist/core/objects/language/changes/language.drop.d.ts +2 -1
  134. package/dist/core/objects/language/changes/language.drop.js +1 -1
  135. package/dist/core/objects/language/changes/language.privilege.d.ts +4 -3
  136. package/dist/core/objects/language/changes/language.privilege.js +3 -3
  137. package/dist/core/objects/language/changes/language.types.d.ts +1 -0
  138. package/dist/core/objects/materialized-view/changes/materialized-view.alter.d.ts +3 -2
  139. package/dist/core/objects/materialized-view/changes/materialized-view.alter.js +2 -2
  140. package/dist/core/objects/materialized-view/changes/materialized-view.comment.d.ts +5 -4
  141. package/dist/core/objects/materialized-view/changes/materialized-view.comment.js +4 -4
  142. package/dist/core/objects/materialized-view/changes/materialized-view.create.d.ts +2 -1
  143. package/dist/core/objects/materialized-view/changes/materialized-view.create.js +1 -1
  144. package/dist/core/objects/materialized-view/changes/materialized-view.drop.d.ts +2 -1
  145. package/dist/core/objects/materialized-view/changes/materialized-view.drop.js +1 -1
  146. package/dist/core/objects/materialized-view/changes/materialized-view.privilege.d.ts +4 -3
  147. package/dist/core/objects/materialized-view/changes/materialized-view.privilege.js +3 -3
  148. package/dist/core/objects/materialized-view/changes/materialized-view.types.d.ts +1 -0
  149. package/dist/core/objects/procedure/changes/procedure.alter.d.ts +8 -7
  150. package/dist/core/objects/procedure/changes/procedure.alter.js +7 -7
  151. package/dist/core/objects/procedure/changes/procedure.comment.d.ts +3 -2
  152. package/dist/core/objects/procedure/changes/procedure.comment.js +2 -2
  153. package/dist/core/objects/procedure/changes/procedure.create.d.ts +2 -1
  154. package/dist/core/objects/procedure/changes/procedure.create.js +1 -1
  155. package/dist/core/objects/procedure/changes/procedure.drop.d.ts +2 -1
  156. package/dist/core/objects/procedure/changes/procedure.drop.js +1 -1
  157. package/dist/core/objects/procedure/changes/procedure.privilege.d.ts +4 -3
  158. package/dist/core/objects/procedure/changes/procedure.privilege.js +3 -3
  159. package/dist/core/objects/procedure/changes/procedure.types.d.ts +1 -0
  160. package/dist/core/objects/publication/changes/publication.alter.d.ts +9 -7
  161. package/dist/core/objects/publication/changes/publication.alter.js +12 -7
  162. package/dist/core/objects/publication/changes/publication.comment.d.ts +3 -2
  163. package/dist/core/objects/publication/changes/publication.comment.js +2 -2
  164. package/dist/core/objects/publication/changes/publication.create.d.ts +2 -1
  165. package/dist/core/objects/publication/changes/publication.create.js +1 -1
  166. package/dist/core/objects/publication/changes/publication.drop.d.ts +2 -1
  167. package/dist/core/objects/publication/changes/publication.drop.js +1 -1
  168. package/dist/core/objects/publication/changes/publication.types.d.ts +1 -0
  169. package/dist/core/objects/rls-policy/changes/rls-policy.alter.d.ts +4 -3
  170. package/dist/core/objects/rls-policy/changes/rls-policy.alter.js +3 -3
  171. package/dist/core/objects/rls-policy/changes/rls-policy.comment.d.ts +3 -2
  172. package/dist/core/objects/rls-policy/changes/rls-policy.comment.js +2 -2
  173. package/dist/core/objects/rls-policy/changes/rls-policy.create.d.ts +2 -1
  174. package/dist/core/objects/rls-policy/changes/rls-policy.create.js +1 -1
  175. package/dist/core/objects/rls-policy/changes/rls-policy.drop.d.ts +2 -1
  176. package/dist/core/objects/rls-policy/changes/rls-policy.drop.js +1 -1
  177. package/dist/core/objects/rls-policy/changes/rls-policy.types.d.ts +1 -0
  178. package/dist/core/objects/role/changes/role.alter.d.ts +3 -2
  179. package/dist/core/objects/role/changes/role.alter.js +2 -2
  180. package/dist/core/objects/role/changes/role.comment.d.ts +3 -2
  181. package/dist/core/objects/role/changes/role.comment.js +2 -2
  182. package/dist/core/objects/role/changes/role.create.d.ts +2 -1
  183. package/dist/core/objects/role/changes/role.create.js +1 -1
  184. package/dist/core/objects/role/changes/role.drop.d.ts +2 -1
  185. package/dist/core/objects/role/changes/role.drop.js +1 -1
  186. package/dist/core/objects/role/changes/role.privilege.d.ts +6 -5
  187. package/dist/core/objects/role/changes/role.privilege.js +5 -5
  188. package/dist/core/objects/role/changes/role.types.d.ts +1 -0
  189. package/dist/core/objects/rule/changes/rule.alter.d.ts +3 -2
  190. package/dist/core/objects/rule/changes/rule.alter.js +2 -2
  191. package/dist/core/objects/rule/changes/rule.comment.d.ts +3 -2
  192. package/dist/core/objects/rule/changes/rule.comment.js +2 -2
  193. package/dist/core/objects/rule/changes/rule.create.d.ts +2 -1
  194. package/dist/core/objects/rule/changes/rule.create.js +1 -1
  195. package/dist/core/objects/rule/changes/rule.drop.d.ts +2 -1
  196. package/dist/core/objects/rule/changes/rule.drop.js +1 -1
  197. package/dist/core/objects/rule/changes/rule.types.d.ts +1 -0
  198. package/dist/core/objects/schema/changes/schema.alter.d.ts +2 -1
  199. package/dist/core/objects/schema/changes/schema.alter.js +1 -1
  200. package/dist/core/objects/schema/changes/schema.comment.d.ts +3 -2
  201. package/dist/core/objects/schema/changes/schema.comment.js +2 -2
  202. package/dist/core/objects/schema/changes/schema.create.d.ts +3 -5
  203. package/dist/core/objects/schema/changes/schema.drop.d.ts +2 -1
  204. package/dist/core/objects/schema/changes/schema.drop.js +1 -1
  205. package/dist/core/objects/schema/changes/schema.privilege.d.ts +4 -3
  206. package/dist/core/objects/schema/changes/schema.privilege.js +3 -3
  207. package/dist/core/objects/schema/changes/schema.types.d.ts +1 -0
  208. package/dist/core/objects/sequence/changes/sequence.alter.d.ts +3 -2
  209. package/dist/core/objects/sequence/changes/sequence.alter.js +2 -2
  210. package/dist/core/objects/sequence/changes/sequence.comment.d.ts +3 -2
  211. package/dist/core/objects/sequence/changes/sequence.comment.js +2 -2
  212. package/dist/core/objects/sequence/changes/sequence.create.d.ts +2 -1
  213. package/dist/core/objects/sequence/changes/sequence.create.js +1 -1
  214. package/dist/core/objects/sequence/changes/sequence.drop.d.ts +2 -1
  215. package/dist/core/objects/sequence/changes/sequence.drop.js +11 -3
  216. package/dist/core/objects/sequence/changes/sequence.privilege.d.ts +4 -3
  217. package/dist/core/objects/sequence/changes/sequence.privilege.js +3 -3
  218. package/dist/core/objects/sequence/changes/sequence.types.d.ts +1 -0
  219. package/dist/core/objects/sequence/sequence.diff.d.ts +4 -1
  220. package/dist/core/objects/sequence/sequence.diff.js +12 -0
  221. package/dist/core/objects/subscription/changes/subscription.alter.d.ts +7 -6
  222. package/dist/core/objects/subscription/changes/subscription.alter.js +6 -6
  223. package/dist/core/objects/subscription/changes/subscription.comment.d.ts +3 -2
  224. package/dist/core/objects/subscription/changes/subscription.comment.js +2 -2
  225. package/dist/core/objects/subscription/changes/subscription.create.d.ts +2 -1
  226. package/dist/core/objects/subscription/changes/subscription.create.js +1 -1
  227. package/dist/core/objects/subscription/changes/subscription.drop.d.ts +2 -1
  228. package/dist/core/objects/subscription/changes/subscription.drop.js +1 -1
  229. package/dist/core/objects/subscription/changes/subscription.types.d.ts +1 -0
  230. package/dist/core/objects/table/changes/table.alter.d.ts +65 -22
  231. package/dist/core/objects/table/changes/table.alter.js +107 -22
  232. package/dist/core/objects/table/changes/table.comment.d.ts +7 -6
  233. package/dist/core/objects/table/changes/table.comment.js +6 -6
  234. package/dist/core/objects/table/changes/table.create.d.ts +2 -1
  235. package/dist/core/objects/table/changes/table.create.js +1 -1
  236. package/dist/core/objects/table/changes/table.drop.d.ts +4 -3
  237. package/dist/core/objects/table/changes/table.drop.js +7 -1
  238. package/dist/core/objects/table/changes/table.privilege.d.ts +4 -3
  239. package/dist/core/objects/table/changes/table.privilege.js +3 -3
  240. package/dist/core/objects/table/changes/table.types.d.ts +1 -0
  241. package/dist/core/objects/table/table.diff.js +46 -1
  242. package/dist/core/objects/trigger/changes/trigger.alter.d.ts +2 -1
  243. package/dist/core/objects/trigger/changes/trigger.alter.js +1 -1
  244. package/dist/core/objects/trigger/changes/trigger.comment.d.ts +3 -2
  245. package/dist/core/objects/trigger/changes/trigger.comment.js +2 -2
  246. package/dist/core/objects/trigger/changes/trigger.create.d.ts +2 -1
  247. package/dist/core/objects/trigger/changes/trigger.create.js +1 -1
  248. package/dist/core/objects/trigger/changes/trigger.drop.d.ts +2 -1
  249. package/dist/core/objects/trigger/changes/trigger.drop.js +1 -1
  250. package/dist/core/objects/trigger/changes/trigger.types.d.ts +1 -0
  251. package/dist/core/objects/type/composite-type/changes/composite-type.alter.d.ts +5 -4
  252. package/dist/core/objects/type/composite-type/changes/composite-type.alter.js +4 -4
  253. package/dist/core/objects/type/composite-type/changes/composite-type.comment.d.ts +5 -4
  254. package/dist/core/objects/type/composite-type/changes/composite-type.comment.js +4 -4
  255. package/dist/core/objects/type/composite-type/changes/composite-type.create.d.ts +2 -1
  256. package/dist/core/objects/type/composite-type/changes/composite-type.create.js +1 -1
  257. package/dist/core/objects/type/composite-type/changes/composite-type.drop.d.ts +2 -1
  258. package/dist/core/objects/type/composite-type/changes/composite-type.drop.js +1 -1
  259. package/dist/core/objects/type/composite-type/changes/composite-type.privilege.d.ts +4 -3
  260. package/dist/core/objects/type/composite-type/changes/composite-type.privilege.js +3 -3
  261. package/dist/core/objects/type/composite-type/changes/composite-type.types.d.ts +1 -0
  262. package/dist/core/objects/type/enum/changes/enum.alter.d.ts +3 -2
  263. package/dist/core/objects/type/enum/changes/enum.alter.js +2 -2
  264. package/dist/core/objects/type/enum/changes/enum.comment.d.ts +3 -2
  265. package/dist/core/objects/type/enum/changes/enum.comment.js +2 -2
  266. package/dist/core/objects/type/enum/changes/enum.create.d.ts +2 -1
  267. package/dist/core/objects/type/enum/changes/enum.create.js +1 -1
  268. package/dist/core/objects/type/enum/changes/enum.drop.d.ts +2 -1
  269. package/dist/core/objects/type/enum/changes/enum.drop.js +1 -1
  270. package/dist/core/objects/type/enum/changes/enum.privilege.d.ts +4 -3
  271. package/dist/core/objects/type/enum/changes/enum.privilege.js +3 -3
  272. package/dist/core/objects/type/enum/changes/enum.types.d.ts +1 -0
  273. package/dist/core/objects/type/range/changes/range.alter.d.ts +2 -1
  274. package/dist/core/objects/type/range/changes/range.alter.js +1 -1
  275. package/dist/core/objects/type/range/changes/range.comment.d.ts +3 -2
  276. package/dist/core/objects/type/range/changes/range.comment.js +2 -2
  277. package/dist/core/objects/type/range/changes/range.create.d.ts +2 -1
  278. package/dist/core/objects/type/range/changes/range.create.js +1 -1
  279. package/dist/core/objects/type/range/changes/range.drop.d.ts +2 -1
  280. package/dist/core/objects/type/range/changes/range.drop.js +1 -1
  281. package/dist/core/objects/type/range/changes/range.privilege.d.ts +4 -3
  282. package/dist/core/objects/type/range/changes/range.privilege.js +3 -3
  283. package/dist/core/objects/type/range/changes/range.types.d.ts +1 -0
  284. package/dist/core/objects/type/type.types.d.ts +1 -0
  285. package/dist/core/objects/view/changes/view.alter.d.ts +4 -3
  286. package/dist/core/objects/view/changes/view.alter.js +3 -3
  287. package/dist/core/objects/view/changes/view.comment.d.ts +3 -2
  288. package/dist/core/objects/view/changes/view.comment.js +2 -2
  289. package/dist/core/objects/view/changes/view.create.d.ts +2 -1
  290. package/dist/core/objects/view/changes/view.create.js +1 -1
  291. package/dist/core/objects/view/changes/view.drop.d.ts +2 -1
  292. package/dist/core/objects/view/changes/view.drop.js +1 -1
  293. package/dist/core/objects/view/changes/view.privilege.d.ts +4 -3
  294. package/dist/core/objects/view/changes/view.privilege.js +3 -3
  295. package/dist/core/objects/view/changes/view.types.d.ts +1 -0
  296. package/dist/core/objects/view/view.diff.js +24 -13
  297. package/dist/core/postgres-config.d.ts +2 -2
  298. package/dist/core/sort/custom-constraints.js +65 -1
  299. package/dist/core/sort/logical-sort.js +3 -24
  300. package/package.json +5 -1
  301. package/src/cli/commands/declarative-export.ts +19 -27
  302. package/src/cli/commands/plan.ts +14 -20
  303. package/src/cli/commands/sync.ts +8 -15
  304. package/src/cli/utils/integrations.test.ts +210 -3
  305. package/src/cli/utils/integrations.ts +134 -6
  306. package/src/core/catalog.snapshot.test.ts +11 -2
  307. package/src/core/change-utils.test.ts +61 -0
  308. package/src/core/change-utils.ts +73 -0
  309. package/src/core/change.types.ts +50 -0
  310. package/src/core/depend.ts +25 -0
  311. package/src/core/expand-replace-dependencies.test.ts +126 -1
  312. package/src/core/expand-replace-dependencies.ts +50 -0
  313. package/src/core/export/file-mapper.ts +7 -2
  314. package/src/core/integrations/filter/dsl.test.ts +299 -60
  315. package/src/core/integrations/filter/dsl.ts +208 -169
  316. package/src/core/integrations/filter/flatten.test.ts +282 -0
  317. package/src/core/integrations/filter/flatten.ts +150 -0
  318. package/src/core/integrations/integration-dsl.ts +17 -1
  319. package/src/core/integrations/merge.test.ts +128 -0
  320. package/src/core/integrations/merge.ts +72 -0
  321. package/src/core/integrations/serialize/dsl.test.ts +26 -7
  322. package/src/core/integrations/serialize/dsl.ts +8 -14
  323. package/src/core/integrations/serialize/serialize.types.ts +37 -0
  324. package/src/core/integrations/supabase.ts +42 -8
  325. package/src/core/objects/aggregate/changes/aggregate.alter.ts +2 -1
  326. package/src/core/objects/aggregate/changes/aggregate.comment.ts +3 -2
  327. package/src/core/objects/aggregate/changes/aggregate.create.ts +2 -1
  328. package/src/core/objects/aggregate/changes/aggregate.drop.ts +2 -1
  329. package/src/core/objects/aggregate/changes/aggregate.privilege.ts +4 -3
  330. package/src/core/objects/aggregate/changes/aggregate.types.ts +1 -0
  331. package/src/core/objects/base.change.ts +13 -1
  332. package/src/core/objects/base.model.test.ts +43 -0
  333. package/src/core/objects/base.model.ts +5 -2
  334. package/src/core/objects/collation/changes/collation.alter.ts +3 -2
  335. package/src/core/objects/collation/changes/collation.comment.ts +3 -2
  336. package/src/core/objects/collation/changes/collation.create.ts +2 -1
  337. package/src/core/objects/collation/changes/collation.drop.ts +2 -1
  338. package/src/core/objects/collation/changes/collation.types.ts +1 -0
  339. package/src/core/objects/domain/changes/domain.alter.ts +9 -8
  340. package/src/core/objects/domain/changes/domain.comment.ts +3 -2
  341. package/src/core/objects/domain/changes/domain.create.ts +19 -2
  342. package/src/core/objects/domain/changes/domain.drop.ts +2 -1
  343. package/src/core/objects/domain/changes/domain.privilege.ts +4 -3
  344. package/src/core/objects/domain/changes/domain.types.ts +1 -0
  345. package/src/core/objects/event-trigger/changes/event-trigger.alter.ts +3 -2
  346. package/src/core/objects/event-trigger/changes/event-trigger.comment.ts +3 -2
  347. package/src/core/objects/event-trigger/changes/event-trigger.create.ts +2 -1
  348. package/src/core/objects/event-trigger/changes/event-trigger.drop.ts +2 -1
  349. package/src/core/objects/event-trigger/changes/event-trigger.types.ts +1 -0
  350. package/src/core/objects/extension/changes/extension.alter.ts +3 -2
  351. package/src/core/objects/extension/changes/extension.comment.ts +3 -2
  352. package/src/core/objects/extension/changes/extension.create.test.ts +22 -0
  353. package/src/core/objects/extension/changes/extension.create.ts +5 -2
  354. package/src/core/objects/extension/changes/extension.drop.ts +2 -1
  355. package/src/core/objects/extension/changes/extension.types.ts +1 -0
  356. package/src/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.alter.ts +3 -2
  357. package/src/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.comment.ts +3 -2
  358. package/src/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.create.ts +2 -1
  359. package/src/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.drop.ts +2 -1
  360. package/src/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.privilege.ts +4 -3
  361. package/src/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.types.ts +1 -0
  362. package/src/core/objects/foreign-data-wrapper/foreign-data-wrapper.types.ts +1 -0
  363. package/src/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.alter.ts +10 -9
  364. package/src/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.comment.ts +3 -2
  365. package/src/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.create.ts +2 -1
  366. package/src/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.drop.ts +2 -1
  367. package/src/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.privilege.ts +4 -3
  368. package/src/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.types.ts +1 -0
  369. package/src/core/objects/foreign-data-wrapper/server/changes/server.alter.ts +4 -3
  370. package/src/core/objects/foreign-data-wrapper/server/changes/server.comment.ts +3 -2
  371. package/src/core/objects/foreign-data-wrapper/server/changes/server.create.ts +2 -1
  372. package/src/core/objects/foreign-data-wrapper/server/changes/server.drop.ts +2 -1
  373. package/src/core/objects/foreign-data-wrapper/server/changes/server.privilege.ts +4 -3
  374. package/src/core/objects/foreign-data-wrapper/server/changes/server.types.ts +1 -0
  375. package/src/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.alter.ts +2 -1
  376. package/src/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.create.ts +2 -1
  377. package/src/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.drop.ts +2 -1
  378. package/src/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.types.ts +1 -0
  379. package/src/core/objects/index/changes/index.alter.ts +4 -3
  380. package/src/core/objects/index/changes/index.comment.ts +3 -2
  381. package/src/core/objects/index/changes/index.create.ts +2 -1
  382. package/src/core/objects/index/changes/index.drop.ts +2 -1
  383. package/src/core/objects/index/changes/index.types.ts +1 -0
  384. package/src/core/objects/language/changes/language.alter.ts +2 -1
  385. package/src/core/objects/language/changes/language.comment.ts +3 -2
  386. package/src/core/objects/language/changes/language.create.ts +2 -1
  387. package/src/core/objects/language/changes/language.drop.ts +2 -1
  388. package/src/core/objects/language/changes/language.privilege.ts +4 -3
  389. package/src/core/objects/language/changes/language.types.ts +1 -0
  390. package/src/core/objects/materialized-view/changes/materialized-view.alter.ts +3 -2
  391. package/src/core/objects/materialized-view/changes/materialized-view.comment.ts +5 -4
  392. package/src/core/objects/materialized-view/changes/materialized-view.create.ts +2 -1
  393. package/src/core/objects/materialized-view/changes/materialized-view.drop.ts +2 -1
  394. package/src/core/objects/materialized-view/changes/materialized-view.privilege.ts +4 -3
  395. package/src/core/objects/materialized-view/changes/materialized-view.types.ts +1 -0
  396. package/src/core/objects/procedure/changes/procedure.alter.ts +8 -7
  397. package/src/core/objects/procedure/changes/procedure.comment.ts +3 -2
  398. package/src/core/objects/procedure/changes/procedure.create.ts +2 -1
  399. package/src/core/objects/procedure/changes/procedure.drop.ts +2 -1
  400. package/src/core/objects/procedure/changes/procedure.privilege.ts +4 -3
  401. package/src/core/objects/procedure/changes/procedure.types.ts +1 -0
  402. package/src/core/objects/publication/changes/publication.alter.test.ts +4 -0
  403. package/src/core/objects/publication/changes/publication.alter.ts +14 -7
  404. package/src/core/objects/publication/changes/publication.comment.ts +3 -2
  405. package/src/core/objects/publication/changes/publication.create.ts +2 -1
  406. package/src/core/objects/publication/changes/publication.drop.ts +2 -1
  407. package/src/core/objects/publication/changes/publication.types.ts +1 -0
  408. package/src/core/objects/rls-policy/changes/rls-policy.alter.ts +4 -3
  409. package/src/core/objects/rls-policy/changes/rls-policy.comment.ts +3 -2
  410. package/src/core/objects/rls-policy/changes/rls-policy.create.ts +2 -1
  411. package/src/core/objects/rls-policy/changes/rls-policy.drop.ts +2 -1
  412. package/src/core/objects/rls-policy/changes/rls-policy.types.ts +1 -0
  413. package/src/core/objects/role/changes/role.alter.ts +3 -2
  414. package/src/core/objects/role/changes/role.comment.ts +3 -2
  415. package/src/core/objects/role/changes/role.create.ts +2 -1
  416. package/src/core/objects/role/changes/role.drop.ts +2 -1
  417. package/src/core/objects/role/changes/role.privilege.ts +6 -5
  418. package/src/core/objects/role/changes/role.types.ts +1 -0
  419. package/src/core/objects/rule/changes/rule.alter.ts +3 -2
  420. package/src/core/objects/rule/changes/rule.comment.ts +3 -2
  421. package/src/core/objects/rule/changes/rule.create.ts +2 -1
  422. package/src/core/objects/rule/changes/rule.drop.ts +2 -1
  423. package/src/core/objects/rule/changes/rule.types.ts +1 -0
  424. package/src/core/objects/schema/changes/schema.alter.ts +2 -1
  425. package/src/core/objects/schema/changes/schema.comment.ts +3 -2
  426. package/src/core/objects/schema/changes/schema.create.ts +3 -3
  427. package/src/core/objects/schema/changes/schema.drop.ts +2 -1
  428. package/src/core/objects/schema/changes/schema.privilege.ts +4 -3
  429. package/src/core/objects/schema/changes/schema.types.ts +1 -0
  430. package/src/core/objects/sequence/changes/sequence.alter.ts +3 -2
  431. package/src/core/objects/sequence/changes/sequence.comment.ts +3 -2
  432. package/src/core/objects/sequence/changes/sequence.create.ts +2 -1
  433. package/src/core/objects/sequence/changes/sequence.drop.ts +16 -3
  434. package/src/core/objects/sequence/changes/sequence.privilege.ts +4 -3
  435. package/src/core/objects/sequence/changes/sequence.types.ts +1 -0
  436. package/src/core/objects/sequence/sequence.diff.test.ts +73 -1
  437. package/src/core/objects/sequence/sequence.diff.ts +24 -2
  438. package/src/core/objects/subscription/changes/subscription.alter.ts +7 -6
  439. package/src/core/objects/subscription/changes/subscription.comment.ts +3 -2
  440. package/src/core/objects/subscription/changes/subscription.create.ts +2 -1
  441. package/src/core/objects/subscription/changes/subscription.drop.ts +2 -1
  442. package/src/core/objects/subscription/changes/subscription.types.ts +1 -0
  443. package/src/core/objects/table/changes/table.alter.test.ts +38 -0
  444. package/src/core/objects/table/changes/table.alter.ts +123 -22
  445. package/src/core/objects/table/changes/table.comment.ts +7 -6
  446. package/src/core/objects/table/changes/table.create.ts +2 -1
  447. package/src/core/objects/table/changes/table.drop.ts +20 -1
  448. package/src/core/objects/table/changes/table.privilege.ts +4 -3
  449. package/src/core/objects/table/changes/table.types.ts +1 -0
  450. package/src/core/objects/table/table.diff.test.ts +121 -0
  451. package/src/core/objects/table/table.diff.ts +64 -1
  452. package/src/core/objects/trigger/changes/trigger.alter.ts +2 -1
  453. package/src/core/objects/trigger/changes/trigger.comment.ts +3 -2
  454. package/src/core/objects/trigger/changes/trigger.create.ts +2 -1
  455. package/src/core/objects/trigger/changes/trigger.drop.ts +2 -1
  456. package/src/core/objects/trigger/changes/trigger.types.ts +1 -0
  457. package/src/core/objects/type/composite-type/changes/composite-type.alter.ts +5 -4
  458. package/src/core/objects/type/composite-type/changes/composite-type.comment.ts +5 -4
  459. package/src/core/objects/type/composite-type/changes/composite-type.create.ts +2 -1
  460. package/src/core/objects/type/composite-type/changes/composite-type.drop.ts +2 -1
  461. package/src/core/objects/type/composite-type/changes/composite-type.privilege.ts +4 -3
  462. package/src/core/objects/type/composite-type/changes/composite-type.types.ts +1 -0
  463. package/src/core/objects/type/enum/changes/enum.alter.ts +3 -2
  464. package/src/core/objects/type/enum/changes/enum.comment.ts +3 -2
  465. package/src/core/objects/type/enum/changes/enum.create.ts +2 -1
  466. package/src/core/objects/type/enum/changes/enum.drop.ts +2 -1
  467. package/src/core/objects/type/enum/changes/enum.privilege.ts +4 -3
  468. package/src/core/objects/type/enum/changes/enum.types.ts +1 -0
  469. package/src/core/objects/type/range/changes/range.alter.ts +2 -1
  470. package/src/core/objects/type/range/changes/range.comment.ts +3 -2
  471. package/src/core/objects/type/range/changes/range.create.ts +2 -1
  472. package/src/core/objects/type/range/changes/range.drop.ts +2 -1
  473. package/src/core/objects/type/range/changes/range.privilege.ts +4 -3
  474. package/src/core/objects/type/range/changes/range.types.ts +1 -0
  475. package/src/core/objects/type/type.types.ts +1 -0
  476. package/src/core/objects/view/changes/view.alter.ts +4 -3
  477. package/src/core/objects/view/changes/view.comment.ts +3 -2
  478. package/src/core/objects/view/changes/view.create.ts +2 -1
  479. package/src/core/objects/view/changes/view.drop.ts +2 -1
  480. package/src/core/objects/view/changes/view.privilege.ts +4 -3
  481. package/src/core/objects/view/changes/view.types.ts +1 -0
  482. package/src/core/objects/view/view.diff.test.ts +96 -0
  483. package/src/core/objects/view/view.diff.ts +30 -15
  484. package/src/core/plan/sql-format/format-off.test.ts +1 -1
  485. package/src/core/plan/sql-format/format-pretty-lower-leading.test.ts +1 -1
  486. package/src/core/plan/sql-format/format-pretty-narrow.test.ts +1 -1
  487. package/src/core/plan/sql-format/format-pretty-preserve.test.ts +1 -1
  488. package/src/core/plan/sql-format/format-pretty-upper.test.ts +1 -1
  489. package/src/core/postgres-config.ts +2 -2
  490. package/src/core/sort/custom-constraints.ts +75 -1
  491. package/src/core/sort/logical-sort.ts +3 -27
  492. package/src/typedoc.ts +253 -0
  493. package/dist/core/integrations/filter/extractors.d.ts +0 -12
  494. package/dist/core/integrations/filter/extractors.js +0 -178
  495. package/src/core/integrations/filter/extractors.test.ts +0 -244
  496. package/src/core/integrations/filter/extractors.ts +0 -187
@@ -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}`;
@@ -3,4 +3,5 @@ import type { CommentSequence } from "./sequence.comment.ts";
3
3
  import type { CreateSequence } from "./sequence.create.ts";
4
4
  import type { DropSequence } from "./sequence.drop.ts";
5
5
  import type { SequencePrivilege } from "./sequence.privilege.ts";
6
+ /** Union of all sequence-related change variants (`objectType: "sequence"`). @category Change Types */
6
7
  export type SequenceChange = AlterSequence | CommentSequence | CreateSequence | DropSequence | SequencePrivilege;
@@ -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
  }
@@ -2,4 +2,5 @@ import type { AlterSubscriptionDisable, AlterSubscriptionEnable, AlterSubscripti
2
2
  import type { CommentSubscription } from "./subscription.comment.ts";
3
3
  import type { CreateSubscription } from "./subscription.create.ts";
4
4
  import type { DropSubscription } from "./subscription.drop.ts";
5
+ /** Union of all subscription-related change variants (`objectType: "subscription"`). @category Change Types */
5
6
  export type SubscriptionChange = CreateSubscription | DropSubscription | AlterSubscriptionSetConnection | AlterSubscriptionSetPublication | AlterSubscriptionEnable | AlterSubscriptionDisable | AlterSubscriptionSetOptions | AlterSubscriptionSetOwner | CommentSubscription;
@@ -1,3 +1,4 @@
1
+ import type { SerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
1
2
  import type { ColumnProps } from "../../base.model.ts";
2
3
  import type { Table, TableConstraintProps } from "../table.model.ts";
3
4
  import { AlterTableChange } from "./table.base.ts";
@@ -54,7 +55,7 @@ import { AlterTableChange } from "./table.base.ts";
54
55
  * DETACH PARTITION partition_name [ CONCURRENTLY | FINALIZE ]
55
56
  * ```
56
57
  */
57
- export type AlterTable = AlterTableAddColumn | AlterTableAddConstraint | AlterTableAlterColumnDropDefault | AlterTableAlterColumnDropNotNull | AlterTableAlterColumnSetDefault | AlterTableAlterColumnSetNotNull | AlterTableAlterColumnType | AlterTableAttachPartition | AlterTableChangeOwner | AlterTableDetachPartition | AlterTableDisableRowLevelSecurity | AlterTableDropColumn | AlterTableDropConstraint | AlterTableEnableRowLevelSecurity | AlterTableForceRowLevelSecurity | AlterTableNoForceRowLevelSecurity | AlterTableResetStorageParams | AlterTableSetLogged | AlterTableSetReplicaIdentity | AlterTableSetStorageParams | AlterTableSetUnlogged | AlterTableValidateConstraint;
58
+ export type AlterTable = AlterTableAddColumn | AlterTableAddConstraint | AlterTableAlterColumnAddIdentity | AlterTableAlterColumnDropDefault | AlterTableAlterColumnDropIdentity | AlterTableAlterColumnDropNotNull | AlterTableAlterColumnSetGenerated | AlterTableAlterColumnSetDefault | AlterTableAlterColumnSetNotNull | AlterTableAlterColumnType | AlterTableAttachPartition | AlterTableChangeOwner | AlterTableDetachPartition | AlterTableDisableRowLevelSecurity | AlterTableDropColumn | AlterTableDropConstraint | AlterTableEnableRowLevelSecurity | AlterTableForceRowLevelSecurity | AlterTableNoForceRowLevelSecurity | AlterTableResetStorageParams | AlterTableSetLogged | AlterTableSetReplicaIdentity | AlterTableSetStorageParams | AlterTableSetUnlogged | AlterTableValidateConstraint;
58
59
  /**
59
60
  * ALTER TABLE ... OWNER TO ...
60
61
  */
@@ -67,7 +68,7 @@ export declare class AlterTableChangeOwner extends AlterTableChange {
67
68
  owner: string;
68
69
  });
69
70
  get requires(): `table:${string}`[];
70
- serialize(): string;
71
+ serialize(_options?: SerializeOptions): string;
71
72
  }
72
73
  /**
73
74
  * ALTER TABLE ... SET LOGGED
@@ -79,7 +80,7 @@ export declare class AlterTableSetLogged extends AlterTableChange {
79
80
  table: Table;
80
81
  });
81
82
  get requires(): `table:${string}`[];
82
- serialize(): string;
83
+ serialize(_options?: SerializeOptions): string;
83
84
  }
84
85
  /**
85
86
  * ALTER TABLE ... SET UNLOGGED
@@ -91,7 +92,7 @@ export declare class AlterTableSetUnlogged extends AlterTableChange {
91
92
  table: Table;
92
93
  });
93
94
  get requires(): `table:${string}`[];
94
- serialize(): string;
95
+ serialize(_options?: SerializeOptions): string;
95
96
  }
96
97
  /**
97
98
  * ALTER TABLE ... ENABLE ROW LEVEL SECURITY
@@ -103,7 +104,7 @@ export declare class AlterTableEnableRowLevelSecurity extends AlterTableChange {
103
104
  table: Table;
104
105
  });
105
106
  get requires(): `table:${string}`[];
106
- serialize(): string;
107
+ serialize(_options?: SerializeOptions): string;
107
108
  }
108
109
  /**
109
110
  * ALTER TABLE ... DISABLE ROW LEVEL SECURITY
@@ -115,7 +116,7 @@ export declare class AlterTableDisableRowLevelSecurity extends AlterTableChange
115
116
  table: Table;
116
117
  });
117
118
  get requires(): `table:${string}`[];
118
- serialize(): string;
119
+ serialize(_options?: SerializeOptions): string;
119
120
  }
120
121
  /**
121
122
  * ALTER TABLE ... FORCE ROW LEVEL SECURITY
@@ -127,7 +128,7 @@ export declare class AlterTableForceRowLevelSecurity extends AlterTableChange {
127
128
  table: Table;
128
129
  });
129
130
  get requires(): `table:${string}`[];
130
- serialize(): string;
131
+ serialize(_options?: SerializeOptions): string;
131
132
  }
132
133
  /**
133
134
  * ALTER TABLE ... NO FORCE ROW LEVEL SECURITY
@@ -139,7 +140,7 @@ export declare class AlterTableNoForceRowLevelSecurity extends AlterTableChange
139
140
  table: Table;
140
141
  });
141
142
  get requires(): `table:${string}`[];
142
- serialize(): string;
143
+ serialize(_options?: SerializeOptions): string;
143
144
  }
144
145
  /**
145
146
  * ALTER TABLE ... SET ( storage_parameter = value [, ... ] )
@@ -153,7 +154,7 @@ export declare class AlterTableSetStorageParams extends AlterTableChange {
153
154
  options: string[];
154
155
  });
155
156
  get requires(): `table:${string}`[];
156
- serialize(): string;
157
+ serialize(_options?: SerializeOptions): string;
157
158
  }
158
159
  /**
159
160
  * ALTER TABLE ... RESET ( storage_parameter [, ... ] )
@@ -167,7 +168,7 @@ export declare class AlterTableResetStorageParams extends AlterTableChange {
167
168
  params: string[];
168
169
  });
169
170
  get requires(): `table:${string}`[];
170
- serialize(): string;
171
+ serialize(_options?: SerializeOptions): string;
171
172
  }
172
173
  /**
173
174
  * ALTER TABLE ... ADD CONSTRAINT ...
@@ -182,7 +183,7 @@ export declare class AlterTableAddConstraint extends AlterTableChange {
182
183
  });
183
184
  get creates(): `constraint:${string}.${string}.${string}`[];
184
185
  get requires(): string[];
185
- serialize(): string;
186
+ serialize(_options?: SerializeOptions): string;
186
187
  }
187
188
  /**
188
189
  * ALTER TABLE ... DROP CONSTRAINT ...
@@ -197,7 +198,7 @@ export declare class AlterTableDropConstraint extends AlterTableChange {
197
198
  });
198
199
  get drops(): `constraint:${string}.${string}.${string}`[];
199
200
  get requires(): (`constraint:${string}.${string}.${string}` | `table:${string}`)[];
200
- serialize(): string;
201
+ serialize(_options?: SerializeOptions): string;
201
202
  }
202
203
  /**
203
204
  * ALTER TABLE ... VALIDATE CONSTRAINT ...
@@ -211,7 +212,7 @@ export declare class AlterTableValidateConstraint extends AlterTableChange {
211
212
  constraint: TableConstraintProps;
212
213
  });
213
214
  get requires(): (`constraint:${string}.${string}.${string}` | `table:${string}`)[];
214
- serialize(): string;
215
+ serialize(_options?: SerializeOptions): string;
215
216
  }
216
217
  /**
217
218
  * ALTER TABLE ... REPLICA IDENTITY ...
@@ -225,7 +226,7 @@ export declare class AlterTableSetReplicaIdentity extends AlterTableChange {
225
226
  mode: "d" | "n" | "f" | "i";
226
227
  });
227
228
  get requires(): `table:${string}`[];
228
- serialize(): string;
229
+ serialize(_options?: SerializeOptions): string;
229
230
  }
230
231
  /**
231
232
  * ALTER TABLE ... ADD COLUMN ...
@@ -240,7 +241,7 @@ export declare class AlterTableAddColumn extends AlterTableChange {
240
241
  });
241
242
  get creates(): `column:${string}.${string}.${string}`[];
242
243
  get requires(): `table:${string}`[];
243
- serialize(): string;
244
+ serialize(_options?: SerializeOptions): string;
244
245
  }
245
246
  /**
246
247
  * ALTER TABLE ... DROP COLUMN ...
@@ -255,7 +256,7 @@ export declare class AlterTableDropColumn extends AlterTableChange {
255
256
  });
256
257
  get drops(): `column:${string}.${string}.${string}`[];
257
258
  get requires(): (`column:${string}.${string}.${string}` | `table:${string}`)[];
258
- serialize(): string;
259
+ serialize(_options?: SerializeOptions): string;
259
260
  }
260
261
  /**
261
262
  * ALTER TABLE ... ALTER COLUMN ... TYPE ...
@@ -269,7 +270,7 @@ export declare class AlterTableAlterColumnType extends AlterTableChange {
269
270
  column: ColumnProps;
270
271
  });
271
272
  get requires(): `column:${string}.${string}.${string}`[];
272
- serialize(): string;
273
+ serialize(_options?: SerializeOptions): string;
273
274
  }
274
275
  /**
275
276
  * ALTER TABLE ... ALTER COLUMN ... SET DEFAULT ...
@@ -283,12 +284,54 @@ export declare class AlterTableAlterColumnSetDefault extends AlterTableChange {
283
284
  column: ColumnProps;
284
285
  });
285
286
  get requires(): `column:${string}.${string}.${string}`[];
286
- serialize(): string;
287
+ serialize(_options?: SerializeOptions): string;
287
288
  }
288
289
  /**
289
290
  * ALTER TABLE ... ALTER COLUMN ... DROP DEFAULT
290
291
  */
291
292
  export declare class AlterTableAlterColumnDropDefault extends AlterTableChange {
293
+ readonly table: Table;
294
+ readonly column: ColumnProps;
295
+ readonly scope: "object";
296
+ constructor(props: {
297
+ table: Table;
298
+ column: ColumnProps;
299
+ });
300
+ get requires(): `column:${string}.${string}.${string}`[];
301
+ serialize(_options?: SerializeOptions): string;
302
+ }
303
+ /**
304
+ * ALTER TABLE ... ALTER COLUMN ... ADD GENERATED ... AS IDENTITY
305
+ */
306
+ export declare class AlterTableAlterColumnAddIdentity extends AlterTableChange {
307
+ readonly table: Table;
308
+ readonly column: ColumnProps;
309
+ readonly scope: "object";
310
+ constructor(props: {
311
+ table: Table;
312
+ column: ColumnProps;
313
+ });
314
+ get requires(): `column:${string}.${string}.${string}`[];
315
+ serialize(): string;
316
+ }
317
+ /**
318
+ * ALTER TABLE ... ALTER COLUMN ... DROP IDENTITY
319
+ */
320
+ export declare class AlterTableAlterColumnDropIdentity extends AlterTableChange {
321
+ readonly table: Table;
322
+ readonly column: ColumnProps;
323
+ readonly scope: "object";
324
+ constructor(props: {
325
+ table: Table;
326
+ column: ColumnProps;
327
+ });
328
+ get requires(): `column:${string}.${string}.${string}`[];
329
+ serialize(): string;
330
+ }
331
+ /**
332
+ * ALTER TABLE ... ALTER COLUMN ... SET GENERATED { ALWAYS | BY DEFAULT }
333
+ */
334
+ export declare class AlterTableAlterColumnSetGenerated extends AlterTableChange {
292
335
  readonly table: Table;
293
336
  readonly column: ColumnProps;
294
337
  readonly scope: "object";
@@ -311,7 +354,7 @@ export declare class AlterTableAlterColumnSetNotNull extends AlterTableChange {
311
354
  column: ColumnProps;
312
355
  });
313
356
  get requires(): `column:${string}.${string}.${string}`[];
314
- serialize(): string;
357
+ serialize(_options?: SerializeOptions): string;
315
358
  }
316
359
  /**
317
360
  * ALTER TABLE ... ALTER COLUMN ... DROP NOT NULL
@@ -325,7 +368,7 @@ export declare class AlterTableAlterColumnDropNotNull extends AlterTableChange {
325
368
  column: ColumnProps;
326
369
  });
327
370
  get requires(): `column:${string}.${string}.${string}`[];
328
- serialize(): string;
371
+ serialize(_options?: SerializeOptions): string;
329
372
  }
330
373
  /**
331
374
  * ALTER TABLE ... ATTACH PARTITION ...
@@ -339,7 +382,7 @@ export declare class AlterTableAttachPartition extends AlterTableChange {
339
382
  partition: Table;
340
383
  });
341
384
  get requires(): `table:${string}`[];
342
- serialize(): string;
385
+ serialize(_options?: SerializeOptions): string;
343
386
  }
344
387
  /**
345
388
  * ALTER TABLE ... DETACH PARTITION ...
@@ -353,5 +396,5 @@ export declare class AlterTableDetachPartition extends AlterTableChange {
353
396
  partition: Table;
354
397
  });
355
398
  get requires(): `table:${string}`[];
356
- serialize(): string;
399
+ serialize(_options?: SerializeOptions): string;
357
400
  }