@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.
- package/LICENSE +21 -0
- package/README.md +149 -0
- package/dist/cli/app.d.ts +1 -0
- package/dist/cli/app.js +26 -0
- package/dist/cli/bin/cli.d.ts +2 -0
- package/dist/cli/bin/cli.js +7 -0
- package/dist/cli/commands/apply.d.ts +5 -0
- package/dist/cli/commands/apply.js +85 -0
- package/dist/cli/commands/plan.d.ts +5 -0
- package/dist/cli/commands/plan.js +137 -0
- package/dist/cli/commands/sync.d.ts +5 -0
- package/dist/cli/commands/sync.js +141 -0
- package/dist/cli/formatters/index.d.ts +4 -0
- package/dist/cli/formatters/index.js +4 -0
- package/dist/cli/formatters/tree/tree-builder.d.ts +10 -0
- package/dist/cli/formatters/tree/tree-builder.js +333 -0
- package/dist/cli/formatters/tree/tree-renderer.d.ts +45 -0
- package/dist/cli/formatters/tree/tree-renderer.js +303 -0
- package/dist/cli/formatters/tree/tree.d.ts +8 -0
- package/dist/cli/formatters/tree/tree.js +161 -0
- package/dist/cli/utils/integrations.d.ts +13 -0
- package/dist/cli/utils/integrations.js +35 -0
- package/dist/cli/utils.d.ts +64 -0
- package/dist/cli/utils.js +160 -0
- package/dist/core/catalog.diff.d.ts +5 -0
- package/dist/core/catalog.diff.js +147 -0
- package/dist/core/catalog.model.d.ts +93 -0
- package/dist/core/catalog.model.js +254 -0
- package/dist/core/change.types.d.ts +22 -0
- package/dist/core/change.types.js +1 -0
- package/dist/core/context.d.ts +11 -0
- package/dist/core/context.js +12 -0
- package/dist/core/depend.d.ts +31 -0
- package/dist/core/depend.js +1833 -0
- package/dist/core/expand-replace-dependencies.d.ts +14 -0
- package/dist/core/expand-replace-dependencies.js +280 -0
- package/dist/core/fingerprint.d.ts +23 -0
- package/dist/core/fingerprint.js +174 -0
- package/dist/core/index.d.ts +15 -0
- package/dist/core/index.js +14 -0
- package/dist/core/integrations/filter/dsl.d.ts +97 -0
- package/dist/core/integrations/filter/dsl.js +107 -0
- package/dist/core/integrations/filter/extractors.d.ts +12 -0
- package/dist/core/integrations/filter/extractors.js +136 -0
- package/dist/core/integrations/integration-dsl.d.ts +22 -0
- package/dist/core/integrations/integration-dsl.js +6 -0
- package/dist/core/integrations/integration.types.d.ts +5 -0
- package/dist/core/integrations/integration.types.js +1 -0
- package/dist/core/integrations/serialize/dsl.d.ts +58 -0
- package/dist/core/integrations/serialize/dsl.js +42 -0
- package/dist/core/main.d.ts +5 -0
- package/dist/core/main.js +44 -0
- package/dist/core/objects/aggregate/aggregate.diff.d.ts +10 -0
- package/dist/core/objects/aggregate/aggregate.diff.js +186 -0
- package/dist/core/objects/aggregate/aggregate.model.d.ts +174 -0
- package/dist/core/objects/aggregate/aggregate.model.js +297 -0
- package/dist/core/objects/aggregate/changes/aggregate.alter.d.ts +19 -0
- package/dist/core/objects/aggregate/changes/aggregate.alter.js +25 -0
- package/dist/core/objects/aggregate/changes/aggregate.base.d.ts +17 -0
- package/dist/core/objects/aggregate/changes/aggregate.base.js +13 -0
- package/dist/core/objects/aggregate/changes/aggregate.comment.d.ts +23 -0
- package/dist/core/objects/aggregate/changes/aggregate.comment.js +44 -0
- package/dist/core/objects/aggregate/changes/aggregate.create.d.ts +19 -0
- package/dist/core/objects/aggregate/changes/aggregate.create.js +228 -0
- package/dist/core/objects/aggregate/changes/aggregate.drop.d.ts +17 -0
- package/dist/core/objects/aggregate/changes/aggregate.drop.js +26 -0
- package/dist/core/objects/aggregate/changes/aggregate.privilege.d.ts +62 -0
- package/dist/core/objects/aggregate/changes/aggregate.privilege.js +102 -0
- package/dist/core/objects/aggregate/changes/aggregate.types.d.ts +6 -0
- package/dist/core/objects/aggregate/changes/aggregate.types.js +1 -0
- package/dist/core/objects/base.change.d.ts +46 -0
- package/dist/core/objects/base.change.js +38 -0
- package/dist/core/objects/base.default-privileges.d.ts +29 -0
- package/dist/core/objects/base.default-privileges.js +167 -0
- package/dist/core/objects/base.diff.d.ts +6 -0
- package/dist/core/objects/base.diff.js +12 -0
- package/dist/core/objects/base.model.d.ts +74 -0
- package/dist/core/objects/base.model.js +47 -0
- package/dist/core/objects/base.privilege-diff.d.ts +54 -0
- package/dist/core/objects/base.privilege-diff.js +216 -0
- package/dist/core/objects/base.privilege.d.ts +27 -0
- package/dist/core/objects/base.privilege.js +169 -0
- package/dist/core/objects/collation/changes/collation.alter.d.ts +45 -0
- package/dist/core/objects/collation/changes/collation.alter.js +52 -0
- package/dist/core/objects/collation/changes/collation.base.d.ts +17 -0
- package/dist/core/objects/collation/changes/collation.base.js +13 -0
- package/dist/core/objects/collation/changes/collation.comment.d.ts +26 -0
- package/dist/core/objects/collation/changes/collation.comment.js +50 -0
- package/dist/core/objects/collation/changes/collation.create.d.ts +32 -0
- package/dist/core/objects/collation/changes/collation.create.js +86 -0
- package/dist/core/objects/collation/changes/collation.drop.d.ts +22 -0
- package/dist/core/objects/collation/changes/collation.drop.js +31 -0
- package/dist/core/objects/collation/changes/collation.types.d.ts +5 -0
- package/dist/core/objects/collation/changes/collation.types.js +1 -0
- package/dist/core/objects/collation/collation.diff.d.ts +13 -0
- package/dist/core/objects/collation/collation.diff.js +85 -0
- package/dist/core/objects/collation/collation.model.d.ts +67 -0
- package/dist/core/objects/collation/collation.model.js +207 -0
- package/dist/core/objects/domain/changes/domain.alter.d.ts +143 -0
- package/dist/core/objects/domain/changes/domain.alter.js +191 -0
- package/dist/core/objects/domain/changes/domain.base.d.ts +17 -0
- package/dist/core/objects/domain/changes/domain.base.js +13 -0
- package/dist/core/objects/domain/changes/domain.comment.d.ts +25 -0
- package/dist/core/objects/domain/changes/domain.comment.js +47 -0
- package/dist/core/objects/domain/changes/domain.create.d.ts +30 -0
- package/dist/core/objects/domain/changes/domain.create.js +92 -0
- package/dist/core/objects/domain/changes/domain.drop.d.ts +22 -0
- package/dist/core/objects/domain/changes/domain.drop.js +28 -0
- package/dist/core/objects/domain/changes/domain.privilege.d.ts +97 -0
- package/dist/core/objects/domain/changes/domain.privilege.js +127 -0
- package/dist/core/objects/domain/changes/domain.types.d.ts +6 -0
- package/dist/core/objects/domain/changes/domain.types.js +1 -0
- package/dist/core/objects/domain/domain.diff.d.ts +18 -0
- package/dist/core/objects/domain/domain.diff.js +244 -0
- package/dist/core/objects/domain/domain.model.d.ts +103 -0
- package/dist/core/objects/domain/domain.model.js +172 -0
- package/dist/core/objects/event-trigger/changes/event-trigger.alter.d.ts +44 -0
- package/dist/core/objects/event-trigger/changes/event-trigger.alter.js +51 -0
- package/dist/core/objects/event-trigger/changes/event-trigger.base.d.ts +17 -0
- package/dist/core/objects/event-trigger/changes/event-trigger.base.js +13 -0
- package/dist/core/objects/event-trigger/changes/event-trigger.comment.d.ts +23 -0
- package/dist/core/objects/event-trigger/changes/event-trigger.comment.js +46 -0
- package/dist/core/objects/event-trigger/changes/event-trigger.create.d.ts +25 -0
- package/dist/core/objects/event-trigger/changes/event-trigger.create.js +55 -0
- package/dist/core/objects/event-trigger/changes/event-trigger.drop.d.ts +22 -0
- package/dist/core/objects/event-trigger/changes/event-trigger.drop.js +28 -0
- package/dist/core/objects/event-trigger/changes/event-trigger.types.d.ts +5 -0
- package/dist/core/objects/event-trigger/changes/event-trigger.types.js +1 -0
- package/dist/core/objects/event-trigger/event-trigger.diff.d.ts +13 -0
- package/dist/core/objects/event-trigger/event-trigger.diff.js +81 -0
- package/dist/core/objects/event-trigger/event-trigger.model.d.ts +45 -0
- package/dist/core/objects/event-trigger/event-trigger.model.js +89 -0
- package/dist/core/objects/extension/changes/extension.alter.d.ts +44 -0
- package/dist/core/objects/extension/changes/extension.alter.js +51 -0
- package/dist/core/objects/extension/changes/extension.base.d.ts +17 -0
- package/dist/core/objects/extension/changes/extension.base.js +13 -0
- package/dist/core/objects/extension/changes/extension.comment.d.ts +26 -0
- package/dist/core/objects/extension/changes/extension.comment.js +46 -0
- package/dist/core/objects/extension/changes/extension.create.d.ts +25 -0
- package/dist/core/objects/extension/changes/extension.create.js +49 -0
- package/dist/core/objects/extension/changes/extension.drop.d.ts +22 -0
- package/dist/core/objects/extension/changes/extension.drop.js +28 -0
- package/dist/core/objects/extension/changes/extension.types.d.ts +5 -0
- package/dist/core/objects/extension/changes/extension.types.js +1 -0
- package/dist/core/objects/extension/extension.diff.d.ts +10 -0
- package/dist/core/objects/extension/extension.diff.js +65 -0
- package/dist/core/objects/extension/extension.model.d.ts +52 -0
- package/dist/core/objects/extension/extension.model.js +268 -0
- package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.alter.d.ts +51 -0
- package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.alter.js +61 -0
- package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.base.d.ts +17 -0
- package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.base.js +13 -0
- package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.comment.d.ts +26 -0
- package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.comment.js +50 -0
- package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.create.d.ts +25 -0
- package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.create.js +78 -0
- package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.drop.d.ts +22 -0
- package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.drop.js +28 -0
- package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.privilege.d.ts +97 -0
- package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.privilege.js +123 -0
- package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.types.d.ts +6 -0
- package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.types.js +1 -0
- package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/foreign-data-wrapper.diff.d.ts +18 -0
- package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/foreign-data-wrapper.diff.js +221 -0
- package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/foreign-data-wrapper.model.d.ts +59 -0
- package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/foreign-data-wrapper.model.js +128 -0
- package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper.types.d.ts +5 -0
- package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper.types.js +1 -0
- package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.alter.d.ts +163 -0
- package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.alter.js +248 -0
- package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.base.d.ts +17 -0
- package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.base.js +13 -0
- package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.comment.d.ts +26 -0
- package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.comment.js +50 -0
- package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.create.d.ts +25 -0
- package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.create.js +64 -0
- package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.drop.d.ts +22 -0
- package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.drop.js +31 -0
- package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.privilege.d.ts +97 -0
- package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.privilege.js +129 -0
- package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.types.d.ts +6 -0
- package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.types.js +1 -0
- package/dist/core/objects/foreign-data-wrapper/foreign-table/foreign-table.diff.d.ts +18 -0
- package/dist/core/objects/foreign-data-wrapper/foreign-table/foreign-table.diff.js +268 -0
- package/dist/core/objects/foreign-data-wrapper/foreign-table/foreign-table.model.d.ts +117 -0
- package/dist/core/objects/foreign-data-wrapper/foreign-table/foreign-table.model.js +215 -0
- package/dist/core/objects/foreign-data-wrapper/server/changes/server.alter.d.ts +65 -0
- package/dist/core/objects/foreign-data-wrapper/server/changes/server.alter.js +84 -0
- package/dist/core/objects/foreign-data-wrapper/server/changes/server.base.d.ts +17 -0
- package/dist/core/objects/foreign-data-wrapper/server/changes/server.base.js +13 -0
- package/dist/core/objects/foreign-data-wrapper/server/changes/server.comment.d.ts +26 -0
- package/dist/core/objects/foreign-data-wrapper/server/changes/server.comment.js +43 -0
- package/dist/core/objects/foreign-data-wrapper/server/changes/server.create.d.ts +24 -0
- package/dist/core/objects/foreign-data-wrapper/server/changes/server.create.js +62 -0
- package/dist/core/objects/foreign-data-wrapper/server/changes/server.drop.d.ts +22 -0
- package/dist/core/objects/foreign-data-wrapper/server/changes/server.drop.js +28 -0
- package/dist/core/objects/foreign-data-wrapper/server/changes/server.privilege.d.ts +97 -0
- package/dist/core/objects/foreign-data-wrapper/server/changes/server.privilege.js +123 -0
- package/dist/core/objects/foreign-data-wrapper/server/changes/server.types.d.ts +6 -0
- package/dist/core/objects/foreign-data-wrapper/server/changes/server.types.js +1 -0
- package/dist/core/objects/foreign-data-wrapper/server/server.diff.d.ts +18 -0
- package/dist/core/objects/foreign-data-wrapper/server/server.diff.js +209 -0
- package/dist/core/objects/foreign-data-wrapper/server/server.model.d.ts +62 -0
- package/dist/core/objects/foreign-data-wrapper/server/server.model.js +118 -0
- package/dist/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.alter.d.ts +37 -0
- package/dist/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.alter.js +38 -0
- package/dist/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.base.d.ts +17 -0
- package/dist/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.base.js +13 -0
- package/dist/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.create.d.ts +24 -0
- package/dist/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.create.js +52 -0
- package/dist/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.drop.d.ts +23 -0
- package/dist/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.drop.js +34 -0
- package/dist/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.types.d.ts +4 -0
- package/dist/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.types.js +1 -0
- package/dist/core/objects/foreign-data-wrapper/user-mapping/user-mapping.diff.d.ts +10 -0
- package/dist/core/objects/foreign-data-wrapper/user-mapping/user-mapping.diff.js +77 -0
- package/dist/core/objects/foreign-data-wrapper/user-mapping/user-mapping.model.d.ts +36 -0
- package/dist/core/objects/foreign-data-wrapper/user-mapping/user-mapping.model.js +85 -0
- package/dist/core/objects/index/changes/index.alter.d.ts +76 -0
- package/dist/core/objects/index/changes/index.alter.js +94 -0
- package/dist/core/objects/index/changes/index.base.d.ts +17 -0
- package/dist/core/objects/index/changes/index.base.js +13 -0
- package/dist/core/objects/index/changes/index.comment.d.ts +26 -0
- package/dist/core/objects/index/changes/index.comment.js +50 -0
- package/dist/core/objects/index/changes/index.create.d.ts +30 -0
- package/dist/core/objects/index/changes/index.create.js +53 -0
- package/dist/core/objects/index/changes/index.drop.d.ts +22 -0
- package/dist/core/objects/index/changes/index.drop.js +28 -0
- package/dist/core/objects/index/changes/index.types.d.ts +5 -0
- package/dist/core/objects/index/changes/index.types.js +1 -0
- package/dist/core/objects/index/changes/utils.d.ts +3 -0
- package/dist/core/objects/index/changes/utils.js +6 -0
- package/dist/core/objects/index/index.diff.d.ts +12 -0
- package/dist/core/objects/index/index.diff.js +182 -0
- package/dist/core/objects/index/index.model.d.ts +150 -0
- package/dist/core/objects/index/index.model.js +340 -0
- package/dist/core/objects/language/changes/language.alter.d.ts +32 -0
- package/dist/core/objects/language/changes/language.alter.js +30 -0
- package/dist/core/objects/language/changes/language.base.d.ts +17 -0
- package/dist/core/objects/language/changes/language.base.js +13 -0
- package/dist/core/objects/language/changes/language.comment.d.ts +26 -0
- package/dist/core/objects/language/changes/language.comment.js +45 -0
- package/dist/core/objects/language/changes/language.create.d.ts +25 -0
- package/dist/core/objects/language/changes/language.create.js +76 -0
- package/dist/core/objects/language/changes/language.drop.d.ts +22 -0
- package/dist/core/objects/language/changes/language.drop.js +31 -0
- package/dist/core/objects/language/changes/language.privilege.d.ts +97 -0
- package/dist/core/objects/language/changes/language.privilege.js +128 -0
- package/dist/core/objects/language/changes/language.types.d.ts +6 -0
- package/dist/core/objects/language/changes/language.types.js +1 -0
- package/dist/core/objects/language/language.diff.d.ts +15 -0
- package/dist/core/objects/language/language.diff.js +117 -0
- package/dist/core/objects/language/language.model.d.ts +62 -0
- package/dist/core/objects/language/language.model.js +128 -0
- package/dist/core/objects/materialized-view/changes/materialized-view.alter.d.ts +67 -0
- package/dist/core/objects/materialized-view/changes/materialized-view.alter.js +63 -0
- package/dist/core/objects/materialized-view/changes/materialized-view.base.d.ts +17 -0
- package/dist/core/objects/materialized-view/changes/materialized-view.base.js +13 -0
- package/dist/core/objects/materialized-view/changes/materialized-view.comment.d.ts +53 -0
- package/dist/core/objects/materialized-view/changes/materialized-view.comment.js +112 -0
- package/dist/core/objects/materialized-view/changes/materialized-view.create.d.ts +35 -0
- package/dist/core/objects/materialized-view/changes/materialized-view.create.js +71 -0
- package/dist/core/objects/materialized-view/changes/materialized-view.drop.d.ts +26 -0
- package/dist/core/objects/materialized-view/changes/materialized-view.drop.js +42 -0
- package/dist/core/objects/materialized-view/changes/materialized-view.privilege.d.ts +105 -0
- package/dist/core/objects/materialized-view/changes/materialized-view.privilege.js +151 -0
- package/dist/core/objects/materialized-view/changes/materialized-view.types.d.ts +6 -0
- package/dist/core/objects/materialized-view/changes/materialized-view.types.js +1 -0
- package/dist/core/objects/materialized-view/materialized-view.diff.d.ts +18 -0
- package/dist/core/objects/materialized-view/materialized-view.diff.js +335 -0
- package/dist/core/objects/materialized-view/materialized-view.model.d.ts +152 -0
- package/dist/core/objects/materialized-view/materialized-view.model.js +228 -0
- package/dist/core/objects/procedure/changes/procedure.alter.d.ts +143 -0
- package/dist/core/objects/procedure/changes/procedure.alter.js +207 -0
- package/dist/core/objects/procedure/changes/procedure.base.d.ts +17 -0
- package/dist/core/objects/procedure/changes/procedure.base.js +13 -0
- package/dist/core/objects/procedure/changes/procedure.comment.d.ts +26 -0
- package/dist/core/objects/procedure/changes/procedure.comment.js +52 -0
- package/dist/core/objects/procedure/changes/procedure.create.d.ts +42 -0
- package/dist/core/objects/procedure/changes/procedure.create.js +77 -0
- package/dist/core/objects/procedure/changes/procedure.drop.d.ts +23 -0
- package/dist/core/objects/procedure/changes/procedure.drop.js +37 -0
- package/dist/core/objects/procedure/changes/procedure.privilege.d.ts +98 -0
- package/dist/core/objects/procedure/changes/procedure.privilege.js +144 -0
- package/dist/core/objects/procedure/changes/procedure.types.d.ts +6 -0
- package/dist/core/objects/procedure/changes/procedure.types.js +1 -0
- package/dist/core/objects/procedure/procedure.diff.d.ts +18 -0
- package/dist/core/objects/procedure/procedure.diff.js +282 -0
- package/dist/core/objects/procedure/procedure.model.d.ts +132 -0
- package/dist/core/objects/procedure/procedure.model.js +244 -0
- package/dist/core/objects/procedure/utils.d.ts +14 -0
- package/dist/core/objects/procedure/utils.js +55 -0
- package/dist/core/objects/publication/changes/publication.alter.d.ts +88 -0
- package/dist/core/objects/publication/changes/publication.alter.js +176 -0
- package/dist/core/objects/publication/changes/publication.base.d.ts +17 -0
- package/dist/core/objects/publication/changes/publication.base.js +13 -0
- package/dist/core/objects/publication/changes/publication.comment.d.ts +23 -0
- package/dist/core/objects/publication/changes/publication.comment.js +46 -0
- package/dist/core/objects/publication/changes/publication.create.d.ts +17 -0
- package/dist/core/objects/publication/changes/publication.create.js +61 -0
- package/dist/core/objects/publication/changes/publication.drop.d.ts +17 -0
- package/dist/core/objects/publication/changes/publication.drop.js +23 -0
- package/dist/core/objects/publication/changes/publication.types.d.ts +5 -0
- package/dist/core/objects/publication/changes/publication.types.js +1 -0
- package/dist/core/objects/publication/publication.diff.d.ts +5 -0
- package/dist/core/objects/publication/publication.diff.js +161 -0
- package/dist/core/objects/publication/publication.model.d.ts +96 -0
- package/dist/core/objects/publication/publication.model.js +186 -0
- package/dist/core/objects/publication/utils.d.ts +5 -0
- package/dist/core/objects/publication/utils.js +45 -0
- package/dist/core/objects/rls-policy/changes/rls-policy.alter.d.ts +62 -0
- package/dist/core/objects/rls-policy/changes/rls-policy.alter.js +90 -0
- package/dist/core/objects/rls-policy/changes/rls-policy.base.d.ts +17 -0
- package/dist/core/objects/rls-policy/changes/rls-policy.base.js +13 -0
- package/dist/core/objects/rls-policy/changes/rls-policy.comment.d.ts +23 -0
- package/dist/core/objects/rls-policy/changes/rls-policy.comment.js +51 -0
- package/dist/core/objects/rls-policy/changes/rls-policy.create.d.ts +27 -0
- package/dist/core/objects/rls-policy/changes/rls-policy.create.js +79 -0
- package/dist/core/objects/rls-policy/changes/rls-policy.drop.d.ts +22 -0
- package/dist/core/objects/rls-policy/changes/rls-policy.drop.js +33 -0
- package/dist/core/objects/rls-policy/changes/rls-policy.types.d.ts +5 -0
- package/dist/core/objects/rls-policy/changes/rls-policy.types.js +1 -0
- package/dist/core/objects/rls-policy/rls-policy.diff.d.ts +10 -0
- package/dist/core/objects/rls-policy/rls-policy.diff.js +80 -0
- package/dist/core/objects/rls-policy/rls-policy.model.d.ts +52 -0
- package/dist/core/objects/rls-policy/rls-policy.model.js +127 -0
- package/dist/core/objects/role/changes/role.alter.d.ts +78 -0
- package/dist/core/objects/role/changes/role.alter.js +55 -0
- package/dist/core/objects/role/changes/role.base.d.ts +17 -0
- package/dist/core/objects/role/changes/role.base.js +13 -0
- package/dist/core/objects/role/changes/role.comment.d.ts +23 -0
- package/dist/core/objects/role/changes/role.comment.js +42 -0
- package/dist/core/objects/role/changes/role.create.d.ts +38 -0
- package/dist/core/objects/role/changes/role.create.js +83 -0
- package/dist/core/objects/role/changes/role.drop.d.ts +22 -0
- package/dist/core/objects/role/changes/role.drop.js +28 -0
- package/dist/core/objects/role/changes/role.privilege.d.ts +148 -0
- package/dist/core/objects/role/changes/role.privilege.js +283 -0
- package/dist/core/objects/role/changes/role.types.d.ts +6 -0
- package/dist/core/objects/role/changes/role.types.js +1 -0
- package/dist/core/objects/role/role.diff.d.ts +13 -0
- package/dist/core/objects/role/role.diff.js +386 -0
- package/dist/core/objects/role/role.model.d.ts +89 -0
- package/dist/core/objects/role/role.model.js +312 -0
- package/dist/core/objects/rule/changes/rule.alter.d.ts +22 -0
- package/dist/core/objects/rule/changes/rule.alter.js +58 -0
- package/dist/core/objects/rule/changes/rule.base.d.ts +17 -0
- package/dist/core/objects/rule/changes/rule.base.js +13 -0
- package/dist/core/objects/rule/changes/rule.comment.d.ts +22 -0
- package/dist/core/objects/rule/changes/rule.comment.js +51 -0
- package/dist/core/objects/rule/changes/rule.create.d.ts +14 -0
- package/dist/core/objects/rule/changes/rule.create.js +28 -0
- package/dist/core/objects/rule/changes/rule.drop.d.ts +12 -0
- package/dist/core/objects/rule/changes/rule.drop.js +23 -0
- package/dist/core/objects/rule/changes/rule.types.d.ts +5 -0
- package/dist/core/objects/rule/changes/rule.types.js +1 -0
- package/dist/core/objects/rule/rule.diff.d.ts +3 -0
- package/dist/core/objects/rule/rule.diff.js +53 -0
- package/dist/core/objects/rule/rule.model.d.ts +72 -0
- package/dist/core/objects/rule/rule.model.js +156 -0
- package/dist/core/objects/schema/changes/schema.alter.d.ts +32 -0
- package/dist/core/objects/schema/changes/schema.alter.js +25 -0
- package/dist/core/objects/schema/changes/schema.base.d.ts +17 -0
- package/dist/core/objects/schema/changes/schema.base.js +13 -0
- package/dist/core/objects/schema/changes/schema.comment.d.ts +23 -0
- package/dist/core/objects/schema/changes/schema.comment.js +43 -0
- package/dist/core/objects/schema/changes/schema.create.d.ts +27 -0
- package/dist/core/objects/schema/changes/schema.create.js +38 -0
- package/dist/core/objects/schema/changes/schema.drop.d.ts +22 -0
- package/dist/core/objects/schema/changes/schema.drop.js +28 -0
- package/dist/core/objects/schema/changes/schema.privilege.d.ts +97 -0
- package/dist/core/objects/schema/changes/schema.privilege.js +131 -0
- package/dist/core/objects/schema/changes/schema.types.d.ts +6 -0
- package/dist/core/objects/schema/changes/schema.types.js +1 -0
- package/dist/core/objects/schema/schema.diff.d.ts +18 -0
- package/dist/core/objects/schema/schema.diff.js +142 -0
- package/dist/core/objects/schema/schema.model.d.ts +47 -0
- package/dist/core/objects/schema/schema.model.js +91 -0
- package/dist/core/objects/sequence/changes/sequence.alter.d.ts +59 -0
- package/dist/core/objects/sequence/changes/sequence.alter.js +75 -0
- package/dist/core/objects/sequence/changes/sequence.base.d.ts +17 -0
- package/dist/core/objects/sequence/changes/sequence.base.js +13 -0
- package/dist/core/objects/sequence/changes/sequence.comment.d.ts +23 -0
- package/dist/core/objects/sequence/changes/sequence.comment.js +47 -0
- package/dist/core/objects/sequence/changes/sequence.create.d.ts +25 -0
- package/dist/core/objects/sequence/changes/sequence.create.js +78 -0
- package/dist/core/objects/sequence/changes/sequence.drop.d.ts +22 -0
- package/dist/core/objects/sequence/changes/sequence.drop.js +31 -0
- package/dist/core/objects/sequence/changes/sequence.privilege.d.ts +101 -0
- package/dist/core/objects/sequence/changes/sequence.privilege.js +135 -0
- package/dist/core/objects/sequence/changes/sequence.types.d.ts +6 -0
- package/dist/core/objects/sequence/changes/sequence.types.js +1 -0
- package/dist/core/objects/sequence/sequence.diff.d.ts +20 -0
- package/dist/core/objects/sequence/sequence.diff.js +258 -0
- package/dist/core/objects/sequence/sequence.model.d.ts +76 -0
- package/dist/core/objects/sequence/sequence.model.js +169 -0
- package/dist/core/objects/subscription/changes/subscription.alter.d.ts +56 -0
- package/dist/core/objects/subscription/changes/subscription.alter.js +82 -0
- package/dist/core/objects/subscription/changes/subscription.base.d.ts +17 -0
- package/dist/core/objects/subscription/changes/subscription.base.js +13 -0
- package/dist/core/objects/subscription/changes/subscription.comment.d.ts +23 -0
- package/dist/core/objects/subscription/changes/subscription.comment.js +46 -0
- package/dist/core/objects/subscription/changes/subscription.create.d.ts +12 -0
- package/dist/core/objects/subscription/changes/subscription.create.js +52 -0
- package/dist/core/objects/subscription/changes/subscription.drop.d.ts +11 -0
- package/dist/core/objects/subscription/changes/subscription.drop.js +15 -0
- package/dist/core/objects/subscription/changes/subscription.types.d.ts +5 -0
- package/dist/core/objects/subscription/changes/subscription.types.js +1 -0
- package/dist/core/objects/subscription/subscription.diff.d.ts +5 -0
- package/dist/core/objects/subscription/subscription.diff.js +167 -0
- package/dist/core/objects/subscription/subscription.model.d.ts +80 -0
- package/dist/core/objects/subscription/subscription.model.js +166 -0
- package/dist/core/objects/subscription/utils.d.ts +37 -0
- package/dist/core/objects/subscription/utils.js +112 -0
- package/dist/core/objects/table/changes/table.alter.d.ts +357 -0
- package/dist/core/objects/table/changes/table.alter.js +607 -0
- package/dist/core/objects/table/changes/table.base.d.ts +17 -0
- package/dist/core/objects/table/changes/table.base.js +13 -0
- package/dist/core/objects/table/changes/table.comment.d.ts +106 -0
- package/dist/core/objects/table/changes/table.comment.js +175 -0
- package/dist/core/objects/table/changes/table.create.d.ts +33 -0
- package/dist/core/objects/table/changes/table.create.js +145 -0
- package/dist/core/objects/table/changes/table.drop.d.ts +22 -0
- package/dist/core/objects/table/changes/table.drop.js +35 -0
- package/dist/core/objects/table/changes/table.privilege.d.ts +107 -0
- package/dist/core/objects/table/changes/table.privilege.js +150 -0
- package/dist/core/objects/table/changes/table.types.d.ts +6 -0
- package/dist/core/objects/table/changes/table.types.js +1 -0
- package/dist/core/objects/table/table.diff.d.ts +18 -0
- package/dist/core/objects/table/table.diff.js +668 -0
- package/dist/core/objects/table/table.model.d.ts +341 -0
- package/dist/core/objects/table/table.model.js +426 -0
- package/dist/core/objects/trigger/changes/trigger.alter.d.ts +29 -0
- package/dist/core/objects/trigger/changes/trigger.alter.js +27 -0
- package/dist/core/objects/trigger/changes/trigger.base.d.ts +17 -0
- package/dist/core/objects/trigger/changes/trigger.base.js +13 -0
- package/dist/core/objects/trigger/changes/trigger.comment.d.ts +23 -0
- package/dist/core/objects/trigger/changes/trigger.comment.js +51 -0
- package/dist/core/objects/trigger/changes/trigger.create.d.ts +41 -0
- package/dist/core/objects/trigger/changes/trigger.create.js +61 -0
- package/dist/core/objects/trigger/changes/trigger.drop.d.ts +22 -0
- package/dist/core/objects/trigger/changes/trigger.drop.js +33 -0
- package/dist/core/objects/trigger/changes/trigger.types.d.ts +5 -0
- package/dist/core/objects/trigger/changes/trigger.types.js +1 -0
- package/dist/core/objects/trigger/trigger.diff.d.ts +11 -0
- package/dist/core/objects/trigger/trigger.diff.js +84 -0
- package/dist/core/objects/trigger/trigger.model.d.ts +92 -0
- package/dist/core/objects/trigger/trigger.model.js +235 -0
- package/dist/core/objects/type/composite-type/changes/composite-type.alter.d.ts +81 -0
- package/dist/core/objects/type/composite-type/changes/composite-type.alter.js +123 -0
- package/dist/core/objects/type/composite-type/changes/composite-type.base.d.ts +17 -0
- package/dist/core/objects/type/composite-type/changes/composite-type.base.js +13 -0
- package/dist/core/objects/type/composite-type/changes/composite-type.comment.d.ts +53 -0
- package/dist/core/objects/type/composite-type/changes/composite-type.comment.js +108 -0
- package/dist/core/objects/type/composite-type/changes/composite-type.create.d.ts +23 -0
- package/dist/core/objects/type/composite-type/changes/composite-type.create.js +72 -0
- package/dist/core/objects/type/composite-type/changes/composite-type.drop.d.ts +22 -0
- package/dist/core/objects/type/composite-type/changes/composite-type.drop.js +31 -0
- package/dist/core/objects/type/composite-type/changes/composite-type.privilege.d.ts +97 -0
- package/dist/core/objects/type/composite-type/changes/composite-type.privilege.js +131 -0
- package/dist/core/objects/type/composite-type/changes/composite-type.types.d.ts +6 -0
- package/dist/core/objects/type/composite-type/changes/composite-type.types.js +1 -0
- package/dist/core/objects/type/composite-type/composite-type.diff.d.ts +18 -0
- package/dist/core/objects/type/composite-type/composite-type.diff.js +250 -0
- package/dist/core/objects/type/composite-type/composite-type.model.d.ts +148 -0
- package/dist/core/objects/type/composite-type/composite-type.model.js +223 -0
- package/dist/core/objects/type/enum/changes/enum.alter.d.ts +52 -0
- package/dist/core/objects/type/enum/changes/enum.alter.js +60 -0
- package/dist/core/objects/type/enum/changes/enum.base.d.ts +17 -0
- package/dist/core/objects/type/enum/changes/enum.base.js +13 -0
- package/dist/core/objects/type/enum/changes/enum.comment.d.ts +26 -0
- package/dist/core/objects/type/enum/changes/enum.comment.js +47 -0
- package/dist/core/objects/type/enum/changes/enum.create.d.ts +22 -0
- package/dist/core/objects/type/enum/changes/enum.create.js +43 -0
- package/dist/core/objects/type/enum/changes/enum.drop.d.ts +22 -0
- package/dist/core/objects/type/enum/changes/enum.drop.js +28 -0
- package/dist/core/objects/type/enum/changes/enum.privilege.d.ts +97 -0
- package/dist/core/objects/type/enum/changes/enum.privilege.js +131 -0
- package/dist/core/objects/type/enum/changes/enum.types.d.ts +6 -0
- package/dist/core/objects/type/enum/changes/enum.types.js +1 -0
- package/dist/core/objects/type/enum/enum.diff.d.ts +18 -0
- package/dist/core/objects/type/enum/enum.diff.js +268 -0
- package/dist/core/objects/type/enum/enum.model.d.ts +66 -0
- package/dist/core/objects/type/enum/enum.model.js +154 -0
- package/dist/core/objects/type/range/changes/range.alter.d.ts +33 -0
- package/dist/core/objects/type/range/changes/range.alter.js +30 -0
- package/dist/core/objects/type/range/changes/range.base.d.ts +17 -0
- package/dist/core/objects/type/range/changes/range.base.js +13 -0
- package/dist/core/objects/type/range/changes/range.comment.d.ts +26 -0
- package/dist/core/objects/type/range/changes/range.comment.js +47 -0
- package/dist/core/objects/type/range/changes/range.create.d.ts +31 -0
- package/dist/core/objects/type/range/changes/range.create.js +113 -0
- package/dist/core/objects/type/range/changes/range.drop.d.ts +22 -0
- package/dist/core/objects/type/range/changes/range.drop.js +28 -0
- package/dist/core/objects/type/range/changes/range.privilege.d.ts +97 -0
- package/dist/core/objects/type/range/changes/range.privilege.js +131 -0
- package/dist/core/objects/type/range/changes/range.types.d.ts +6 -0
- package/dist/core/objects/type/range/changes/range.types.js +1 -0
- package/dist/core/objects/type/range/range.diff.d.ts +18 -0
- package/dist/core/objects/type/range/range.diff.js +172 -0
- package/dist/core/objects/type/range/range.model.d.ts +81 -0
- package/dist/core/objects/type/range/range.model.js +165 -0
- package/dist/core/objects/type/type.types.d.ts +4 -0
- package/dist/core/objects/type/type.types.js +1 -0
- package/dist/core/objects/utils.d.ts +57 -0
- package/dist/core/objects/utils.js +137 -0
- package/dist/core/objects/view/changes/view.alter.d.ts +62 -0
- package/dist/core/objects/view/changes/view.alter.js +75 -0
- package/dist/core/objects/view/changes/view.base.d.ts +17 -0
- package/dist/core/objects/view/changes/view.base.js +13 -0
- package/dist/core/objects/view/changes/view.comment.d.ts +23 -0
- package/dist/core/objects/view/changes/view.comment.js +46 -0
- package/dist/core/objects/view/changes/view.create.d.ts +27 -0
- package/dist/core/objects/view/changes/view.create.js +57 -0
- package/dist/core/objects/view/changes/view.drop.d.ts +17 -0
- package/dist/core/objects/view/changes/view.drop.js +30 -0
- package/dist/core/objects/view/changes/view.privilege.d.ts +107 -0
- package/dist/core/objects/view/changes/view.privilege.js +150 -0
- package/dist/core/objects/view/changes/view.types.d.ts +6 -0
- package/dist/core/objects/view/changes/view.types.js +1 -0
- package/dist/core/objects/view/view.diff.d.ts +18 -0
- package/dist/core/objects/view/view.diff.js +270 -0
- package/dist/core/objects/view/view.model.d.ts +152 -0
- package/dist/core/objects/view/view.model.js +250 -0
- package/dist/core/plan/apply.d.ts +33 -0
- package/dist/core/plan/apply.js +112 -0
- package/dist/core/plan/create.d.ts +22 -0
- package/dist/core/plan/create.js +228 -0
- package/dist/core/plan/hierarchy.d.ts +19 -0
- package/dist/core/plan/hierarchy.js +488 -0
- package/dist/core/plan/index.d.ts +19 -0
- package/dist/core/plan/index.js +21 -0
- package/dist/core/plan/io.d.ts +12 -0
- package/dist/core/plan/io.js +17 -0
- package/dist/core/plan/risk.d.ts +10 -0
- package/dist/core/plan/risk.js +38 -0
- package/dist/core/plan/serialize.d.ts +26 -0
- package/dist/core/plan/serialize.js +176 -0
- package/dist/core/plan/statements.d.ts +8 -0
- package/dist/core/plan/statements.js +13 -0
- package/dist/core/plan/types.d.ts +153 -0
- package/dist/core/plan/types.js +32 -0
- package/dist/core/postgres-config.d.ts +8 -0
- package/dist/core/postgres-config.js +46 -0
- package/dist/core/sort/custom-constraints.d.ts +9 -0
- package/dist/core/sort/custom-constraints.js +133 -0
- package/dist/core/sort/debug-visualization.d.ts +8 -0
- package/dist/core/sort/debug-visualization.js +145 -0
- package/dist/core/sort/dependency-filter.d.ts +19 -0
- package/dist/core/sort/dependency-filter.js +152 -0
- package/dist/core/sort/graph-builder.d.ts +37 -0
- package/dist/core/sort/graph-builder.js +172 -0
- package/dist/core/sort/graph-utils.d.ts +14 -0
- package/dist/core/sort/graph-utils.js +41 -0
- package/dist/core/sort/logical-sort.d.ts +26 -0
- package/dist/core/sort/logical-sort.js +532 -0
- package/dist/core/sort/sort-changes.d.ts +28 -0
- package/dist/core/sort/sort-changes.js +147 -0
- package/dist/core/sort/topological-sort.d.ts +20 -0
- package/dist/core/sort/topological-sort.js +138 -0
- package/dist/core/sort/types.d.ts +102 -0
- package/dist/core/sort/types.js +1 -0
- package/dist/core/sort/utils.d.ts +23 -0
- package/dist/core/sort/utils.js +51 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/package.json +58 -12
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { quoteLiteral } from "../../base.change.js";
|
|
2
|
+
import { stableId } from "../../utils.js";
|
|
3
|
+
import { CreateEventTriggerChange, DropEventTriggerChange, } from "./event-trigger.base.js";
|
|
4
|
+
export class CreateCommentOnEventTrigger extends CreateEventTriggerChange {
|
|
5
|
+
eventTrigger;
|
|
6
|
+
scope = "comment";
|
|
7
|
+
constructor(props) {
|
|
8
|
+
super();
|
|
9
|
+
this.eventTrigger = props.eventTrigger;
|
|
10
|
+
}
|
|
11
|
+
get creates() {
|
|
12
|
+
return [stableId.comment(this.eventTrigger.stableId)];
|
|
13
|
+
}
|
|
14
|
+
get requires() {
|
|
15
|
+
return [this.eventTrigger.stableId];
|
|
16
|
+
}
|
|
17
|
+
serialize() {
|
|
18
|
+
return [
|
|
19
|
+
"COMMENT ON EVENT TRIGGER",
|
|
20
|
+
this.eventTrigger.name,
|
|
21
|
+
"IS",
|
|
22
|
+
// biome-ignore lint/style/noNonNullAssertion: comment creation implies non-null
|
|
23
|
+
quoteLiteral(this.eventTrigger.comment),
|
|
24
|
+
].join(" ");
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
export class DropCommentOnEventTrigger extends DropEventTriggerChange {
|
|
28
|
+
eventTrigger;
|
|
29
|
+
scope = "comment";
|
|
30
|
+
constructor(props) {
|
|
31
|
+
super();
|
|
32
|
+
this.eventTrigger = props.eventTrigger;
|
|
33
|
+
}
|
|
34
|
+
get drops() {
|
|
35
|
+
return [stableId.comment(this.eventTrigger.stableId)];
|
|
36
|
+
}
|
|
37
|
+
get requires() {
|
|
38
|
+
return [
|
|
39
|
+
stableId.comment(this.eventTrigger.stableId),
|
|
40
|
+
this.eventTrigger.stableId,
|
|
41
|
+
];
|
|
42
|
+
}
|
|
43
|
+
serialize() {
|
|
44
|
+
return ["COMMENT ON EVENT TRIGGER", this.eventTrigger.name, "IS NULL"].join(" ");
|
|
45
|
+
}
|
|
46
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { EventTrigger } from "../event-trigger.model.ts";
|
|
2
|
+
import { CreateEventTriggerChange } from "./event-trigger.base.ts";
|
|
3
|
+
/**
|
|
4
|
+
* Create an event trigger.
|
|
5
|
+
*
|
|
6
|
+
* @see https://www.postgresql.org/docs/17/sql-createeventtrigger.html
|
|
7
|
+
*
|
|
8
|
+
* Synopsis
|
|
9
|
+
* ```sql
|
|
10
|
+
* CREATE EVENT TRIGGER name
|
|
11
|
+
* ON event
|
|
12
|
+
* [ WHEN TAG IN (tag [, ...]) [ AND ... ] ]
|
|
13
|
+
* EXECUTE { FUNCTION | PROCEDURE } function_name()
|
|
14
|
+
* ```
|
|
15
|
+
*/
|
|
16
|
+
export declare class CreateEventTrigger extends CreateEventTriggerChange {
|
|
17
|
+
readonly eventTrigger: EventTrigger;
|
|
18
|
+
readonly scope: "object";
|
|
19
|
+
constructor(props: {
|
|
20
|
+
eventTrigger: EventTrigger;
|
|
21
|
+
});
|
|
22
|
+
get creates(): `eventTrigger:${string}`[];
|
|
23
|
+
get requires(): string[];
|
|
24
|
+
serialize(): string;
|
|
25
|
+
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { quoteLiteral } from "../../base.change.js";
|
|
2
|
+
import { parseProcedureReference, stableId } from "../../utils.js";
|
|
3
|
+
import { CreateEventTriggerChange } from "./event-trigger.base.js";
|
|
4
|
+
/**
|
|
5
|
+
* Create an event trigger.
|
|
6
|
+
*
|
|
7
|
+
* @see https://www.postgresql.org/docs/17/sql-createeventtrigger.html
|
|
8
|
+
*
|
|
9
|
+
* Synopsis
|
|
10
|
+
* ```sql
|
|
11
|
+
* CREATE EVENT TRIGGER name
|
|
12
|
+
* ON event
|
|
13
|
+
* [ WHEN TAG IN (tag [, ...]) [ AND ... ] ]
|
|
14
|
+
* EXECUTE { FUNCTION | PROCEDURE } function_name()
|
|
15
|
+
* ```
|
|
16
|
+
*/
|
|
17
|
+
export class CreateEventTrigger extends CreateEventTriggerChange {
|
|
18
|
+
eventTrigger;
|
|
19
|
+
scope = "object";
|
|
20
|
+
constructor(props) {
|
|
21
|
+
super();
|
|
22
|
+
this.eventTrigger = props.eventTrigger;
|
|
23
|
+
}
|
|
24
|
+
get creates() {
|
|
25
|
+
return [this.eventTrigger.stableId];
|
|
26
|
+
}
|
|
27
|
+
get requires() {
|
|
28
|
+
const dependencies = new Set();
|
|
29
|
+
// Owner dependency
|
|
30
|
+
dependencies.add(stableId.role(this.eventTrigger.owner));
|
|
31
|
+
// Function dependency
|
|
32
|
+
// Note: Event triggers call functions with no arguments, so we can build the stableId
|
|
33
|
+
const procRef = parseProcedureReference(`${this.eventTrigger.function_schema}.${this.eventTrigger.function_name}()`);
|
|
34
|
+
if (procRef) {
|
|
35
|
+
// Event trigger functions have no arguments, so stableId is procedure:schema.name()
|
|
36
|
+
dependencies.add(stableId.procedure(procRef.schema, procRef.name));
|
|
37
|
+
}
|
|
38
|
+
return Array.from(dependencies);
|
|
39
|
+
}
|
|
40
|
+
serialize() {
|
|
41
|
+
const parts = [
|
|
42
|
+
"CREATE EVENT TRIGGER",
|
|
43
|
+
this.eventTrigger.name,
|
|
44
|
+
"ON",
|
|
45
|
+
this.eventTrigger.event,
|
|
46
|
+
];
|
|
47
|
+
const tags = this.eventTrigger.tags;
|
|
48
|
+
if (tags && tags.length > 0) {
|
|
49
|
+
const tagList = tags.map((tag) => quoteLiteral(tag)).join(", ");
|
|
50
|
+
parts.push("WHEN TAG IN", `(${tagList})`);
|
|
51
|
+
}
|
|
52
|
+
parts.push("EXECUTE FUNCTION", `${this.eventTrigger.function_schema}.${this.eventTrigger.function_name}()`);
|
|
53
|
+
return parts.join(" ");
|
|
54
|
+
}
|
|
55
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { EventTrigger } from "../event-trigger.model.ts";
|
|
2
|
+
import { DropEventTriggerChange } from "./event-trigger.base.ts";
|
|
3
|
+
/**
|
|
4
|
+
* Drop an event trigger.
|
|
5
|
+
*
|
|
6
|
+
* @see https://www.postgresql.org/docs/17/sql-dropeventtrigger.html
|
|
7
|
+
*
|
|
8
|
+
* Synopsis
|
|
9
|
+
* ```sql
|
|
10
|
+
* DROP EVENT TRIGGER [ IF EXISTS ] name [ CASCADE | RESTRICT ]
|
|
11
|
+
* ```
|
|
12
|
+
*/
|
|
13
|
+
export declare class DropEventTrigger extends DropEventTriggerChange {
|
|
14
|
+
readonly eventTrigger: EventTrigger;
|
|
15
|
+
readonly scope: "object";
|
|
16
|
+
constructor(props: {
|
|
17
|
+
eventTrigger: EventTrigger;
|
|
18
|
+
});
|
|
19
|
+
get drops(): `eventTrigger:${string}`[];
|
|
20
|
+
get requires(): `eventTrigger:${string}`[];
|
|
21
|
+
serialize(): string;
|
|
22
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { DropEventTriggerChange } from "./event-trigger.base.js";
|
|
2
|
+
/**
|
|
3
|
+
* Drop an event trigger.
|
|
4
|
+
*
|
|
5
|
+
* @see https://www.postgresql.org/docs/17/sql-dropeventtrigger.html
|
|
6
|
+
*
|
|
7
|
+
* Synopsis
|
|
8
|
+
* ```sql
|
|
9
|
+
* DROP EVENT TRIGGER [ IF EXISTS ] name [ CASCADE | RESTRICT ]
|
|
10
|
+
* ```
|
|
11
|
+
*/
|
|
12
|
+
export class DropEventTrigger extends DropEventTriggerChange {
|
|
13
|
+
eventTrigger;
|
|
14
|
+
scope = "object";
|
|
15
|
+
constructor(props) {
|
|
16
|
+
super();
|
|
17
|
+
this.eventTrigger = props.eventTrigger;
|
|
18
|
+
}
|
|
19
|
+
get drops() {
|
|
20
|
+
return [this.eventTrigger.stableId];
|
|
21
|
+
}
|
|
22
|
+
get requires() {
|
|
23
|
+
return [this.eventTrigger.stableId];
|
|
24
|
+
}
|
|
25
|
+
serialize() {
|
|
26
|
+
return ["DROP EVENT TRIGGER", this.eventTrigger.name].join(" ");
|
|
27
|
+
}
|
|
28
|
+
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { AlterEventTrigger } from "./event-trigger.alter.ts";
|
|
2
|
+
import type { CommentEventTrigger } from "./event-trigger.comment.ts";
|
|
3
|
+
import type { CreateEventTrigger } from "./event-trigger.create.ts";
|
|
4
|
+
import type { DropEventTrigger } from "./event-trigger.drop.ts";
|
|
5
|
+
export type EventTriggerChange = AlterEventTrigger | CommentEventTrigger | CreateEventTrigger | DropEventTrigger;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { EventTriggerChange } from "./changes/event-trigger.types.ts";
|
|
2
|
+
import type { EventTrigger } from "./event-trigger.model.ts";
|
|
3
|
+
/**
|
|
4
|
+
* Diff two sets of event triggers from main and branch catalogs.
|
|
5
|
+
*
|
|
6
|
+
* @param ctx - Context containing currentUser
|
|
7
|
+
* @param main - The event triggers in the main catalog.
|
|
8
|
+
* @param branch - The event triggers in the branch catalog.
|
|
9
|
+
* @returns A list of changes to apply to main to make it match branch.
|
|
10
|
+
*/
|
|
11
|
+
export declare function diffEventTriggers(ctx: {
|
|
12
|
+
currentUser: string;
|
|
13
|
+
}, main: Record<string, EventTrigger>, branch: Record<string, EventTrigger>): EventTriggerChange[];
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { diffObjects } from "../base.diff.js";
|
|
2
|
+
import { deepEqual, hasNonAlterableChanges } from "../utils.js";
|
|
3
|
+
import { AlterEventTriggerChangeOwner, AlterEventTriggerSetEnabled, } from "./changes/event-trigger.alter.js";
|
|
4
|
+
import { CreateCommentOnEventTrigger, DropCommentOnEventTrigger, } from "./changes/event-trigger.comment.js";
|
|
5
|
+
import { CreateEventTrigger } from "./changes/event-trigger.create.js";
|
|
6
|
+
import { DropEventTrigger } from "./changes/event-trigger.drop.js";
|
|
7
|
+
/**
|
|
8
|
+
* Diff two sets of event triggers from main and branch catalogs.
|
|
9
|
+
*
|
|
10
|
+
* @param ctx - Context containing currentUser
|
|
11
|
+
* @param main - The event triggers in the main catalog.
|
|
12
|
+
* @param branch - The event triggers in the branch catalog.
|
|
13
|
+
* @returns A list of changes to apply to main to make it match branch.
|
|
14
|
+
*/
|
|
15
|
+
export function diffEventTriggers(ctx, main, branch) {
|
|
16
|
+
const { created, dropped, altered } = diffObjects(main, branch);
|
|
17
|
+
const changes = [];
|
|
18
|
+
for (const eventTriggerId of created) {
|
|
19
|
+
const eventTrigger = branch[eventTriggerId];
|
|
20
|
+
changes.push(new CreateEventTrigger({ eventTrigger }));
|
|
21
|
+
// OWNER: If the event trigger should be owned by someone other than the current user,
|
|
22
|
+
// emit ALTER EVENT TRIGGER ... OWNER TO after creation
|
|
23
|
+
if (eventTrigger.owner !== ctx.currentUser) {
|
|
24
|
+
changes.push(new AlterEventTriggerChangeOwner({
|
|
25
|
+
eventTrigger,
|
|
26
|
+
owner: eventTrigger.owner,
|
|
27
|
+
}));
|
|
28
|
+
}
|
|
29
|
+
if (eventTrigger.comment !== null) {
|
|
30
|
+
changes.push(new CreateCommentOnEventTrigger({ eventTrigger }));
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
for (const eventTriggerId of dropped) {
|
|
34
|
+
changes.push(new DropEventTrigger({ eventTrigger: main[eventTriggerId] }));
|
|
35
|
+
}
|
|
36
|
+
for (const eventTriggerId of altered) {
|
|
37
|
+
const mainEventTrigger = main[eventTriggerId];
|
|
38
|
+
const branchEventTrigger = branch[eventTriggerId];
|
|
39
|
+
const NON_ALTERABLE_FIELDS = [
|
|
40
|
+
"event",
|
|
41
|
+
"function_schema",
|
|
42
|
+
"function_name",
|
|
43
|
+
"tags",
|
|
44
|
+
];
|
|
45
|
+
const shouldReplace = hasNonAlterableChanges(mainEventTrigger, branchEventTrigger, NON_ALTERABLE_FIELDS, { tags: deepEqual });
|
|
46
|
+
if (shouldReplace) {
|
|
47
|
+
changes.push(new DropEventTrigger({ eventTrigger: mainEventTrigger }), new CreateEventTrigger({ eventTrigger: branchEventTrigger }));
|
|
48
|
+
if (branchEventTrigger.comment !== null) {
|
|
49
|
+
changes.push(new CreateCommentOnEventTrigger({
|
|
50
|
+
eventTrigger: branchEventTrigger,
|
|
51
|
+
}));
|
|
52
|
+
}
|
|
53
|
+
continue;
|
|
54
|
+
}
|
|
55
|
+
if (mainEventTrigger.enabled !== branchEventTrigger.enabled) {
|
|
56
|
+
changes.push(new AlterEventTriggerSetEnabled({
|
|
57
|
+
eventTrigger: mainEventTrigger,
|
|
58
|
+
enabled: branchEventTrigger.enabled,
|
|
59
|
+
}));
|
|
60
|
+
}
|
|
61
|
+
if (mainEventTrigger.owner !== branchEventTrigger.owner) {
|
|
62
|
+
changes.push(new AlterEventTriggerChangeOwner({
|
|
63
|
+
eventTrigger: mainEventTrigger,
|
|
64
|
+
owner: branchEventTrigger.owner,
|
|
65
|
+
}));
|
|
66
|
+
}
|
|
67
|
+
if (mainEventTrigger.comment !== branchEventTrigger.comment) {
|
|
68
|
+
if (branchEventTrigger.comment === null) {
|
|
69
|
+
changes.push(new DropCommentOnEventTrigger({
|
|
70
|
+
eventTrigger: mainEventTrigger,
|
|
71
|
+
}));
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
changes.push(new CreateCommentOnEventTrigger({
|
|
75
|
+
eventTrigger: branchEventTrigger,
|
|
76
|
+
}));
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
return changes;
|
|
81
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import type { Sql } from "postgres";
|
|
2
|
+
import z from "zod";
|
|
3
|
+
import { BasePgModel } from "../base.model.ts";
|
|
4
|
+
declare const eventTriggerPropsSchema: z.ZodObject<{
|
|
5
|
+
name: z.ZodString;
|
|
6
|
+
event: z.ZodString;
|
|
7
|
+
function_schema: z.ZodString;
|
|
8
|
+
function_name: z.ZodString;
|
|
9
|
+
enabled: z.ZodEnum<{
|
|
10
|
+
O: "O";
|
|
11
|
+
D: "D";
|
|
12
|
+
R: "R";
|
|
13
|
+
A: "A";
|
|
14
|
+
}>;
|
|
15
|
+
tags: z.ZodNullable<z.ZodArray<z.ZodString>>;
|
|
16
|
+
owner: z.ZodString;
|
|
17
|
+
comment: z.ZodNullable<z.ZodString>;
|
|
18
|
+
}, z.z.core.$strip>;
|
|
19
|
+
export type EventTriggerProps = z.infer<typeof eventTriggerPropsSchema>;
|
|
20
|
+
export declare class EventTrigger extends BasePgModel {
|
|
21
|
+
readonly name: EventTriggerProps["name"];
|
|
22
|
+
readonly event: EventTriggerProps["event"];
|
|
23
|
+
readonly function_schema: EventTriggerProps["function_schema"];
|
|
24
|
+
readonly function_name: EventTriggerProps["function_name"];
|
|
25
|
+
readonly enabled: EventTriggerProps["enabled"];
|
|
26
|
+
readonly tags: EventTriggerProps["tags"];
|
|
27
|
+
readonly owner: EventTriggerProps["owner"];
|
|
28
|
+
readonly comment: EventTriggerProps["comment"];
|
|
29
|
+
constructor(props: EventTriggerProps);
|
|
30
|
+
get stableId(): `eventTrigger:${string}`;
|
|
31
|
+
get identityFields(): {
|
|
32
|
+
name: string;
|
|
33
|
+
};
|
|
34
|
+
get dataFields(): {
|
|
35
|
+
event: string;
|
|
36
|
+
function_schema: string;
|
|
37
|
+
function_name: string;
|
|
38
|
+
enabled: "O" | "D" | "R" | "A";
|
|
39
|
+
tags: string[] | null;
|
|
40
|
+
owner: string;
|
|
41
|
+
comment: string | null;
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
export declare function extractEventTriggers(sql: Sql): Promise<EventTrigger[]>;
|
|
45
|
+
export {};
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import z from "zod";
|
|
2
|
+
import { BasePgModel } from "../base.model.js";
|
|
3
|
+
const EventTriggerEnabledSchema = z.enum([
|
|
4
|
+
"O", // ORIGIN - trigger fires in origin mode
|
|
5
|
+
"D", // DISABLED - trigger does not fire
|
|
6
|
+
"R", // REPLICA - trigger fires only in replica session
|
|
7
|
+
"A", // ALWAYS - trigger fires regardless of replication mode
|
|
8
|
+
]);
|
|
9
|
+
const eventTriggerPropsSchema = z.object({
|
|
10
|
+
name: z.string(),
|
|
11
|
+
event: z.string(),
|
|
12
|
+
function_schema: z.string(),
|
|
13
|
+
function_name: z.string(),
|
|
14
|
+
enabled: EventTriggerEnabledSchema,
|
|
15
|
+
tags: z.array(z.string()).nullable(),
|
|
16
|
+
owner: z.string(),
|
|
17
|
+
comment: z.string().nullable(),
|
|
18
|
+
});
|
|
19
|
+
export class EventTrigger extends BasePgModel {
|
|
20
|
+
name;
|
|
21
|
+
event;
|
|
22
|
+
function_schema;
|
|
23
|
+
function_name;
|
|
24
|
+
enabled;
|
|
25
|
+
tags;
|
|
26
|
+
owner;
|
|
27
|
+
comment;
|
|
28
|
+
constructor(props) {
|
|
29
|
+
super();
|
|
30
|
+
// Identity fields
|
|
31
|
+
this.name = props.name;
|
|
32
|
+
// Data fields
|
|
33
|
+
this.event = props.event;
|
|
34
|
+
this.function_schema = props.function_schema;
|
|
35
|
+
this.function_name = props.function_name;
|
|
36
|
+
this.enabled = props.enabled;
|
|
37
|
+
this.tags = props.tags;
|
|
38
|
+
this.owner = props.owner;
|
|
39
|
+
this.comment = props.comment;
|
|
40
|
+
}
|
|
41
|
+
get stableId() {
|
|
42
|
+
return `eventTrigger:${this.name}`;
|
|
43
|
+
}
|
|
44
|
+
get identityFields() {
|
|
45
|
+
return {
|
|
46
|
+
name: this.name,
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
get dataFields() {
|
|
50
|
+
return {
|
|
51
|
+
event: this.event,
|
|
52
|
+
function_schema: this.function_schema,
|
|
53
|
+
function_name: this.function_name,
|
|
54
|
+
enabled: this.enabled,
|
|
55
|
+
tags: this.tags,
|
|
56
|
+
owner: this.owner,
|
|
57
|
+
comment: this.comment,
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
export async function extractEventTriggers(sql) {
|
|
62
|
+
return sql.begin(async (sql) => {
|
|
63
|
+
await sql `set search_path = ''`;
|
|
64
|
+
const rows = await sql `
|
|
65
|
+
with extension_oids as (
|
|
66
|
+
select objid
|
|
67
|
+
from pg_depend d
|
|
68
|
+
where d.refclassid = 'pg_extension'::regclass
|
|
69
|
+
and d.classid = 'pg_event_trigger'::regclass
|
|
70
|
+
)
|
|
71
|
+
select
|
|
72
|
+
quote_ident(et.evtname) as name,
|
|
73
|
+
et.evtevent as event,
|
|
74
|
+
p.pronamespace::regnamespace::text as function_schema,
|
|
75
|
+
quote_ident(p.proname) as function_name,
|
|
76
|
+
et.evtenabled as enabled,
|
|
77
|
+
et.evttags as tags,
|
|
78
|
+
et.evtowner::regrole::text as owner,
|
|
79
|
+
obj_description(et.oid, 'pg_event_trigger') as comment
|
|
80
|
+
from pg_catalog.pg_event_trigger et
|
|
81
|
+
join pg_catalog.pg_proc p on p.oid = et.evtfoid
|
|
82
|
+
left join extension_oids e on e.objid = et.oid
|
|
83
|
+
where e.objid is null
|
|
84
|
+
order by 1;
|
|
85
|
+
`;
|
|
86
|
+
const validatedRows = rows.map((row) => eventTriggerPropsSchema.parse(row));
|
|
87
|
+
return validatedRows.map((row) => new EventTrigger(row));
|
|
88
|
+
});
|
|
89
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import type { Extension } from "../extension.model.ts";
|
|
2
|
+
import { AlterExtensionChange } from "./extension.base.ts";
|
|
3
|
+
/**
|
|
4
|
+
* Alter an extension.
|
|
5
|
+
*
|
|
6
|
+
* @see https://www.postgresql.org/docs/17/sql-alterextension.html
|
|
7
|
+
*
|
|
8
|
+
* Synopsis
|
|
9
|
+
* ```sql
|
|
10
|
+
* ALTER EXTENSION name UPDATE [ TO new_version ]
|
|
11
|
+
* ALTER EXTENSION name SET SCHEMA new_schema
|
|
12
|
+
* ALTER EXTENSION name ADD member_object
|
|
13
|
+
* ALTER EXTENSION name DROP member_object
|
|
14
|
+
* ```
|
|
15
|
+
*/
|
|
16
|
+
export type AlterExtension = AlterExtensionSetSchema | AlterExtensionUpdateVersion;
|
|
17
|
+
/**
|
|
18
|
+
* ALTER EXTENSION ... UPDATE TO ...
|
|
19
|
+
*/
|
|
20
|
+
export declare class AlterExtensionUpdateVersion extends AlterExtensionChange {
|
|
21
|
+
readonly extension: Extension;
|
|
22
|
+
readonly version: string;
|
|
23
|
+
readonly scope: "object";
|
|
24
|
+
constructor(props: {
|
|
25
|
+
extension: Extension;
|
|
26
|
+
version: string;
|
|
27
|
+
});
|
|
28
|
+
get requires(): `extension:${string}`[];
|
|
29
|
+
serialize(): string;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* ALTER EXTENSION ... SET SCHEMA ...
|
|
33
|
+
*/
|
|
34
|
+
export declare class AlterExtensionSetSchema extends AlterExtensionChange {
|
|
35
|
+
readonly extension: Extension;
|
|
36
|
+
readonly schema: string;
|
|
37
|
+
readonly scope: "object";
|
|
38
|
+
constructor(props: {
|
|
39
|
+
extension: Extension;
|
|
40
|
+
schema: string;
|
|
41
|
+
});
|
|
42
|
+
get requires(): (`schema:${string}` | `extension:${string}`)[];
|
|
43
|
+
serialize(): string;
|
|
44
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { quoteLiteral } from "../../base.change.js";
|
|
2
|
+
import { stableId } from "../../utils.js";
|
|
3
|
+
import { AlterExtensionChange } from "./extension.base.js";
|
|
4
|
+
/**
|
|
5
|
+
* ALTER EXTENSION ... UPDATE TO ...
|
|
6
|
+
*/
|
|
7
|
+
export class AlterExtensionUpdateVersion extends AlterExtensionChange {
|
|
8
|
+
extension;
|
|
9
|
+
version;
|
|
10
|
+
scope = "object";
|
|
11
|
+
constructor(props) {
|
|
12
|
+
super();
|
|
13
|
+
this.extension = props.extension;
|
|
14
|
+
this.version = props.version;
|
|
15
|
+
}
|
|
16
|
+
get requires() {
|
|
17
|
+
return [this.extension.stableId];
|
|
18
|
+
}
|
|
19
|
+
serialize() {
|
|
20
|
+
return [
|
|
21
|
+
"ALTER EXTENSION",
|
|
22
|
+
this.extension.name,
|
|
23
|
+
"UPDATE TO",
|
|
24
|
+
quoteLiteral(this.version),
|
|
25
|
+
].join(" ");
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* ALTER EXTENSION ... SET SCHEMA ...
|
|
30
|
+
*/
|
|
31
|
+
export class AlterExtensionSetSchema extends AlterExtensionChange {
|
|
32
|
+
extension;
|
|
33
|
+
schema;
|
|
34
|
+
scope = "object";
|
|
35
|
+
constructor(props) {
|
|
36
|
+
super();
|
|
37
|
+
this.extension = props.extension;
|
|
38
|
+
this.schema = props.schema;
|
|
39
|
+
}
|
|
40
|
+
get requires() {
|
|
41
|
+
return [this.extension.stableId, stableId.schema(this.schema)];
|
|
42
|
+
}
|
|
43
|
+
serialize() {
|
|
44
|
+
return [
|
|
45
|
+
"ALTER EXTENSION",
|
|
46
|
+
this.extension.name,
|
|
47
|
+
"SET SCHEMA",
|
|
48
|
+
this.schema,
|
|
49
|
+
].join(" ");
|
|
50
|
+
}
|
|
51
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { BaseChange } from "../../base.change.ts";
|
|
2
|
+
import type { Extension } from "../extension.model.ts";
|
|
3
|
+
declare abstract class BaseExtensionChange extends BaseChange {
|
|
4
|
+
abstract readonly extension: Extension;
|
|
5
|
+
abstract readonly scope: "object" | "comment";
|
|
6
|
+
readonly objectType: "extension";
|
|
7
|
+
}
|
|
8
|
+
export declare abstract class CreateExtensionChange extends BaseExtensionChange {
|
|
9
|
+
readonly operation: "create";
|
|
10
|
+
}
|
|
11
|
+
export declare abstract class AlterExtensionChange extends BaseExtensionChange {
|
|
12
|
+
readonly operation: "alter";
|
|
13
|
+
}
|
|
14
|
+
export declare abstract class DropExtensionChange extends BaseExtensionChange {
|
|
15
|
+
readonly operation: "drop";
|
|
16
|
+
}
|
|
17
|
+
export {};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { BaseChange } from "../../base.change.js";
|
|
2
|
+
class BaseExtensionChange extends BaseChange {
|
|
3
|
+
objectType = "extension";
|
|
4
|
+
}
|
|
5
|
+
export class CreateExtensionChange extends BaseExtensionChange {
|
|
6
|
+
operation = "create";
|
|
7
|
+
}
|
|
8
|
+
export class AlterExtensionChange extends BaseExtensionChange {
|
|
9
|
+
operation = "alter";
|
|
10
|
+
}
|
|
11
|
+
export class DropExtensionChange extends BaseExtensionChange {
|
|
12
|
+
operation = "drop";
|
|
13
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { Extension } from "../extension.model.ts";
|
|
2
|
+
import { CreateExtensionChange, DropExtensionChange } from "./extension.base.ts";
|
|
3
|
+
export type CommentExtension = CreateCommentOnExtension | DropCommentOnExtension;
|
|
4
|
+
/**
|
|
5
|
+
* Create/drop comments on extensions.
|
|
6
|
+
*/
|
|
7
|
+
export declare class CreateCommentOnExtension extends CreateExtensionChange {
|
|
8
|
+
readonly extension: Extension;
|
|
9
|
+
readonly scope: "comment";
|
|
10
|
+
constructor(props: {
|
|
11
|
+
extension: Extension;
|
|
12
|
+
});
|
|
13
|
+
get creates(): `comment:${string}`[];
|
|
14
|
+
get requires(): `extension:${string}`[];
|
|
15
|
+
serialize(): string;
|
|
16
|
+
}
|
|
17
|
+
export declare class DropCommentOnExtension extends DropExtensionChange {
|
|
18
|
+
readonly extension: Extension;
|
|
19
|
+
readonly scope: "comment";
|
|
20
|
+
constructor(props: {
|
|
21
|
+
extension: Extension;
|
|
22
|
+
});
|
|
23
|
+
get drops(): `comment:${string}`[];
|
|
24
|
+
get requires(): (`comment:${string}` | `extension:${string}`)[];
|
|
25
|
+
serialize(): string;
|
|
26
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { quoteLiteral } from "../../base.change.js";
|
|
2
|
+
import { stableId } from "../../utils.js";
|
|
3
|
+
import { CreateExtensionChange, DropExtensionChange, } from "./extension.base.js";
|
|
4
|
+
/**
|
|
5
|
+
* Create/drop comments on extensions.
|
|
6
|
+
*/
|
|
7
|
+
export class CreateCommentOnExtension extends CreateExtensionChange {
|
|
8
|
+
extension;
|
|
9
|
+
scope = "comment";
|
|
10
|
+
constructor(props) {
|
|
11
|
+
super();
|
|
12
|
+
this.extension = props.extension;
|
|
13
|
+
}
|
|
14
|
+
get creates() {
|
|
15
|
+
return [stableId.comment(this.extension.stableId)];
|
|
16
|
+
}
|
|
17
|
+
get requires() {
|
|
18
|
+
return [this.extension.stableId];
|
|
19
|
+
}
|
|
20
|
+
serialize() {
|
|
21
|
+
return [
|
|
22
|
+
"COMMENT ON EXTENSION",
|
|
23
|
+
this.extension.name,
|
|
24
|
+
"IS",
|
|
25
|
+
// biome-ignore lint/style/noNonNullAssertion: extension comment is not nullable here
|
|
26
|
+
quoteLiteral(this.extension.comment),
|
|
27
|
+
].join(" ");
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
export class DropCommentOnExtension extends DropExtensionChange {
|
|
31
|
+
extension;
|
|
32
|
+
scope = "comment";
|
|
33
|
+
constructor(props) {
|
|
34
|
+
super();
|
|
35
|
+
this.extension = props.extension;
|
|
36
|
+
}
|
|
37
|
+
get drops() {
|
|
38
|
+
return [stableId.comment(this.extension.stableId)];
|
|
39
|
+
}
|
|
40
|
+
get requires() {
|
|
41
|
+
return [stableId.comment(this.extension.stableId), this.extension.stableId];
|
|
42
|
+
}
|
|
43
|
+
serialize() {
|
|
44
|
+
return ["COMMENT ON EXTENSION", this.extension.name, "IS NULL"].join(" ");
|
|
45
|
+
}
|
|
46
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { Extension } from "../extension.model.ts";
|
|
2
|
+
import { CreateExtensionChange } from "./extension.base.ts";
|
|
3
|
+
/**
|
|
4
|
+
* Create an extension.
|
|
5
|
+
*
|
|
6
|
+
* @see https://www.postgresql.org/docs/17/sql-createextension.html
|
|
7
|
+
*
|
|
8
|
+
* Synopsis
|
|
9
|
+
* ```sql
|
|
10
|
+
* CREATE EXTENSION [ IF NOT EXISTS ] extension_name
|
|
11
|
+
* [ WITH ] [ SCHEMA schema_name ]
|
|
12
|
+
* [ VERSION version ]
|
|
13
|
+
* [ CASCADE ]
|
|
14
|
+
* ```
|
|
15
|
+
*/
|
|
16
|
+
export declare class CreateExtension extends CreateExtensionChange {
|
|
17
|
+
readonly extension: Extension;
|
|
18
|
+
readonly scope: "object";
|
|
19
|
+
constructor(props: {
|
|
20
|
+
extension: Extension;
|
|
21
|
+
});
|
|
22
|
+
get creates(): string[];
|
|
23
|
+
get requires(): string[];
|
|
24
|
+
serialize(): string;
|
|
25
|
+
}
|