@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 { Collation } from "../collation.model.ts";
2
3
  import { AlterCollationChange } from "./collation.base.ts";
3
4
 
@@ -36,7 +37,7 @@ export class AlterCollationChangeOwner extends AlterCollationChange {
36
37
  return [this.collation.stableId];
37
38
  }
38
39
 
39
- serialize(): string {
40
+ serialize(_options?: SerializeOptions): string {
40
41
  return [
41
42
  "ALTER COLLATION",
42
43
  `${this.collation.schema}.${this.collation.name}`,
@@ -62,7 +63,7 @@ export class AlterCollationRefreshVersion extends AlterCollationChange {
62
63
  return [this.collation.stableId];
63
64
  }
64
65
 
65
- serialize(): string {
66
+ serialize(_options?: SerializeOptions): string {
66
67
  return [
67
68
  "ALTER COLLATION",
68
69
  `${this.collation.schema}.${this.collation.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 { Collation } from "../collation.model.ts";
@@ -30,7 +31,7 @@ export class CreateCommentOnCollation extends CreateCollationChange {
30
31
  return [this.collation.stableId];
31
32
  }
32
33
 
33
- serialize(): string {
34
+ serialize(_options?: SerializeOptions): string {
34
35
  return [
35
36
  "COMMENT ON COLLATION",
36
37
  `${this.collation.schema}.${this.collation.name}`,
@@ -58,7 +59,7 @@ export class DropCommentOnCollation extends DropCollationChange {
58
59
  return [stableId.comment(this.collation.stableId)];
59
60
  }
60
61
 
61
- serialize(): string {
62
+ serialize(_options?: SerializeOptions): string {
62
63
  return [
63
64
  "COMMENT ON COLLATION",
64
65
  `${this.collation.schema}.${this.collation.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 { Collation } from "../collation.model.ts";
@@ -48,7 +49,7 @@ export class CreateCollation extends CreateCollationChange {
48
49
  return Array.from(dependencies);
49
50
  }
50
51
 
51
- serialize(): string {
52
+ serialize(_options?: SerializeOptions): string {
52
53
  const parts: string[] = ["CREATE COLLATION"];
53
54
 
54
55
  // Add schema and name (already quoted in model extraction)
@@ -1,3 +1,4 @@
1
+ import type { SerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
1
2
  import type { Collation } from "../collation.model.ts";
2
3
  import { DropCollationChange } from "./collation.base.ts";
3
4
 
@@ -28,7 +29,7 @@ export class DropCollation extends DropCollationChange {
28
29
  return [this.collation.stableId];
29
30
  }
30
31
 
31
- serialize(): string {
32
+ serialize(_options?: SerializeOptions): string {
32
33
  return [
33
34
  "DROP COLLATION",
34
35
  `${this.collation.schema}.${this.collation.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 { Domain, DomainConstraintProps } from "../domain.model.ts";
3
4
  import { AlterDomainChange, DropDomainChange } from "./domain.base.ts";
@@ -63,7 +64,7 @@ export class AlterDomainSetDefault extends AlterDomainChange {
63
64
  return [this.domain.stableId];
64
65
  }
65
66
 
66
- serialize(): string {
67
+ serialize(_options?: SerializeOptions): string {
67
68
  return `ALTER DOMAIN ${this.domain.schema}.${this.domain.name} SET DEFAULT ${this.defaultValue}`;
68
69
  }
69
70
  }
@@ -84,7 +85,7 @@ export class AlterDomainDropDefault extends AlterDomainChange {
84
85
  return [this.domain.stableId];
85
86
  }
86
87
 
87
- serialize(): string {
88
+ serialize(_options?: SerializeOptions): string {
88
89
  return `ALTER DOMAIN ${this.domain.schema}.${this.domain.name} DROP DEFAULT`;
89
90
  }
90
91
  }
@@ -105,7 +106,7 @@ export class AlterDomainSetNotNull extends AlterDomainChange {
105
106
  return [this.domain.stableId];
106
107
  }
107
108
 
108
- serialize(): string {
109
+ serialize(_options?: SerializeOptions): string {
109
110
  return `ALTER DOMAIN ${this.domain.schema}.${this.domain.name} SET NOT NULL`;
110
111
  }
111
112
  }
@@ -126,7 +127,7 @@ export class AlterDomainDropNotNull extends AlterDomainChange {
126
127
  return [this.domain.stableId];
127
128
  }
128
129
 
129
- serialize(): string {
130
+ serialize(_options?: SerializeOptions): string {
130
131
  return `ALTER DOMAIN ${this.domain.schema}.${this.domain.name} DROP NOT NULL`;
131
132
  }
132
133
  }
@@ -149,7 +150,7 @@ export class AlterDomainChangeOwner extends AlterDomainChange {
149
150
  return [this.domain.stableId, stableId.role(this.owner)];
150
151
  }
151
152
 
152
- serialize(): string {
153
+ serialize(_options?: SerializeOptions): string {
153
154
  return `ALTER DOMAIN ${this.domain.schema}.${this.domain.name} OWNER TO ${this.owner}`;
154
155
  }
155
156
  }
@@ -182,7 +183,7 @@ export class AlterDomainAddConstraint extends AlterDomainChange {
182
183
  return [this.domain.stableId];
183
184
  }
184
185
 
185
- serialize(): string {
186
+ serialize(_options?: SerializeOptions): string {
186
187
  const domainName = `${this.domain.schema}.${this.domain.name}`;
187
188
  const parts: string[] = [
188
189
  "ALTER DOMAIN",
@@ -235,7 +236,7 @@ export class AlterDomainDropConstraint extends DropDomainChange {
235
236
  ];
236
237
  }
237
238
 
238
- serialize(): string {
239
+ serialize(_options?: SerializeOptions): string {
239
240
  const domainName = `${this.domain.schema}.${this.domain.name}`;
240
241
  return [
241
242
  "ALTER DOMAIN",
@@ -274,7 +275,7 @@ export class AlterDomainValidateConstraint extends AlterDomainChange {
274
275
  ];
275
276
  }
276
277
 
277
- serialize(): string {
278
+ serialize(_options?: SerializeOptions): string {
278
279
  const domainName = `${this.domain.schema}.${this.domain.name}`;
279
280
  return [
280
281
  "ALTER DOMAIN",
@@ -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 { Domain } from "../domain.model.ts";
@@ -25,7 +26,7 @@ export class CreateCommentOnDomain extends CreateDomainChange {
25
26
  return [this.domain.stableId];
26
27
  }
27
28
 
28
- serialize(): string {
29
+ serialize(_options?: SerializeOptions): string {
29
30
  return [
30
31
  "COMMENT ON DOMAIN",
31
32
  `${this.domain.schema}.${this.domain.name}`,
@@ -49,7 +50,7 @@ export class DropCommentOnDomain extends DropDomainChange {
49
50
  return [stableId.comment(this.domain.stableId), this.domain.stableId];
50
51
  }
51
52
 
52
- serialize(): string {
53
+ serialize(_options?: SerializeOptions): string {
53
54
  return [
54
55
  "COMMENT ON DOMAIN",
55
56
  `${this.domain.schema}.${this.domain.name}`,
@@ -1,3 +1,4 @@
1
+ import type { SerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
1
2
  import {
2
3
  isUserDefinedTypeSchema,
3
4
  parseTypeString,
@@ -87,7 +88,7 @@ export class CreateDomain extends CreateDomainChange {
87
88
  return Array.from(dependencies);
88
89
  }
89
90
 
90
- serialize(): string {
91
+ serialize(_options?: SerializeOptions): string {
91
92
  const parts: string[] = [];
92
93
 
93
94
  // Schema-qualified name
@@ -1,3 +1,4 @@
1
+ import type { SerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
1
2
  import type { Domain } from "../domain.model.ts";
2
3
  import { DropDomainChange } from "./domain.base.ts";
3
4
 
@@ -28,7 +29,7 @@ export class DropDomain extends DropDomainChange {
28
29
  return [this.domain.stableId];
29
30
  }
30
31
 
31
- serialize(): string {
32
+ serialize(_options?: SerializeOptions): string {
32
33
  return `DROP DOMAIN ${this.domain.schema}.${this.domain.name}`;
33
34
  }
34
35
  }
@@ -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 GrantDomainPrivileges extends AlterDomainChange {
52
53
  return [this.domain.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) {
@@ -114,7 +115,7 @@ export class RevokeDomainPrivileges extends AlterDomainChange {
114
115
  return [this.domain.stableId, stableId.role(this.grantee)];
115
116
  }
116
117
 
117
- serialize(): string {
118
+ serialize(_options?: SerializeOptions): string {
118
119
  const kindPrefix = getObjectKindPrefix("DOMAIN");
119
120
  const list = this.privileges.map((p) => p.privilege);
120
121
  const privSql = formatObjectPrivilegeList("DOMAIN", list, this.version);
@@ -158,7 +159,7 @@ export class RevokeGrantOptionDomainPrivileges extends AlterDomainChange {
158
159
  ];
159
160
  }
160
161
 
161
- serialize(): string {
162
+ serialize(_options?: SerializeOptions): string {
162
163
  const kindPrefix = getObjectKindPrefix("DOMAIN");
163
164
  const privSql = formatObjectPrivilegeList(
164
165
  "DOMAIN",
@@ -1,3 +1,4 @@
1
+ import type { SerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
1
2
  import type { EventTrigger } from "../event-trigger.model.ts";
2
3
  import { AlterEventTriggerChange } from "./event-trigger.base.ts";
3
4
 
@@ -37,7 +38,7 @@ export class AlterEventTriggerChangeOwner extends AlterEventTriggerChange {
37
38
  return [this.eventTrigger.stableId];
38
39
  }
39
40
 
40
- serialize(): string {
41
+ serialize(_options?: SerializeOptions): string {
41
42
  return [
42
43
  "ALTER EVENT TRIGGER",
43
44
  this.eventTrigger.name,
@@ -75,7 +76,7 @@ export class AlterEventTriggerSetEnabled extends AlterEventTriggerChange {
75
76
  return [this.eventTrigger.stableId];
76
77
  }
77
78
 
78
- serialize(): string {
79
+ serialize(_options?: SerializeOptions): string {
79
80
  const clause = ENABLED_SQL[this.enabled];
80
81
  return ["ALTER EVENT TRIGGER", this.eventTrigger.name, clause].join(" ");
81
82
  }
@@ -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 { EventTrigger } from "../event-trigger.model.ts";
@@ -27,7 +28,7 @@ export class CreateCommentOnEventTrigger extends CreateEventTriggerChange {
27
28
  return [this.eventTrigger.stableId];
28
29
  }
29
30
 
30
- serialize(): string {
31
+ serialize(_options?: SerializeOptions): string {
31
32
  return [
32
33
  "COMMENT ON EVENT TRIGGER",
33
34
  this.eventTrigger.name,
@@ -58,7 +59,7 @@ export class DropCommentOnEventTrigger extends DropEventTriggerChange {
58
59
  ];
59
60
  }
60
61
 
61
- serialize(): string {
62
+ serialize(_options?: SerializeOptions): string {
62
63
  return ["COMMENT ON EVENT TRIGGER", this.eventTrigger.name, "IS NULL"].join(
63
64
  " ",
64
65
  );
@@ -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 { parseProcedureReference, stableId } from "../../utils.ts";
3
4
  import type { EventTrigger } from "../event-trigger.model.ts";
@@ -48,7 +49,7 @@ export class CreateEventTrigger extends CreateEventTriggerChange {
48
49
  return Array.from(dependencies);
49
50
  }
50
51
 
51
- serialize(): string {
52
+ serialize(_options?: SerializeOptions): string {
52
53
  const parts: string[] = [
53
54
  "CREATE EVENT TRIGGER",
54
55
  this.eventTrigger.name,
@@ -1,3 +1,4 @@
1
+ import type { SerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
1
2
  import type { EventTrigger } from "../event-trigger.model.ts";
2
3
  import { DropEventTriggerChange } from "./event-trigger.base.ts";
3
4
 
@@ -28,7 +29,7 @@ export class DropEventTrigger extends DropEventTriggerChange {
28
29
  return [this.eventTrigger.stableId];
29
30
  }
30
31
 
31
- serialize(): string {
32
+ serialize(_options?: SerializeOptions): string {
32
33
  return ["DROP EVENT TRIGGER", this.eventTrigger.name].join(" ");
33
34
  }
34
35
  }
@@ -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 { Extension } from "../extension.model.ts";
@@ -39,7 +40,7 @@ export class AlterExtensionUpdateVersion extends AlterExtensionChange {
39
40
  return [this.extension.stableId];
40
41
  }
41
42
 
42
- serialize(): string {
43
+ serialize(_options?: SerializeOptions): string {
43
44
  return [
44
45
  "ALTER EXTENSION",
45
46
  this.extension.name,
@@ -67,7 +68,7 @@ export class AlterExtensionSetSchema extends AlterExtensionChange {
67
68
  return [this.extension.stableId, stableId.schema(this.schema)];
68
69
  }
69
70
 
70
- serialize(): string {
71
+ serialize(_options?: SerializeOptions): string {
71
72
  return [
72
73
  "ALTER EXTENSION",
73
74
  this.extension.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 { Extension } from "../extension.model.ts";
@@ -30,7 +31,7 @@ export class CreateCommentOnExtension extends CreateExtensionChange {
30
31
  return [this.extension.stableId];
31
32
  }
32
33
 
33
- serialize(): string {
34
+ serialize(_options?: SerializeOptions): string {
34
35
  return [
35
36
  "COMMENT ON EXTENSION",
36
37
  this.extension.name,
@@ -58,7 +59,7 @@ export class DropCommentOnExtension extends DropExtensionChange {
58
59
  return [stableId.comment(this.extension.stableId), this.extension.stableId];
59
60
  }
60
61
 
61
- serialize(): string {
62
+ serialize(_options?: SerializeOptions): string {
62
63
  return ["COMMENT ON EXTENSION", this.extension.name, "IS NULL"].join(" ");
63
64
  }
64
65
  }
@@ -25,4 +25,26 @@ describe("extension", () => {
25
25
  `CREATE EXTENSION test_extension WITH SCHEMA public`,
26
26
  );
27
27
  });
28
+
29
+ test("create with skipSchema omits WITH SCHEMA", async () => {
30
+ const extension = new Extension({
31
+ name: "test_extension",
32
+ schema: "public",
33
+ relocatable: true,
34
+ version: "1.0",
35
+ owner: "test",
36
+ comment: null,
37
+ members: [],
38
+ });
39
+
40
+ const change = new CreateExtension({
41
+ extension,
42
+ });
43
+
44
+ await assertValidSql(change.serialize({ skipSchema: true }));
45
+
46
+ expect(change.serialize({ skipSchema: true })).toBe(
47
+ `CREATE EXTENSION test_extension`,
48
+ );
49
+ });
28
50
  });
@@ -1,3 +1,4 @@
1
+ import type { ExtensionSerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
1
2
  import { stableId } from "../../utils.ts";
2
3
  import type { Extension } from "../extension.model.ts";
3
4
  import { CreateExtensionChange } from "./extension.base.ts";
@@ -40,14 +41,16 @@ export class CreateExtension extends CreateExtensionChange {
40
41
  return Array.from(dependencies);
41
42
  }
42
43
 
43
- serialize(): string {
44
+ serialize(options?: ExtensionSerializeOptions): string {
44
45
  const parts: string[] = ["CREATE EXTENSION"];
45
46
 
46
47
  // Add extension name
47
48
  parts.push(this.extension.name);
48
49
 
49
50
  // Add schema
50
- parts.push("WITH SCHEMA", this.extension.schema);
51
+ if (!options?.skipSchema) {
52
+ parts.push("WITH SCHEMA", this.extension.schema);
53
+ }
51
54
 
52
55
  // Add version
53
56
  // TODO: Omit version for now as versions can differ between main and branch
@@ -1,3 +1,4 @@
1
+ import type { SerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
1
2
  import type { Extension } from "../extension.model.ts";
2
3
  import { DropExtensionChange } from "./extension.base.ts";
3
4
 
@@ -28,7 +29,7 @@ export class DropExtension extends DropExtensionChange {
28
29
  return [this.extension.stableId, ...this.extension.members];
29
30
  }
30
31
 
31
- serialize(): string {
32
+ serialize(_options?: SerializeOptions): string {
32
33
  return ["DROP EXTENSION", this.extension.name].join(" ");
33
34
  }
34
35
  }
@@ -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 { ForeignDataWrapper } from "../foreign-data-wrapper.model.ts";
@@ -41,7 +42,7 @@ export class AlterForeignDataWrapperChangeOwner extends AlterForeignDataWrapperC
41
42
  return [this.foreignDataWrapper.stableId, stableId.role(this.owner)];
42
43
  }
43
44
 
44
- serialize(): string {
45
+ serialize(_options?: SerializeOptions): string {
45
46
  return [
46
47
  "ALTER FOREIGN DATA WRAPPER",
47
48
  this.foreignDataWrapper.name,
@@ -80,7 +81,7 @@ export class AlterForeignDataWrapperSetOptions extends AlterForeignDataWrapperCh
80
81
  return [this.foreignDataWrapper.stableId];
81
82
  }
82
83
 
83
- serialize(): string {
84
+ serialize(_options?: SerializeOptions): string {
84
85
  const optionParts: string[] = [];
85
86
  for (const opt of this.options) {
86
87
  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 { ForeignDataWrapper } from "../foreign-data-wrapper.model.ts";
@@ -31,7 +32,7 @@ export class CreateCommentOnForeignDataWrapper extends CreateForeignDataWrapperC
31
32
  return [this.foreignDataWrapper.stableId];
32
33
  }
33
34
 
34
- serialize(): string {
35
+ serialize(_options?: SerializeOptions): string {
35
36
  return [
36
37
  "COMMENT ON FOREIGN DATA WRAPPER",
37
38
  this.foreignDataWrapper.name,
@@ -62,7 +63,7 @@ export class DropCommentOnForeignDataWrapper extends DropForeignDataWrapperChang
62
63
  ];
63
64
  }
64
65
 
65
- serialize(): string {
66
+ serialize(_options?: SerializeOptions): string {
66
67
  return [
67
68
  "COMMENT ON FOREIGN DATA WRAPPER",
68
69
  this.foreignDataWrapper.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 { ForeignDataWrapper } from "../foreign-data-wrapper.model.ts";
@@ -52,7 +53,7 @@ export class CreateForeignDataWrapper extends CreateForeignDataWrapperChange {
52
53
  return Array.from(dependencies);
53
54
  }
54
55
 
55
- serialize(): string {
56
+ serialize(_options?: SerializeOptions): string {
56
57
  const parts: string[] = ["CREATE FOREIGN DATA WRAPPER"];
57
58
 
58
59
  // Add FDW name
@@ -1,3 +1,4 @@
1
+ import type { SerializeOptions } from "../../../../integrations/serialize/serialize.types.ts";
1
2
  import type { ForeignDataWrapper } from "../foreign-data-wrapper.model.ts";
2
3
  import { DropForeignDataWrapperChange } from "./foreign-data-wrapper.base.ts";
3
4
 
@@ -28,7 +29,7 @@ export class DropForeignDataWrapper extends DropForeignDataWrapperChange {
28
29
  return [this.foreignDataWrapper.stableId];
29
30
  }
30
31
 
31
- serialize(): string {
32
+ serialize(_options?: SerializeOptions): string {
32
33
  return ["DROP FOREIGN DATA WRAPPER", this.foreignDataWrapper.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 { ForeignDataWrapper } from "../foreign-data-wrapper.model.ts";
@@ -49,7 +50,7 @@ export class GrantForeignDataWrapperPrivileges extends AlterForeignDataWrapperCh
49
50
  return [this.foreignDataWrapper.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) {
@@ -115,7 +116,7 @@ export class RevokeForeignDataWrapperPrivileges extends AlterForeignDataWrapperC
115
116
  ];
116
117
  }
117
118
 
118
- serialize(): string {
119
+ serialize(_options?: SerializeOptions): string {
119
120
  const list = this.privileges.map((p) => p.privilege);
120
121
  const privSql = formatObjectPrivilegeList(
121
122
  "FOREIGN DATA WRAPPER",
@@ -161,7 +162,7 @@ export class RevokeGrantOptionForeignDataWrapperPrivileges extends AlterForeignD
161
162
  ];
162
163
  }
163
164
 
164
- serialize(): string {
165
+ serialize(_options?: SerializeOptions): string {
165
166
  const privSql = formatObjectPrivilegeList(
166
167
  "FOREIGN DATA WRAPPER",
167
168
  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 { ColumnProps } from "../../../base.model.ts";
3
4
  import { stableId } from "../../../utils.ts";
@@ -55,7 +56,7 @@ export class AlterForeignTableChangeOwner extends AlterForeignTableChange {
55
56
  return [this.foreignTable.stableId, stableId.role(this.owner)];
56
57
  }
57
58
 
58
- serialize(): string {
59
+ serialize(_options?: SerializeOptions): string {
59
60
  return [
60
61
  "ALTER FOREIGN TABLE",
61
62
  `${this.foreignTable.schema}.${this.foreignTable.name}`,
@@ -83,7 +84,7 @@ export class AlterForeignTableAddColumn extends AlterForeignTableChange {
83
84
  return [this.foreignTable.stableId];
84
85
  }
85
86
 
86
- serialize(): string {
87
+ serialize(_options?: SerializeOptions): string {
87
88
  const parts = [
88
89
  "ALTER FOREIGN TABLE",
89
90
  `${this.foreignTable.schema}.${this.foreignTable.name}`,
@@ -122,7 +123,7 @@ export class AlterForeignTableDropColumn extends AlterForeignTableChange {
122
123
  return [this.foreignTable.stableId];
123
124
  }
124
125
 
125
- serialize(): string {
126
+ serialize(_options?: SerializeOptions): string {
126
127
  return [
127
128
  "ALTER FOREIGN TABLE",
128
129
  `${this.foreignTable.schema}.${this.foreignTable.name}`,
@@ -156,7 +157,7 @@ export class AlterForeignTableAlterColumnType extends AlterForeignTableChange {
156
157
  return [this.foreignTable.stableId];
157
158
  }
158
159
 
159
- serialize(): string {
160
+ serialize(_options?: SerializeOptions): string {
160
161
  return [
161
162
  "ALTER FOREIGN TABLE",
162
163
  `${this.foreignTable.schema}.${this.foreignTable.name}`,
@@ -192,7 +193,7 @@ export class AlterForeignTableAlterColumnSetDefault extends AlterForeignTableCha
192
193
  return [this.foreignTable.stableId];
193
194
  }
194
195
 
195
- serialize(): string {
196
+ serialize(_options?: SerializeOptions): string {
196
197
  return [
197
198
  "ALTER FOREIGN TABLE",
198
199
  `${this.foreignTable.schema}.${this.foreignTable.name}`,
@@ -222,7 +223,7 @@ export class AlterForeignTableAlterColumnDropDefault extends AlterForeignTableCh
222
223
  return [this.foreignTable.stableId];
223
224
  }
224
225
 
225
- serialize(): string {
226
+ serialize(_options?: SerializeOptions): string {
226
227
  return [
227
228
  "ALTER FOREIGN TABLE",
228
229
  `${this.foreignTable.schema}.${this.foreignTable.name}`,
@@ -251,7 +252,7 @@ export class AlterForeignTableAlterColumnSetNotNull extends AlterForeignTableCha
251
252
  return [this.foreignTable.stableId];
252
253
  }
253
254
 
254
- serialize(): string {
255
+ serialize(_options?: SerializeOptions): string {
255
256
  return [
256
257
  "ALTER FOREIGN TABLE",
257
258
  `${this.foreignTable.schema}.${this.foreignTable.name}`,
@@ -280,7 +281,7 @@ export class AlterForeignTableAlterColumnDropNotNull extends AlterForeignTableCh
280
281
  return [this.foreignTable.stableId];
281
282
  }
282
283
 
283
- serialize(): string {
284
+ serialize(_options?: SerializeOptions): string {
284
285
  return [
285
286
  "ALTER FOREIGN TABLE",
286
287
  `${this.foreignTable.schema}.${this.foreignTable.name}`,
@@ -320,7 +321,7 @@ export class AlterForeignTableSetOptions extends AlterForeignTableChange {
320
321
  return [this.foreignTable.stableId];
321
322
  }
322
323
 
323
- serialize(): string {
324
+ serialize(_options?: SerializeOptions): string {
324
325
  const optionParts: string[] = [];
325
326
  for (const opt of this.options) {
326
327
  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 { ForeignTable } from "../foreign-table.model.ts";
@@ -31,7 +32,7 @@ export class CreateCommentOnForeignTable extends CreateForeignTableChange {
31
32
  return [this.foreignTable.stableId];
32
33
  }
33
34
 
34
- serialize(): string {
35
+ serialize(_options?: SerializeOptions): string {
35
36
  return [
36
37
  "COMMENT ON FOREIGN TABLE",
37
38
  `${this.foreignTable.schema}.${this.foreignTable.name}`,
@@ -62,7 +63,7 @@ export class DropCommentOnForeignTable extends DropForeignTableChange {
62
63
  ];
63
64
  }
64
65
 
65
- serialize(): string {
66
+ serialize(_options?: SerializeOptions): string {
66
67
  return [
67
68
  "COMMENT ON FOREIGN TABLE",
68
69
  `${this.foreignTable.schema}.${this.foreignTable.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 { ForeignTable } from "../foreign-table.model.ts";
@@ -44,7 +45,7 @@ export class CreateForeignTable extends CreateForeignTableChange {
44
45
  return Array.from(dependencies);
45
46
  }
46
47
 
47
- serialize(): string {
48
+ serialize(_options?: SerializeOptions): string {
48
49
  const parts: string[] = ["CREATE FOREIGN TABLE"];
49
50
 
50
51
  // Add schema and name