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

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 (397) hide show
  1. package/dist/core/expand-replace-dependencies.js +23 -0
  2. package/dist/core/export/index.d.ts +2 -2
  3. package/dist/core/export/index.js +4 -1
  4. package/dist/core/integrations/integration.types.d.ts +26 -1
  5. package/dist/core/integrations/integration.types.js +31 -1
  6. package/dist/core/integrations/serialize/dsl.d.ts +1 -8
  7. package/dist/core/integrations/serialize/serialize.types.d.ts +31 -0
  8. package/dist/core/integrations/supabase.js +19 -0
  9. package/dist/core/objects/aggregate/changes/aggregate.alter.d.ts +2 -1
  10. package/dist/core/objects/aggregate/changes/aggregate.alter.js +1 -1
  11. package/dist/core/objects/aggregate/changes/aggregate.comment.d.ts +3 -2
  12. package/dist/core/objects/aggregate/changes/aggregate.comment.js +2 -2
  13. package/dist/core/objects/aggregate/changes/aggregate.create.d.ts +2 -1
  14. package/dist/core/objects/aggregate/changes/aggregate.create.js +1 -1
  15. package/dist/core/objects/aggregate/changes/aggregate.drop.d.ts +2 -1
  16. package/dist/core/objects/aggregate/changes/aggregate.drop.js +1 -1
  17. package/dist/core/objects/aggregate/changes/aggregate.privilege.d.ts +4 -3
  18. package/dist/core/objects/aggregate/changes/aggregate.privilege.js +3 -3
  19. package/dist/core/objects/base.change.d.ts +2 -1
  20. package/dist/core/objects/collation/changes/collation.alter.d.ts +3 -2
  21. package/dist/core/objects/collation/changes/collation.alter.js +2 -2
  22. package/dist/core/objects/collation/changes/collation.comment.d.ts +3 -2
  23. package/dist/core/objects/collation/changes/collation.comment.js +2 -2
  24. package/dist/core/objects/collation/changes/collation.create.d.ts +2 -1
  25. package/dist/core/objects/collation/changes/collation.create.js +1 -1
  26. package/dist/core/objects/collation/changes/collation.drop.d.ts +2 -1
  27. package/dist/core/objects/collation/changes/collation.drop.js +1 -1
  28. package/dist/core/objects/domain/changes/domain.alter.d.ts +9 -8
  29. package/dist/core/objects/domain/changes/domain.alter.js +8 -8
  30. package/dist/core/objects/domain/changes/domain.comment.d.ts +3 -2
  31. package/dist/core/objects/domain/changes/domain.comment.js +2 -2
  32. package/dist/core/objects/domain/changes/domain.create.d.ts +2 -1
  33. package/dist/core/objects/domain/changes/domain.create.js +1 -1
  34. package/dist/core/objects/domain/changes/domain.drop.d.ts +2 -1
  35. package/dist/core/objects/domain/changes/domain.drop.js +1 -1
  36. package/dist/core/objects/domain/changes/domain.privilege.d.ts +4 -3
  37. package/dist/core/objects/domain/changes/domain.privilege.js +3 -3
  38. package/dist/core/objects/event-trigger/changes/event-trigger.alter.d.ts +3 -2
  39. package/dist/core/objects/event-trigger/changes/event-trigger.alter.js +2 -2
  40. package/dist/core/objects/event-trigger/changes/event-trigger.comment.d.ts +3 -2
  41. package/dist/core/objects/event-trigger/changes/event-trigger.comment.js +2 -2
  42. package/dist/core/objects/event-trigger/changes/event-trigger.create.d.ts +2 -1
  43. package/dist/core/objects/event-trigger/changes/event-trigger.create.js +1 -1
  44. package/dist/core/objects/event-trigger/changes/event-trigger.drop.d.ts +2 -1
  45. package/dist/core/objects/event-trigger/changes/event-trigger.drop.js +1 -1
  46. package/dist/core/objects/extension/changes/extension.alter.d.ts +3 -2
  47. package/dist/core/objects/extension/changes/extension.alter.js +2 -2
  48. package/dist/core/objects/extension/changes/extension.comment.d.ts +3 -2
  49. package/dist/core/objects/extension/changes/extension.comment.js +2 -2
  50. package/dist/core/objects/extension/changes/extension.create.d.ts +2 -1
  51. package/dist/core/objects/extension/changes/extension.create.js +4 -2
  52. package/dist/core/objects/extension/changes/extension.drop.d.ts +2 -1
  53. package/dist/core/objects/extension/changes/extension.drop.js +1 -1
  54. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.alter.d.ts +3 -2
  55. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.alter.js +2 -2
  56. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.comment.d.ts +3 -2
  57. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.comment.js +2 -2
  58. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.create.d.ts +2 -1
  59. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.create.js +1 -1
  60. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.drop.d.ts +2 -1
  61. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.drop.js +1 -1
  62. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.privilege.d.ts +4 -3
  63. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.privilege.js +3 -3
  64. package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.alter.d.ts +10 -9
  65. package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.alter.js +9 -9
  66. package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.comment.d.ts +3 -2
  67. package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.comment.js +2 -2
  68. package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.create.d.ts +2 -1
  69. package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.create.js +1 -1
  70. package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.drop.d.ts +2 -1
  71. package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.drop.js +1 -1
  72. package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.privilege.d.ts +4 -3
  73. package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.privilege.js +3 -3
  74. package/dist/core/objects/foreign-data-wrapper/server/changes/server.alter.d.ts +4 -3
  75. package/dist/core/objects/foreign-data-wrapper/server/changes/server.alter.js +3 -3
  76. package/dist/core/objects/foreign-data-wrapper/server/changes/server.comment.d.ts +3 -2
  77. package/dist/core/objects/foreign-data-wrapper/server/changes/server.comment.js +2 -2
  78. package/dist/core/objects/foreign-data-wrapper/server/changes/server.create.d.ts +2 -1
  79. package/dist/core/objects/foreign-data-wrapper/server/changes/server.create.js +1 -1
  80. package/dist/core/objects/foreign-data-wrapper/server/changes/server.drop.d.ts +2 -1
  81. package/dist/core/objects/foreign-data-wrapper/server/changes/server.drop.js +1 -1
  82. package/dist/core/objects/foreign-data-wrapper/server/changes/server.privilege.d.ts +4 -3
  83. package/dist/core/objects/foreign-data-wrapper/server/changes/server.privilege.js +3 -3
  84. package/dist/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.alter.d.ts +2 -1
  85. package/dist/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.alter.js +1 -1
  86. package/dist/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.create.d.ts +2 -1
  87. package/dist/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.create.js +1 -1
  88. package/dist/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.drop.d.ts +2 -1
  89. package/dist/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.drop.js +1 -1
  90. package/dist/core/objects/index/changes/index.alter.d.ts +4 -3
  91. package/dist/core/objects/index/changes/index.alter.js +3 -3
  92. package/dist/core/objects/index/changes/index.comment.d.ts +3 -2
  93. package/dist/core/objects/index/changes/index.comment.js +2 -2
  94. package/dist/core/objects/index/changes/index.create.d.ts +2 -1
  95. package/dist/core/objects/index/changes/index.create.js +1 -1
  96. package/dist/core/objects/index/changes/index.drop.d.ts +2 -1
  97. package/dist/core/objects/index/changes/index.drop.js +1 -1
  98. package/dist/core/objects/language/changes/language.alter.d.ts +2 -1
  99. package/dist/core/objects/language/changes/language.alter.js +1 -1
  100. package/dist/core/objects/language/changes/language.comment.d.ts +3 -2
  101. package/dist/core/objects/language/changes/language.comment.js +2 -2
  102. package/dist/core/objects/language/changes/language.create.d.ts +2 -1
  103. package/dist/core/objects/language/changes/language.create.js +1 -1
  104. package/dist/core/objects/language/changes/language.drop.d.ts +2 -1
  105. package/dist/core/objects/language/changes/language.drop.js +1 -1
  106. package/dist/core/objects/language/changes/language.privilege.d.ts +4 -3
  107. package/dist/core/objects/language/changes/language.privilege.js +3 -3
  108. package/dist/core/objects/materialized-view/changes/materialized-view.alter.d.ts +3 -2
  109. package/dist/core/objects/materialized-view/changes/materialized-view.alter.js +2 -2
  110. package/dist/core/objects/materialized-view/changes/materialized-view.comment.d.ts +5 -4
  111. package/dist/core/objects/materialized-view/changes/materialized-view.comment.js +4 -4
  112. package/dist/core/objects/materialized-view/changes/materialized-view.create.d.ts +2 -1
  113. package/dist/core/objects/materialized-view/changes/materialized-view.create.js +1 -1
  114. package/dist/core/objects/materialized-view/changes/materialized-view.drop.d.ts +2 -1
  115. package/dist/core/objects/materialized-view/changes/materialized-view.drop.js +1 -1
  116. package/dist/core/objects/materialized-view/changes/materialized-view.privilege.d.ts +4 -3
  117. package/dist/core/objects/materialized-view/changes/materialized-view.privilege.js +3 -3
  118. package/dist/core/objects/procedure/changes/procedure.alter.d.ts +8 -7
  119. package/dist/core/objects/procedure/changes/procedure.alter.js +7 -7
  120. package/dist/core/objects/procedure/changes/procedure.comment.d.ts +3 -2
  121. package/dist/core/objects/procedure/changes/procedure.comment.js +2 -2
  122. package/dist/core/objects/procedure/changes/procedure.create.d.ts +2 -1
  123. package/dist/core/objects/procedure/changes/procedure.create.js +1 -1
  124. package/dist/core/objects/procedure/changes/procedure.drop.d.ts +2 -1
  125. package/dist/core/objects/procedure/changes/procedure.drop.js +1 -1
  126. package/dist/core/objects/procedure/changes/procedure.privilege.d.ts +4 -3
  127. package/dist/core/objects/procedure/changes/procedure.privilege.js +3 -3
  128. package/dist/core/objects/publication/changes/publication.alter.d.ts +9 -7
  129. package/dist/core/objects/publication/changes/publication.alter.js +12 -7
  130. package/dist/core/objects/publication/changes/publication.comment.d.ts +3 -2
  131. package/dist/core/objects/publication/changes/publication.comment.js +2 -2
  132. package/dist/core/objects/publication/changes/publication.create.d.ts +2 -1
  133. package/dist/core/objects/publication/changes/publication.create.js +1 -1
  134. package/dist/core/objects/publication/changes/publication.drop.d.ts +2 -1
  135. package/dist/core/objects/publication/changes/publication.drop.js +1 -1
  136. package/dist/core/objects/rls-policy/changes/rls-policy.alter.d.ts +4 -3
  137. package/dist/core/objects/rls-policy/changes/rls-policy.alter.js +3 -3
  138. package/dist/core/objects/rls-policy/changes/rls-policy.comment.d.ts +3 -2
  139. package/dist/core/objects/rls-policy/changes/rls-policy.comment.js +2 -2
  140. package/dist/core/objects/rls-policy/changes/rls-policy.create.d.ts +2 -1
  141. package/dist/core/objects/rls-policy/changes/rls-policy.create.js +1 -1
  142. package/dist/core/objects/rls-policy/changes/rls-policy.drop.d.ts +2 -1
  143. package/dist/core/objects/rls-policy/changes/rls-policy.drop.js +1 -1
  144. package/dist/core/objects/role/changes/role.alter.d.ts +3 -2
  145. package/dist/core/objects/role/changes/role.alter.js +2 -2
  146. package/dist/core/objects/role/changes/role.comment.d.ts +3 -2
  147. package/dist/core/objects/role/changes/role.comment.js +2 -2
  148. package/dist/core/objects/role/changes/role.create.d.ts +2 -1
  149. package/dist/core/objects/role/changes/role.create.js +1 -1
  150. package/dist/core/objects/role/changes/role.drop.d.ts +2 -1
  151. package/dist/core/objects/role/changes/role.drop.js +1 -1
  152. package/dist/core/objects/role/changes/role.privilege.d.ts +6 -5
  153. package/dist/core/objects/role/changes/role.privilege.js +5 -5
  154. package/dist/core/objects/rule/changes/rule.alter.d.ts +3 -2
  155. package/dist/core/objects/rule/changes/rule.alter.js +2 -2
  156. package/dist/core/objects/rule/changes/rule.comment.d.ts +3 -2
  157. package/dist/core/objects/rule/changes/rule.comment.js +2 -2
  158. package/dist/core/objects/rule/changes/rule.create.d.ts +2 -1
  159. package/dist/core/objects/rule/changes/rule.create.js +1 -1
  160. package/dist/core/objects/rule/changes/rule.drop.d.ts +2 -1
  161. package/dist/core/objects/rule/changes/rule.drop.js +1 -1
  162. package/dist/core/objects/schema/changes/schema.alter.d.ts +2 -1
  163. package/dist/core/objects/schema/changes/schema.alter.js +1 -1
  164. package/dist/core/objects/schema/changes/schema.comment.d.ts +3 -2
  165. package/dist/core/objects/schema/changes/schema.comment.js +2 -2
  166. package/dist/core/objects/schema/changes/schema.create.d.ts +3 -5
  167. package/dist/core/objects/schema/changes/schema.drop.d.ts +2 -1
  168. package/dist/core/objects/schema/changes/schema.drop.js +1 -1
  169. package/dist/core/objects/schema/changes/schema.privilege.d.ts +4 -3
  170. package/dist/core/objects/schema/changes/schema.privilege.js +3 -3
  171. package/dist/core/objects/sequence/changes/sequence.alter.d.ts +3 -2
  172. package/dist/core/objects/sequence/changes/sequence.alter.js +2 -2
  173. package/dist/core/objects/sequence/changes/sequence.comment.d.ts +3 -2
  174. package/dist/core/objects/sequence/changes/sequence.comment.js +2 -2
  175. package/dist/core/objects/sequence/changes/sequence.create.d.ts +2 -1
  176. package/dist/core/objects/sequence/changes/sequence.create.js +1 -1
  177. package/dist/core/objects/sequence/changes/sequence.drop.d.ts +2 -1
  178. package/dist/core/objects/sequence/changes/sequence.drop.js +11 -3
  179. package/dist/core/objects/sequence/changes/sequence.privilege.d.ts +4 -3
  180. package/dist/core/objects/sequence/changes/sequence.privilege.js +3 -3
  181. package/dist/core/objects/sequence/sequence.diff.d.ts +4 -1
  182. package/dist/core/objects/sequence/sequence.diff.js +12 -0
  183. package/dist/core/objects/subscription/changes/subscription.alter.d.ts +7 -6
  184. package/dist/core/objects/subscription/changes/subscription.alter.js +6 -6
  185. package/dist/core/objects/subscription/changes/subscription.comment.d.ts +3 -2
  186. package/dist/core/objects/subscription/changes/subscription.comment.js +2 -2
  187. package/dist/core/objects/subscription/changes/subscription.create.d.ts +2 -1
  188. package/dist/core/objects/subscription/changes/subscription.create.js +1 -1
  189. package/dist/core/objects/subscription/changes/subscription.drop.d.ts +2 -1
  190. package/dist/core/objects/subscription/changes/subscription.drop.js +1 -1
  191. package/dist/core/objects/table/changes/table.alter.d.ts +65 -22
  192. package/dist/core/objects/table/changes/table.alter.js +107 -22
  193. package/dist/core/objects/table/changes/table.comment.d.ts +7 -6
  194. package/dist/core/objects/table/changes/table.comment.js +6 -6
  195. package/dist/core/objects/table/changes/table.create.d.ts +2 -1
  196. package/dist/core/objects/table/changes/table.create.js +1 -1
  197. package/dist/core/objects/table/changes/table.drop.d.ts +4 -3
  198. package/dist/core/objects/table/changes/table.drop.js +7 -1
  199. package/dist/core/objects/table/changes/table.privilege.d.ts +4 -3
  200. package/dist/core/objects/table/changes/table.privilege.js +3 -3
  201. package/dist/core/objects/table/table.diff.js +46 -1
  202. package/dist/core/objects/trigger/changes/trigger.alter.d.ts +2 -1
  203. package/dist/core/objects/trigger/changes/trigger.alter.js +1 -1
  204. package/dist/core/objects/trigger/changes/trigger.comment.d.ts +3 -2
  205. package/dist/core/objects/trigger/changes/trigger.comment.js +2 -2
  206. package/dist/core/objects/trigger/changes/trigger.create.d.ts +2 -1
  207. package/dist/core/objects/trigger/changes/trigger.create.js +1 -1
  208. package/dist/core/objects/trigger/changes/trigger.drop.d.ts +2 -1
  209. package/dist/core/objects/trigger/changes/trigger.drop.js +1 -1
  210. package/dist/core/objects/type/composite-type/changes/composite-type.alter.d.ts +5 -4
  211. package/dist/core/objects/type/composite-type/changes/composite-type.alter.js +4 -4
  212. package/dist/core/objects/type/composite-type/changes/composite-type.comment.d.ts +5 -4
  213. package/dist/core/objects/type/composite-type/changes/composite-type.comment.js +4 -4
  214. package/dist/core/objects/type/composite-type/changes/composite-type.create.d.ts +2 -1
  215. package/dist/core/objects/type/composite-type/changes/composite-type.create.js +1 -1
  216. package/dist/core/objects/type/composite-type/changes/composite-type.drop.d.ts +2 -1
  217. package/dist/core/objects/type/composite-type/changes/composite-type.drop.js +1 -1
  218. package/dist/core/objects/type/composite-type/changes/composite-type.privilege.d.ts +4 -3
  219. package/dist/core/objects/type/composite-type/changes/composite-type.privilege.js +3 -3
  220. package/dist/core/objects/type/enum/changes/enum.alter.d.ts +3 -2
  221. package/dist/core/objects/type/enum/changes/enum.alter.js +2 -2
  222. package/dist/core/objects/type/enum/changes/enum.comment.d.ts +3 -2
  223. package/dist/core/objects/type/enum/changes/enum.comment.js +2 -2
  224. package/dist/core/objects/type/enum/changes/enum.create.d.ts +2 -1
  225. package/dist/core/objects/type/enum/changes/enum.create.js +1 -1
  226. package/dist/core/objects/type/enum/changes/enum.drop.d.ts +2 -1
  227. package/dist/core/objects/type/enum/changes/enum.drop.js +1 -1
  228. package/dist/core/objects/type/enum/changes/enum.privilege.d.ts +4 -3
  229. package/dist/core/objects/type/enum/changes/enum.privilege.js +3 -3
  230. package/dist/core/objects/type/range/changes/range.alter.d.ts +2 -1
  231. package/dist/core/objects/type/range/changes/range.alter.js +1 -1
  232. package/dist/core/objects/type/range/changes/range.comment.d.ts +3 -2
  233. package/dist/core/objects/type/range/changes/range.comment.js +2 -2
  234. package/dist/core/objects/type/range/changes/range.create.d.ts +2 -1
  235. package/dist/core/objects/type/range/changes/range.create.js +1 -1
  236. package/dist/core/objects/type/range/changes/range.drop.d.ts +2 -1
  237. package/dist/core/objects/type/range/changes/range.drop.js +1 -1
  238. package/dist/core/objects/type/range/changes/range.privilege.d.ts +4 -3
  239. package/dist/core/objects/type/range/changes/range.privilege.js +3 -3
  240. package/dist/core/objects/view/changes/view.alter.d.ts +4 -3
  241. package/dist/core/objects/view/changes/view.alter.js +3 -3
  242. package/dist/core/objects/view/changes/view.comment.d.ts +3 -2
  243. package/dist/core/objects/view/changes/view.comment.js +2 -2
  244. package/dist/core/objects/view/changes/view.create.d.ts +2 -1
  245. package/dist/core/objects/view/changes/view.create.js +1 -1
  246. package/dist/core/objects/view/changes/view.drop.d.ts +2 -1
  247. package/dist/core/objects/view/changes/view.drop.js +1 -1
  248. package/dist/core/objects/view/changes/view.privilege.d.ts +4 -3
  249. package/dist/core/objects/view/changes/view.privilege.js +3 -3
  250. package/dist/core/plan/create.js +5 -17
  251. package/dist/core/plan/types.d.ts +3 -6
  252. package/dist/core/sort/custom-constraints.js +64 -0
  253. package/package.json +1 -1
  254. package/src/core/expand-replace-dependencies.test.ts +126 -1
  255. package/src/core/expand-replace-dependencies.ts +50 -0
  256. package/src/core/export/index.ts +13 -4
  257. package/src/core/integrations/integration.types.ts +59 -1
  258. package/src/core/integrations/serialize/dsl.test.ts +20 -1
  259. package/src/core/integrations/serialize/dsl.ts +1 -10
  260. package/src/core/integrations/serialize/serialize.types.ts +37 -0
  261. package/src/core/integrations/supabase.ts +19 -0
  262. package/src/core/objects/aggregate/changes/aggregate.alter.ts +2 -1
  263. package/src/core/objects/aggregate/changes/aggregate.comment.ts +3 -2
  264. package/src/core/objects/aggregate/changes/aggregate.create.ts +2 -1
  265. package/src/core/objects/aggregate/changes/aggregate.drop.ts +2 -1
  266. package/src/core/objects/aggregate/changes/aggregate.privilege.ts +4 -3
  267. package/src/core/objects/base.change.ts +3 -1
  268. package/src/core/objects/collation/changes/collation.alter.ts +3 -2
  269. package/src/core/objects/collation/changes/collation.comment.ts +3 -2
  270. package/src/core/objects/collation/changes/collation.create.ts +2 -1
  271. package/src/core/objects/collation/changes/collation.drop.ts +2 -1
  272. package/src/core/objects/domain/changes/domain.alter.ts +9 -8
  273. package/src/core/objects/domain/changes/domain.comment.ts +3 -2
  274. package/src/core/objects/domain/changes/domain.create.ts +2 -1
  275. package/src/core/objects/domain/changes/domain.drop.ts +2 -1
  276. package/src/core/objects/domain/changes/domain.privilege.ts +4 -3
  277. package/src/core/objects/event-trigger/changes/event-trigger.alter.ts +3 -2
  278. package/src/core/objects/event-trigger/changes/event-trigger.comment.ts +3 -2
  279. package/src/core/objects/event-trigger/changes/event-trigger.create.ts +2 -1
  280. package/src/core/objects/event-trigger/changes/event-trigger.drop.ts +2 -1
  281. package/src/core/objects/extension/changes/extension.alter.ts +3 -2
  282. package/src/core/objects/extension/changes/extension.comment.ts +3 -2
  283. package/src/core/objects/extension/changes/extension.create.test.ts +22 -0
  284. package/src/core/objects/extension/changes/extension.create.ts +5 -2
  285. package/src/core/objects/extension/changes/extension.drop.ts +2 -1
  286. package/src/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.alter.ts +3 -2
  287. package/src/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.comment.ts +3 -2
  288. package/src/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.create.ts +2 -1
  289. package/src/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.drop.ts +2 -1
  290. package/src/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.privilege.ts +4 -3
  291. package/src/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.alter.ts +10 -9
  292. package/src/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.comment.ts +3 -2
  293. package/src/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.create.ts +2 -1
  294. package/src/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.drop.ts +2 -1
  295. package/src/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.privilege.ts +4 -3
  296. package/src/core/objects/foreign-data-wrapper/server/changes/server.alter.ts +4 -3
  297. package/src/core/objects/foreign-data-wrapper/server/changes/server.comment.ts +3 -2
  298. package/src/core/objects/foreign-data-wrapper/server/changes/server.create.ts +2 -1
  299. package/src/core/objects/foreign-data-wrapper/server/changes/server.drop.ts +2 -1
  300. package/src/core/objects/foreign-data-wrapper/server/changes/server.privilege.ts +4 -3
  301. package/src/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.alter.ts +2 -1
  302. package/src/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.create.ts +2 -1
  303. package/src/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.drop.ts +2 -1
  304. package/src/core/objects/index/changes/index.alter.ts +4 -3
  305. package/src/core/objects/index/changes/index.comment.ts +3 -2
  306. package/src/core/objects/index/changes/index.create.ts +2 -1
  307. package/src/core/objects/index/changes/index.drop.ts +2 -1
  308. package/src/core/objects/language/changes/language.alter.ts +2 -1
  309. package/src/core/objects/language/changes/language.comment.ts +3 -2
  310. package/src/core/objects/language/changes/language.create.ts +2 -1
  311. package/src/core/objects/language/changes/language.drop.ts +2 -1
  312. package/src/core/objects/language/changes/language.privilege.ts +4 -3
  313. package/src/core/objects/materialized-view/changes/materialized-view.alter.ts +3 -2
  314. package/src/core/objects/materialized-view/changes/materialized-view.comment.ts +5 -4
  315. package/src/core/objects/materialized-view/changes/materialized-view.create.ts +2 -1
  316. package/src/core/objects/materialized-view/changes/materialized-view.drop.ts +2 -1
  317. package/src/core/objects/materialized-view/changes/materialized-view.privilege.ts +4 -3
  318. package/src/core/objects/procedure/changes/procedure.alter.ts +8 -7
  319. package/src/core/objects/procedure/changes/procedure.comment.ts +3 -2
  320. package/src/core/objects/procedure/changes/procedure.create.ts +2 -1
  321. package/src/core/objects/procedure/changes/procedure.drop.ts +2 -1
  322. package/src/core/objects/procedure/changes/procedure.privilege.ts +4 -3
  323. package/src/core/objects/publication/changes/publication.alter.test.ts +4 -0
  324. package/src/core/objects/publication/changes/publication.alter.ts +14 -7
  325. package/src/core/objects/publication/changes/publication.comment.ts +3 -2
  326. package/src/core/objects/publication/changes/publication.create.ts +2 -1
  327. package/src/core/objects/publication/changes/publication.drop.ts +2 -1
  328. package/src/core/objects/rls-policy/changes/rls-policy.alter.ts +4 -3
  329. package/src/core/objects/rls-policy/changes/rls-policy.comment.ts +3 -2
  330. package/src/core/objects/rls-policy/changes/rls-policy.create.ts +2 -1
  331. package/src/core/objects/rls-policy/changes/rls-policy.drop.ts +2 -1
  332. package/src/core/objects/role/changes/role.alter.ts +3 -2
  333. package/src/core/objects/role/changes/role.comment.ts +3 -2
  334. package/src/core/objects/role/changes/role.create.ts +2 -1
  335. package/src/core/objects/role/changes/role.drop.ts +2 -1
  336. package/src/core/objects/role/changes/role.privilege.ts +6 -5
  337. package/src/core/objects/rule/changes/rule.alter.ts +3 -2
  338. package/src/core/objects/rule/changes/rule.comment.ts +3 -2
  339. package/src/core/objects/rule/changes/rule.create.ts +2 -1
  340. package/src/core/objects/rule/changes/rule.drop.ts +2 -1
  341. package/src/core/objects/schema/changes/schema.alter.ts +2 -1
  342. package/src/core/objects/schema/changes/schema.comment.ts +3 -2
  343. package/src/core/objects/schema/changes/schema.create.ts +3 -3
  344. package/src/core/objects/schema/changes/schema.drop.ts +2 -1
  345. package/src/core/objects/schema/changes/schema.privilege.ts +4 -3
  346. package/src/core/objects/sequence/changes/sequence.alter.ts +3 -2
  347. package/src/core/objects/sequence/changes/sequence.comment.ts +3 -2
  348. package/src/core/objects/sequence/changes/sequence.create.ts +2 -1
  349. package/src/core/objects/sequence/changes/sequence.drop.ts +16 -3
  350. package/src/core/objects/sequence/changes/sequence.privilege.ts +4 -3
  351. package/src/core/objects/sequence/sequence.diff.test.ts +73 -1
  352. package/src/core/objects/sequence/sequence.diff.ts +24 -2
  353. package/src/core/objects/subscription/changes/subscription.alter.ts +7 -6
  354. package/src/core/objects/subscription/changes/subscription.comment.ts +3 -2
  355. package/src/core/objects/subscription/changes/subscription.create.ts +2 -1
  356. package/src/core/objects/subscription/changes/subscription.drop.ts +2 -1
  357. package/src/core/objects/table/changes/table.alter.test.ts +38 -0
  358. package/src/core/objects/table/changes/table.alter.ts +123 -22
  359. package/src/core/objects/table/changes/table.comment.ts +7 -6
  360. package/src/core/objects/table/changes/table.create.ts +2 -1
  361. package/src/core/objects/table/changes/table.drop.ts +20 -1
  362. package/src/core/objects/table/changes/table.privilege.ts +4 -3
  363. package/src/core/objects/table/table.diff.test.ts +121 -0
  364. package/src/core/objects/table/table.diff.ts +64 -1
  365. package/src/core/objects/trigger/changes/trigger.alter.ts +2 -1
  366. package/src/core/objects/trigger/changes/trigger.comment.ts +3 -2
  367. package/src/core/objects/trigger/changes/trigger.create.ts +2 -1
  368. package/src/core/objects/trigger/changes/trigger.drop.ts +2 -1
  369. package/src/core/objects/type/composite-type/changes/composite-type.alter.ts +5 -4
  370. package/src/core/objects/type/composite-type/changes/composite-type.comment.ts +5 -4
  371. package/src/core/objects/type/composite-type/changes/composite-type.create.ts +2 -1
  372. package/src/core/objects/type/composite-type/changes/composite-type.drop.ts +2 -1
  373. package/src/core/objects/type/composite-type/changes/composite-type.privilege.ts +4 -3
  374. package/src/core/objects/type/enum/changes/enum.alter.ts +3 -2
  375. package/src/core/objects/type/enum/changes/enum.comment.ts +3 -2
  376. package/src/core/objects/type/enum/changes/enum.create.ts +2 -1
  377. package/src/core/objects/type/enum/changes/enum.drop.ts +2 -1
  378. package/src/core/objects/type/enum/changes/enum.privilege.ts +4 -3
  379. package/src/core/objects/type/range/changes/range.alter.ts +2 -1
  380. package/src/core/objects/type/range/changes/range.comment.ts +3 -2
  381. package/src/core/objects/type/range/changes/range.create.ts +2 -1
  382. package/src/core/objects/type/range/changes/range.drop.ts +2 -1
  383. package/src/core/objects/type/range/changes/range.privilege.ts +4 -3
  384. package/src/core/objects/view/changes/view.alter.ts +4 -3
  385. package/src/core/objects/view/changes/view.comment.ts +3 -2
  386. package/src/core/objects/view/changes/view.create.ts +2 -1
  387. package/src/core/objects/view/changes/view.drop.ts +2 -1
  388. package/src/core/objects/view/changes/view.privilege.ts +4 -3
  389. package/src/core/plan/create.ts +11 -27
  390. package/src/core/plan/sql-format/format-off.test.ts +1 -1
  391. package/src/core/plan/sql-format/format-pretty-lower-leading.test.ts +1 -1
  392. package/src/core/plan/sql-format/format-pretty-narrow.test.ts +1 -1
  393. package/src/core/plan/sql-format/format-pretty-preserve.test.ts +1 -1
  394. package/src/core/plan/sql-format/format-pretty-upper.test.ts +1 -1
  395. package/src/core/plan/types.ts +3 -6
  396. package/src/core/sort/custom-constraints.ts +74 -0
  397. package/src/typedoc.ts +5 -0
