@supabase/pg-delta 0.0.0 → 1.0.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (567) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +149 -0
  3. package/dist/cli/app.d.ts +1 -0
  4. package/dist/cli/app.js +26 -0
  5. package/dist/cli/bin/cli.d.ts +2 -0
  6. package/dist/cli/bin/cli.js +7 -0
  7. package/dist/cli/commands/apply.d.ts +5 -0
  8. package/dist/cli/commands/apply.js +85 -0
  9. package/dist/cli/commands/plan.d.ts +5 -0
  10. package/dist/cli/commands/plan.js +137 -0
  11. package/dist/cli/commands/sync.d.ts +5 -0
  12. package/dist/cli/commands/sync.js +141 -0
  13. package/dist/cli/formatters/index.d.ts +4 -0
  14. package/dist/cli/formatters/index.js +4 -0
  15. package/dist/cli/formatters/tree/tree-builder.d.ts +10 -0
  16. package/dist/cli/formatters/tree/tree-builder.js +333 -0
  17. package/dist/cli/formatters/tree/tree-renderer.d.ts +45 -0
  18. package/dist/cli/formatters/tree/tree-renderer.js +303 -0
  19. package/dist/cli/formatters/tree/tree.d.ts +8 -0
  20. package/dist/cli/formatters/tree/tree.js +161 -0
  21. package/dist/cli/utils/integrations.d.ts +13 -0
  22. package/dist/cli/utils/integrations.js +35 -0
  23. package/dist/cli/utils.d.ts +64 -0
  24. package/dist/cli/utils.js +160 -0
  25. package/dist/core/catalog.diff.d.ts +5 -0
  26. package/dist/core/catalog.diff.js +147 -0
  27. package/dist/core/catalog.model.d.ts +93 -0
  28. package/dist/core/catalog.model.js +254 -0
  29. package/dist/core/change.types.d.ts +22 -0
  30. package/dist/core/change.types.js +1 -0
  31. package/dist/core/context.d.ts +11 -0
  32. package/dist/core/context.js +12 -0
  33. package/dist/core/depend.d.ts +31 -0
  34. package/dist/core/depend.js +1833 -0
  35. package/dist/core/expand-replace-dependencies.d.ts +14 -0
  36. package/dist/core/expand-replace-dependencies.js +280 -0
  37. package/dist/core/fingerprint.d.ts +23 -0
  38. package/dist/core/fingerprint.js +174 -0
  39. package/dist/core/index.d.ts +15 -0
  40. package/dist/core/index.js +14 -0
  41. package/dist/core/integrations/filter/dsl.d.ts +97 -0
  42. package/dist/core/integrations/filter/dsl.js +107 -0
  43. package/dist/core/integrations/filter/extractors.d.ts +12 -0
  44. package/dist/core/integrations/filter/extractors.js +136 -0
  45. package/dist/core/integrations/integration-dsl.d.ts +22 -0
  46. package/dist/core/integrations/integration-dsl.js +6 -0
  47. package/dist/core/integrations/integration.types.d.ts +5 -0
  48. package/dist/core/integrations/integration.types.js +1 -0
  49. package/dist/core/integrations/serialize/dsl.d.ts +58 -0
  50. package/dist/core/integrations/serialize/dsl.js +42 -0
  51. package/dist/core/main.d.ts +5 -0
  52. package/dist/core/main.js +44 -0
  53. package/dist/core/objects/aggregate/aggregate.diff.d.ts +10 -0
  54. package/dist/core/objects/aggregate/aggregate.diff.js +186 -0
  55. package/dist/core/objects/aggregate/aggregate.model.d.ts +174 -0
  56. package/dist/core/objects/aggregate/aggregate.model.js +297 -0
  57. package/dist/core/objects/aggregate/changes/aggregate.alter.d.ts +19 -0
  58. package/dist/core/objects/aggregate/changes/aggregate.alter.js +25 -0
  59. package/dist/core/objects/aggregate/changes/aggregate.base.d.ts +17 -0
  60. package/dist/core/objects/aggregate/changes/aggregate.base.js +13 -0
  61. package/dist/core/objects/aggregate/changes/aggregate.comment.d.ts +23 -0
  62. package/dist/core/objects/aggregate/changes/aggregate.comment.js +44 -0
  63. package/dist/core/objects/aggregate/changes/aggregate.create.d.ts +19 -0
  64. package/dist/core/objects/aggregate/changes/aggregate.create.js +228 -0
  65. package/dist/core/objects/aggregate/changes/aggregate.drop.d.ts +17 -0
  66. package/dist/core/objects/aggregate/changes/aggregate.drop.js +26 -0
  67. package/dist/core/objects/aggregate/changes/aggregate.privilege.d.ts +62 -0
  68. package/dist/core/objects/aggregate/changes/aggregate.privilege.js +102 -0
  69. package/dist/core/objects/aggregate/changes/aggregate.types.d.ts +6 -0
  70. package/dist/core/objects/aggregate/changes/aggregate.types.js +1 -0
  71. package/dist/core/objects/base.change.d.ts +46 -0
  72. package/dist/core/objects/base.change.js +38 -0
  73. package/dist/core/objects/base.default-privileges.d.ts +29 -0
  74. package/dist/core/objects/base.default-privileges.js +167 -0
  75. package/dist/core/objects/base.diff.d.ts +6 -0
  76. package/dist/core/objects/base.diff.js +12 -0
  77. package/dist/core/objects/base.model.d.ts +74 -0
  78. package/dist/core/objects/base.model.js +47 -0
  79. package/dist/core/objects/base.privilege-diff.d.ts +54 -0
  80. package/dist/core/objects/base.privilege-diff.js +216 -0
  81. package/dist/core/objects/base.privilege.d.ts +27 -0
  82. package/dist/core/objects/base.privilege.js +169 -0
  83. package/dist/core/objects/collation/changes/collation.alter.d.ts +45 -0
  84. package/dist/core/objects/collation/changes/collation.alter.js +52 -0
  85. package/dist/core/objects/collation/changes/collation.base.d.ts +17 -0
  86. package/dist/core/objects/collation/changes/collation.base.js +13 -0
  87. package/dist/core/objects/collation/changes/collation.comment.d.ts +26 -0
  88. package/dist/core/objects/collation/changes/collation.comment.js +50 -0
  89. package/dist/core/objects/collation/changes/collation.create.d.ts +32 -0
  90. package/dist/core/objects/collation/changes/collation.create.js +86 -0
  91. package/dist/core/objects/collation/changes/collation.drop.d.ts +22 -0
  92. package/dist/core/objects/collation/changes/collation.drop.js +31 -0
  93. package/dist/core/objects/collation/changes/collation.types.d.ts +5 -0
  94. package/dist/core/objects/collation/changes/collation.types.js +1 -0
  95. package/dist/core/objects/collation/collation.diff.d.ts +13 -0
  96. package/dist/core/objects/collation/collation.diff.js +85 -0
  97. package/dist/core/objects/collation/collation.model.d.ts +67 -0
  98. package/dist/core/objects/collation/collation.model.js +207 -0
  99. package/dist/core/objects/domain/changes/domain.alter.d.ts +143 -0
  100. package/dist/core/objects/domain/changes/domain.alter.js +191 -0
  101. package/dist/core/objects/domain/changes/domain.base.d.ts +17 -0
  102. package/dist/core/objects/domain/changes/domain.base.js +13 -0
  103. package/dist/core/objects/domain/changes/domain.comment.d.ts +25 -0
  104. package/dist/core/objects/domain/changes/domain.comment.js +47 -0
  105. package/dist/core/objects/domain/changes/domain.create.d.ts +30 -0
  106. package/dist/core/objects/domain/changes/domain.create.js +92 -0
  107. package/dist/core/objects/domain/changes/domain.drop.d.ts +22 -0
  108. package/dist/core/objects/domain/changes/domain.drop.js +28 -0
  109. package/dist/core/objects/domain/changes/domain.privilege.d.ts +97 -0
  110. package/dist/core/objects/domain/changes/domain.privilege.js +127 -0
  111. package/dist/core/objects/domain/changes/domain.types.d.ts +6 -0
  112. package/dist/core/objects/domain/changes/domain.types.js +1 -0
  113. package/dist/core/objects/domain/domain.diff.d.ts +18 -0
  114. package/dist/core/objects/domain/domain.diff.js +244 -0
  115. package/dist/core/objects/domain/domain.model.d.ts +103 -0
  116. package/dist/core/objects/domain/domain.model.js +172 -0
  117. package/dist/core/objects/event-trigger/changes/event-trigger.alter.d.ts +44 -0
  118. package/dist/core/objects/event-trigger/changes/event-trigger.alter.js +51 -0
  119. package/dist/core/objects/event-trigger/changes/event-trigger.base.d.ts +17 -0
  120. package/dist/core/objects/event-trigger/changes/event-trigger.base.js +13 -0
  121. package/dist/core/objects/event-trigger/changes/event-trigger.comment.d.ts +23 -0
  122. package/dist/core/objects/event-trigger/changes/event-trigger.comment.js +46 -0
  123. package/dist/core/objects/event-trigger/changes/event-trigger.create.d.ts +25 -0
  124. package/dist/core/objects/event-trigger/changes/event-trigger.create.js +55 -0
  125. package/dist/core/objects/event-trigger/changes/event-trigger.drop.d.ts +22 -0
  126. package/dist/core/objects/event-trigger/changes/event-trigger.drop.js +28 -0
  127. package/dist/core/objects/event-trigger/changes/event-trigger.types.d.ts +5 -0
  128. package/dist/core/objects/event-trigger/changes/event-trigger.types.js +1 -0
  129. package/dist/core/objects/event-trigger/event-trigger.diff.d.ts +13 -0
  130. package/dist/core/objects/event-trigger/event-trigger.diff.js +81 -0
  131. package/dist/core/objects/event-trigger/event-trigger.model.d.ts +45 -0
  132. package/dist/core/objects/event-trigger/event-trigger.model.js +89 -0
  133. package/dist/core/objects/extension/changes/extension.alter.d.ts +44 -0
  134. package/dist/core/objects/extension/changes/extension.alter.js +51 -0
  135. package/dist/core/objects/extension/changes/extension.base.d.ts +17 -0
  136. package/dist/core/objects/extension/changes/extension.base.js +13 -0
  137. package/dist/core/objects/extension/changes/extension.comment.d.ts +26 -0
  138. package/dist/core/objects/extension/changes/extension.comment.js +46 -0
  139. package/dist/core/objects/extension/changes/extension.create.d.ts +25 -0
  140. package/dist/core/objects/extension/changes/extension.create.js +49 -0
  141. package/dist/core/objects/extension/changes/extension.drop.d.ts +22 -0
  142. package/dist/core/objects/extension/changes/extension.drop.js +28 -0
  143. package/dist/core/objects/extension/changes/extension.types.d.ts +5 -0
  144. package/dist/core/objects/extension/changes/extension.types.js +1 -0
  145. package/dist/core/objects/extension/extension.diff.d.ts +10 -0
  146. package/dist/core/objects/extension/extension.diff.js +65 -0
  147. package/dist/core/objects/extension/extension.model.d.ts +52 -0
  148. package/dist/core/objects/extension/extension.model.js +268 -0
  149. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.alter.d.ts +51 -0
  150. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.alter.js +61 -0
  151. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.base.d.ts +17 -0
  152. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.base.js +13 -0
  153. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.comment.d.ts +26 -0
  154. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.comment.js +50 -0
  155. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.create.d.ts +25 -0
  156. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.create.js +78 -0
  157. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.drop.d.ts +22 -0
  158. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.drop.js +28 -0
  159. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.privilege.d.ts +97 -0
  160. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.privilege.js +123 -0
  161. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.types.d.ts +6 -0
  162. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.types.js +1 -0
  163. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/foreign-data-wrapper.diff.d.ts +18 -0
  164. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/foreign-data-wrapper.diff.js +221 -0
  165. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/foreign-data-wrapper.model.d.ts +59 -0
  166. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/foreign-data-wrapper.model.js +128 -0
  167. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper.types.d.ts +5 -0
  168. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper.types.js +1 -0
  169. package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.alter.d.ts +163 -0
  170. package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.alter.js +248 -0
  171. package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.base.d.ts +17 -0
  172. package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.base.js +13 -0
  173. package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.comment.d.ts +26 -0
  174. package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.comment.js +50 -0
  175. package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.create.d.ts +25 -0
  176. package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.create.js +64 -0
  177. package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.drop.d.ts +22 -0
  178. package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.drop.js +31 -0
  179. package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.privilege.d.ts +97 -0
  180. package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.privilege.js +129 -0
  181. package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.types.d.ts +6 -0
  182. package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.types.js +1 -0
  183. package/dist/core/objects/foreign-data-wrapper/foreign-table/foreign-table.diff.d.ts +18 -0
  184. package/dist/core/objects/foreign-data-wrapper/foreign-table/foreign-table.diff.js +268 -0
  185. package/dist/core/objects/foreign-data-wrapper/foreign-table/foreign-table.model.d.ts +117 -0
  186. package/dist/core/objects/foreign-data-wrapper/foreign-table/foreign-table.model.js +215 -0
  187. package/dist/core/objects/foreign-data-wrapper/server/changes/server.alter.d.ts +65 -0
  188. package/dist/core/objects/foreign-data-wrapper/server/changes/server.alter.js +84 -0
  189. package/dist/core/objects/foreign-data-wrapper/server/changes/server.base.d.ts +17 -0
  190. package/dist/core/objects/foreign-data-wrapper/server/changes/server.base.js +13 -0
  191. package/dist/core/objects/foreign-data-wrapper/server/changes/server.comment.d.ts +26 -0
  192. package/dist/core/objects/foreign-data-wrapper/server/changes/server.comment.js +43 -0
  193. package/dist/core/objects/foreign-data-wrapper/server/changes/server.create.d.ts +24 -0
  194. package/dist/core/objects/foreign-data-wrapper/server/changes/server.create.js +62 -0
  195. package/dist/core/objects/foreign-data-wrapper/server/changes/server.drop.d.ts +22 -0
  196. package/dist/core/objects/foreign-data-wrapper/server/changes/server.drop.js +28 -0
  197. package/dist/core/objects/foreign-data-wrapper/server/changes/server.privilege.d.ts +97 -0
  198. package/dist/core/objects/foreign-data-wrapper/server/changes/server.privilege.js +123 -0
  199. package/dist/core/objects/foreign-data-wrapper/server/changes/server.types.d.ts +6 -0
  200. package/dist/core/objects/foreign-data-wrapper/server/changes/server.types.js +1 -0
  201. package/dist/core/objects/foreign-data-wrapper/server/server.diff.d.ts +18 -0
  202. package/dist/core/objects/foreign-data-wrapper/server/server.diff.js +209 -0
  203. package/dist/core/objects/foreign-data-wrapper/server/server.model.d.ts +62 -0
  204. package/dist/core/objects/foreign-data-wrapper/server/server.model.js +118 -0
  205. package/dist/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.alter.d.ts +37 -0
  206. package/dist/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.alter.js +38 -0
  207. package/dist/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.base.d.ts +17 -0
  208. package/dist/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.base.js +13 -0
  209. package/dist/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.create.d.ts +24 -0
  210. package/dist/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.create.js +52 -0
  211. package/dist/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.drop.d.ts +23 -0
  212. package/dist/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.drop.js +34 -0
  213. package/dist/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.types.d.ts +4 -0
  214. package/dist/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.types.js +1 -0
  215. package/dist/core/objects/foreign-data-wrapper/user-mapping/user-mapping.diff.d.ts +10 -0
  216. package/dist/core/objects/foreign-data-wrapper/user-mapping/user-mapping.diff.js +77 -0
  217. package/dist/core/objects/foreign-data-wrapper/user-mapping/user-mapping.model.d.ts +36 -0
  218. package/dist/core/objects/foreign-data-wrapper/user-mapping/user-mapping.model.js +85 -0
  219. package/dist/core/objects/index/changes/index.alter.d.ts +76 -0
  220. package/dist/core/objects/index/changes/index.alter.js +94 -0
  221. package/dist/core/objects/index/changes/index.base.d.ts +17 -0
  222. package/dist/core/objects/index/changes/index.base.js +13 -0
  223. package/dist/core/objects/index/changes/index.comment.d.ts +26 -0
  224. package/dist/core/objects/index/changes/index.comment.js +50 -0
  225. package/dist/core/objects/index/changes/index.create.d.ts +30 -0
  226. package/dist/core/objects/index/changes/index.create.js +53 -0
  227. package/dist/core/objects/index/changes/index.drop.d.ts +22 -0
  228. package/dist/core/objects/index/changes/index.drop.js +28 -0
  229. package/dist/core/objects/index/changes/index.types.d.ts +5 -0
  230. package/dist/core/objects/index/changes/index.types.js +1 -0
  231. package/dist/core/objects/index/changes/utils.d.ts +3 -0
  232. package/dist/core/objects/index/changes/utils.js +6 -0
  233. package/dist/core/objects/index/index.diff.d.ts +12 -0
  234. package/dist/core/objects/index/index.diff.js +182 -0
  235. package/dist/core/objects/index/index.model.d.ts +150 -0
  236. package/dist/core/objects/index/index.model.js +340 -0
  237. package/dist/core/objects/language/changes/language.alter.d.ts +32 -0
  238. package/dist/core/objects/language/changes/language.alter.js +30 -0
  239. package/dist/core/objects/language/changes/language.base.d.ts +17 -0
  240. package/dist/core/objects/language/changes/language.base.js +13 -0
  241. package/dist/core/objects/language/changes/language.comment.d.ts +26 -0
  242. package/dist/core/objects/language/changes/language.comment.js +45 -0
  243. package/dist/core/objects/language/changes/language.create.d.ts +25 -0
  244. package/dist/core/objects/language/changes/language.create.js +76 -0
  245. package/dist/core/objects/language/changes/language.drop.d.ts +22 -0
  246. package/dist/core/objects/language/changes/language.drop.js +31 -0
  247. package/dist/core/objects/language/changes/language.privilege.d.ts +97 -0
  248. package/dist/core/objects/language/changes/language.privilege.js +128 -0
  249. package/dist/core/objects/language/changes/language.types.d.ts +6 -0
  250. package/dist/core/objects/language/changes/language.types.js +1 -0
  251. package/dist/core/objects/language/language.diff.d.ts +15 -0
  252. package/dist/core/objects/language/language.diff.js +117 -0
  253. package/dist/core/objects/language/language.model.d.ts +62 -0
  254. package/dist/core/objects/language/language.model.js +128 -0
  255. package/dist/core/objects/materialized-view/changes/materialized-view.alter.d.ts +67 -0
  256. package/dist/core/objects/materialized-view/changes/materialized-view.alter.js +63 -0
  257. package/dist/core/objects/materialized-view/changes/materialized-view.base.d.ts +17 -0
  258. package/dist/core/objects/materialized-view/changes/materialized-view.base.js +13 -0
  259. package/dist/core/objects/materialized-view/changes/materialized-view.comment.d.ts +53 -0
  260. package/dist/core/objects/materialized-view/changes/materialized-view.comment.js +112 -0
  261. package/dist/core/objects/materialized-view/changes/materialized-view.create.d.ts +35 -0
  262. package/dist/core/objects/materialized-view/changes/materialized-view.create.js +71 -0
  263. package/dist/core/objects/materialized-view/changes/materialized-view.drop.d.ts +26 -0
  264. package/dist/core/objects/materialized-view/changes/materialized-view.drop.js +42 -0
  265. package/dist/core/objects/materialized-view/changes/materialized-view.privilege.d.ts +105 -0
  266. package/dist/core/objects/materialized-view/changes/materialized-view.privilege.js +151 -0
  267. package/dist/core/objects/materialized-view/changes/materialized-view.types.d.ts +6 -0
  268. package/dist/core/objects/materialized-view/changes/materialized-view.types.js +1 -0
  269. package/dist/core/objects/materialized-view/materialized-view.diff.d.ts +18 -0
  270. package/dist/core/objects/materialized-view/materialized-view.diff.js +335 -0
  271. package/dist/core/objects/materialized-view/materialized-view.model.d.ts +152 -0
  272. package/dist/core/objects/materialized-view/materialized-view.model.js +228 -0
  273. package/dist/core/objects/procedure/changes/procedure.alter.d.ts +143 -0
  274. package/dist/core/objects/procedure/changes/procedure.alter.js +207 -0
  275. package/dist/core/objects/procedure/changes/procedure.base.d.ts +17 -0
  276. package/dist/core/objects/procedure/changes/procedure.base.js +13 -0
  277. package/dist/core/objects/procedure/changes/procedure.comment.d.ts +26 -0
  278. package/dist/core/objects/procedure/changes/procedure.comment.js +52 -0
  279. package/dist/core/objects/procedure/changes/procedure.create.d.ts +42 -0
  280. package/dist/core/objects/procedure/changes/procedure.create.js +77 -0
  281. package/dist/core/objects/procedure/changes/procedure.drop.d.ts +23 -0
  282. package/dist/core/objects/procedure/changes/procedure.drop.js +37 -0
  283. package/dist/core/objects/procedure/changes/procedure.privilege.d.ts +98 -0
  284. package/dist/core/objects/procedure/changes/procedure.privilege.js +144 -0
  285. package/dist/core/objects/procedure/changes/procedure.types.d.ts +6 -0
  286. package/dist/core/objects/procedure/changes/procedure.types.js +1 -0
  287. package/dist/core/objects/procedure/procedure.diff.d.ts +18 -0
  288. package/dist/core/objects/procedure/procedure.diff.js +282 -0
  289. package/dist/core/objects/procedure/procedure.model.d.ts +132 -0
  290. package/dist/core/objects/procedure/procedure.model.js +244 -0
  291. package/dist/core/objects/procedure/utils.d.ts +14 -0
  292. package/dist/core/objects/procedure/utils.js +55 -0
  293. package/dist/core/objects/publication/changes/publication.alter.d.ts +88 -0
  294. package/dist/core/objects/publication/changes/publication.alter.js +176 -0
  295. package/dist/core/objects/publication/changes/publication.base.d.ts +17 -0
  296. package/dist/core/objects/publication/changes/publication.base.js +13 -0
  297. package/dist/core/objects/publication/changes/publication.comment.d.ts +23 -0
  298. package/dist/core/objects/publication/changes/publication.comment.js +46 -0
  299. package/dist/core/objects/publication/changes/publication.create.d.ts +17 -0
  300. package/dist/core/objects/publication/changes/publication.create.js +61 -0
  301. package/dist/core/objects/publication/changes/publication.drop.d.ts +17 -0
  302. package/dist/core/objects/publication/changes/publication.drop.js +23 -0
  303. package/dist/core/objects/publication/changes/publication.types.d.ts +5 -0
  304. package/dist/core/objects/publication/changes/publication.types.js +1 -0
  305. package/dist/core/objects/publication/publication.diff.d.ts +5 -0
  306. package/dist/core/objects/publication/publication.diff.js +161 -0
  307. package/dist/core/objects/publication/publication.model.d.ts +96 -0
  308. package/dist/core/objects/publication/publication.model.js +186 -0
  309. package/dist/core/objects/publication/utils.d.ts +5 -0
  310. package/dist/core/objects/publication/utils.js +45 -0
  311. package/dist/core/objects/rls-policy/changes/rls-policy.alter.d.ts +62 -0
  312. package/dist/core/objects/rls-policy/changes/rls-policy.alter.js +90 -0
  313. package/dist/core/objects/rls-policy/changes/rls-policy.base.d.ts +17 -0
  314. package/dist/core/objects/rls-policy/changes/rls-policy.base.js +13 -0
  315. package/dist/core/objects/rls-policy/changes/rls-policy.comment.d.ts +23 -0
  316. package/dist/core/objects/rls-policy/changes/rls-policy.comment.js +51 -0
  317. package/dist/core/objects/rls-policy/changes/rls-policy.create.d.ts +27 -0
  318. package/dist/core/objects/rls-policy/changes/rls-policy.create.js +79 -0
  319. package/dist/core/objects/rls-policy/changes/rls-policy.drop.d.ts +22 -0
  320. package/dist/core/objects/rls-policy/changes/rls-policy.drop.js +33 -0
  321. package/dist/core/objects/rls-policy/changes/rls-policy.types.d.ts +5 -0
  322. package/dist/core/objects/rls-policy/changes/rls-policy.types.js +1 -0
  323. package/dist/core/objects/rls-policy/rls-policy.diff.d.ts +10 -0
  324. package/dist/core/objects/rls-policy/rls-policy.diff.js +80 -0
  325. package/dist/core/objects/rls-policy/rls-policy.model.d.ts +52 -0
  326. package/dist/core/objects/rls-policy/rls-policy.model.js +127 -0
  327. package/dist/core/objects/role/changes/role.alter.d.ts +78 -0
  328. package/dist/core/objects/role/changes/role.alter.js +55 -0
  329. package/dist/core/objects/role/changes/role.base.d.ts +17 -0
  330. package/dist/core/objects/role/changes/role.base.js +13 -0
  331. package/dist/core/objects/role/changes/role.comment.d.ts +23 -0
  332. package/dist/core/objects/role/changes/role.comment.js +42 -0
  333. package/dist/core/objects/role/changes/role.create.d.ts +38 -0
  334. package/dist/core/objects/role/changes/role.create.js +83 -0
  335. package/dist/core/objects/role/changes/role.drop.d.ts +22 -0
  336. package/dist/core/objects/role/changes/role.drop.js +28 -0
  337. package/dist/core/objects/role/changes/role.privilege.d.ts +148 -0
  338. package/dist/core/objects/role/changes/role.privilege.js +283 -0
  339. package/dist/core/objects/role/changes/role.types.d.ts +6 -0
  340. package/dist/core/objects/role/changes/role.types.js +1 -0
  341. package/dist/core/objects/role/role.diff.d.ts +13 -0
  342. package/dist/core/objects/role/role.diff.js +386 -0
  343. package/dist/core/objects/role/role.model.d.ts +89 -0
  344. package/dist/core/objects/role/role.model.js +312 -0
  345. package/dist/core/objects/rule/changes/rule.alter.d.ts +22 -0
  346. package/dist/core/objects/rule/changes/rule.alter.js +58 -0
  347. package/dist/core/objects/rule/changes/rule.base.d.ts +17 -0
  348. package/dist/core/objects/rule/changes/rule.base.js +13 -0
  349. package/dist/core/objects/rule/changes/rule.comment.d.ts +22 -0
  350. package/dist/core/objects/rule/changes/rule.comment.js +51 -0
  351. package/dist/core/objects/rule/changes/rule.create.d.ts +14 -0
  352. package/dist/core/objects/rule/changes/rule.create.js +28 -0
  353. package/dist/core/objects/rule/changes/rule.drop.d.ts +12 -0
  354. package/dist/core/objects/rule/changes/rule.drop.js +23 -0
  355. package/dist/core/objects/rule/changes/rule.types.d.ts +5 -0
  356. package/dist/core/objects/rule/changes/rule.types.js +1 -0
  357. package/dist/core/objects/rule/rule.diff.d.ts +3 -0
  358. package/dist/core/objects/rule/rule.diff.js +53 -0
  359. package/dist/core/objects/rule/rule.model.d.ts +72 -0
  360. package/dist/core/objects/rule/rule.model.js +156 -0
  361. package/dist/core/objects/schema/changes/schema.alter.d.ts +32 -0
  362. package/dist/core/objects/schema/changes/schema.alter.js +25 -0
  363. package/dist/core/objects/schema/changes/schema.base.d.ts +17 -0
  364. package/dist/core/objects/schema/changes/schema.base.js +13 -0
  365. package/dist/core/objects/schema/changes/schema.comment.d.ts +23 -0
  366. package/dist/core/objects/schema/changes/schema.comment.js +43 -0
  367. package/dist/core/objects/schema/changes/schema.create.d.ts +27 -0
  368. package/dist/core/objects/schema/changes/schema.create.js +38 -0
  369. package/dist/core/objects/schema/changes/schema.drop.d.ts +22 -0
  370. package/dist/core/objects/schema/changes/schema.drop.js +28 -0
  371. package/dist/core/objects/schema/changes/schema.privilege.d.ts +97 -0
  372. package/dist/core/objects/schema/changes/schema.privilege.js +131 -0
  373. package/dist/core/objects/schema/changes/schema.types.d.ts +6 -0
  374. package/dist/core/objects/schema/changes/schema.types.js +1 -0
  375. package/dist/core/objects/schema/schema.diff.d.ts +18 -0
  376. package/dist/core/objects/schema/schema.diff.js +142 -0
  377. package/dist/core/objects/schema/schema.model.d.ts +47 -0
  378. package/dist/core/objects/schema/schema.model.js +91 -0
  379. package/dist/core/objects/sequence/changes/sequence.alter.d.ts +59 -0
  380. package/dist/core/objects/sequence/changes/sequence.alter.js +75 -0
  381. package/dist/core/objects/sequence/changes/sequence.base.d.ts +17 -0
  382. package/dist/core/objects/sequence/changes/sequence.base.js +13 -0
  383. package/dist/core/objects/sequence/changes/sequence.comment.d.ts +23 -0
  384. package/dist/core/objects/sequence/changes/sequence.comment.js +47 -0
  385. package/dist/core/objects/sequence/changes/sequence.create.d.ts +25 -0
  386. package/dist/core/objects/sequence/changes/sequence.create.js +78 -0
  387. package/dist/core/objects/sequence/changes/sequence.drop.d.ts +22 -0
  388. package/dist/core/objects/sequence/changes/sequence.drop.js +31 -0
  389. package/dist/core/objects/sequence/changes/sequence.privilege.d.ts +101 -0
  390. package/dist/core/objects/sequence/changes/sequence.privilege.js +135 -0
  391. package/dist/core/objects/sequence/changes/sequence.types.d.ts +6 -0
  392. package/dist/core/objects/sequence/changes/sequence.types.js +1 -0
  393. package/dist/core/objects/sequence/sequence.diff.d.ts +20 -0
  394. package/dist/core/objects/sequence/sequence.diff.js +258 -0
  395. package/dist/core/objects/sequence/sequence.model.d.ts +76 -0
  396. package/dist/core/objects/sequence/sequence.model.js +169 -0
  397. package/dist/core/objects/subscription/changes/subscription.alter.d.ts +56 -0
  398. package/dist/core/objects/subscription/changes/subscription.alter.js +82 -0
  399. package/dist/core/objects/subscription/changes/subscription.base.d.ts +17 -0
  400. package/dist/core/objects/subscription/changes/subscription.base.js +13 -0
  401. package/dist/core/objects/subscription/changes/subscription.comment.d.ts +23 -0
  402. package/dist/core/objects/subscription/changes/subscription.comment.js +46 -0
  403. package/dist/core/objects/subscription/changes/subscription.create.d.ts +12 -0
  404. package/dist/core/objects/subscription/changes/subscription.create.js +52 -0
  405. package/dist/core/objects/subscription/changes/subscription.drop.d.ts +11 -0
  406. package/dist/core/objects/subscription/changes/subscription.drop.js +15 -0
  407. package/dist/core/objects/subscription/changes/subscription.types.d.ts +5 -0
  408. package/dist/core/objects/subscription/changes/subscription.types.js +1 -0
  409. package/dist/core/objects/subscription/subscription.diff.d.ts +5 -0
  410. package/dist/core/objects/subscription/subscription.diff.js +167 -0
  411. package/dist/core/objects/subscription/subscription.model.d.ts +80 -0
  412. package/dist/core/objects/subscription/subscription.model.js +166 -0
  413. package/dist/core/objects/subscription/utils.d.ts +37 -0
  414. package/dist/core/objects/subscription/utils.js +112 -0
  415. package/dist/core/objects/table/changes/table.alter.d.ts +357 -0
  416. package/dist/core/objects/table/changes/table.alter.js +607 -0
  417. package/dist/core/objects/table/changes/table.base.d.ts +17 -0
  418. package/dist/core/objects/table/changes/table.base.js +13 -0
  419. package/dist/core/objects/table/changes/table.comment.d.ts +106 -0
  420. package/dist/core/objects/table/changes/table.comment.js +175 -0
  421. package/dist/core/objects/table/changes/table.create.d.ts +33 -0
  422. package/dist/core/objects/table/changes/table.create.js +145 -0
  423. package/dist/core/objects/table/changes/table.drop.d.ts +22 -0
  424. package/dist/core/objects/table/changes/table.drop.js +35 -0
  425. package/dist/core/objects/table/changes/table.privilege.d.ts +107 -0
  426. package/dist/core/objects/table/changes/table.privilege.js +150 -0
  427. package/dist/core/objects/table/changes/table.types.d.ts +6 -0
  428. package/dist/core/objects/table/changes/table.types.js +1 -0
  429. package/dist/core/objects/table/table.diff.d.ts +18 -0
  430. package/dist/core/objects/table/table.diff.js +668 -0
  431. package/dist/core/objects/table/table.model.d.ts +341 -0
  432. package/dist/core/objects/table/table.model.js +426 -0
  433. package/dist/core/objects/trigger/changes/trigger.alter.d.ts +29 -0
  434. package/dist/core/objects/trigger/changes/trigger.alter.js +27 -0
  435. package/dist/core/objects/trigger/changes/trigger.base.d.ts +17 -0
  436. package/dist/core/objects/trigger/changes/trigger.base.js +13 -0
  437. package/dist/core/objects/trigger/changes/trigger.comment.d.ts +23 -0
  438. package/dist/core/objects/trigger/changes/trigger.comment.js +51 -0
  439. package/dist/core/objects/trigger/changes/trigger.create.d.ts +41 -0
  440. package/dist/core/objects/trigger/changes/trigger.create.js +61 -0
  441. package/dist/core/objects/trigger/changes/trigger.drop.d.ts +22 -0
  442. package/dist/core/objects/trigger/changes/trigger.drop.js +33 -0
  443. package/dist/core/objects/trigger/changes/trigger.types.d.ts +5 -0
  444. package/dist/core/objects/trigger/changes/trigger.types.js +1 -0
  445. package/dist/core/objects/trigger/trigger.diff.d.ts +11 -0
  446. package/dist/core/objects/trigger/trigger.diff.js +84 -0
  447. package/dist/core/objects/trigger/trigger.model.d.ts +92 -0
  448. package/dist/core/objects/trigger/trigger.model.js +235 -0
  449. package/dist/core/objects/type/composite-type/changes/composite-type.alter.d.ts +81 -0
  450. package/dist/core/objects/type/composite-type/changes/composite-type.alter.js +123 -0
  451. package/dist/core/objects/type/composite-type/changes/composite-type.base.d.ts +17 -0
  452. package/dist/core/objects/type/composite-type/changes/composite-type.base.js +13 -0
  453. package/dist/core/objects/type/composite-type/changes/composite-type.comment.d.ts +53 -0
  454. package/dist/core/objects/type/composite-type/changes/composite-type.comment.js +108 -0
  455. package/dist/core/objects/type/composite-type/changes/composite-type.create.d.ts +23 -0
  456. package/dist/core/objects/type/composite-type/changes/composite-type.create.js +72 -0
  457. package/dist/core/objects/type/composite-type/changes/composite-type.drop.d.ts +22 -0
  458. package/dist/core/objects/type/composite-type/changes/composite-type.drop.js +31 -0
  459. package/dist/core/objects/type/composite-type/changes/composite-type.privilege.d.ts +97 -0
  460. package/dist/core/objects/type/composite-type/changes/composite-type.privilege.js +131 -0
  461. package/dist/core/objects/type/composite-type/changes/composite-type.types.d.ts +6 -0
  462. package/dist/core/objects/type/composite-type/changes/composite-type.types.js +1 -0
  463. package/dist/core/objects/type/composite-type/composite-type.diff.d.ts +18 -0
  464. package/dist/core/objects/type/composite-type/composite-type.diff.js +250 -0
  465. package/dist/core/objects/type/composite-type/composite-type.model.d.ts +148 -0
  466. package/dist/core/objects/type/composite-type/composite-type.model.js +223 -0
  467. package/dist/core/objects/type/enum/changes/enum.alter.d.ts +52 -0
  468. package/dist/core/objects/type/enum/changes/enum.alter.js +60 -0
  469. package/dist/core/objects/type/enum/changes/enum.base.d.ts +17 -0
  470. package/dist/core/objects/type/enum/changes/enum.base.js +13 -0
  471. package/dist/core/objects/type/enum/changes/enum.comment.d.ts +26 -0
  472. package/dist/core/objects/type/enum/changes/enum.comment.js +47 -0
  473. package/dist/core/objects/type/enum/changes/enum.create.d.ts +22 -0
  474. package/dist/core/objects/type/enum/changes/enum.create.js +43 -0
  475. package/dist/core/objects/type/enum/changes/enum.drop.d.ts +22 -0
  476. package/dist/core/objects/type/enum/changes/enum.drop.js +28 -0
  477. package/dist/core/objects/type/enum/changes/enum.privilege.d.ts +97 -0
  478. package/dist/core/objects/type/enum/changes/enum.privilege.js +131 -0
  479. package/dist/core/objects/type/enum/changes/enum.types.d.ts +6 -0
  480. package/dist/core/objects/type/enum/changes/enum.types.js +1 -0
  481. package/dist/core/objects/type/enum/enum.diff.d.ts +18 -0
  482. package/dist/core/objects/type/enum/enum.diff.js +268 -0
  483. package/dist/core/objects/type/enum/enum.model.d.ts +66 -0
  484. package/dist/core/objects/type/enum/enum.model.js +154 -0
  485. package/dist/core/objects/type/range/changes/range.alter.d.ts +33 -0
  486. package/dist/core/objects/type/range/changes/range.alter.js +30 -0
  487. package/dist/core/objects/type/range/changes/range.base.d.ts +17 -0
  488. package/dist/core/objects/type/range/changes/range.base.js +13 -0
  489. package/dist/core/objects/type/range/changes/range.comment.d.ts +26 -0
  490. package/dist/core/objects/type/range/changes/range.comment.js +47 -0
  491. package/dist/core/objects/type/range/changes/range.create.d.ts +31 -0
  492. package/dist/core/objects/type/range/changes/range.create.js +113 -0
  493. package/dist/core/objects/type/range/changes/range.drop.d.ts +22 -0
  494. package/dist/core/objects/type/range/changes/range.drop.js +28 -0
  495. package/dist/core/objects/type/range/changes/range.privilege.d.ts +97 -0
  496. package/dist/core/objects/type/range/changes/range.privilege.js +131 -0
  497. package/dist/core/objects/type/range/changes/range.types.d.ts +6 -0
  498. package/dist/core/objects/type/range/changes/range.types.js +1 -0
  499. package/dist/core/objects/type/range/range.diff.d.ts +18 -0
  500. package/dist/core/objects/type/range/range.diff.js +172 -0
  501. package/dist/core/objects/type/range/range.model.d.ts +81 -0
  502. package/dist/core/objects/type/range/range.model.js +165 -0
  503. package/dist/core/objects/type/type.types.d.ts +4 -0
  504. package/dist/core/objects/type/type.types.js +1 -0
  505. package/dist/core/objects/utils.d.ts +57 -0
  506. package/dist/core/objects/utils.js +137 -0
  507. package/dist/core/objects/view/changes/view.alter.d.ts +62 -0
  508. package/dist/core/objects/view/changes/view.alter.js +75 -0
  509. package/dist/core/objects/view/changes/view.base.d.ts +17 -0
  510. package/dist/core/objects/view/changes/view.base.js +13 -0
  511. package/dist/core/objects/view/changes/view.comment.d.ts +23 -0
  512. package/dist/core/objects/view/changes/view.comment.js +46 -0
  513. package/dist/core/objects/view/changes/view.create.d.ts +27 -0
  514. package/dist/core/objects/view/changes/view.create.js +57 -0
  515. package/dist/core/objects/view/changes/view.drop.d.ts +17 -0
  516. package/dist/core/objects/view/changes/view.drop.js +30 -0
  517. package/dist/core/objects/view/changes/view.privilege.d.ts +107 -0
  518. package/dist/core/objects/view/changes/view.privilege.js +150 -0
  519. package/dist/core/objects/view/changes/view.types.d.ts +6 -0
  520. package/dist/core/objects/view/changes/view.types.js +1 -0
  521. package/dist/core/objects/view/view.diff.d.ts +18 -0
  522. package/dist/core/objects/view/view.diff.js +270 -0
  523. package/dist/core/objects/view/view.model.d.ts +152 -0
  524. package/dist/core/objects/view/view.model.js +250 -0
  525. package/dist/core/plan/apply.d.ts +33 -0
  526. package/dist/core/plan/apply.js +112 -0
  527. package/dist/core/plan/create.d.ts +22 -0
  528. package/dist/core/plan/create.js +228 -0
  529. package/dist/core/plan/hierarchy.d.ts +19 -0
  530. package/dist/core/plan/hierarchy.js +488 -0
  531. package/dist/core/plan/index.d.ts +19 -0
  532. package/dist/core/plan/index.js +21 -0
  533. package/dist/core/plan/io.d.ts +12 -0
  534. package/dist/core/plan/io.js +17 -0
  535. package/dist/core/plan/risk.d.ts +10 -0
  536. package/dist/core/plan/risk.js +38 -0
  537. package/dist/core/plan/serialize.d.ts +26 -0
  538. package/dist/core/plan/serialize.js +176 -0
  539. package/dist/core/plan/statements.d.ts +8 -0
  540. package/dist/core/plan/statements.js +13 -0
  541. package/dist/core/plan/types.d.ts +153 -0
  542. package/dist/core/plan/types.js +32 -0
  543. package/dist/core/postgres-config.d.ts +8 -0
  544. package/dist/core/postgres-config.js +46 -0
  545. package/dist/core/sort/custom-constraints.d.ts +9 -0
  546. package/dist/core/sort/custom-constraints.js +133 -0
  547. package/dist/core/sort/debug-visualization.d.ts +8 -0
  548. package/dist/core/sort/debug-visualization.js +145 -0
  549. package/dist/core/sort/dependency-filter.d.ts +19 -0
  550. package/dist/core/sort/dependency-filter.js +152 -0
  551. package/dist/core/sort/graph-builder.d.ts +37 -0
  552. package/dist/core/sort/graph-builder.js +172 -0
  553. package/dist/core/sort/graph-utils.d.ts +14 -0
  554. package/dist/core/sort/graph-utils.js +41 -0
  555. package/dist/core/sort/logical-sort.d.ts +26 -0
  556. package/dist/core/sort/logical-sort.js +532 -0
  557. package/dist/core/sort/sort-changes.d.ts +28 -0
  558. package/dist/core/sort/sort-changes.js +147 -0
  559. package/dist/core/sort/topological-sort.d.ts +20 -0
  560. package/dist/core/sort/topological-sort.js +138 -0
  561. package/dist/core/sort/types.d.ts +102 -0
  562. package/dist/core/sort/types.js +1 -0
  563. package/dist/core/sort/utils.d.ts +23 -0
  564. package/dist/core/sort/utils.js +51 -0
  565. package/dist/index.d.ts +1 -0
  566. package/dist/index.js +1 -0
  567. package/package.json +58 -12
