@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
package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/foreign-data-wrapper.model.d.ts
ADDED
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import type { Sql } from "postgres";
|
|
2
|
+
import z from "zod";
|
|
3
|
+
import { BasePgModel } from "../../base.model.ts";
|
|
4
|
+
import { type PrivilegeProps } from "../../base.privilege-diff.ts";
|
|
5
|
+
/**
|
|
6
|
+
* All properties exposed by CREATE FOREIGN DATA WRAPPER statement are included in diff output.
|
|
7
|
+
* https://www.postgresql.org/docs/17/sql-createforeigndatawrapper.html
|
|
8
|
+
*
|
|
9
|
+
* ALTER FOREIGN DATA WRAPPER statement can be generated for changes to the following properties:
|
|
10
|
+
* - owner, handler, validator, options
|
|
11
|
+
* https://www.postgresql.org/docs/17/sql-alterforeigndatawrapper.html
|
|
12
|
+
*
|
|
13
|
+
* Foreign Data Wrappers are not schema-qualified (no schema property).
|
|
14
|
+
*/
|
|
15
|
+
declare const foreignDataWrapperPropsSchema: z.ZodObject<{
|
|
16
|
+
name: z.ZodString;
|
|
17
|
+
owner: z.ZodString;
|
|
18
|
+
handler: z.ZodNullable<z.ZodString>;
|
|
19
|
+
validator: z.ZodNullable<z.ZodString>;
|
|
20
|
+
options: z.ZodNullable<z.ZodArray<z.ZodString>>;
|
|
21
|
+
comment: z.ZodNullable<z.ZodString>;
|
|
22
|
+
privileges: z.ZodArray<z.ZodObject<{
|
|
23
|
+
grantee: z.ZodString;
|
|
24
|
+
privilege: z.ZodString;
|
|
25
|
+
grantable: z.ZodBoolean;
|
|
26
|
+
columns: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodString>>>;
|
|
27
|
+
}, z.z.core.$strip>>;
|
|
28
|
+
}, z.z.core.$strip>;
|
|
29
|
+
type ForeignDataWrapperPrivilegeProps = PrivilegeProps;
|
|
30
|
+
export type ForeignDataWrapperProps = z.infer<typeof foreignDataWrapperPropsSchema>;
|
|
31
|
+
export declare class ForeignDataWrapper extends BasePgModel {
|
|
32
|
+
readonly name: ForeignDataWrapperProps["name"];
|
|
33
|
+
readonly owner: ForeignDataWrapperProps["owner"];
|
|
34
|
+
readonly handler: ForeignDataWrapperProps["handler"];
|
|
35
|
+
readonly validator: ForeignDataWrapperProps["validator"];
|
|
36
|
+
readonly options: ForeignDataWrapperProps["options"];
|
|
37
|
+
readonly comment: ForeignDataWrapperProps["comment"];
|
|
38
|
+
readonly privileges: ForeignDataWrapperPrivilegeProps[];
|
|
39
|
+
constructor(props: ForeignDataWrapperProps);
|
|
40
|
+
get stableId(): `foreignDataWrapper:${string}`;
|
|
41
|
+
get identityFields(): {
|
|
42
|
+
name: string;
|
|
43
|
+
};
|
|
44
|
+
get dataFields(): {
|
|
45
|
+
owner: string;
|
|
46
|
+
handler: string | null;
|
|
47
|
+
validator: string | null;
|
|
48
|
+
options: string[] | null;
|
|
49
|
+
comment: string | null;
|
|
50
|
+
privileges: {
|
|
51
|
+
grantee: string;
|
|
52
|
+
privilege: string;
|
|
53
|
+
grantable: boolean;
|
|
54
|
+
columns?: string[] | null | undefined;
|
|
55
|
+
}[];
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
export declare function extractForeignDataWrappers(sql: Sql): Promise<ForeignDataWrapper[]>;
|
|
59
|
+
export {};
|
package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/foreign-data-wrapper.model.js
ADDED
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
import z from "zod";
|
|
2
|
+
import { BasePgModel } from "../../base.model.js";
|
|
3
|
+
import { privilegePropsSchema, } from "../../base.privilege-diff.js";
|
|
4
|
+
/**
|
|
5
|
+
* All properties exposed by CREATE FOREIGN DATA WRAPPER statement are included in diff output.
|
|
6
|
+
* https://www.postgresql.org/docs/17/sql-createforeigndatawrapper.html
|
|
7
|
+
*
|
|
8
|
+
* ALTER FOREIGN DATA WRAPPER statement can be generated for changes to the following properties:
|
|
9
|
+
* - owner, handler, validator, options
|
|
10
|
+
* https://www.postgresql.org/docs/17/sql-alterforeigndatawrapper.html
|
|
11
|
+
*
|
|
12
|
+
* Foreign Data Wrappers are not schema-qualified (no schema property).
|
|
13
|
+
*/
|
|
14
|
+
const foreignDataWrapperPropsSchema = z.object({
|
|
15
|
+
name: z.string(),
|
|
16
|
+
owner: z.string(),
|
|
17
|
+
handler: z.string().nullable(),
|
|
18
|
+
validator: z.string().nullable(),
|
|
19
|
+
options: z.array(z.string()).nullable(),
|
|
20
|
+
comment: z.string().nullable(),
|
|
21
|
+
privileges: z.array(privilegePropsSchema),
|
|
22
|
+
});
|
|
23
|
+
export class ForeignDataWrapper extends BasePgModel {
|
|
24
|
+
name;
|
|
25
|
+
owner;
|
|
26
|
+
handler;
|
|
27
|
+
validator;
|
|
28
|
+
options;
|
|
29
|
+
comment;
|
|
30
|
+
privileges;
|
|
31
|
+
constructor(props) {
|
|
32
|
+
super();
|
|
33
|
+
// Identity fields
|
|
34
|
+
this.name = props.name;
|
|
35
|
+
// Data fields
|
|
36
|
+
this.owner = props.owner;
|
|
37
|
+
this.handler = props.handler;
|
|
38
|
+
this.validator = props.validator;
|
|
39
|
+
this.options = props.options;
|
|
40
|
+
this.comment = props.comment;
|
|
41
|
+
this.privileges = props.privileges;
|
|
42
|
+
}
|
|
43
|
+
get stableId() {
|
|
44
|
+
return `foreignDataWrapper:${this.name}`;
|
|
45
|
+
}
|
|
46
|
+
get identityFields() {
|
|
47
|
+
return {
|
|
48
|
+
name: this.name,
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
get dataFields() {
|
|
52
|
+
return {
|
|
53
|
+
owner: this.owner,
|
|
54
|
+
handler: this.handler,
|
|
55
|
+
validator: this.validator,
|
|
56
|
+
options: this.options,
|
|
57
|
+
comment: this.comment,
|
|
58
|
+
privileges: this.privileges,
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
export async function extractForeignDataWrappers(sql) {
|
|
63
|
+
return sql.begin(async (sql) => {
|
|
64
|
+
await sql `set search_path = ''`;
|
|
65
|
+
const fdwRows = await sql `
|
|
66
|
+
with extension_oids as (
|
|
67
|
+
select objid
|
|
68
|
+
from pg_depend d
|
|
69
|
+
where d.refclassid = 'pg_extension'::regclass
|
|
70
|
+
and d.classid = 'pg_foreign_data_wrapper'::regclass
|
|
71
|
+
)
|
|
72
|
+
select
|
|
73
|
+
quote_ident(fdw.fdwname) as name,
|
|
74
|
+
fdw.fdwowner::regrole::text as owner,
|
|
75
|
+
case
|
|
76
|
+
when fdw.fdwhandler = 0 then null
|
|
77
|
+
else p_handler.pronamespace::regnamespace::text || '.' || quote_ident(p_handler.proname) || '(' || pg_get_function_identity_arguments(fdw.fdwhandler) || ')'
|
|
78
|
+
end as handler,
|
|
79
|
+
case
|
|
80
|
+
when fdw.fdwvalidator = 0 then null
|
|
81
|
+
else p_validator.pronamespace::regnamespace::text || '.' || quote_ident(p_validator.proname) || '(' || pg_get_function_identity_arguments(fdw.fdwvalidator) || ')'
|
|
82
|
+
end as validator,
|
|
83
|
+
coalesce(fdw.fdwoptions, array[]::text[]) as options,
|
|
84
|
+
obj_description(fdw.oid, 'pg_foreign_data_wrapper') as comment,
|
|
85
|
+
coalesce(
|
|
86
|
+
(
|
|
87
|
+
select json_agg(
|
|
88
|
+
json_build_object(
|
|
89
|
+
'grantee', case when x.grantee = 0 then 'PUBLIC' else x.grantee::regrole::text end,
|
|
90
|
+
'privilege', x.privilege_type,
|
|
91
|
+
'grantable', x.is_grantable
|
|
92
|
+
)
|
|
93
|
+
order by x.grantee, x.privilege_type
|
|
94
|
+
)
|
|
95
|
+
from lateral aclexplode(fdw.fdwacl) as x(grantor, grantee, privilege_type, is_grantable)
|
|
96
|
+
), '[]'
|
|
97
|
+
) as privileges
|
|
98
|
+
from
|
|
99
|
+
pg_catalog.pg_foreign_data_wrapper fdw
|
|
100
|
+
left join pg_catalog.pg_proc p_handler on p_handler.oid = fdw.fdwhandler
|
|
101
|
+
left join pg_catalog.pg_proc p_validator on p_validator.oid = fdw.fdwvalidator
|
|
102
|
+
left join extension_oids e on fdw.oid = e.objid
|
|
103
|
+
where
|
|
104
|
+
not fdw.fdwname like any(array['pg\\_%'])
|
|
105
|
+
and e.objid is null
|
|
106
|
+
order by
|
|
107
|
+
fdw.fdwname;
|
|
108
|
+
`;
|
|
109
|
+
// Validate and parse each row using the Zod schema
|
|
110
|
+
const validatedRows = fdwRows.map((row) => {
|
|
111
|
+
const parsed = foreignDataWrapperPropsSchema.parse(row);
|
|
112
|
+
// Parse options from PostgreSQL format ['key=value'] to ['key', 'value']
|
|
113
|
+
if (parsed.options && parsed.options.length > 0) {
|
|
114
|
+
const parsedOptions = [];
|
|
115
|
+
for (const opt of parsed.options) {
|
|
116
|
+
const eqIndex = opt.indexOf("=");
|
|
117
|
+
if (eqIndex > 0) {
|
|
118
|
+
parsedOptions.push(opt.substring(0, eqIndex));
|
|
119
|
+
parsedOptions.push(opt.substring(eqIndex + 1));
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
parsed.options = parsedOptions.length > 0 ? parsedOptions : null;
|
|
123
|
+
}
|
|
124
|
+
return parsed;
|
|
125
|
+
});
|
|
126
|
+
return validatedRows.map((row) => new ForeignDataWrapper(row));
|
|
127
|
+
});
|
|
128
|
+
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { ForeignDataWrapperChange as FDWChange } from "./foreign-data-wrapper/changes/foreign-data-wrapper.types.ts";
|
|
2
|
+
import type { ForeignTableChange } from "./foreign-table/changes/foreign-table.types.ts";
|
|
3
|
+
import type { ServerChange } from "./server/changes/server.types.ts";
|
|
4
|
+
import type { UserMappingChange } from "./user-mapping/changes/user-mapping.types.ts";
|
|
5
|
+
export type ForeignDataWrapperChange = FDWChange | ServerChange | UserMappingChange | ForeignTableChange;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
import type { ColumnProps } from "../../../base.model.ts";
|
|
2
|
+
import type { ForeignTable } from "../foreign-table.model.ts";
|
|
3
|
+
import { AlterForeignTableChange } from "./foreign-table.base.ts";
|
|
4
|
+
/**
|
|
5
|
+
* Alter a foreign table.
|
|
6
|
+
*
|
|
7
|
+
* @see https://www.postgresql.org/docs/17/sql-alterforeigntable.html
|
|
8
|
+
*
|
|
9
|
+
* Synopsis
|
|
10
|
+
* ```sql
|
|
11
|
+
* ALTER FOREIGN TABLE [ IF EXISTS ] [ ONLY ] name [ * ]
|
|
12
|
+
* action [, ... ]
|
|
13
|
+
* where action is one of:
|
|
14
|
+
* ADD [ COLUMN ] [ IF NOT EXISTS ] column_name data_type [ OPTIONS ( option 'value' [, ... ] ) ] [ COLLATE collation ] [ column_constraint [ ... ] ]
|
|
15
|
+
* DROP [ COLUMN ] [ IF EXISTS ] column_name [ RESTRICT | CASCADE ]
|
|
16
|
+
* ALTER [ COLUMN ] column_name [ SET DATA ] TYPE data_type [ COLLATE collation ]
|
|
17
|
+
* ALTER [ COLUMN ] column_name SET DEFAULT expression
|
|
18
|
+
* ALTER [ COLUMN ] column_name DROP DEFAULT
|
|
19
|
+
* ALTER [ COLUMN ] column_name { SET | DROP } NOT NULL
|
|
20
|
+
* ALTER [ COLUMN ] column_name OPTIONS ( [ ADD | SET | DROP ] option ['value'] [, ... ] )
|
|
21
|
+
* OWNER TO { new_owner | CURRENT_ROLE | CURRENT_USER | SESSION_USER }
|
|
22
|
+
* OPTIONS ( [ ADD | SET | DROP ] option ['value'] [, ... ] )
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
25
|
+
export type AlterForeignTable = AlterForeignTableChangeOwner | AlterForeignTableAddColumn | AlterForeignTableDropColumn | AlterForeignTableAlterColumnType | AlterForeignTableAlterColumnSetDefault | AlterForeignTableAlterColumnDropDefault | AlterForeignTableAlterColumnSetNotNull | AlterForeignTableAlterColumnDropNotNull | AlterForeignTableSetOptions;
|
|
26
|
+
/**
|
|
27
|
+
* ALTER FOREIGN TABLE ... OWNER TO ...
|
|
28
|
+
*/
|
|
29
|
+
export declare class AlterForeignTableChangeOwner extends AlterForeignTableChange {
|
|
30
|
+
readonly foreignTable: ForeignTable;
|
|
31
|
+
readonly owner: string;
|
|
32
|
+
readonly scope: "object";
|
|
33
|
+
constructor(props: {
|
|
34
|
+
foreignTable: ForeignTable;
|
|
35
|
+
owner: string;
|
|
36
|
+
});
|
|
37
|
+
get requires(): (`role:${string}` | `foreignTable:${string}`)[];
|
|
38
|
+
serialize(): string;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* ALTER FOREIGN TABLE ... ADD COLUMN ...
|
|
42
|
+
*/
|
|
43
|
+
export declare class AlterForeignTableAddColumn extends AlterForeignTableChange {
|
|
44
|
+
readonly foreignTable: ForeignTable;
|
|
45
|
+
readonly column: ColumnProps;
|
|
46
|
+
readonly scope: "object";
|
|
47
|
+
constructor(props: {
|
|
48
|
+
foreignTable: ForeignTable;
|
|
49
|
+
column: ColumnProps;
|
|
50
|
+
});
|
|
51
|
+
get requires(): `foreignTable:${string}`[];
|
|
52
|
+
serialize(): string;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* ALTER FOREIGN TABLE ... DROP COLUMN ...
|
|
56
|
+
*/
|
|
57
|
+
export declare class AlterForeignTableDropColumn extends AlterForeignTableChange {
|
|
58
|
+
readonly foreignTable: ForeignTable;
|
|
59
|
+
readonly columnName: string;
|
|
60
|
+
readonly scope: "object";
|
|
61
|
+
constructor(props: {
|
|
62
|
+
foreignTable: ForeignTable;
|
|
63
|
+
columnName: string;
|
|
64
|
+
});
|
|
65
|
+
get requires(): `foreignTable:${string}`[];
|
|
66
|
+
serialize(): string;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* ALTER FOREIGN TABLE ... ALTER COLUMN ... TYPE ...
|
|
70
|
+
*/
|
|
71
|
+
export declare class AlterForeignTableAlterColumnType extends AlterForeignTableChange {
|
|
72
|
+
readonly foreignTable: ForeignTable;
|
|
73
|
+
readonly columnName: string;
|
|
74
|
+
readonly dataType: string;
|
|
75
|
+
readonly scope: "object";
|
|
76
|
+
constructor(props: {
|
|
77
|
+
foreignTable: ForeignTable;
|
|
78
|
+
columnName: string;
|
|
79
|
+
dataType: string;
|
|
80
|
+
});
|
|
81
|
+
get requires(): `foreignTable:${string}`[];
|
|
82
|
+
serialize(): string;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* ALTER FOREIGN TABLE ... ALTER COLUMN ... SET DEFAULT ...
|
|
86
|
+
*/
|
|
87
|
+
export declare class AlterForeignTableAlterColumnSetDefault extends AlterForeignTableChange {
|
|
88
|
+
readonly foreignTable: ForeignTable;
|
|
89
|
+
readonly columnName: string;
|
|
90
|
+
readonly defaultValue: string;
|
|
91
|
+
readonly scope: "object";
|
|
92
|
+
constructor(props: {
|
|
93
|
+
foreignTable: ForeignTable;
|
|
94
|
+
columnName: string;
|
|
95
|
+
defaultValue: string;
|
|
96
|
+
});
|
|
97
|
+
get requires(): `foreignTable:${string}`[];
|
|
98
|
+
serialize(): string;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* ALTER FOREIGN TABLE ... ALTER COLUMN ... DROP DEFAULT
|
|
102
|
+
*/
|
|
103
|
+
export declare class AlterForeignTableAlterColumnDropDefault extends AlterForeignTableChange {
|
|
104
|
+
readonly foreignTable: ForeignTable;
|
|
105
|
+
readonly columnName: string;
|
|
106
|
+
readonly scope: "object";
|
|
107
|
+
constructor(props: {
|
|
108
|
+
foreignTable: ForeignTable;
|
|
109
|
+
columnName: string;
|
|
110
|
+
});
|
|
111
|
+
get requires(): `foreignTable:${string}`[];
|
|
112
|
+
serialize(): string;
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* ALTER FOREIGN TABLE ... ALTER COLUMN ... SET NOT NULL
|
|
116
|
+
*/
|
|
117
|
+
export declare class AlterForeignTableAlterColumnSetNotNull extends AlterForeignTableChange {
|
|
118
|
+
readonly foreignTable: ForeignTable;
|
|
119
|
+
readonly columnName: string;
|
|
120
|
+
readonly scope: "object";
|
|
121
|
+
constructor(props: {
|
|
122
|
+
foreignTable: ForeignTable;
|
|
123
|
+
columnName: string;
|
|
124
|
+
});
|
|
125
|
+
get requires(): `foreignTable:${string}`[];
|
|
126
|
+
serialize(): string;
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* ALTER FOREIGN TABLE ... ALTER COLUMN ... DROP NOT NULL
|
|
130
|
+
*/
|
|
131
|
+
export declare class AlterForeignTableAlterColumnDropNotNull extends AlterForeignTableChange {
|
|
132
|
+
readonly foreignTable: ForeignTable;
|
|
133
|
+
readonly columnName: string;
|
|
134
|
+
readonly scope: "object";
|
|
135
|
+
constructor(props: {
|
|
136
|
+
foreignTable: ForeignTable;
|
|
137
|
+
columnName: string;
|
|
138
|
+
});
|
|
139
|
+
get requires(): `foreignTable:${string}`[];
|
|
140
|
+
serialize(): string;
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* ALTER FOREIGN TABLE ... OPTIONS ( ADD | SET | DROP ... )
|
|
144
|
+
*/
|
|
145
|
+
export declare class AlterForeignTableSetOptions extends AlterForeignTableChange {
|
|
146
|
+
readonly foreignTable: ForeignTable;
|
|
147
|
+
readonly options: Array<{
|
|
148
|
+
action: "ADD" | "SET" | "DROP";
|
|
149
|
+
option: string;
|
|
150
|
+
value?: string;
|
|
151
|
+
}>;
|
|
152
|
+
readonly scope: "object";
|
|
153
|
+
constructor(props: {
|
|
154
|
+
foreignTable: ForeignTable;
|
|
155
|
+
options: Array<{
|
|
156
|
+
action: "ADD" | "SET" | "DROP";
|
|
157
|
+
option: string;
|
|
158
|
+
value?: string;
|
|
159
|
+
}>;
|
|
160
|
+
});
|
|
161
|
+
get requires(): `foreignTable:${string}`[];
|
|
162
|
+
serialize(): string;
|
|
163
|
+
}
|
|
@@ -0,0 +1,248 @@
|
|
|
1
|
+
import { quoteLiteral } from "../../../base.change.js";
|
|
2
|
+
import { stableId } from "../../../utils.js";
|
|
3
|
+
import { AlterForeignTableChange } from "./foreign-table.base.js";
|
|
4
|
+
/**
|
|
5
|
+
* ALTER FOREIGN TABLE ... OWNER TO ...
|
|
6
|
+
*/
|
|
7
|
+
export class AlterForeignTableChangeOwner extends AlterForeignTableChange {
|
|
8
|
+
foreignTable;
|
|
9
|
+
owner;
|
|
10
|
+
scope = "object";
|
|
11
|
+
constructor(props) {
|
|
12
|
+
super();
|
|
13
|
+
this.foreignTable = props.foreignTable;
|
|
14
|
+
this.owner = props.owner;
|
|
15
|
+
}
|
|
16
|
+
get requires() {
|
|
17
|
+
return [this.foreignTable.stableId, stableId.role(this.owner)];
|
|
18
|
+
}
|
|
19
|
+
serialize() {
|
|
20
|
+
return [
|
|
21
|
+
"ALTER FOREIGN TABLE",
|
|
22
|
+
`${this.foreignTable.schema}.${this.foreignTable.name}`,
|
|
23
|
+
"OWNER TO",
|
|
24
|
+
this.owner,
|
|
25
|
+
].join(" ");
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* ALTER FOREIGN TABLE ... ADD COLUMN ...
|
|
30
|
+
*/
|
|
31
|
+
export class AlterForeignTableAddColumn extends AlterForeignTableChange {
|
|
32
|
+
foreignTable;
|
|
33
|
+
column;
|
|
34
|
+
scope = "object";
|
|
35
|
+
constructor(props) {
|
|
36
|
+
super();
|
|
37
|
+
this.foreignTable = props.foreignTable;
|
|
38
|
+
this.column = props.column;
|
|
39
|
+
}
|
|
40
|
+
get requires() {
|
|
41
|
+
return [this.foreignTable.stableId];
|
|
42
|
+
}
|
|
43
|
+
serialize() {
|
|
44
|
+
const parts = [
|
|
45
|
+
"ALTER FOREIGN TABLE",
|
|
46
|
+
`${this.foreignTable.schema}.${this.foreignTable.name}`,
|
|
47
|
+
"ADD COLUMN",
|
|
48
|
+
this.column.name,
|
|
49
|
+
this.column.data_type_str,
|
|
50
|
+
];
|
|
51
|
+
if (this.column.not_null) {
|
|
52
|
+
parts.push("NOT NULL");
|
|
53
|
+
}
|
|
54
|
+
if (this.column.default) {
|
|
55
|
+
parts.push("DEFAULT", this.column.default);
|
|
56
|
+
}
|
|
57
|
+
return parts.join(" ");
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* ALTER FOREIGN TABLE ... DROP COLUMN ...
|
|
62
|
+
*/
|
|
63
|
+
export class AlterForeignTableDropColumn extends AlterForeignTableChange {
|
|
64
|
+
foreignTable;
|
|
65
|
+
columnName;
|
|
66
|
+
scope = "object";
|
|
67
|
+
constructor(props) {
|
|
68
|
+
super();
|
|
69
|
+
this.foreignTable = props.foreignTable;
|
|
70
|
+
this.columnName = props.columnName;
|
|
71
|
+
}
|
|
72
|
+
get requires() {
|
|
73
|
+
return [this.foreignTable.stableId];
|
|
74
|
+
}
|
|
75
|
+
serialize() {
|
|
76
|
+
return [
|
|
77
|
+
"ALTER FOREIGN TABLE",
|
|
78
|
+
`${this.foreignTable.schema}.${this.foreignTable.name}`,
|
|
79
|
+
"DROP COLUMN",
|
|
80
|
+
this.columnName,
|
|
81
|
+
].join(" ");
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* ALTER FOREIGN TABLE ... ALTER COLUMN ... TYPE ...
|
|
86
|
+
*/
|
|
87
|
+
export class AlterForeignTableAlterColumnType extends AlterForeignTableChange {
|
|
88
|
+
foreignTable;
|
|
89
|
+
columnName;
|
|
90
|
+
dataType;
|
|
91
|
+
scope = "object";
|
|
92
|
+
constructor(props) {
|
|
93
|
+
super();
|
|
94
|
+
this.foreignTable = props.foreignTable;
|
|
95
|
+
this.columnName = props.columnName;
|
|
96
|
+
this.dataType = props.dataType;
|
|
97
|
+
}
|
|
98
|
+
get requires() {
|
|
99
|
+
return [this.foreignTable.stableId];
|
|
100
|
+
}
|
|
101
|
+
serialize() {
|
|
102
|
+
return [
|
|
103
|
+
"ALTER FOREIGN TABLE",
|
|
104
|
+
`${this.foreignTable.schema}.${this.foreignTable.name}`,
|
|
105
|
+
"ALTER COLUMN",
|
|
106
|
+
this.columnName,
|
|
107
|
+
"TYPE",
|
|
108
|
+
this.dataType,
|
|
109
|
+
].join(" ");
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* ALTER FOREIGN TABLE ... ALTER COLUMN ... SET DEFAULT ...
|
|
114
|
+
*/
|
|
115
|
+
export class AlterForeignTableAlterColumnSetDefault extends AlterForeignTableChange {
|
|
116
|
+
foreignTable;
|
|
117
|
+
columnName;
|
|
118
|
+
defaultValue;
|
|
119
|
+
scope = "object";
|
|
120
|
+
constructor(props) {
|
|
121
|
+
super();
|
|
122
|
+
this.foreignTable = props.foreignTable;
|
|
123
|
+
this.columnName = props.columnName;
|
|
124
|
+
this.defaultValue = props.defaultValue;
|
|
125
|
+
}
|
|
126
|
+
get requires() {
|
|
127
|
+
return [this.foreignTable.stableId];
|
|
128
|
+
}
|
|
129
|
+
serialize() {
|
|
130
|
+
return [
|
|
131
|
+
"ALTER FOREIGN TABLE",
|
|
132
|
+
`${this.foreignTable.schema}.${this.foreignTable.name}`,
|
|
133
|
+
"ALTER COLUMN",
|
|
134
|
+
this.columnName,
|
|
135
|
+
"SET DEFAULT",
|
|
136
|
+
this.defaultValue,
|
|
137
|
+
].join(" ");
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* ALTER FOREIGN TABLE ... ALTER COLUMN ... DROP DEFAULT
|
|
142
|
+
*/
|
|
143
|
+
export class AlterForeignTableAlterColumnDropDefault extends AlterForeignTableChange {
|
|
144
|
+
foreignTable;
|
|
145
|
+
columnName;
|
|
146
|
+
scope = "object";
|
|
147
|
+
constructor(props) {
|
|
148
|
+
super();
|
|
149
|
+
this.foreignTable = props.foreignTable;
|
|
150
|
+
this.columnName = props.columnName;
|
|
151
|
+
}
|
|
152
|
+
get requires() {
|
|
153
|
+
return [this.foreignTable.stableId];
|
|
154
|
+
}
|
|
155
|
+
serialize() {
|
|
156
|
+
return [
|
|
157
|
+
"ALTER FOREIGN TABLE",
|
|
158
|
+
`${this.foreignTable.schema}.${this.foreignTable.name}`,
|
|
159
|
+
"ALTER COLUMN",
|
|
160
|
+
this.columnName,
|
|
161
|
+
"DROP DEFAULT",
|
|
162
|
+
].join(" ");
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* ALTER FOREIGN TABLE ... ALTER COLUMN ... SET NOT NULL
|
|
167
|
+
*/
|
|
168
|
+
export class AlterForeignTableAlterColumnSetNotNull extends AlterForeignTableChange {
|
|
169
|
+
foreignTable;
|
|
170
|
+
columnName;
|
|
171
|
+
scope = "object";
|
|
172
|
+
constructor(props) {
|
|
173
|
+
super();
|
|
174
|
+
this.foreignTable = props.foreignTable;
|
|
175
|
+
this.columnName = props.columnName;
|
|
176
|
+
}
|
|
177
|
+
get requires() {
|
|
178
|
+
return [this.foreignTable.stableId];
|
|
179
|
+
}
|
|
180
|
+
serialize() {
|
|
181
|
+
return [
|
|
182
|
+
"ALTER FOREIGN TABLE",
|
|
183
|
+
`${this.foreignTable.schema}.${this.foreignTable.name}`,
|
|
184
|
+
"ALTER COLUMN",
|
|
185
|
+
this.columnName,
|
|
186
|
+
"SET NOT NULL",
|
|
187
|
+
].join(" ");
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* ALTER FOREIGN TABLE ... ALTER COLUMN ... DROP NOT NULL
|
|
192
|
+
*/
|
|
193
|
+
export class AlterForeignTableAlterColumnDropNotNull extends AlterForeignTableChange {
|
|
194
|
+
foreignTable;
|
|
195
|
+
columnName;
|
|
196
|
+
scope = "object";
|
|
197
|
+
constructor(props) {
|
|
198
|
+
super();
|
|
199
|
+
this.foreignTable = props.foreignTable;
|
|
200
|
+
this.columnName = props.columnName;
|
|
201
|
+
}
|
|
202
|
+
get requires() {
|
|
203
|
+
return [this.foreignTable.stableId];
|
|
204
|
+
}
|
|
205
|
+
serialize() {
|
|
206
|
+
return [
|
|
207
|
+
"ALTER FOREIGN TABLE",
|
|
208
|
+
`${this.foreignTable.schema}.${this.foreignTable.name}`,
|
|
209
|
+
"ALTER COLUMN",
|
|
210
|
+
this.columnName,
|
|
211
|
+
"DROP NOT NULL",
|
|
212
|
+
].join(" ");
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
/**
|
|
216
|
+
* ALTER FOREIGN TABLE ... OPTIONS ( ADD | SET | DROP ... )
|
|
217
|
+
*/
|
|
218
|
+
export class AlterForeignTableSetOptions extends AlterForeignTableChange {
|
|
219
|
+
foreignTable;
|
|
220
|
+
options;
|
|
221
|
+
scope = "object";
|
|
222
|
+
constructor(props) {
|
|
223
|
+
super();
|
|
224
|
+
this.foreignTable = props.foreignTable;
|
|
225
|
+
this.options = props.options;
|
|
226
|
+
}
|
|
227
|
+
get requires() {
|
|
228
|
+
return [this.foreignTable.stableId];
|
|
229
|
+
}
|
|
230
|
+
serialize() {
|
|
231
|
+
const optionParts = [];
|
|
232
|
+
for (const opt of this.options) {
|
|
233
|
+
if (opt.action === "DROP") {
|
|
234
|
+
optionParts.push(`DROP ${opt.option}`);
|
|
235
|
+
}
|
|
236
|
+
else {
|
|
237
|
+
const value = opt.value !== undefined ? quoteLiteral(opt.value) : "''";
|
|
238
|
+
optionParts.push(`${opt.action} ${opt.option} ${value}`);
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
return [
|
|
242
|
+
"ALTER FOREIGN TABLE",
|
|
243
|
+
`${this.foreignTable.schema}.${this.foreignTable.name}`,
|
|
244
|
+
"OPTIONS",
|
|
245
|
+
`(${optionParts.join(", ")})`,
|
|
246
|
+
].join(" ");
|
|
247
|
+
}
|
|
248
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { BaseChange } from "../../../base.change.ts";
|
|
2
|
+
import type { ForeignTable } from "../foreign-table.model.ts";
|
|
3
|
+
declare abstract class BaseForeignTableChange extends BaseChange {
|
|
4
|
+
abstract readonly foreignTable: ForeignTable;
|
|
5
|
+
abstract readonly scope: "object" | "comment" | "privilege";
|
|
6
|
+
readonly objectType: "foreign_table";
|
|
7
|
+
}
|
|
8
|
+
export declare abstract class CreateForeignTableChange extends BaseForeignTableChange {
|
|
9
|
+
readonly operation: "create";
|
|
10
|
+
}
|
|
11
|
+
export declare abstract class AlterForeignTableChange extends BaseForeignTableChange {
|
|
12
|
+
readonly operation: "alter";
|
|
13
|
+
}
|
|
14
|
+
export declare abstract class DropForeignTableChange extends BaseForeignTableChange {
|
|
15
|
+
readonly operation: "drop";
|
|
16
|
+
}
|
|
17
|
+
export {};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { BaseChange } from "../../../base.change.js";
|
|
2
|
+
class BaseForeignTableChange extends BaseChange {
|
|
3
|
+
objectType = "foreign_table";
|
|
4
|
+
}
|
|
5
|
+
export class CreateForeignTableChange extends BaseForeignTableChange {
|
|
6
|
+
operation = "create";
|
|
7
|
+
}
|
|
8
|
+
export class AlterForeignTableChange extends BaseForeignTableChange {
|
|
9
|
+
operation = "alter";
|
|
10
|
+
}
|
|
11
|
+
export class DropForeignTableChange extends BaseForeignTableChange {
|
|
12
|
+
operation = "drop";
|
|
13
|
+
}
|
package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.comment.d.ts
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { ForeignTable } from "../foreign-table.model.ts";
|
|
2
|
+
import { CreateForeignTableChange, DropForeignTableChange } from "./foreign-table.base.ts";
|
|
3
|
+
/**
|
|
4
|
+
* Create/drop comments on foreign tables.
|
|
5
|
+
*/
|
|
6
|
+
export type CommentForeignTable = CreateCommentOnForeignTable | DropCommentOnForeignTable;
|
|
7
|
+
export declare class CreateCommentOnForeignTable extends CreateForeignTableChange {
|
|
8
|
+
readonly foreignTable: ForeignTable;
|
|
9
|
+
readonly scope: "comment";
|
|
10
|
+
constructor(props: {
|
|
11
|
+
foreignTable: ForeignTable;
|
|
12
|
+
});
|
|
13
|
+
get creates(): `comment:${string}`[];
|
|
14
|
+
get requires(): `foreignTable:${string}`[];
|
|
15
|
+
serialize(): string;
|
|
16
|
+
}
|
|
17
|
+
export declare class DropCommentOnForeignTable extends DropForeignTableChange {
|
|
18
|
+
readonly foreignTable: ForeignTable;
|
|
19
|
+
readonly scope: "comment";
|
|
20
|
+
constructor(props: {
|
|
21
|
+
foreignTable: ForeignTable;
|
|
22
|
+
});
|
|
23
|
+
get drops(): `comment:${string}`[];
|
|
24
|
+
get requires(): (`comment:${string}` | `foreignTable:${string}`)[];
|
|
25
|
+
serialize(): string;
|
|
26
|
+
}
|