@@ -1,3 +1,4 @@
1
+ import type { SerializeOptions } from "../../../../integrations/serialize/serialize.types.ts";
1
2
  import type { ForeignTable } from "../foreign-table.model.ts";
2
3
  import { DropForeignTableChange } from "./foreign-table.base.ts";
3
4
 
@@ -28,7 +29,7 @@ export class DropForeignTable extends DropForeignTableChange {
28
29
  return [this.foreignTable.stableId];
29
30
  }
30
31
 
31
- serialize(): string {
32
+ serialize(_options?: SerializeOptions): string {
32
33
  return [
33
34
  "DROP FOREIGN TABLE",
34
35
  `${this.foreignTable.schema}.${this.foreignTable.name}`,
@@ -1,3 +1,4 @@
1
+ import type { SerializeOptions } from "../../../../integrations/serialize/serialize.types.ts";
1
2
  import {
2
3
  formatObjectPrivilegeList,
3
4
  getObjectKindPrefix,
@@ -52,7 +53,7 @@ export class GrantForeignTablePrivileges extends AlterForeignTableChange {
52
53
  return [this.foreignTable.stableId, stableId.role(this.grantee)];
53
54
  }
54
55
 
55
- serialize(): string {
56
+ serialize(_options?: SerializeOptions): string {
56
57
  const hasGrantable = this.privileges.some((p) => p.grantable);
57
58
  const hasBase = this.privileges.some((p) => !p.grantable);
58
59
  if (hasGrantable && hasBase) {
@@ -120,7 +121,7 @@ export class RevokeForeignTablePrivileges extends AlterForeignTableChange {
120
121
  ];
121
122
  }
122
123
 
123
- serialize(): string {
124
+ serialize(_options?: SerializeOptions): string {
124
125
  const kindPrefix = getObjectKindPrefix("FOREIGN TABLE");
125
126
  const list = this.privileges.map((p) => p.privilege);
126
127
  const privSql = formatObjectPrivilegeList(
@@ -168,7 +169,7 @@ export class RevokeGrantOptionForeignTablePrivileges extends AlterForeignTableCh
168
169
  ];
169
170
  }
170
171
 
171
- serialize(): string {
172
+ serialize(_options?: SerializeOptions): string {
172
173
  const kindPrefix = getObjectKindPrefix("FOREIGN TABLE");
173
174
  const privSql = formatObjectPrivilegeList(
174
175
  "FOREIGN TABLE",
@@ -1,3 +1,4 @@
1
+ import type { SerializeOptions } from "../../../../integrations/serialize/serialize.types.ts";
1
2
  import { quoteLiteral } from "../../../base.change.ts";
2
3
  import { stableId } from "../../../utils.ts";
3
4
  import type { Server } from "../server.model.ts";
@@ -39,7 +40,7 @@ export class AlterServerChangeOwner extends AlterServerChange {
39
40
  return [this.server.stableId, stableId.role(this.owner)];
40
41
  }
41
42
 
42
- serialize(): string {
43
+ serialize(_options?: SerializeOptions): string {
43
44
  return ["ALTER SERVER", this.server.name, "OWNER TO", this.owner].join(" ");
44
45
  }
45
46
  }
@@ -62,7 +63,7 @@ export class AlterServerSetVersion extends AlterServerChange {
62
63
  return [this.server.stableId];
63
64
  }
64
65
 
65
- serialize(): string {
66
+ serialize(_options?: SerializeOptions): string {
66
67
  if (this.version === null) {
67
68
  // PostgreSQL doesn't support removing version, but we'll handle it
68
69
  return ["ALTER SERVER", this.server.name, "VERSION", "''"].join(" ");
@@ -105,7 +106,7 @@ export class AlterServerSetOptions extends AlterServerChange {
105
106
  return [this.server.stableId];
106
107
  }
107
108
 
108
- serialize(): string {
109
+ serialize(_options?: SerializeOptions): string {
109
110
  const optionParts: string[] = [];
110
111
  for (const opt of this.options) {
111
112
  if (opt.action === "DROP") {
@@ -1,3 +1,4 @@
1
+ import type { SerializeOptions } from "../../../../integrations/serialize/serialize.types.ts";
1
2
  import { quoteLiteral } from "../../../base.change.ts";
2
3
  import { stableId } from "../../../utils.ts";
3
4
  import type { Server } from "../server.model.ts";
@@ -26,7 +27,7 @@ export class CreateCommentOnServer extends CreateServerChange {
26
27
  return [this.server.stableId];
27
28
  }
28
29
 
29
- serialize(): string {
30
+ serialize(_options?: SerializeOptions): string {
30
31
  return [
31
32
  "COMMENT ON SERVER",
32
33
  this.server.name,
@@ -54,7 +55,7 @@ export class DropCommentOnServer extends DropServerChange {
54
55
  return [stableId.comment(this.server.stableId), this.server.stableId];
55
56
  }
56
57
 
57
- serialize(): string {
58
+ serialize(_options?: SerializeOptions): string {
58
59
  return ["COMMENT ON SERVER", this.server.name, "IS NULL"].join(" ");
59
60
  }
60
61
  }
@@ -1,3 +1,4 @@
1
+ import type { SerializeOptions } from "../../../../integrations/serialize/serialize.types.ts";
1
2
  import { quoteLiteral } from "../../../base.change.ts";
2
3
  import { stableId } from "../../../utils.ts";
3
4
  import type { Server } from "../server.model.ts";
@@ -42,7 +43,7 @@ export class CreateServer extends CreateServerChange {
42
43
  return Array.from(dependencies);
43
44
  }
44
45
 
45
- serialize(): string {
46
+ serialize(_options?: SerializeOptions): string {
46
47
  const parts: string[] = ["CREATE SERVER"];
47
48
 
48
49
  // Add server name
@@ -1,3 +1,4 @@
1
+ import type { SerializeOptions } from "../../../../integrations/serialize/serialize.types.ts";
1
2
  import type { Server } from "../server.model.ts";
2
3
  import { DropServerChange } from "./server.base.ts";
3
4
 
@@ -28,7 +29,7 @@ export class DropServer extends DropServerChange {
28
29
  return [this.server.stableId];
29
30
  }
30
31
 
31
- serialize(): string {
32
+ serialize(_options?: SerializeOptions): string {
32
33
  return ["DROP SERVER", this.server.name].join(" ");
33
34
  }
34
35
  }
@@ -1,3 +1,4 @@
1
+ import type { SerializeOptions } from "../../../../integrations/serialize/serialize.types.ts";
1
2
  import { formatObjectPrivilegeList } from "../../../base.privilege.ts";
2
3
  import { stableId } from "../../../utils.ts";
3
4
  import type { Server } from "../server.model.ts";
@@ -49,7 +50,7 @@ export class GrantServerPrivileges extends AlterServerChange {
49
50
  return [this.server.stableId, stableId.role(this.grantee)];
50
51
  }
51
52
 
52
- serialize(): string {
53
+ serialize(_options?: SerializeOptions): string {
53
54
  const hasGrantable = this.privileges.some((p) => p.grantable);
54
55
  const hasBase = this.privileges.some((p) => !p.grantable);
55
56
  if (hasGrantable && hasBase) {
@@ -111,7 +112,7 @@ export class RevokeServerPrivileges extends AlterServerChange {
111
112
  ];
112
113
  }
113
114
 
114
- serialize(): string {
115
+ serialize(_options?: SerializeOptions): string {
115
116
  const list = this.privileges.map((p) => p.privilege);
116
117
  const privSql = formatObjectPrivilegeList("SERVER", list, this.version);
117
118
  return `REVOKE ${privSql} ON SERVER ${this.server.name} FROM ${this.grantee}`;
@@ -153,7 +154,7 @@ export class RevokeGrantOptionServerPrivileges extends AlterServerChange {
153
154
  ];
154
155
  }
155
156
 
156
- serialize(): string {
157
+ serialize(_options?: SerializeOptions): string {
157
158
  const privSql = formatObjectPrivilegeList(
158
159
  "SERVER",
159
160
  this.privilegeNames,
@@ -1,3 +1,4 @@
1
+ import type { SerializeOptions } from "../../../../integrations/serialize/serialize.types.ts";
1
2
  import { quoteLiteral } from "../../../base.change.ts";
2
3
  import type { UserMapping } from "../user-mapping.model.ts";
3
4
  import { AlterUserMappingChange } from "./user-mapping.base.ts";
@@ -46,7 +47,7 @@ export class AlterUserMappingSetOptions extends AlterUserMappingChange {
46
47
  return [this.userMapping.stableId];
47
48
  }
48
49
 
49
- serialize(): string {
50
+ serialize(_options?: SerializeOptions): string {
50
51
  const optionParts: string[] = [];
51
52
  for (const opt of this.options) {
52
53
  if (opt.action === "DROP") {
@@ -1,3 +1,4 @@
1
+ import type { SerializeOptions } from "../../../../integrations/serialize/serialize.types.ts";
1
2
  import { quoteLiteral } from "../../../base.change.ts";
2
3
  import { stableId } from "../../../utils.ts";
3
4
  import type { UserMapping } from "../user-mapping.model.ts";
@@ -37,7 +38,7 @@ export class CreateUserMapping extends CreateUserMappingChange {
37
38
  return Array.from(dependencies);
38
39
  }
39
40
 
40
- serialize(): string {
41
+ serialize(_options?: SerializeOptions): string {
41
42
  const parts: string[] = ["CREATE USER MAPPING FOR"];
42
43
 
43
44
  // Add user (can be CURRENT_USER, PUBLIC, etc.)
@@ -1,3 +1,4 @@
1
+ import type { SerializeOptions } from "../../../../integrations/serialize/serialize.types.ts";
1
2
  import type { UserMapping } from "../user-mapping.model.ts";
2
3
  import { DropUserMappingChange } from "./user-mapping.base.ts";
3
4
 
@@ -29,7 +30,7 @@ export class DropUserMapping extends DropUserMappingChange {
29
30
  return [this.userMapping.stableId];
30
31
  }
31
32
 
32
- serialize(): string {
33
+ serialize(_options?: SerializeOptions): string {
33
34
  return [
34
35
  "DROP USER MAPPING FOR",
35
36
  this.userMapping.user,
@@ -1,3 +1,4 @@
1
+ import type { SerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
1
2
  import { BaseChange } from "../../base.change.ts";
2
3
  import type { Index } from "../index.model.ts";
3
4
  import { AlterIndexChange } from "./index.base.ts";
@@ -46,7 +47,7 @@ export class AlterIndexSetStorageParams extends AlterIndexChange {
46
47
  return [this.index.stableId];
47
48
  }
48
49
 
49
- serialize(): string {
50
+ serialize(_options?: SerializeOptions): string {
50
51
  const head = [
51
52
  "ALTER INDEX",
52
53
  `${this.index.schema}.${this.index.name}`,
@@ -90,7 +91,7 @@ export class AlterIndexSetStatistics extends BaseChange {
90
91
  return [this.index.stableId];
91
92
  }
92
93
 
93
- serialize(): string {
94
+ serialize(_options?: SerializeOptions): string {
94
95
  const statements: string[] = [];
95
96
  const head = [
96
97
  "ALTER INDEX",
@@ -127,7 +128,7 @@ export class AlterIndexSetTablespace extends BaseChange {
127
128
  return [this.index.stableId];
128
129
  }
129
130
 
130
- serialize(): string {
131
+ serialize(_options?: SerializeOptions): string {
131
132
  return [
132
133
  "ALTER INDEX",
133
134
  `${this.index.schema}.${this.index.name}`,
@@ -1,3 +1,4 @@
1
+ import type { SerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
1
2
  import { quoteLiteral } from "../../base.change.ts";
2
3
  import { stableId } from "../../utils.ts";
3
4
  import type { Index } from "../index.model.ts";
@@ -25,7 +26,7 @@ export class CreateCommentOnIndex extends CreateIndexChange {
25
26
  return [this.index.stableId];
26
27
  }
27
28
 
28
- serialize(): string {
29
+ serialize(_options?: SerializeOptions): string {
29
30
  return [
30
31
  "COMMENT ON INDEX",
31
32
  `${this.index.schema}.${this.index.name}`,
@@ -53,7 +54,7 @@ export class DropCommentOnIndex extends DropIndexChange {
53
54
  return [stableId.comment(this.index.stableId), this.index.stableId];
54
55
  }
55
56
 
56
- serialize(): string {
57
+ serialize(_options?: SerializeOptions): string {
57
58
  return [
58
59
  "COMMENT ON INDEX",
59
60
  `${this.index.schema}.${this.index.name}`,
@@ -1,3 +1,4 @@
1
+ import type { SerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
1
2
  import type { TableLikeObject } from "../../base.model.ts";
2
3
  import { stableId } from "../../utils.ts";
3
4
  import type { Index } from "../index.model.ts";
@@ -51,7 +52,7 @@ export class CreateIndex extends CreateIndexChange {
51
52
  return Array.from(dependencies);
52
53
  }
53
54
 
54
- serialize(): string {
55
+ serialize(_options?: SerializeOptions): string {
55
56
  let definition = this.index.definition;
56
57
 
57
58
  // btree being the default, we can omit it
@@ -1,3 +1,4 @@
1
+ import type { SerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
1
2
  import type { Index } from "../index.model.ts";
2
3
  import { DropIndexChange } from "./index.base.ts";
3
4
 
@@ -28,7 +29,7 @@ export class DropIndex extends DropIndexChange {
28
29
  return [this.index.stableId];
29
30
  }
30
31
 
31
- serialize(): string {
32
+ serialize(_options?: SerializeOptions): string {
32
33
  return ["DROP INDEX", `${this.index.schema}.${this.index.name}`].join(" ");
33
34
  }
34
35
  }
@@ -1,3 +1,4 @@
1
+ import type { SerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
1
2
  import type { Language } from "../language.model.ts";
2
3
  import { AlterLanguageChange } from "./language.base.ts";
3
4
 
@@ -33,7 +34,7 @@ export class AlterLanguageChangeOwner extends AlterLanguageChange {
33
34
  return [this.language.stableId];
34
35
  }
35
36
 
36
- serialize(): string {
37
+ serialize(_options?: SerializeOptions): string {
37
38
  const parts: string[] = ["ALTER"];
38
39
 
39
40
  // Do not print the optional PROCEDURAL keyword.
@@ -1,3 +1,4 @@
1
+ import type { SerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
1
2
  import { quoteLiteral } from "../../base.change.ts";
2
3
  import { stableId } from "../../utils.ts";
3
4
  import type { Language } from "../language.model.ts";
@@ -25,7 +26,7 @@ export class CreateCommentOnLanguage extends CreateLanguageChange {
25
26
  return [this.language.stableId];
26
27
  }
27
28
 
28
- serialize(): string {
29
+ serialize(_options?: SerializeOptions): string {
29
30
  return [
30
31
  "COMMENT ON LANGUAGE",
31
32
  this.language.name,
@@ -52,7 +53,7 @@ export class DropCommentOnLanguage extends DropLanguageChange {
52
53
  return [stableId.comment(this.language.stableId), this.language.stableId];
53
54
  }
54
55
 
55
- serialize(): string {
56
+ serialize(_options?: SerializeOptions): string {
56
57
  return ["COMMENT ON LANGUAGE", this.language.name, "IS NULL"].join(" ");
57
58
  }
58
59
  }
@@ -1,3 +1,4 @@
1
+ import type { SerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
1
2
  import { parseProcedureReference, stableId } from "../../utils.ts";
2
3
  import type { Language } from "../language.model.ts";
3
4
  import { CreateLanguageChange } from "./language.base.ts";
@@ -71,7 +72,7 @@ export class CreateLanguage extends CreateLanguageChange {
71
72
  return Array.from(dependencies);
72
73
  }
73
74
 
74
- serialize(): string {
75
+ serialize(_options?: SerializeOptions): string {
75
76
  const parts: string[] = [`CREATE${this.orReplace ? " OR REPLACE" : ""}`];
76
77
 
77
78
  // Only include non-default flags. We never print the optional
@@ -1,3 +1,4 @@
1
+ import type { SerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
1
2
  import type { Language } from "../language.model.ts";
2
3
  import { DropLanguageChange } from "./language.base.ts";
3
4
 
@@ -28,7 +29,7 @@ export class DropLanguage extends DropLanguageChange {
28
29
  return [this.language.stableId];
29
30
  }
30
31
 
31
- serialize(): string {
32
+ serialize(_options?: SerializeOptions): string {
32
33
  const parts: string[] = ["DROP"];
33
34
 
34
35
  // Do not print optional keywords (e.g., PROCEDURAL). Keep the statement minimal.
@@ -1,3 +1,4 @@
1
+ import type { SerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
1
2
  import {
2
3
  formatObjectPrivilegeList,
3
4
  getObjectKindPrefix,
@@ -52,7 +53,7 @@ export class GrantLanguagePrivileges extends AlterLanguageChange {
52
53
  return [this.language.stableId, stableId.role(this.grantee)];
53
54
  }
54
55
 
55
- serialize(): string {
56
+ serialize(_options?: SerializeOptions): string {
56
57
  const hasGrantable = this.privileges.some((p) => p.grantable);
57
58
  const hasBase = this.privileges.some((p) => !p.grantable);
58
59
  if (hasGrantable && hasBase) {
@@ -117,7 +118,7 @@ export class RevokeLanguagePrivileges extends AlterLanguageChange {
117
118
  ];
118
119
  }
119
120
 
120
- serialize(): string {
121
+ serialize(_options?: SerializeOptions): string {
121
122
  const kindPrefix = getObjectKindPrefix("LANGUAGE");
122
123
  const list = this.privileges.map((p) => p.privilege);
123
124
  const privSql = formatObjectPrivilegeList("LANGUAGE", list, this.version);
@@ -160,7 +161,7 @@ export class RevokeGrantOptionLanguagePrivileges extends AlterLanguageChange {
160
161
  ];
161
162
  }
162
163
 
163
- serialize(): string {
164
+ serialize(_options?: SerializeOptions): string {
164
165
  const kindPrefix = getObjectKindPrefix("LANGUAGE");
165
166
  const privSql = formatObjectPrivilegeList(
166
167
  "LANGUAGE",
@@ -1,3 +1,4 @@
1
+ import type { SerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
1
2
  import type { MaterializedView } from "../materialized-view.model.ts";
2
3
  import { AlterMaterializedViewChange } from "./materialized-view.base.ts";
3
4
 
@@ -53,7 +54,7 @@ export class AlterMaterializedViewChangeOwner extends AlterMaterializedViewChang
53
54
  return [this.materializedView.stableId];
54
55
  }
55
56
 
56
- serialize(): string {
57
+ serialize(_options?: SerializeOptions): string {
57
58
  return [
58
59
  "ALTER MATERIALIZED VIEW",
59
60
  `${this.materializedView.schema}.${this.materializedView.name}`,
@@ -88,7 +89,7 @@ export class AlterMaterializedViewSetStorageParams extends AlterMaterializedView
88
89
  return [this.materializedView.stableId];
89
90
  }
90
91
 
91
- serialize(): string {
92
+ serialize(_options?: SerializeOptions): string {
92
93
  const head = [
93
94
  "ALTER MATERIALIZED VIEW",
94
95
  `${this.materializedView.schema}.${this.materializedView.name}`,
@@ -1,3 +1,4 @@
1
+ import type { SerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
1
2
  import { quoteLiteral } from "../../base.change.ts";
2
3
  import type { ColumnProps } from "../../base.model.ts";
3
4
  import { stableId } from "../../utils.ts";
@@ -36,7 +37,7 @@ export class CreateCommentOnMaterializedView extends CreateMaterializedViewChang
36
37
  return [this.materializedView.stableId];
37
38
  }
38
39
 
39
- serialize(): string {
40
+ serialize(_options?: SerializeOptions): string {
40
41
  return [
41
42
  "COMMENT ON MATERIALIZED VIEW",
42
43
  `${this.materializedView.schema}.${this.materializedView.name}`,
@@ -67,7 +68,7 @@ export class DropCommentOnMaterializedView extends DropMaterializedViewChange {
67
68
  ];
68
69
  }
69
70
 
70
- serialize(): string {
71
+ serialize(_options?: SerializeOptions): string {
71
72
  return [
72
73
  "COMMENT ON MATERIALIZED VIEW",
73
74
  `${this.materializedView.schema}.${this.materializedView.name}`,
@@ -112,7 +113,7 @@ export class CreateCommentOnMaterializedViewColumn extends CreateMaterializedVie
112
113
  ];
113
114
  }
114
115
 
115
- serialize(): string {
116
+ serialize(_options?: SerializeOptions): string {
116
117
  return [
117
118
  "COMMENT ON COLUMN",
118
119
  `${this.materializedView.schema}.${this.materializedView.name}.${this.column.name}`,
@@ -166,7 +167,7 @@ export class DropCommentOnMaterializedViewColumn extends DropMaterializedViewCha
166
167
  ];
167
168
  }
168
169
 
169
- serialize(): string {
170
+ serialize(_options?: SerializeOptions): string {
170
171
  return [
171
172
  "COMMENT ON COLUMN",
172
173
  `${this.materializedView.schema}.${this.materializedView.name}.${this.column.name}`,
@@ -1,3 +1,4 @@
1
+ import type { SerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
1
2
  import { stableId } from "../../utils.ts";
2
3
  import type { MaterializedView } from "../materialized-view.model.ts";
3
4
  import { CreateMaterializedViewChange } from "./materialized-view.base.ts";
@@ -62,7 +63,7 @@ export class CreateMaterializedView extends CreateMaterializedViewChange {
62
63
  return Array.from(dependencies);
63
64
  }
64
65
 
65
- serialize(): string {
66
+ serialize(_options?: SerializeOptions): string {
66
67
  const parts: string[] = ["CREATE MATERIALIZED VIEW"];
67
68
 
68
69
  // Add schema and name
@@ -1,3 +1,4 @@
1
+ import type { SerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
1
2
  import { stableId } from "../../utils.ts";
2
3
  import type { MaterializedView } from "../materialized-view.model.ts";
3
4
  import { DropMaterializedViewChange } from "./materialized-view.base.ts";
@@ -51,7 +52,7 @@ export class DropMaterializedView extends DropMaterializedViewChange {
51
52
  ];
52
53
  }
53
54
 
54
- serialize(): string {
55
+ serialize(_options?: SerializeOptions): string {
55
56
  return [
56
57
  "DROP MATERIALIZED VIEW",
57
58
  `${this.materializedView.schema}.${this.materializedView.name}`,
@@ -1,3 +1,4 @@
1
+ import type { SerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
1
2
  import {
2
3
  formatObjectPrivilegeList,
3
4
  getObjectKindPrefix,
@@ -58,7 +59,7 @@ export class GrantMaterializedViewPrivileges extends AlterMaterializedViewChange
58
59
  return [this.materializedView.stableId, stableId.role(this.grantee)];
59
60
  }
60
61
 
61
- serialize(): string {
62
+ serialize(_options?: SerializeOptions): string {
62
63
  const hasGrantable = this.privileges.some((p) => p.grantable);
63
64
  const hasBase = this.privileges.some((p) => !p.grantable);
64
65
  if (hasGrantable && hasBase) {
@@ -138,7 +139,7 @@ export class RevokeMaterializedViewPrivileges extends AlterMaterializedViewChang
138
139
  ];
139
140
  }
140
141
 
141
- serialize(): string {
142
+ serialize(_options?: SerializeOptions): string {
142
143
  const kindPrefix = getObjectKindPrefix("MATERIALIZED VIEW");
143
144
  const list = this.privileges.map((p) => p.privilege);
144
145
  const privSql = formatObjectPrivilegeList(
@@ -195,7 +196,7 @@ export class RevokeGrantOptionMaterializedViewPrivileges extends AlterMaterializ
195
196
  ];
196
197
  }
197
198
 
198
- serialize(): string {
199
+ serialize(_options?: SerializeOptions): string {
199
200
  const kindPrefix = getObjectKindPrefix("MATERIALIZED VIEW");
200
201
  const privSql = formatObjectPrivilegeList(
201
202
  "MATERIALIZED VIEW",
@@ -1,3 +1,4 @@
1
+ import type { SerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
1
2
  import type { Procedure } from "../procedure.model.ts";
2
3
  import { formatConfigValue } from "../utils.ts";
3
4
  import { AlterProcedureChange } from "./procedure.base.ts";
@@ -60,7 +61,7 @@ export class AlterProcedureChangeOwner extends AlterProcedureChange {
60
61
  return [this.procedure.stableId];
61
62
  }
62
63
 
63
- serialize(): string {
64
+ serialize(_options?: SerializeOptions): string {
64
65
  const objectType = this.procedure.kind === "p" ? "PROCEDURE" : "FUNCTION";
65
66
 
66
67
  return [
@@ -91,7 +92,7 @@ export class AlterProcedureSetSecurity extends AlterProcedureChange {
91
92
  return [this.procedure.stableId];
92
93
  }
93
94
 
94
- serialize(): string {
95
+ serialize(_options?: SerializeOptions): string {
95
96
  const objectType = this.procedure.kind === "p" ? "PROCEDURE" : "FUNCTION";
96
97
  const security = this.securityDefiner
97
98
  ? "SECURITY DEFINER"
@@ -142,7 +143,7 @@ export class AlterProcedureSetConfig extends AlterProcedureChange {
142
143
  return [this.procedure.stableId];
143
144
  }
144
145
 
145
- serialize(): string {
146
+ serialize(_options?: SerializeOptions): string {
146
147
  const head = [
147
148
  "ALTER",
148
149
  this.procedure.kind === "p" ? "PROCEDURE" : "FUNCTION",
@@ -176,7 +177,7 @@ export class AlterProcedureSetVolatility extends AlterProcedureChange {
176
177
  return [this.procedure.stableId];
177
178
  }
178
179
 
179
- serialize(): string {
180
+ serialize(_options?: SerializeOptions): string {
180
181
  const objectType = this.procedure.kind === "p" ? "PROCEDURE" : "FUNCTION";
181
182
  const volMap: Record<string, string> = {
182
183
  i: "IMMUTABLE",
@@ -210,7 +211,7 @@ export class AlterProcedureSetStrictness extends AlterProcedureChange {
210
211
  return [this.procedure.stableId];
211
212
  }
212
213
 
213
- serialize(): string {
214
+ serialize(_options?: SerializeOptions): string {
214
215
  const objectType = this.procedure.kind === "p" ? "PROCEDURE" : "FUNCTION";
215
216
  const strictness = this.isStrict ? "STRICT" : "CALLED ON NULL INPUT";
216
217
  return [
@@ -240,7 +241,7 @@ export class AlterProcedureSetLeakproof extends AlterProcedureChange {
240
241
  return [this.procedure.stableId];
241
242
  }
242
243
 
243
- serialize(): string {
244
+ serialize(_options?: SerializeOptions): string {
244
245
  const objectType = this.procedure.kind === "p" ? "PROCEDURE" : "FUNCTION";
245
246
  const leak = this.leakproof ? "LEAKPROOF" : "NOT LEAKPROOF";
246
247
  return ["ALTER", objectType, procedureSignature(this.procedure), leak].join(
@@ -267,7 +268,7 @@ export class AlterProcedureSetParallel extends AlterProcedureChange {
267
268
  return [this.procedure.stableId];
268
269
  }
269
270
 
270
- serialize(): string {
271
+ serialize(_options?: SerializeOptions): string {
271
272
  const objectType = this.procedure.kind === "p" ? "PROCEDURE" : "FUNCTION";
272
273
  const parallelMap: Record<string, string> = {
273
274
  u: "PARALLEL UNSAFE",
@@ -1,3 +1,4 @@
1
+ import type { SerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
1
2
  import { quoteLiteral } from "../../base.change.ts";
2
3
  import { stableId } from "../../utils.ts";
3
4
  import type { Procedure } from "../procedure.model.ts";
@@ -30,7 +31,7 @@ export class CreateCommentOnProcedure extends CreateProcedureChange {
30
31
  return [this.procedure.stableId];
31
32
  }
32
33
 
33
- serialize(): string {
34
+ serialize(_options?: SerializeOptions): string {
34
35
  return [
35
36
  "COMMENT ON",
36
37
  this.procedure.kind === "p" ? "PROCEDURE" : "FUNCTION",
@@ -59,7 +60,7 @@ export class DropCommentOnProcedure extends DropProcedureChange {
59
60
  return [stableId.comment(this.procedure.stableId), this.procedure.stableId];
60
61
  }
61
62
 
62
- serialize(): string {
63
+ serialize(_options?: SerializeOptions): string {
63
64
  return [
64
65
  "COMMENT ON",
65
66
  this.procedure.kind === "p" ? "PROCEDURE" : "FUNCTION",
@@ -1,3 +1,4 @@
1
+ import type { SerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
1
2
  import { parseTypeString, stableId } from "../../utils.ts";
2
3
  import type { Procedure } from "../procedure.model.ts";
3
4
  import { CreateProcedureChange } from "./procedure.base.ts";
@@ -78,7 +79,7 @@ export class CreateProcedure extends CreateProcedureChange {
78
79
  return Array.from(dependencies);
79
80
  }
80
81
 
81
- serialize(): string {
82
+ serialize(_options?: SerializeOptions): string {
82
83
  // Use the server-generated CREATE statement for functions/procedures
83
84
  // Normalize trailing semicolon and OR REPLACE clause according to flag
84
85
  let definition = this.procedure.definition.trim();
@@ -1,3 +1,4 @@
1
+ import type { SerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
1
2
  import type { Procedure } from "../procedure.model.ts";
2
3
  import { formatFunctionArguments } from "../utils.ts";
3
4
  import { DropProcedureChange } from "./procedure.base.ts";
@@ -30,7 +31,7 @@ export class DropProcedure extends DropProcedureChange {
30
31
  return [this.procedure.stableId];
31
32
  }
32
33
 
33
- serialize(): string {
34
+ serialize(_options?: SerializeOptions): string {
34
35
  const objectType = this.procedure.kind === "p" ? "PROCEDURE" : "FUNCTION";
35
36
 
36
37
  // Build argument list