@@ -0,0 +1,49 @@
1
+ import { stableId } from "../../utils.js";
2
+ import { CreateExtensionChange } from "./extension.base.js";
3
+ /**
4
+ * Create an extension.
5
+ *
6
+ * @see https://www.postgresql.org/docs/17/sql-createextension.html
7
+ *
8
+ * Synopsis
9
+ * ```sql
10
+ * CREATE EXTENSION [ IF NOT EXISTS ] extension_name
11
+ * [ WITH ] [ SCHEMA schema_name ]
12
+ * [ VERSION version ]
13
+ * [ CASCADE ]
14
+ * ```
15
+ */
16
+ export class CreateExtension extends CreateExtensionChange {
17
+ extension;
18
+ scope = "object";
19
+ constructor(props) {
20
+ super();
21
+ this.extension = props.extension;
22
+ }
23
+ get creates() {
24
+ return [this.extension.stableId, ...this.extension.members];
25
+ }
26
+ get requires() {
27
+ const dependencies = new Set();
28
+ // Schema dependency
29
+ dependencies.add(stableId.schema(this.extension.schema));
30
+ // Owner dependency
31
+ dependencies.add(stableId.role(this.extension.owner));
32
+ return Array.from(dependencies);
33
+ }
34
+ serialize() {
35
+ const parts = ["CREATE EXTENSION"];
36
+ // Add extension name
37
+ parts.push(this.extension.name);
38
+ // Add schema
39
+ parts.push("WITH SCHEMA", this.extension.schema);
40
+ // Add version
41
+ // TODO: Omit version for now as versions can differ between main and branch
42
+ // if (this.extension.version) {
43
+ // parts.push("VERSION", quoteLiteral(this.extension.version));
44
+ // }
45
+ // TODO: Add CASCADE if the extension has dependencies
46
+ // parts.push("CASCADE");
47
+ return parts.join(" ");
48
+ }
49
+ }
@@ -0,0 +1,22 @@
1
+ import type { Extension } from "../extension.model.ts";
2
+ import { DropExtensionChange } from "./extension.base.ts";
3
+ /**
4
+ * Drop an extension.
5
+ *
6
+ * @see https://www.postgresql.org/docs/17/sql-dropextension.html
7
+ *
8
+ * Synopsis
9
+ * ```sql
10
+ * DROP EXTENSION [ IF EXISTS ] name [, ...] [ CASCADE | RESTRICT ]
11
+ * ```
12
+ */
13
+ export declare class DropExtension extends DropExtensionChange {
14
+ readonly extension: Extension;
15
+ readonly scope: "object";
16
+ constructor(props: {
17
+ extension: Extension;
18
+ });
19
+ get drops(): string[];
20
+ get requires(): string[];
21
+ serialize(): string;
22
+ }
@@ -0,0 +1,28 @@
1
+ import { DropExtensionChange } from "./extension.base.js";
2
+ /**
3
+ * Drop an extension.
4
+ *
5
+ * @see https://www.postgresql.org/docs/17/sql-dropextension.html
6
+ *
7
+ * Synopsis
8
+ * ```sql
9
+ * DROP EXTENSION [ IF EXISTS ] name [, ...] [ CASCADE | RESTRICT ]
10
+ * ```
11
+ */
12
+ export class DropExtension extends DropExtensionChange {
13
+ extension;
14
+ scope = "object";
15
+ constructor(props) {
16
+ super();
17
+ this.extension = props.extension;
18
+ }
19
+ get drops() {
20
+ return [this.extension.stableId, ...this.extension.members];
21
+ }
22
+ get requires() {
23
+ return [this.extension.stableId, ...this.extension.members];
24
+ }
25
+ serialize() {
26
+ return ["DROP EXTENSION", this.extension.name].join(" ");
27
+ }
28
+ }
@@ -0,0 +1,5 @@
1
+ import type { AlterExtension } from "./extension.alter.ts";
2
+ import type { CommentExtension } from "./extension.comment.ts";
3
+ import type { CreateExtension } from "./extension.create.ts";
4
+ import type { DropExtension } from "./extension.drop.ts";
5
+ export type ExtensionChange = AlterExtension | CommentExtension | CreateExtension | DropExtension;
@@ -0,0 +1,10 @@
1
+ import type { ExtensionChange } from "./changes/extension.types.ts";
2
+ import type { Extension } from "./extension.model.ts";
3
+ /**
4
+ * Diff two sets of extensions from main and branch catalogs.
5
+ *
6
+ * @param main - The extensions in the main catalog.
7
+ * @param branch - The extensions in the branch catalog.
8
+ * @returns A list of changes to apply to main to make it match branch.
9
+ */
10
+ export declare function diffExtensions(main: Record<string, Extension>, branch: Record<string, Extension>): ExtensionChange[];
@@ -0,0 +1,65 @@
1
+ import { diffObjects } from "../base.diff.js";
2
+ import { AlterExtensionSetSchema } from "./changes/extension.alter.js";
3
+ import { CreateCommentOnExtension, DropCommentOnExtension, } from "./changes/extension.comment.js";
4
+ import { CreateExtension } from "./changes/extension.create.js";
5
+ import { DropExtension } from "./changes/extension.drop.js";
6
+ /**
7
+ * Diff two sets of extensions from main and branch catalogs.
8
+ *
9
+ * @param main - The extensions in the main catalog.
10
+ * @param branch - The extensions in the branch catalog.
11
+ * @returns A list of changes to apply to main to make it match branch.
12
+ */
13
+ export function diffExtensions(main, branch) {
14
+ const { created, dropped, altered } = diffObjects(main, branch);
15
+ const changes = [];
16
+ for (const extensionId of created) {
17
+ const ext = branch[extensionId];
18
+ changes.push(new CreateExtension({ extension: ext }));
19
+ if (ext.comment !== null) {
20
+ changes.push(new CreateCommentOnExtension({ extension: ext }));
21
+ }
22
+ }
23
+ for (const extensionId of dropped) {
24
+ changes.push(new DropExtension({ extension: main[extensionId] }));
25
+ }
26
+ for (const extensionId of altered) {
27
+ const mainExtension = main[extensionId];
28
+ const branchExtension = branch[extensionId];
29
+ const schemaChanged = mainExtension.schema !== branchExtension.schema;
30
+ if (schemaChanged && !mainExtension.relocatable) {
31
+ // Cannot ALTER schema if not relocatable: must replace
32
+ changes.push(new DropExtension({ extension: mainExtension }), new CreateExtension({ extension: branchExtension }));
33
+ continue;
34
+ }
35
+ // VERSION
36
+ // TODO: Omit version for now as versions can differ between main and branch
37
+ // if (mainExtension.version !== branchExtension.version) {
38
+ // changes.push(
39
+ // new AlterExtensionUpdateVersion({
40
+ // extension: mainExtension,
41
+ // version: branchExtension.version,
42
+ // }),
43
+ // );
44
+ // }
45
+ // SCHEMA (only if relocatable)
46
+ if (schemaChanged && mainExtension.relocatable) {
47
+ changes.push(new AlterExtensionSetSchema({
48
+ extension: mainExtension,
49
+ schema: branchExtension.schema,
50
+ }));
51
+ }
52
+ // COMMENT
53
+ if (mainExtension.comment !== branchExtension.comment) {
54
+ if (branchExtension.comment === null) {
55
+ changes.push(new DropCommentOnExtension({ extension: mainExtension }));
56
+ }
57
+ else {
58
+ changes.push(new CreateCommentOnExtension({ extension: branchExtension }));
59
+ }
60
+ }
61
+ // Note: Extension renaming would also use ALTER EXTENSION ... RENAME TO ...
62
+ // Name is identity; renames are handled as drop + create by diffObjects()
63
+ }
64
+ return changes;
65
+ }
@@ -0,0 +1,52 @@
1
+ import type { Sql } from "postgres";
2
+ import z from "zod";
3
+ import { BasePgModel } from "../base.model.ts";
4
+ /**
5
+ * All properties exposed by CREATE EXTENSION statement are included in diff output.
6
+ * https://www.postgresql.org/docs/current/sql-createextension.html
7
+ *
8
+ * ALTER EXTENSION statement can be generated for changes to the following properties:
9
+ * - version (limited to available ones), schema (only if relocatable)
10
+ * https://www.postgresql.org/docs/current/sql-alterextension.html
11
+ *
12
+ * Adding or dropping member objects are not supported. For eg. pgmq allows detaching
13
+ * user defined queues by removing its entry from pg_depend. If the detached table
14
+ * lives in an excluded schema like pg_catalog, it will not be diffed.
15
+ *
16
+ * The extension's configuration tables are not diffed.
17
+ * - extconfig, extcondition
18
+ * https://www.postgresql.org/docs/current/catalog-pg-extension.html
19
+ */
20
+ declare const extensionPropsSchema: z.ZodObject<{
21
+ name: z.ZodString;
22
+ schema: z.ZodString;
23
+ relocatable: z.ZodBoolean;
24
+ version: z.ZodString;
25
+ owner: z.ZodString;
26
+ comment: z.ZodNullable<z.ZodString>;
27
+ members: z.ZodArray<z.ZodString>;
28
+ }, z.z.core.$strip>;
29
+ export type ExtensionProps = z.infer<typeof extensionPropsSchema>;
30
+ export declare class Extension extends BasePgModel {
31
+ readonly name: ExtensionProps["name"];
32
+ readonly schema: ExtensionProps["schema"];
33
+ readonly relocatable: ExtensionProps["relocatable"];
34
+ readonly version: ExtensionProps["version"];
35
+ readonly owner: ExtensionProps["owner"];
36
+ readonly comment: ExtensionProps["comment"];
37
+ readonly members: ExtensionProps["members"];
38
+ constructor(props: ExtensionProps);
39
+ get stableId(): `extension:${string}`;
40
+ get identityFields(): {
41
+ name: string;
42
+ };
43
+ get dataFields(): {
44
+ schema: string;
45
+ relocatable: boolean;
46
+ version: string;
47
+ owner: string;
48
+ comment: string | null;
49
+ };
50
+ }
51
+ export declare function extractExtensions(sql: Sql): Promise<Extension[]>;
52
+ export {};
@@ -0,0 +1,268 @@
1
+ import z from "zod";
2
+ import { BasePgModel } from "../base.model.js";
3
+ /**
4
+ * All properties exposed by CREATE EXTENSION statement are included in diff output.
5
+ * https://www.postgresql.org/docs/current/sql-createextension.html
6
+ *
7
+ * ALTER EXTENSION statement can be generated for changes to the following properties:
8
+ * - version (limited to available ones), schema (only if relocatable)
9
+ * https://www.postgresql.org/docs/current/sql-alterextension.html
10
+ *
11
+ * Adding or dropping member objects are not supported. For eg. pgmq allows detaching
12
+ * user defined queues by removing its entry from pg_depend. If the detached table
13
+ * lives in an excluded schema like pg_catalog, it will not be diffed.
14
+ *
15
+ * The extension's configuration tables are not diffed.
16
+ * - extconfig, extcondition
17
+ * https://www.postgresql.org/docs/current/catalog-pg-extension.html
18
+ */
19
+ const extensionPropsSchema = z.object({
20
+ name: z.string(),
21
+ schema: z.string(),
22
+ relocatable: z.boolean(),
23
+ version: z.string(),
24
+ owner: z.string(),
25
+ comment: z.string().nullable(),
26
+ members: z.array(z.string()),
27
+ });
28
+ export class Extension extends BasePgModel {
29
+ name;
30
+ schema;
31
+ relocatable;
32
+ version;
33
+ owner;
34
+ comment;
35
+ members;
36
+ constructor(props) {
37
+ super();
38
+ // Identity fields
39
+ this.name = props.name;
40
+ // Data fields
41
+ this.schema = props.schema;
42
+ this.relocatable = props.relocatable;
43
+ this.version = props.version;
44
+ this.owner = props.owner;
45
+ this.comment = props.comment;
46
+ this.members = props.members;
47
+ }
48
+ get stableId() {
49
+ // Extension names are unique per database; schema is relocatable
50
+ return `extension:${this.name}`;
51
+ }
52
+ get identityFields() {
53
+ return {
54
+ name: this.name,
55
+ };
56
+ }
57
+ get dataFields() {
58
+ return {
59
+ schema: this.schema,
60
+ relocatable: this.relocatable,
61
+ version: this.version,
62
+ owner: this.owner,
63
+ comment: this.comment,
64
+ };
65
+ }
66
+ }
67
+ // TODO: fetch extension dependencies so we can determine when to use CASCADE on creation
68
+ export async function extractExtensions(sql) {
69
+ return sql.begin(async (sql) => {
70
+ await sql `set search_path = ''`;
71
+ const extensionRows = await sql `
72
+ with extension_rows as (
73
+ select
74
+ e.oid,
75
+ quote_ident(e.extname) as name,
76
+ e.extnamespace::regnamespace::text as schema,
77
+ e.extrelocatable as relocatable,
78
+ e.extversion as version,
79
+ e.extowner::regrole::text as owner,
80
+ obj_description(e.oid, 'pg_extension') as comment
81
+ from
82
+ pg_catalog.pg_extension e
83
+ ), extension_members_raw as (
84
+ select
85
+ er.oid as extension_oid,
86
+ d.classid,
87
+ d.objid,
88
+ d.objsubid
89
+ from
90
+ extension_rows er
91
+ join pg_depend d on d.refclassid = 'pg_extension'::regclass
92
+ and d.refobjid = er.oid
93
+ where
94
+ d.deptype = 'e'
95
+ ), ids as (
96
+ select distinct
97
+ classid,
98
+ objid,
99
+ coalesce(nullif(objsubid, 0), 0)::int2 as objsubid
100
+ from extension_members_raw
101
+ ), objects as (
102
+ select 'pg_namespace'::regclass as classid, n.oid as objid, 0::int2 as objsubid,
103
+ format('schema:%I', n.nspname) as stable_id
104
+ from pg_namespace n
105
+ join ids i on i.classid = 'pg_namespace'::regclass and i.objid = n.oid and i.objsubid = 0
106
+
107
+ union all
108
+
109
+ select 'pg_class'::regclass, c.oid, 0::int2,
110
+ case c.relkind
111
+ when 'r' then format('table:%I.%I', ns.nspname, c.relname)
112
+ when 'p' then format('table:%I.%I', ns.nspname, c.relname)
113
+ when 'v' then format('view:%I.%I', ns.nspname, c.relname)
114
+ when 'm' then format('materializedView:%I.%I', ns.nspname, c.relname)
115
+ when 'S' then format('sequence:%I.%I', ns.nspname, c.relname)
116
+ when 'i' then format('index:%I.%I.%I', ns.nspname, tbl.relname, c.relname)
117
+ when 'c' then format('type:%I.%I', ns.nspname, c.relname)
118
+ else format('unknown:%s.%s', 'pg_class', c.oid::text)
119
+ end as stable_id
120
+ from pg_class c
121
+ join pg_namespace ns on ns.oid = c.relnamespace
122
+ left join pg_index idx on idx.indexrelid = c.oid
123
+ left join pg_class tbl on tbl.oid = idx.indrelid
124
+ join ids i on i.classid = 'pg_class'::regclass and i.objid = c.oid and i.objsubid = 0
125
+
126
+ union all
127
+
128
+ select 'pg_class'::regclass, a.attrelid, a.attnum,
129
+ format('column:%I.%I.%I', ns.nspname, c.relname, a.attname) as stable_id
130
+ from pg_attribute a
131
+ join pg_class c on c.oid = a.attrelid
132
+ join pg_namespace ns on ns.oid = c.relnamespace
133
+ join ids i on i.classid = 'pg_class'::regclass and i.objid = a.attrelid and i.objsubid = a.attnum
134
+ where a.attnum > 0 and not a.attisdropped
135
+
136
+ union all
137
+
138
+ select 'pg_type'::regclass, t.oid, 0::int2,
139
+ case t.typtype
140
+ when 'd' then format('domain:%I.%I', ns.nspname, t.typname)
141
+ when 'e' then format('type:%I.%I', ns.nspname, t.typname)
142
+ when 'r' then format('type:%I.%I', ns.nspname, t.typname)
143
+ when 'm' then format('multirange:%I.%I', ns.nspname, t.typname)
144
+ when 'c' then
145
+ case
146
+ when r.oid is not null and r.relkind in ('r','p','f') then format('table:%I.%I', rns.nspname, r.relname)
147
+ when r.oid is not null and r.relkind = 'v' then format('view:%I.%I', rns.nspname, r.relname)
148
+ when r.oid is not null and r.relkind = 'm' then format('materializedView:%I.%I', rns.nspname, r.relname)
149
+ else format('type:%I.%I', ns.nspname, t.typname)
150
+ end
151
+ when 'p' then format('pseudoType:%I.%I', ns.nspname, t.typname)
152
+ else format('type:%I.%I', ns.nspname, t.typname)
153
+ end as stable_id
154
+ from pg_type t
155
+ join pg_namespace ns on ns.oid = t.typnamespace
156
+ left join pg_class r on r.oid = t.typrelid
157
+ left join pg_namespace rns on rns.oid = r.relnamespace
158
+ join ids i on i.classid = 'pg_type'::regclass and i.objid = t.oid and i.objsubid = 0
159
+
160
+ union all
161
+
162
+ select 'pg_constraint'::regclass, c.oid, 0::int2,
163
+ case
164
+ when c.contypid <> 0 then format('constraint:%I.%I.%I', ns.nspname, ty.typname, c.conname)
165
+ when c.conrelid <> 0 then format('constraint:%I.%I.%I', tbl_ns.nspname, tbl.relname, c.conname)
166
+ else format('constraint:%s', c.oid::text)
167
+ end as stable_id
168
+ from pg_constraint c
169
+ left join pg_type ty on ty.oid = c.contypid
170
+ left join pg_namespace ns on ns.oid = ty.typnamespace
171
+ left join pg_class tbl on tbl.oid = c.conrelid
172
+ left join pg_namespace tbl_ns on tbl_ns.oid = tbl.relnamespace
173
+ join ids i on i.classid = 'pg_constraint'::regclass and i.objid = c.oid and i.objsubid = 0
174
+
175
+ union all
176
+
177
+ select 'pg_proc'::regclass, p.oid, 0::int2,
178
+ format(
179
+ 'procedure:%I.%I(%s)',
180
+ ns.nspname,
181
+ p.proname,
182
+ coalesce((select string_agg(format_type(oid, null), ',' order by ord)
183
+ from unnest(p.proargtypes) with ordinality as t(oid, ord)), '')
184
+ ) as stable_id
185
+ from pg_proc p
186
+ join pg_namespace ns on ns.oid = p.pronamespace
187
+ join ids i on i.classid = 'pg_proc'::regclass and i.objid = p.oid and i.objsubid = 0
188
+
189
+ union all
190
+
191
+ select 'pg_trigger'::regclass, tg.oid, 0::int2,
192
+ format('trigger:%I.%I.%I', ns.nspname, tbl.relname, tg.tgname) as stable_id
193
+ from pg_trigger tg
194
+ join pg_class tbl on tbl.oid = tg.tgrelid
195
+ join pg_namespace ns on ns.oid = tbl.relnamespace
196
+ join ids i on i.classid = 'pg_trigger'::regclass and i.objid = tg.oid and i.objsubid = 0
197
+
198
+ union all
199
+
200
+ select 'pg_collation'::regclass, c.oid, 0::int2,
201
+ format('collation:%I.%I', ns.nspname, c.collname) as stable_id
202
+ from pg_collation c
203
+ join pg_namespace ns on ns.oid = c.collnamespace
204
+ join ids i on i.classid = 'pg_collation'::regclass and i.objid = c.oid and i.objsubid = 0
205
+
206
+ union all
207
+
208
+ select 'pg_event_trigger'::regclass, et.oid, 0::int2,
209
+ format('eventTrigger:%I', et.evtname) as stable_id
210
+ from pg_event_trigger et
211
+ join ids i on i.classid = 'pg_event_trigger'::regclass and i.objid = et.oid and i.objsubid = 0
212
+
213
+ union all
214
+
215
+ select 'pg_ts_config'::regclass, cfg.oid, 0::int2,
216
+ format('tsConfig:%I.%I', ns.nspname, cfg.cfgname) as stable_id
217
+ from pg_ts_config cfg
218
+ join pg_namespace ns on ns.oid = cfg.cfgnamespace
219
+ join ids i on i.classid = 'pg_ts_config'::regclass and i.objid = cfg.oid and i.objsubid = 0
220
+
221
+ union all
222
+
223
+ select 'pg_ts_dict'::regclass, dict.oid, 0::int2,
224
+ format('tsDict:%I.%I', ns.nspname, dict.dictname) as stable_id
225
+ from pg_ts_dict dict
226
+ join pg_namespace ns on ns.oid = dict.dictnamespace
227
+ join ids i on i.classid = 'pg_ts_dict'::regclass and i.objid = dict.oid and i.objsubid = 0
228
+
229
+ union all
230
+
231
+ select 'pg_ts_template'::regclass, tmpl.oid, 0::int2,
232
+ format('tsTemplate:%I.%I', ns.nspname, tmpl.tmplname) as stable_id
233
+ from pg_ts_template tmpl
234
+ join pg_namespace ns on ns.oid = tmpl.tmplnamespace
235
+ join ids i on i.classid = 'pg_ts_template'::regclass and i.objid = tmpl.oid and i.objsubid = 0
236
+ ), extension_members as (
237
+ select
238
+ em.extension_oid,
239
+ obj.stable_id
240
+ from extension_members_raw em
241
+ join objects obj
242
+ on obj.classid = em.classid
243
+ and obj.objid = em.objid
244
+ and obj.objsubid = coalesce(nullif(em.objsubid, 0), 0)
245
+ )
246
+ select
247
+ er.name,
248
+ er.schema,
249
+ er.relocatable,
250
+ er.version,
251
+ er.owner,
252
+ er.comment,
253
+ coalesce(
254
+ (
255
+ select json_agg(em.stable_id order by em.stable_id)
256
+ from extension_members em
257
+ where em.extension_oid = er.oid
258
+ ), '[]'::json
259
+ ) as members
260
+ from extension_rows er
261
+ order by
262
+ er.name;
263
+ `;
264
+ // Validate and parse each row using the Zod schema
265
+ const validatedRows = extensionRows.map((row) => extensionPropsSchema.parse(row));
266
+ return validatedRows.map((row) => new Extension(row));
267
+ });
268
+ }
@@ -0,0 +1,51 @@
1
+ import type { ForeignDataWrapper } from "../foreign-data-wrapper.model.ts";
2
+ import { AlterForeignDataWrapperChange } from "./foreign-data-wrapper.base.ts";
3
+ /**
4
+ * Alter a foreign data wrapper.
5
+ *
6
+ * @see https://www.postgresql.org/docs/17/sql-alterforeigndatawrapper.html
7
+ *
8
+ * Synopsis
9
+ * ```sql
10
+ * ALTER FOREIGN DATA WRAPPER name
11
+ * [ OPTIONS ( [ ADD | SET | DROP ] option ['value'] [, ... ] ) ]
12
+ * ALTER FOREIGN DATA WRAPPER name OWNER TO { new_owner | CURRENT_ROLE | CURRENT_USER | SESSION_USER }
13
+ * ```
14
+ */
15
+ export type AlterForeignDataWrapper = AlterForeignDataWrapperChangeOwner | AlterForeignDataWrapperSetOptions;
16
+ /**
17
+ * ALTER FOREIGN DATA WRAPPER ... OWNER TO ...
18
+ */
19
+ export declare class AlterForeignDataWrapperChangeOwner extends AlterForeignDataWrapperChange {
20
+ readonly foreignDataWrapper: ForeignDataWrapper;
21
+ readonly owner: string;
22
+ readonly scope: "object";
23
+ constructor(props: {
24
+ foreignDataWrapper: ForeignDataWrapper;
25
+ owner: string;
26
+ });
27
+ get requires(): (`role:${string}` | `foreignDataWrapper:${string}`)[];
28
+ serialize(): string;
29
+ }
30
+ /**
31
+ * ALTER FOREIGN DATA WRAPPER ... OPTIONS ( ADD | SET | DROP ... )
32
+ */
33
+ export declare class AlterForeignDataWrapperSetOptions extends AlterForeignDataWrapperChange {
34
+ readonly foreignDataWrapper: ForeignDataWrapper;
35
+ readonly options: Array<{
36
+ action: "ADD" | "SET" | "DROP";
37
+ option: string;
38
+ value?: string;
39
+ }>;
40
+ readonly scope: "object";
41
+ constructor(props: {
42
+ foreignDataWrapper: ForeignDataWrapper;
43
+ options: Array<{
44
+ action: "ADD" | "SET" | "DROP";
45
+ option: string;
46
+ value?: string;
47
+ }>;
48
+ });
49
+ get requires(): `foreignDataWrapper:${string}`[];
50
+ serialize(): string;
51
+ }
@@ -0,0 +1,61 @@
1
+ import { quoteLiteral } from "../../../base.change.js";
2
+ import { stableId } from "../../../utils.js";
3
+ import { AlterForeignDataWrapperChange } from "./foreign-data-wrapper.base.js";
4
+ /**
5
+ * ALTER FOREIGN DATA WRAPPER ... OWNER TO ...
6
+ */
7
+ export class AlterForeignDataWrapperChangeOwner extends AlterForeignDataWrapperChange {
8
+ foreignDataWrapper;
9
+ owner;
10
+ scope = "object";
11
+ constructor(props) {
12
+ super();
13
+ this.foreignDataWrapper = props.foreignDataWrapper;
14
+ this.owner = props.owner;
15
+ }
16
+ get requires() {
17
+ return [this.foreignDataWrapper.stableId, stableId.role(this.owner)];
18
+ }
19
+ serialize() {
20
+ return [
21
+ "ALTER FOREIGN DATA WRAPPER",
22
+ this.foreignDataWrapper.name,
23
+ "OWNER TO",
24
+ this.owner,
25
+ ].join(" ");
26
+ }
27
+ }
28
+ /**
29
+ * ALTER FOREIGN DATA WRAPPER ... OPTIONS ( ADD | SET | DROP ... )
30
+ */
31
+ export class AlterForeignDataWrapperSetOptions extends AlterForeignDataWrapperChange {
32
+ foreignDataWrapper;
33
+ options;
34
+ scope = "object";
35
+ constructor(props) {
36
+ super();
37
+ this.foreignDataWrapper = props.foreignDataWrapper;
38
+ this.options = props.options;
39
+ }
40
+ get requires() {
41
+ return [this.foreignDataWrapper.stableId];
42
+ }
43
+ serialize() {
44
+ const optionParts = [];
45
+ for (const opt of this.options) {
46
+ if (opt.action === "DROP") {
47
+ optionParts.push(`DROP ${opt.option}`);
48
+ }
49
+ else {
50
+ const value = opt.value !== undefined ? quoteLiteral(opt.value) : "''";
51
+ optionParts.push(`${opt.action} ${opt.option} ${value}`);
52
+ }
53
+ }
54
+ return [
55
+ "ALTER FOREIGN DATA WRAPPER",
56
+ this.foreignDataWrapper.name,
57
+ "OPTIONS",
58
+ `(${optionParts.join(", ")})`,
59
+ ].join(" ");
60
+ }
61
+ }
@@ -0,0 +1,17 @@
1
+ import { BaseChange } from "../../../base.change.ts";
2
+ import type { ForeignDataWrapper } from "../foreign-data-wrapper.model.ts";
3
+ declare abstract class BaseForeignDataWrapperChange extends BaseChange {
4
+ abstract readonly foreignDataWrapper: ForeignDataWrapper;
5
+ abstract readonly scope: "object" | "comment" | "privilege";
6
+ readonly objectType: "foreign_data_wrapper";
7
+ }
8
+ export declare abstract class CreateForeignDataWrapperChange extends BaseForeignDataWrapperChange {
9
+ readonly operation: "create";
10
+ }
11
+ export declare abstract class AlterForeignDataWrapperChange extends BaseForeignDataWrapperChange {
12
+ readonly operation: "alter";
13
+ }
14
+ export declare abstract class DropForeignDataWrapperChange extends BaseForeignDataWrapperChange {
15
+ readonly operation: "drop";
16
+ }
17
+ export {};
@@ -0,0 +1,13 @@
1
+ import { BaseChange } from "../../../base.change.js";
2
+ class BaseForeignDataWrapperChange extends BaseChange {
3
+ objectType = "foreign_data_wrapper";
4
+ }
5
+ export class CreateForeignDataWrapperChange extends BaseForeignDataWrapperChange {
6
+ operation = "create";
7
+ }
8
+ export class AlterForeignDataWrapperChange extends BaseForeignDataWrapperChange {
9
+ operation = "alter";
10
+ }
11
+ export class DropForeignDataWrapperChange extends BaseForeignDataWrapperChange {
12
+ operation = "drop";
13
+ }
@@ -0,0 +1,26 @@
1
+ import type { ForeignDataWrapper } from "../foreign-data-wrapper.model.ts";
2
+ import { CreateForeignDataWrapperChange, DropForeignDataWrapperChange } from "./foreign-data-wrapper.base.ts";
3
+ /**
4
+ * Create/drop comments on foreign data wrappers.
5
+ */
6
+ export type CommentForeignDataWrapper = CreateCommentOnForeignDataWrapper | DropCommentOnForeignDataWrapper;
7
+ export declare class CreateCommentOnForeignDataWrapper extends CreateForeignDataWrapperChange {
8
+ readonly foreignDataWrapper: ForeignDataWrapper;
9
+ readonly scope: "comment";
10
+ constructor(props: {
11
+ foreignDataWrapper: ForeignDataWrapper;
12
+ });
13
+ get creates(): `comment:${string}`[];
14
+ get requires(): `foreignDataWrapper:${string}`[];
15
+ serialize(): string;
16
+ }
17
+ export declare class DropCommentOnForeignDataWrapper extends DropForeignDataWrapperChange {
18
+ readonly foreignDataWrapper: ForeignDataWrapper;
19
+ readonly scope: "comment";
20
+ constructor(props: {
21
+ foreignDataWrapper: ForeignDataWrapper;
22
+ });
23
+ get drops(): `comment:${string}`[];
24
+ get requires(): (`comment:${string}` | `foreignDataWrapper:${string}`)[];
25
+ serialize(): string;
26
+ }