@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,268 @@
1
+ import { diffObjects } from "../../base.diff.js";
2
+ import { diffPrivileges, filterPublicBuiltInDefaults, groupPrivilegesByGrantable, } from "../../base.privilege-diff.js";
3
+ import { AlterForeignTableAddColumn, AlterForeignTableAlterColumnDropDefault, AlterForeignTableAlterColumnDropNotNull, AlterForeignTableAlterColumnSetDefault, AlterForeignTableAlterColumnSetNotNull, AlterForeignTableAlterColumnType, AlterForeignTableChangeOwner, AlterForeignTableDropColumn, AlterForeignTableSetOptions, } from "./changes/foreign-table.alter.js";
4
+ import { CreateCommentOnForeignTable, DropCommentOnForeignTable, } from "./changes/foreign-table.comment.js";
5
+ import { CreateForeignTable } from "./changes/foreign-table.create.js";
6
+ import { DropForeignTable } from "./changes/foreign-table.drop.js";
7
+ import { GrantForeignTablePrivileges, RevokeForeignTablePrivileges, RevokeGrantOptionForeignTablePrivileges, } from "./changes/foreign-table.privilege.js";
8
+ /**
9
+ * Diff two sets of foreign tables from main and branch catalogs.
10
+ *
11
+ * @param ctx - Context containing version, currentUser, and defaultPrivilegeState
12
+ * @param main - The foreign tables in the main catalog.
13
+ * @param branch - The foreign tables in the branch catalog.
14
+ * @returns A list of changes to apply to main to make it match branch.
15
+ */
16
+ export function diffForeignTables(ctx, main, branch) {
17
+ const { created, dropped, altered } = diffObjects(main, branch);
18
+ const changes = [];
19
+ for (const tableId of created) {
20
+ const createdTable = branch[tableId];
21
+ changes.push(new CreateForeignTable({ foreignTable: createdTable }));
22
+ // OWNER: If the table should be owned by someone other than the current user,
23
+ // emit ALTER FOREIGN TABLE ... OWNER TO after creation
24
+ if (createdTable.owner !== ctx.currentUser) {
25
+ changes.push(new AlterForeignTableChangeOwner({
26
+ foreignTable: createdTable,
27
+ owner: createdTable.owner,
28
+ }));
29
+ }
30
+ if (createdTable.comment !== null) {
31
+ changes.push(new CreateCommentOnForeignTable({ foreignTable: createdTable }));
32
+ }
33
+ // PRIVILEGES: For created objects, compare against default privileges state
34
+ const effectiveDefaults = ctx.defaultPrivilegeState.getEffectiveDefaults(ctx.currentUser, "foreign_table", createdTable.schema ?? "");
35
+ const desiredPrivileges = filterPublicBuiltInDefaults("foreign_table", createdTable.privileges);
36
+ const privilegeResults = diffPrivileges(effectiveDefaults, desiredPrivileges, createdTable.owner, ctx.mainRoles);
37
+ // Generate grant changes
38
+ for (const [grantee, result] of privilegeResults) {
39
+ if (result.grants.length > 0) {
40
+ const grantGroups = groupPrivilegesByGrantable(result.grants);
41
+ for (const [grantable, list] of grantGroups) {
42
+ void grantable;
43
+ changes.push(new GrantForeignTablePrivileges({
44
+ foreignTable: createdTable,
45
+ grantee,
46
+ privileges: list,
47
+ version: ctx.version,
48
+ }));
49
+ }
50
+ }
51
+ // Generate revoke changes
52
+ if (result.revokes.length > 0) {
53
+ const revokeGroups = groupPrivilegesByGrantable(result.revokes);
54
+ for (const [grantable, list] of revokeGroups) {
55
+ void grantable;
56
+ changes.push(new RevokeForeignTablePrivileges({
57
+ foreignTable: createdTable,
58
+ grantee,
59
+ privileges: list,
60
+ version: ctx.version,
61
+ }));
62
+ }
63
+ }
64
+ // Generate revoke grant option changes
65
+ if (result.revokeGrantOption.length > 0) {
66
+ changes.push(new RevokeGrantOptionForeignTablePrivileges({
67
+ foreignTable: createdTable,
68
+ grantee,
69
+ privilegeNames: result.revokeGrantOption,
70
+ version: ctx.version,
71
+ }));
72
+ }
73
+ }
74
+ }
75
+ for (const tableId of dropped) {
76
+ changes.push(new DropForeignTable({ foreignTable: main[tableId] }));
77
+ }
78
+ for (const tableId of altered) {
79
+ const mainTable = main[tableId];
80
+ const branchTable = branch[tableId];
81
+ // OWNER
82
+ if (mainTable.owner !== branchTable.owner) {
83
+ changes.push(new AlterForeignTableChangeOwner({
84
+ foreignTable: mainTable,
85
+ owner: branchTable.owner,
86
+ }));
87
+ }
88
+ // SERVER - if changed, need to recreate (not directly alterable)
89
+ if (mainTable.server !== branchTable.server) {
90
+ changes.push(new DropForeignTable({ foreignTable: mainTable }));
91
+ changes.push(new CreateForeignTable({ foreignTable: branchTable }));
92
+ if (branchTable.comment !== null) {
93
+ changes.push(new CreateCommentOnForeignTable({ foreignTable: branchTable }));
94
+ }
95
+ continue;
96
+ }
97
+ // COLUMNS
98
+ const mainColumnsByName = new Map(mainTable.columns.map((c) => [c.name, c]));
99
+ const branchColumnsByName = new Map(branchTable.columns.map((c) => [c.name, c]));
100
+ // Added columns
101
+ for (const [name, col] of branchColumnsByName) {
102
+ if (!mainColumnsByName.has(name)) {
103
+ changes.push(new AlterForeignTableAddColumn({
104
+ foreignTable: mainTable,
105
+ column: col,
106
+ }));
107
+ }
108
+ }
109
+ // Dropped columns
110
+ for (const [name] of mainColumnsByName) {
111
+ if (!branchColumnsByName.has(name)) {
112
+ changes.push(new AlterForeignTableDropColumn({
113
+ foreignTable: mainTable,
114
+ columnName: name,
115
+ }));
116
+ }
117
+ }
118
+ // Altered columns
119
+ for (const [name, mainCol] of mainColumnsByName) {
120
+ const branchCol = branchColumnsByName.get(name);
121
+ if (!branchCol)
122
+ continue;
123
+ // Type change
124
+ if (mainCol.data_type_str !== branchCol.data_type_str) {
125
+ changes.push(new AlterForeignTableAlterColumnType({
126
+ foreignTable: mainTable,
127
+ columnName: name,
128
+ dataType: branchCol.data_type_str,
129
+ }));
130
+ }
131
+ // Default change
132
+ if (mainCol.default !== branchCol.default) {
133
+ if (branchCol.default === null) {
134
+ changes.push(new AlterForeignTableAlterColumnDropDefault({
135
+ foreignTable: mainTable,
136
+ columnName: name,
137
+ }));
138
+ }
139
+ else {
140
+ changes.push(new AlterForeignTableAlterColumnSetDefault({
141
+ foreignTable: mainTable,
142
+ columnName: name,
143
+ defaultValue: branchCol.default,
144
+ }));
145
+ }
146
+ }
147
+ // NOT NULL change
148
+ if (mainCol.not_null !== branchCol.not_null) {
149
+ if (branchCol.not_null) {
150
+ changes.push(new AlterForeignTableAlterColumnSetNotNull({
151
+ foreignTable: mainTable,
152
+ columnName: name,
153
+ }));
154
+ }
155
+ else {
156
+ changes.push(new AlterForeignTableAlterColumnDropNotNull({
157
+ foreignTable: mainTable,
158
+ columnName: name,
159
+ }));
160
+ }
161
+ }
162
+ }
163
+ // OPTIONS
164
+ const optionsChanged = diffOptions(mainTable.options, branchTable.options);
165
+ if (optionsChanged.length > 0) {
166
+ changes.push(new AlterForeignTableSetOptions({
167
+ foreignTable: mainTable,
168
+ options: optionsChanged,
169
+ }));
170
+ }
171
+ // COMMENT
172
+ if (mainTable.comment !== branchTable.comment) {
173
+ if (branchTable.comment === null) {
174
+ changes.push(new DropCommentOnForeignTable({ foreignTable: mainTable }));
175
+ }
176
+ else {
177
+ changes.push(new CreateCommentOnForeignTable({ foreignTable: branchTable }));
178
+ }
179
+ }
180
+ // PRIVILEGES
181
+ const mainPrivilegesFiltered = filterPublicBuiltInDefaults("foreign_table", mainTable.privileges);
182
+ const branchPrivilegesFiltered = filterPublicBuiltInDefaults("foreign_table", branchTable.privileges);
183
+ const privilegeResults = diffPrivileges(mainPrivilegesFiltered, branchPrivilegesFiltered, branchTable.owner, ctx.mainRoles);
184
+ for (const [grantee, result] of privilegeResults) {
185
+ // Generate grant changes
186
+ if (result.grants.length > 0) {
187
+ const grantGroups = groupPrivilegesByGrantable(result.grants);
188
+ for (const [grantable, list] of grantGroups) {
189
+ void grantable;
190
+ changes.push(new GrantForeignTablePrivileges({
191
+ foreignTable: branchTable,
192
+ grantee,
193
+ privileges: list,
194
+ version: ctx.version,
195
+ }));
196
+ }
197
+ }
198
+ // Generate revoke changes
199
+ if (result.revokes.length > 0) {
200
+ const revokeGroups = groupPrivilegesByGrantable(result.revokes);
201
+ for (const [grantable, list] of revokeGroups) {
202
+ void grantable;
203
+ changes.push(new RevokeForeignTablePrivileges({
204
+ foreignTable: mainTable,
205
+ grantee,
206
+ privileges: list,
207
+ version: ctx.version,
208
+ }));
209
+ }
210
+ }
211
+ // Generate revoke grant option changes
212
+ if (result.revokeGrantOption.length > 0) {
213
+ changes.push(new RevokeGrantOptionForeignTablePrivileges({
214
+ foreignTable: mainTable,
215
+ grantee,
216
+ privilegeNames: result.revokeGrantOption,
217
+ version: ctx.version,
218
+ }));
219
+ }
220
+ }
221
+ // Note: Foreign table renaming would also use ALTER FOREIGN TABLE ... RENAME TO ...
222
+ // But since our ForeignTable model uses 'name' as the identity field,
223
+ // a name change would be handled as drop + create by diffObjects()
224
+ }
225
+ return changes;
226
+ }
227
+ /**
228
+ * Diff options arrays to determine ADD/SET/DROP operations.
229
+ * Options are stored as [key1, value1, key2, value2, ...]
230
+ */
231
+ function diffOptions(mainOptions, branchOptions) {
232
+ const mainMap = new Map();
233
+ const branchMap = new Map();
234
+ // Parse main options
235
+ if (mainOptions) {
236
+ for (let i = 0; i < mainOptions.length; i += 2) {
237
+ if (i + 1 < mainOptions.length) {
238
+ mainMap.set(mainOptions[i], mainOptions[i + 1]);
239
+ }
240
+ }
241
+ }
242
+ // Parse branch options
243
+ if (branchOptions) {
244
+ for (let i = 0; i < branchOptions.length; i += 2) {
245
+ if (i + 1 < branchOptions.length) {
246
+ branchMap.set(branchOptions[i], branchOptions[i + 1]);
247
+ }
248
+ }
249
+ }
250
+ const changes = [];
251
+ // Find options to ADD or SET
252
+ for (const [key, value] of branchMap) {
253
+ const mainValue = mainMap.get(key);
254
+ if (mainValue === undefined) {
255
+ changes.push({ action: "ADD", option: key, value });
256
+ }
257
+ else if (mainValue !== value) {
258
+ changes.push({ action: "SET", option: key, value });
259
+ }
260
+ }
261
+ // Find options to DROP
262
+ for (const [key] of mainMap) {
263
+ if (!branchMap.has(key)) {
264
+ changes.push({ action: "DROP", option: key });
265
+ }
266
+ }
267
+ return changes;
268
+ }
@@ -0,0 +1,117 @@
1
+ import type { Sql } from "postgres";
2
+ import z from "zod";
3
+ import { BasePgModel, type TableLikeObject } from "../../base.model.ts";
4
+ import { type PrivilegeProps } from "../../base.privilege-diff.ts";
5
+ /**
6
+ * All properties exposed by CREATE FOREIGN TABLE statement are included in diff output.
7
+ * https://www.postgresql.org/docs/17/sql-createforeigntable.html
8
+ *
9
+ * ALTER FOREIGN TABLE statement can be generated for changes to the following properties:
10
+ * - owner, columns, options
11
+ * https://www.postgresql.org/docs/17/sql-alterforeigntable.html
12
+ *
13
+ * Foreign tables are schema-qualified and similar to regular tables but reference a server.
14
+ */
15
+ declare const foreignTablePropsSchema: z.ZodObject<{
16
+ schema: z.ZodString;
17
+ name: z.ZodString;
18
+ owner: z.ZodString;
19
+ server: z.ZodString;
20
+ options: z.ZodNullable<z.ZodArray<z.ZodString>>;
21
+ comment: z.ZodNullable<z.ZodString>;
22
+ columns: z.ZodArray<z.ZodObject<{
23
+ name: z.ZodString;
24
+ position: z.ZodNumber;
25
+ data_type: z.ZodString;
26
+ data_type_str: z.ZodString;
27
+ is_custom_type: z.ZodBoolean;
28
+ custom_type_type: z.ZodNullable<z.ZodString>;
29
+ custom_type_category: z.ZodNullable<z.ZodString>;
30
+ custom_type_schema: z.ZodNullable<z.ZodString>;
31
+ custom_type_name: z.ZodNullable<z.ZodString>;
32
+ not_null: z.ZodBoolean;
33
+ is_identity: z.ZodBoolean;
34
+ is_identity_always: z.ZodBoolean;
35
+ is_generated: z.ZodBoolean;
36
+ collation: z.ZodNullable<z.ZodString>;
37
+ default: z.ZodNullable<z.ZodString>;
38
+ comment: z.ZodNullable<z.ZodString>;
39
+ }, z.z.core.$strip>>;
40
+ privileges: z.ZodArray<z.ZodObject<{
41
+ grantee: z.ZodString;
42
+ privilege: z.ZodString;
43
+ grantable: z.ZodBoolean;
44
+ columns: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodString>>>;
45
+ }, z.z.core.$strip>>;
46
+ }, z.z.core.$strip>;
47
+ type ForeignTablePrivilegeProps = PrivilegeProps;
48
+ export type ForeignTableProps = z.infer<typeof foreignTablePropsSchema>;
49
+ export declare class ForeignTable extends BasePgModel implements TableLikeObject {
50
+ readonly schema: ForeignTableProps["schema"];
51
+ readonly name: ForeignTableProps["name"];
52
+ readonly owner: ForeignTableProps["owner"];
53
+ readonly server: ForeignTableProps["server"];
54
+ readonly options: ForeignTableProps["options"];
55
+ readonly comment: ForeignTableProps["comment"];
56
+ readonly columns: ForeignTableProps["columns"];
57
+ readonly privileges: ForeignTablePrivilegeProps[];
58
+ constructor(props: ForeignTableProps);
59
+ get stableId(): `foreignTable:${string}`;
60
+ get identityFields(): {
61
+ schema: string;
62
+ name: string;
63
+ };
64
+ get dataFields(): {
65
+ owner: string;
66
+ server: string;
67
+ options: string[] | null;
68
+ comment: string | null;
69
+ columns: {
70
+ name: string;
71
+ position: number;
72
+ data_type: string;
73
+ data_type_str: string;
74
+ is_custom_type: boolean;
75
+ custom_type_type: string | null;
76
+ custom_type_category: string | null;
77
+ custom_type_schema: string | null;
78
+ custom_type_name: string | null;
79
+ not_null: boolean;
80
+ is_identity: boolean;
81
+ is_identity_always: boolean;
82
+ is_generated: boolean;
83
+ collation: string | null;
84
+ default: string | null;
85
+ comment: string | null;
86
+ }[];
87
+ privileges: {
88
+ grantee: string;
89
+ privilege: string;
90
+ grantable: boolean;
91
+ columns?: string[] | null | undefined;
92
+ }[];
93
+ };
94
+ stableSnapshot(): {
95
+ identity: {
96
+ schema: string;
97
+ name: string;
98
+ };
99
+ data: {
100
+ columns: {
101
+ [x: string]: unknown;
102
+ }[];
103
+ owner: string;
104
+ server: string;
105
+ options: string[] | null;
106
+ comment: string | null;
107
+ privileges: {
108
+ grantee: string;
109
+ privilege: string;
110
+ grantable: boolean;
111
+ columns?: string[] | null | undefined;
112
+ }[];
113
+ };
114
+ };
115
+ }
116
+ export declare function extractForeignTables(sql: Sql): Promise<ForeignTable[]>;
117
+ export {};
@@ -0,0 +1,215 @@
1
+ import z from "zod";
2
+ import { BasePgModel, columnPropsSchema, } from "../../base.model.js";
3
+ import { privilegePropsSchema, } from "../../base.privilege-diff.js";
4
+ /**
5
+ * All properties exposed by CREATE FOREIGN TABLE statement are included in diff output.
6
+ * https://www.postgresql.org/docs/17/sql-createforeigntable.html
7
+ *
8
+ * ALTER FOREIGN TABLE statement can be generated for changes to the following properties:
9
+ * - owner, columns, options
10
+ * https://www.postgresql.org/docs/17/sql-alterforeigntable.html
11
+ *
12
+ * Foreign tables are schema-qualified and similar to regular tables but reference a server.
13
+ */
14
+ const foreignTablePropsSchema = z.object({
15
+ schema: z.string(),
16
+ name: z.string(),
17
+ owner: z.string(),
18
+ server: z.string(),
19
+ options: z.array(z.string()).nullable(),
20
+ comment: z.string().nullable(),
21
+ columns: z.array(columnPropsSchema),
22
+ privileges: z.array(privilegePropsSchema),
23
+ });
24
+ export class ForeignTable extends BasePgModel {
25
+ schema;
26
+ name;
27
+ owner;
28
+ server;
29
+ options;
30
+ comment;
31
+ columns;
32
+ privileges;
33
+ constructor(props) {
34
+ super();
35
+ // Identity fields
36
+ this.schema = props.schema;
37
+ this.name = props.name;
38
+ // Data fields
39
+ this.owner = props.owner;
40
+ this.server = props.server;
41
+ this.options = props.options;
42
+ this.comment = props.comment;
43
+ this.columns = props.columns;
44
+ this.privileges = props.privileges;
45
+ }
46
+ get stableId() {
47
+ return `foreignTable:${this.schema}.${this.name}`;
48
+ }
49
+ get identityFields() {
50
+ return {
51
+ schema: this.schema,
52
+ name: this.name,
53
+ };
54
+ }
55
+ get dataFields() {
56
+ return {
57
+ owner: this.owner,
58
+ server: this.server,
59
+ options: this.options,
60
+ comment: this.comment,
61
+ columns: this.columns,
62
+ privileges: this.privileges,
63
+ };
64
+ }
65
+ stableSnapshot() {
66
+ const normalizeColumns = () => [...this.columns]
67
+ .map((col) => {
68
+ const { position: _pos, ...rest } = col;
69
+ return rest;
70
+ })
71
+ .sort((a, b) => {
72
+ const nameA = a.name ?? "";
73
+ const nameB = b.name ?? "";
74
+ return nameA.localeCompare(nameB);
75
+ });
76
+ return {
77
+ identity: this.identityFields,
78
+ data: {
79
+ ...this.dataFields,
80
+ columns: normalizeColumns(),
81
+ },
82
+ };
83
+ }
84
+ }
85
+ export async function extractForeignTables(sql) {
86
+ return sql.begin(async (sql) => {
87
+ await sql `set search_path = ''`;
88
+ const tableRows = await sql `
89
+ with extension_oids as (
90
+ select objid
91
+ from pg_depend d
92
+ where d.refclassid = 'pg_extension'::regclass
93
+ and d.classid = 'pg_class'::regclass
94
+ ), foreign_tables as (
95
+ select
96
+ c.relnamespace::regnamespace::text as schema,
97
+ quote_ident(c.relname) as name,
98
+ c.relowner::regrole::text as owner,
99
+ quote_ident(srv.srvname) as server,
100
+ coalesce(ft.ftoptions, array[]::text[]) as options,
101
+ c.oid as oid
102
+ from
103
+ pg_class c
104
+ inner join pg_foreign_table ft on ft.ftrelid = c.oid
105
+ inner join pg_foreign_server srv on srv.oid = ft.ftserver
106
+ inner join pg_foreign_data_wrapper fdw on fdw.oid = srv.srvfdw
107
+ left outer join extension_oids e1 on c.oid = e1.objid
108
+ where
109
+ c.relkind = 'f'
110
+ and not c.relnamespace::regnamespace::text like any(array['pg\\_%', 'information\\_schema'])
111
+ and e1.objid is null
112
+ and not fdw.fdwname like any(array['pg\\_%'])
113
+ )
114
+ select
115
+ ft.schema,
116
+ ft.name,
117
+ ft.owner,
118
+ ft.server,
119
+ ft.options,
120
+ obj_description(ft.oid, 'pg_class') as comment,
121
+ coalesce(json_agg(
122
+ case when a.attname is not null then
123
+ json_build_object(
124
+ 'name', quote_ident(a.attname),
125
+ 'position', a.attnum,
126
+ 'data_type', a.atttypid::regtype::text,
127
+ 'data_type_str', format_type(a.atttypid, a.atttypmod),
128
+ 'is_custom_type', ty.typnamespace::regnamespace::text not in ('pg_catalog', 'information_schema'),
129
+ 'custom_type_type', case when ty.typnamespace::regnamespace::text not in ('pg_catalog', 'information_schema') then ty.typtype else null end,
130
+ 'custom_type_category', case when ty.typnamespace::regnamespace::text not in ('pg_catalog', 'information_schema') then ty.typcategory else null end,
131
+ 'custom_type_schema', case when ty.typnamespace::regnamespace::text not in ('pg_catalog', 'information_schema') then ty.typnamespace::regnamespace else null end,
132
+ 'custom_type_name', case when ty.typnamespace::regnamespace::text not in ('pg_catalog', 'information_schema') then quote_ident(ty.typname) else null end,
133
+ 'not_null', a.attnotnull,
134
+ 'is_identity', a.attidentity != '',
135
+ 'is_identity_always', a.attidentity = 'a',
136
+ 'is_generated', a.attgenerated != '',
137
+ 'collation', (
138
+ select quote_ident(c2.collname)
139
+ from pg_collation c2, pg_type t2
140
+ where c2.oid = a.attcollation
141
+ and t2.oid = a.atttypid
142
+ and a.attcollation <> t2.typcollation
143
+ ),
144
+ 'default', pg_get_expr(ad.adbin, ad.adrelid),
145
+ 'comment', col_description(a.attrelid, a.attnum)
146
+ )
147
+ end
148
+ order by a.attnum
149
+ ) filter (where a.attname is not null), '[]') as columns,
150
+ coalesce((
151
+ select json_agg(
152
+ json_build_object(
153
+ 'grantee', case when grp.grantee = 0 then 'PUBLIC' else grp.grantee::regrole::text end,
154
+ 'privilege', grp.privilege_type,
155
+ 'grantable', grp.is_grantable,
156
+ 'columns', case when grp.cols is not null and array_length(grp.cols,1) > 0
157
+ then grp.cols
158
+ else null end
159
+ )
160
+ order by grp.grantee, grp.privilege_type
161
+ )
162
+ from (
163
+ select
164
+ x.grantee,
165
+ x.privilege_type,
166
+ bool_or(x.is_grantable) as is_grantable,
167
+ array_agg(quote_ident(src.attname) order by src.attname)
168
+ filter (where src.attname is not null) as cols
169
+ from (
170
+ -- one row for object ACL + one row per column ACL
171
+ select null::name as attname, ft.oid as relacl_oid, (
172
+ select c_rel.relacl from pg_class c_rel where c_rel.oid = ft.oid
173
+ ) as acl
174
+ union all
175
+ select a2.attname, ft.oid as relacl_oid, a2.attacl
176
+ from pg_attribute a2
177
+ where a2.attrelid = ft.oid
178
+ and a2.attnum > 0
179
+ and not a2.attisdropped
180
+ and a2.attacl is not null
181
+ ) as src
182
+ join lateral aclexplode(src.acl) as x(grantor, grantee, privilege_type, is_grantable) on true
183
+ group by x.grantee, x.privilege_type
184
+ ) as grp
185
+ ), '[]') as privileges
186
+ from
187
+ foreign_tables ft
188
+ left join pg_attribute a on a.attrelid = ft.oid and a.attnum > 0 and not a.attisdropped
189
+ left join pg_attrdef ad on a.attrelid = ad.adrelid and a.attnum = ad.adnum
190
+ left join pg_type ty on ty.oid = a.atttypid
191
+ group by
192
+ ft.oid, ft.schema, ft.name, ft.owner, ft.server, ft.options
193
+ order by
194
+ ft.schema, ft.name;
195
+ `;
196
+ // Validate and parse each row using the Zod schema
197
+ const validatedRows = tableRows.map((row) => {
198
+ const parsed = foreignTablePropsSchema.parse(row);
199
+ // Parse options from PostgreSQL format ['key=value'] to ['key', 'value']
200
+ if (parsed.options && parsed.options.length > 0) {
201
+ const parsedOptions = [];
202
+ for (const opt of parsed.options) {
203
+ const eqIndex = opt.indexOf("=");
204
+ if (eqIndex > 0) {
205
+ parsedOptions.push(opt.substring(0, eqIndex));
206
+ parsedOptions.push(opt.substring(eqIndex + 1));
207
+ }
208
+ }
209
+ parsed.options = parsedOptions.length > 0 ? parsedOptions : null;
210
+ }
211
+ return parsed;
212
+ });
213
+ return validatedRows.map((row) => new ForeignTable(row));
214
+ });
215
+ }
@@ -0,0 +1,65 @@
1
+ import type { Server } from "../server.model.ts";
2
+ import { AlterServerChange } from "./server.base.ts";
3
+ /**
4
+ * Alter a server.
5
+ *
6
+ * @see https://www.postgresql.org/docs/17/sql-alterserver.html
7
+ *
8
+ * Synopsis
9
+ * ```sql
10
+ * ALTER SERVER name [ VERSION 'new_version' ]
11
+ * [ OPTIONS ( [ ADD | SET | DROP ] option ['value'] [, ... ] ) ]
12
+ * ALTER SERVER name OWNER TO { new_owner | CURRENT_ROLE | CURRENT_USER | SESSION_USER }
13
+ * ```
14
+ */
15
+ export type AlterServer = AlterServerChangeOwner | AlterServerSetOptions | AlterServerSetVersion;
16
+ /**
17
+ * ALTER SERVER ... OWNER TO ...
18
+ */
19
+ export declare class AlterServerChangeOwner extends AlterServerChange {
20
+ readonly server: Server;
21
+ readonly owner: string;
22
+ readonly scope: "object";
23
+ constructor(props: {
24
+ server: Server;
25
+ owner: string;
26
+ });
27
+ get requires(): (`role:${string}` | `server:${string}`)[];
28
+ serialize(): string;
29
+ }
30
+ /**
31
+ * ALTER SERVER ... VERSION ...
32
+ */
33
+ export declare class AlterServerSetVersion extends AlterServerChange {
34
+ readonly server: Server;
35
+ readonly version: string | null;
36
+ readonly scope: "object";
37
+ constructor(props: {
38
+ server: Server;
39
+ version: string | null;
40
+ });
41
+ get requires(): `server:${string}`[];
42
+ serialize(): string;
43
+ }
44
+ /**
45
+ * ALTER SERVER ... OPTIONS ( ADD | SET | DROP ... )
46
+ */
47
+ export declare class AlterServerSetOptions extends AlterServerChange {
48
+ readonly server: Server;
49
+ readonly options: Array<{
50
+ action: "ADD" | "SET" | "DROP";
51
+ option: string;
52
+ value?: string;
53
+ }>;
54
+ readonly scope: "object";
55
+ constructor(props: {
56
+ server: Server;
57
+ options: Array<{
58
+ action: "ADD" | "SET" | "DROP";
59
+ option: string;
60
+ value?: string;
61
+ }>;
62
+ });
63
+ get requires(): `server:${string}`[];
64
+ serialize(): string;
65
+ }