@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,228 @@
1
+ import z from "zod";
2
+ import { BasePgModel, columnPropsSchema, } from "../base.model.js";
3
+ import { privilegePropsSchema, } from "../base.privilege-diff.js";
4
+ import { ReplicaIdentitySchema } from "../table/table.model.js";
5
+ const materializedViewPropsSchema = z.object({
6
+ schema: z.string(),
7
+ name: z.string(),
8
+ definition: z.string(),
9
+ row_security: z.boolean(),
10
+ force_row_security: z.boolean(),
11
+ has_indexes: z.boolean(),
12
+ has_rules: z.boolean(),
13
+ has_triggers: z.boolean(),
14
+ has_subclasses: z.boolean(),
15
+ is_populated: z.boolean(),
16
+ replica_identity: ReplicaIdentitySchema,
17
+ is_partition: z.boolean(),
18
+ options: z.array(z.string()).nullable(),
19
+ partition_bound: z.string().nullable(),
20
+ owner: z.string(),
21
+ comment: z.string().nullable(),
22
+ columns: z.array(columnPropsSchema),
23
+ privileges: z.array(privilegePropsSchema),
24
+ });
25
+ export class MaterializedView extends BasePgModel {
26
+ schema;
27
+ name;
28
+ definition;
29
+ row_security;
30
+ force_row_security;
31
+ has_indexes;
32
+ has_rules;
33
+ has_triggers;
34
+ has_subclasses;
35
+ is_populated;
36
+ replica_identity;
37
+ is_partition;
38
+ options;
39
+ partition_bound;
40
+ owner;
41
+ comment;
42
+ columns;
43
+ privileges;
44
+ constructor(props) {
45
+ super();
46
+ // Identity fields
47
+ this.schema = props.schema;
48
+ this.name = props.name;
49
+ // Data fields
50
+ this.definition = props.definition;
51
+ this.row_security = props.row_security;
52
+ this.force_row_security = props.force_row_security;
53
+ this.has_indexes = props.has_indexes;
54
+ this.has_rules = props.has_rules;
55
+ this.has_triggers = props.has_triggers;
56
+ this.has_subclasses = props.has_subclasses;
57
+ this.is_populated = props.is_populated;
58
+ this.replica_identity = props.replica_identity;
59
+ this.is_partition = props.is_partition;
60
+ this.options = props.options;
61
+ this.partition_bound = props.partition_bound;
62
+ this.owner = props.owner;
63
+ this.comment = props.comment;
64
+ this.columns = props.columns;
65
+ this.privileges = props.privileges;
66
+ }
67
+ get stableId() {
68
+ return `materializedView:${this.schema}.${this.name}`;
69
+ }
70
+ get identityFields() {
71
+ return {
72
+ schema: this.schema,
73
+ name: this.name,
74
+ };
75
+ }
76
+ get dataFields() {
77
+ return {
78
+ definition: this.definition,
79
+ row_security: this.row_security,
80
+ force_row_security: this.force_row_security,
81
+ has_indexes: this.has_indexes,
82
+ has_rules: this.has_rules,
83
+ has_triggers: this.has_triggers,
84
+ has_subclasses: this.has_subclasses,
85
+ is_populated: this.is_populated,
86
+ replica_identity: this.replica_identity,
87
+ is_partition: this.is_partition,
88
+ options: this.options,
89
+ partition_bound: this.partition_bound,
90
+ owner: this.owner,
91
+ comment: this.comment,
92
+ columns: this.columns,
93
+ privileges: this.privileges,
94
+ };
95
+ }
96
+ stableSnapshot() {
97
+ const normalizeColumns = () => [...this.columns]
98
+ .map((col) => {
99
+ const { position: _pos, ...rest } = col;
100
+ return rest;
101
+ })
102
+ .sort((a, b) => {
103
+ const nameA = a.name ?? "";
104
+ const nameB = b.name ?? "";
105
+ return nameA.localeCompare(nameB);
106
+ });
107
+ return {
108
+ identity: this.identityFields,
109
+ data: {
110
+ ...this.dataFields,
111
+ columns: normalizeColumns(),
112
+ },
113
+ };
114
+ }
115
+ }
116
+ export async function extractMaterializedViews(sql) {
117
+ return sql.begin(async (sql) => {
118
+ await sql `set search_path = ''`;
119
+ const mvRows = await sql `
120
+ with extension_oids as (
121
+ select
122
+ objid
123
+ from
124
+ pg_depend d
125
+ where
126
+ d.refclassid = 'pg_extension'::regclass
127
+ and d.classid = 'pg_class'::regclass
128
+ )
129
+ select
130
+ c.relnamespace::regnamespace::text as schema,
131
+ quote_ident(c.relname) as name,
132
+ -- remove trailing semicolon from the definition if present
133
+ rtrim(pg_get_viewdef(c.oid), ';') as definition,
134
+ c.relrowsecurity as row_security,
135
+ c.relforcerowsecurity as force_row_security,
136
+ c.relhasindex as has_indexes,
137
+ c.relhasrules as has_rules,
138
+ c.relhastriggers as has_triggers,
139
+ c.relhassubclass as has_subclasses,
140
+ c.relispopulated as is_populated,
141
+ c.relreplident as replica_identity,
142
+ c.relispartition as is_partition,
143
+ c.reloptions as options,
144
+ pg_get_expr(c.relpartbound, c.oid) as partition_bound,
145
+ c.relowner::regrole::text as owner,
146
+ obj_description(c.oid, 'pg_class') as comment,
147
+ coalesce(json_agg(
148
+ case when a.attname is not null then
149
+ json_build_object(
150
+ 'name', quote_ident(a.attname),
151
+ 'position', a.attnum,
152
+ 'data_type', a.atttypid::regtype::text,
153
+ 'data_type_str', format_type(a.atttypid, a.atttypmod),
154
+ 'is_custom_type', ty.typnamespace::regnamespace::text not in ('pg_catalog', 'information_schema'),
155
+ 'custom_type_type', case when ty.typnamespace::regnamespace::text not in ('pg_catalog', 'information_schema') then ty.typtype else null end,
156
+ 'custom_type_category', case when ty.typnamespace::regnamespace::text not in ('pg_catalog', 'information_schema') then ty.typcategory else null end,
157
+ 'custom_type_schema', case when ty.typnamespace::regnamespace::text not in ('pg_catalog', 'information_schema') then ty.typnamespace::regnamespace else null end,
158
+ 'custom_type_name', case when ty.typnamespace::regnamespace::text not in ('pg_catalog', 'information_schema') then quote_ident(ty.typname) else null end,
159
+ 'not_null', a.attnotnull,
160
+ 'is_identity', a.attidentity != '',
161
+ 'is_identity_always', a.attidentity = 'a',
162
+ 'is_generated', a.attgenerated != '',
163
+ 'collation', (
164
+ select quote_ident(c2.collname)
165
+ from pg_collation c2, pg_type t2
166
+ where c2.oid = a.attcollation
167
+ and t2.oid = a.atttypid
168
+ and a.attcollation <> t2.typcollation
169
+ ),
170
+ 'default', pg_get_expr(ad.adbin, ad.adrelid),
171
+ 'comment', col_description(a.attrelid, a.attnum)
172
+ )
173
+ end
174
+ order by a.attnum
175
+ ) filter (where a.attname is not null), '[]') as columns,
176
+ coalesce((
177
+ select json_agg(
178
+ json_build_object(
179
+ 'grantee', case when grp.grantee = 0 then 'PUBLIC' else grp.grantee::regrole::text end,
180
+ 'privilege', grp.privilege_type,
181
+ 'grantable', grp.is_grantable,
182
+ 'columns', case when grp.cols is not null and array_length(grp.cols,1) > 0
183
+ then grp.cols
184
+ else null end
185
+ )
186
+ order by grp.grantee, grp.privilege_type
187
+ )
188
+ from (
189
+ select
190
+ x.grantee,
191
+ x.privilege_type,
192
+ bool_or(x.is_grantable) as is_grantable,
193
+ array_agg(quote_ident(src.attname) order by src.attname)
194
+ filter (where src.attname is not null) as cols
195
+ from (
196
+ -- one row for object ACL + one row per column ACL
197
+ select null::name as attname, c.relacl as acl
198
+ union all
199
+ select a2.attname, a2.attacl
200
+ from pg_attribute a2
201
+ where a2.attrelid = c.oid
202
+ and a2.attnum > 0
203
+ and not a2.attisdropped
204
+ and a2.attacl is not null
205
+ ) as src
206
+ join lateral aclexplode(src.acl) as x(grantor, grantee, privilege_type, is_grantable) on true
207
+ group by x.grantee, x.privilege_type
208
+ ) as grp
209
+ ), '[]') as privileges
210
+ from
211
+ pg_catalog.pg_class c
212
+ left outer join extension_oids e on c.oid = e.objid
213
+ left join pg_attribute a on a.attrelid = c.oid and a.attnum > 0 and not a.attisdropped
214
+ left join pg_attrdef ad on a.attrelid = ad.adrelid and a.attnum = ad.adnum
215
+ left join pg_type ty on ty.oid = a.atttypid
216
+ where not c.relnamespace::regnamespace::text like any(array['pg\\_%', 'information\\_schema'])
217
+ and e.objid is null
218
+ and c.relkind = 'm'
219
+ group by
220
+ c.oid, c.relnamespace, c.relname, pg_get_viewdef(c.oid), c.relrowsecurity, c.relforcerowsecurity, c.relhasindex, c.relhasrules, c.relhastriggers, c.relhassubclass, c.relispopulated, c.relreplident, c.relispartition, c.reloptions, pg_get_expr(c.relpartbound, c.oid), c.relowner
221
+ order by
222
+ c.relnamespace::regnamespace, c.relname;
223
+ `;
224
+ // Validate and parse each row using the Zod schema
225
+ const validatedRows = mvRows.map((row) => materializedViewPropsSchema.parse(row));
226
+ return validatedRows.map((row) => new MaterializedView(row));
227
+ });
228
+ }
@@ -0,0 +1,143 @@
1
+ import type { Procedure } from "../procedure.model.ts";
2
+ import { AlterProcedureChange } from "./procedure.base.ts";
3
+ /**
4
+ * Alter a procedure.
5
+ *
6
+ * @see https://www.postgresql.org/docs/17/sql-alterfunction.html
7
+ *
8
+ * Synopsis
9
+ * ```sql
10
+ * ALTER FUNCTION name ( [ [ argmode ] [ argname ] argtype [, ...] ] )
11
+ * action [, ... ] [ RESTRICT ]
12
+ * ALTER PROCEDURE name ( [ [ argmode ] [ argname ] argtype [, ...] ] )
13
+ * action [, ... ] [ RESTRICT ]
14
+ * where action is one of:
15
+ * [ EXTERNAL ] SECURITY INVOKER | [ EXTERNAL ] SECURITY DEFINER
16
+ * SET configuration_parameter { TO | = } { value | DEFAULT }
17
+ * SET configuration_parameter FROM CURRENT
18
+ * RESET configuration_parameter
19
+ * RESET ALL
20
+ * [ EXTERNAL ] SECURITY INVOKER | [ EXTERNAL ] SECURITY DEFINER
21
+ * SET configuration_parameter { TO | = } { value | DEFAULT }
22
+ * SET configuration_parameter FROM CURRENT
23
+ * RESET configuration_parameter
24
+ * RESET ALL
25
+ * ```
26
+ */
27
+ export type AlterProcedure = AlterProcedureChangeOwner | AlterProcedureSetConfig | AlterProcedureSetLeakproof | AlterProcedureSetParallel | AlterProcedureSetSecurity | AlterProcedureSetStrictness | AlterProcedureSetVolatility;
28
+ /**
29
+ * ALTER FUNCTION/PROCEDURE ... OWNER TO ...
30
+ */
31
+ export declare class AlterProcedureChangeOwner extends AlterProcedureChange {
32
+ readonly procedure: Procedure;
33
+ readonly owner: string;
34
+ readonly scope: "object";
35
+ constructor(props: {
36
+ procedure: Procedure;
37
+ owner: string;
38
+ });
39
+ get requires(): `procedure:${string}`[];
40
+ serialize(): string;
41
+ }
42
+ /**
43
+ * ALTER FUNCTION/PROCEDURE ... SECURITY { INVOKER | DEFINER }
44
+ */
45
+ export declare class AlterProcedureSetSecurity extends AlterProcedureChange {
46
+ readonly procedure: Procedure;
47
+ readonly securityDefiner: boolean;
48
+ readonly scope: "object";
49
+ constructor(props: {
50
+ procedure: Procedure;
51
+ securityDefiner: boolean;
52
+ });
53
+ get requires(): `procedure:${string}`[];
54
+ serialize(): string;
55
+ }
56
+ /**
57
+ * ALTER FUNCTION/PROCEDURE ... SET/RESET configuration_parameter
58
+ * Emits individual RESET for removed keys and SET for added/changed keys.
59
+ */
60
+ export declare class AlterProcedureSetConfig extends AlterProcedureChange {
61
+ readonly procedure: Procedure;
62
+ readonly action: "set" | "reset" | "reset_all";
63
+ readonly key?: string;
64
+ readonly value?: string;
65
+ readonly scope: "object";
66
+ constructor(props: {
67
+ procedure: Procedure;
68
+ action: "set";
69
+ key: string;
70
+ value: string;
71
+ });
72
+ constructor(props: {
73
+ procedure: Procedure;
74
+ action: "reset";
75
+ key: string;
76
+ });
77
+ constructor(props: {
78
+ procedure: Procedure;
79
+ action: "reset_all";
80
+ });
81
+ get requires(): `procedure:${string}`[];
82
+ serialize(): string;
83
+ }
84
+ /**
85
+ * ALTER FUNCTION/PROCEDURE ... { IMMUTABLE | STABLE | VOLATILE }
86
+ */
87
+ export declare class AlterProcedureSetVolatility extends AlterProcedureChange {
88
+ readonly procedure: Procedure;
89
+ readonly volatility: string;
90
+ readonly scope: "object";
91
+ constructor(props: {
92
+ procedure: Procedure;
93
+ volatility: string;
94
+ });
95
+ get requires(): `procedure:${string}`[];
96
+ serialize(): string;
97
+ }
98
+ /**
99
+ * ALTER FUNCTION/PROCEDURE ... { STRICT | CALLED ON NULL INPUT }
100
+ */
101
+ export declare class AlterProcedureSetStrictness extends AlterProcedureChange {
102
+ readonly procedure: Procedure;
103
+ readonly isStrict: boolean;
104
+ readonly scope: "object";
105
+ constructor(props: {
106
+ procedure: Procedure;
107
+ isStrict: boolean;
108
+ });
109
+ get requires(): `procedure:${string}`[];
110
+ serialize(): string;
111
+ }
112
+ /**
113
+ * ALTER FUNCTION/PROCEDURE ... { LEAKPROOF | NOT LEAKPROOF }
114
+ */
115
+ export declare class AlterProcedureSetLeakproof extends AlterProcedureChange {
116
+ readonly procedure: Procedure;
117
+ readonly leakproof: boolean;
118
+ readonly scope: "object";
119
+ constructor(props: {
120
+ procedure: Procedure;
121
+ leakproof: boolean;
122
+ });
123
+ get requires(): `procedure:${string}`[];
124
+ serialize(): string;
125
+ }
126
+ /**
127
+ * ALTER FUNCTION/PROCEDURE ... PARALLEL { UNSAFE | RESTRICTED | SAFE }
128
+ */
129
+ export declare class AlterProcedureSetParallel extends AlterProcedureChange {
130
+ readonly procedure: Procedure;
131
+ readonly parallelSafety: string;
132
+ readonly scope: "object";
133
+ constructor(props: {
134
+ procedure: Procedure;
135
+ parallelSafety: string;
136
+ });
137
+ get requires(): `procedure:${string}`[];
138
+ serialize(): string;
139
+ }
140
+ /**
141
+ * Replace a procedure by dropping and recreating it.
142
+ * This is used when properties that cannot be altered via ALTER FUNCTION/PROCEDURE change.
143
+ */
@@ -0,0 +1,207 @@
1
+ import { formatConfigValue } from "../utils.js";
2
+ import { AlterProcedureChange } from "./procedure.base.js";
3
+ /**
4
+ * ALTER FUNCTION/PROCEDURE ... OWNER TO ...
5
+ */
6
+ export class AlterProcedureChangeOwner extends AlterProcedureChange {
7
+ procedure;
8
+ owner;
9
+ scope = "object";
10
+ constructor(props) {
11
+ super();
12
+ this.procedure = props.procedure;
13
+ this.owner = props.owner;
14
+ }
15
+ get requires() {
16
+ return [this.procedure.stableId];
17
+ }
18
+ serialize() {
19
+ const objectType = this.procedure.kind === "p" ? "PROCEDURE" : "FUNCTION";
20
+ return [
21
+ "ALTER",
22
+ objectType,
23
+ `${this.procedure.schema}.${this.procedure.name}`,
24
+ "OWNER TO",
25
+ this.owner,
26
+ ].join(" ");
27
+ }
28
+ }
29
+ /**
30
+ * ALTER FUNCTION/PROCEDURE ... SECURITY { INVOKER | DEFINER }
31
+ */
32
+ export class AlterProcedureSetSecurity extends AlterProcedureChange {
33
+ procedure;
34
+ securityDefiner;
35
+ scope = "object";
36
+ constructor(props) {
37
+ super();
38
+ this.procedure = props.procedure;
39
+ this.securityDefiner = props.securityDefiner;
40
+ }
41
+ get requires() {
42
+ return [this.procedure.stableId];
43
+ }
44
+ serialize() {
45
+ const objectType = this.procedure.kind === "p" ? "PROCEDURE" : "FUNCTION";
46
+ const security = this.securityDefiner
47
+ ? "SECURITY DEFINER"
48
+ : "SECURITY INVOKER"; // INVOKER is default; only emitted when changed via diff
49
+ return [
50
+ "ALTER",
51
+ objectType,
52
+ `${this.procedure.schema}.${this.procedure.name}`,
53
+ security,
54
+ ].join(" ");
55
+ }
56
+ }
57
+ /**
58
+ * ALTER FUNCTION/PROCEDURE ... SET/RESET configuration_parameter
59
+ * Emits individual RESET for removed keys and SET for added/changed keys.
60
+ */
61
+ export class AlterProcedureSetConfig extends AlterProcedureChange {
62
+ procedure;
63
+ action;
64
+ key;
65
+ value;
66
+ scope = "object";
67
+ constructor(props) {
68
+ super();
69
+ this.procedure = props.procedure;
70
+ this.action = props.action;
71
+ this.key = props.key;
72
+ this.value = props.value;
73
+ }
74
+ get requires() {
75
+ return [this.procedure.stableId];
76
+ }
77
+ serialize() {
78
+ const head = [
79
+ "ALTER",
80
+ this.procedure.kind === "p" ? "PROCEDURE" : "FUNCTION",
81
+ `${this.procedure.schema}.${this.procedure.name}`,
82
+ ].join(" ");
83
+ if (this.action === "reset_all")
84
+ return `${head} RESET ALL`;
85
+ if (this.action === "reset")
86
+ return `${head} RESET ${this.key}`;
87
+ const formatted = formatConfigValue(this.key, this.value);
88
+ return `${head} SET ${this.key} TO ${formatted}`;
89
+ }
90
+ }
91
+ /**
92
+ * ALTER FUNCTION/PROCEDURE ... { IMMUTABLE | STABLE | VOLATILE }
93
+ */
94
+ export class AlterProcedureSetVolatility extends AlterProcedureChange {
95
+ procedure;
96
+ volatility;
97
+ scope = "object";
98
+ constructor(props) {
99
+ super();
100
+ this.procedure = props.procedure;
101
+ this.volatility = props.volatility;
102
+ }
103
+ get requires() {
104
+ return [this.procedure.stableId];
105
+ }
106
+ serialize() {
107
+ const objectType = this.procedure.kind === "p" ? "PROCEDURE" : "FUNCTION";
108
+ const volMap = {
109
+ i: "IMMUTABLE",
110
+ s: "STABLE",
111
+ v: "VOLATILE",
112
+ };
113
+ return [
114
+ "ALTER",
115
+ objectType,
116
+ `${this.procedure.schema}.${this.procedure.name}`,
117
+ volMap[this.volatility],
118
+ ].join(" ");
119
+ }
120
+ }
121
+ /**
122
+ * ALTER FUNCTION/PROCEDURE ... { STRICT | CALLED ON NULL INPUT }
123
+ */
124
+ export class AlterProcedureSetStrictness extends AlterProcedureChange {
125
+ procedure;
126
+ isStrict;
127
+ scope = "object";
128
+ constructor(props) {
129
+ super();
130
+ this.procedure = props.procedure;
131
+ this.isStrict = props.isStrict;
132
+ }
133
+ get requires() {
134
+ return [this.procedure.stableId];
135
+ }
136
+ serialize() {
137
+ const objectType = this.procedure.kind === "p" ? "PROCEDURE" : "FUNCTION";
138
+ const strictness = this.isStrict ? "STRICT" : "CALLED ON NULL INPUT";
139
+ return [
140
+ "ALTER",
141
+ objectType,
142
+ `${this.procedure.schema}.${this.procedure.name}`,
143
+ strictness,
144
+ ].join(" ");
145
+ }
146
+ }
147
+ /**
148
+ * ALTER FUNCTION/PROCEDURE ... { LEAKPROOF | NOT LEAKPROOF }
149
+ */
150
+ export class AlterProcedureSetLeakproof extends AlterProcedureChange {
151
+ procedure;
152
+ leakproof;
153
+ scope = "object";
154
+ constructor(props) {
155
+ super();
156
+ this.procedure = props.procedure;
157
+ this.leakproof = props.leakproof;
158
+ }
159
+ get requires() {
160
+ return [this.procedure.stableId];
161
+ }
162
+ serialize() {
163
+ const objectType = this.procedure.kind === "p" ? "PROCEDURE" : "FUNCTION";
164
+ const leak = this.leakproof ? "LEAKPROOF" : "NOT LEAKPROOF";
165
+ return [
166
+ "ALTER",
167
+ objectType,
168
+ `${this.procedure.schema}.${this.procedure.name}`,
169
+ leak,
170
+ ].join(" ");
171
+ }
172
+ }
173
+ /**
174
+ * ALTER FUNCTION/PROCEDURE ... PARALLEL { UNSAFE | RESTRICTED | SAFE }
175
+ */
176
+ export class AlterProcedureSetParallel extends AlterProcedureChange {
177
+ procedure;
178
+ parallelSafety;
179
+ scope = "object";
180
+ constructor(props) {
181
+ super();
182
+ this.procedure = props.procedure;
183
+ this.parallelSafety = props.parallelSafety;
184
+ }
185
+ get requires() {
186
+ return [this.procedure.stableId];
187
+ }
188
+ serialize() {
189
+ const objectType = this.procedure.kind === "p" ? "PROCEDURE" : "FUNCTION";
190
+ const parallelMap = {
191
+ u: "PARALLEL UNSAFE",
192
+ s: "PARALLEL SAFE",
193
+ r: "PARALLEL RESTRICTED",
194
+ };
195
+ return [
196
+ "ALTER",
197
+ objectType,
198
+ `${this.procedure.schema}.${this.procedure.name}`,
199
+ parallelMap[this.parallelSafety],
200
+ ].join(" ");
201
+ }
202
+ }
203
+ /**
204
+ * Replace a procedure by dropping and recreating it.
205
+ * This is used when properties that cannot be altered via ALTER FUNCTION/PROCEDURE change.
206
+ */
207
+ // NOTE: ReplaceProcedure removed. Non-alterable changes are emitted as Drop + Create in procedure.diff.ts.
@@ -0,0 +1,17 @@
1
+ import { BaseChange } from "../../base.change.ts";
2
+ import type { Procedure } from "../procedure.model.ts";
3
+ declare abstract class BaseProcedureChange extends BaseChange {
4
+ abstract readonly procedure: Procedure;
5
+ abstract readonly scope: "object" | "comment" | "privilege";
6
+ readonly objectType: "procedure";
7
+ }
8
+ export declare abstract class CreateProcedureChange extends BaseProcedureChange {
9
+ readonly operation: "create";
10
+ }
11
+ export declare abstract class AlterProcedureChange extends BaseProcedureChange {
12
+ readonly operation: "alter";
13
+ }
14
+ export declare abstract class DropProcedureChange extends BaseProcedureChange {
15
+ readonly operation: "drop";
16
+ }
17
+ export {};
@@ -0,0 +1,13 @@
1
+ import { BaseChange } from "../../base.change.js";
2
+ class BaseProcedureChange extends BaseChange {
3
+ objectType = "procedure";
4
+ }
5
+ export class CreateProcedureChange extends BaseProcedureChange {
6
+ operation = "create";
7
+ }
8
+ export class AlterProcedureChange extends BaseProcedureChange {
9
+ operation = "alter";
10
+ }
11
+ export class DropProcedureChange extends BaseProcedureChange {
12
+ operation = "drop";
13
+ }
@@ -0,0 +1,26 @@
1
+ import type { Procedure } from "../procedure.model.ts";
2
+ import { CreateProcedureChange, DropProcedureChange } from "./procedure.base.ts";
3
+ export type CommentProcedure = CreateCommentOnProcedure | DropCommentOnProcedure;
4
+ /**
5
+ * Create/drop comments on procedures/functions.
6
+ */
7
+ export declare class CreateCommentOnProcedure extends CreateProcedureChange {
8
+ readonly procedure: Procedure;
9
+ readonly scope: "comment";
10
+ constructor(props: {
11
+ procedure: Procedure;
12
+ });
13
+ get creates(): `comment:${string}`[];
14
+ get requires(): `procedure:${string}`[];
15
+ serialize(): string;
16
+ }
17
+ export declare class DropCommentOnProcedure extends DropProcedureChange {
18
+ readonly procedure: Procedure;
19
+ readonly scope: "comment";
20
+ constructor(props: {
21
+ procedure: Procedure;
22
+ });
23
+ get drops(): `comment:${string}`[];
24
+ get requires(): (`comment:${string}` | `procedure:${string}`)[];
25
+ serialize(): string;
26
+ }
@@ -0,0 +1,52 @@
1
+ import { quoteLiteral } from "../../base.change.js";
2
+ import { stableId } from "../../utils.js";
3
+ import { CreateProcedureChange, DropProcedureChange, } from "./procedure.base.js";
4
+ /**
5
+ * Create/drop comments on procedures/functions.
6
+ */
7
+ export class CreateCommentOnProcedure extends CreateProcedureChange {
8
+ procedure;
9
+ scope = "comment";
10
+ constructor(props) {
11
+ super();
12
+ this.procedure = props.procedure;
13
+ }
14
+ get creates() {
15
+ return [stableId.comment(this.procedure.stableId)];
16
+ }
17
+ get requires() {
18
+ return [this.procedure.stableId];
19
+ }
20
+ serialize() {
21
+ return [
22
+ "COMMENT ON",
23
+ this.procedure.kind === "p" ? "PROCEDURE" : "FUNCTION",
24
+ `${this.procedure.schema}.${this.procedure.name}(${(this.procedure.argument_types ?? []).join(",")})`,
25
+ "IS",
26
+ // biome-ignore lint/style/noNonNullAssertion: procedure comment is not nullable in this case
27
+ quoteLiteral(this.procedure.comment),
28
+ ].join(" ");
29
+ }
30
+ }
31
+ export class DropCommentOnProcedure extends DropProcedureChange {
32
+ procedure;
33
+ scope = "comment";
34
+ constructor(props) {
35
+ super();
36
+ this.procedure = props.procedure;
37
+ }
38
+ get drops() {
39
+ return [stableId.comment(this.procedure.stableId)];
40
+ }
41
+ get requires() {
42
+ return [stableId.comment(this.procedure.stableId), this.procedure.stableId];
43
+ }
44
+ serialize() {
45
+ return [
46
+ "COMMENT ON",
47
+ this.procedure.kind === "p" ? "PROCEDURE" : "FUNCTION",
48
+ `${this.procedure.schema}.${this.procedure.name}(${(this.procedure.argument_types ?? []).join(",")})`,
49
+ "IS NULL",
50
+ ].join(" ");
51
+ }
52
+ }