@supabase/pg-delta 1.0.0-alpha.2 → 1.0.0-alpha.21
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/README.md +48 -3
- package/dist/cli/app.js +26 -3
- package/dist/cli/bin/cli.js +5 -0
- package/dist/cli/commands/catalog-export.d.ts +5 -0
- package/dist/cli/commands/catalog-export.js +64 -0
- package/dist/cli/commands/declarative-apply.d.ts +6 -0
- package/dist/cli/commands/declarative-apply.js +288 -0
- package/dist/cli/commands/declarative-export.d.ts +5 -0
- package/dist/cli/commands/declarative-export.js +240 -0
- package/dist/cli/commands/plan.js +47 -16
- package/dist/cli/commands/sync.js +8 -12
- package/dist/cli/exit-code.d.ts +2 -0
- package/dist/cli/exit-code.js +7 -0
- package/dist/cli/formatters/tree/tree.js +3 -2
- package/dist/cli/utils/apply-display.d.ts +52 -0
- package/dist/cli/utils/apply-display.js +183 -0
- package/dist/cli/utils/export-display.d.ts +43 -0
- package/dist/cli/utils/export-display.js +202 -0
- package/dist/cli/utils/integrations.d.ts +30 -6
- package/dist/cli/utils/integrations.js +98 -6
- package/dist/cli/utils/resolve-input.d.ts +7 -0
- package/dist/cli/utils/resolve-input.js +13 -0
- package/dist/cli/utils.d.ts +2 -0
- package/dist/cli/utils.js +1 -1
- package/dist/core/catalog-export/index.d.ts +11 -0
- package/dist/core/catalog-export/index.js +10 -0
- package/dist/core/catalog.diff.d.ts +1 -0
- package/dist/core/catalog.diff.js +70 -49
- package/dist/core/catalog.model.d.ts +14 -1
- package/dist/core/catalog.model.js +103 -1
- package/dist/core/catalog.snapshot.d.ts +66 -0
- package/dist/core/catalog.snapshot.js +206 -0
- package/dist/core/change-utils.d.ts +9 -0
- package/dist/core/change-utils.js +71 -0
- package/dist/core/change.types.d.ts +22 -0
- package/dist/core/change.types.js +37 -1
- package/dist/core/connection-url.d.ts +32 -0
- package/dist/core/connection-url.js +77 -0
- package/dist/core/declarative-apply/discover-sql.d.ts +18 -0
- package/dist/core/declarative-apply/discover-sql.js +86 -0
- package/dist/core/declarative-apply/extract-catalog-providers.d.ts +23 -0
- package/dist/core/declarative-apply/extract-catalog-providers.js +159 -0
- package/dist/core/declarative-apply/index.d.ts +49 -0
- package/dist/core/declarative-apply/index.js +134 -0
- package/dist/core/declarative-apply/round-apply.d.ts +100 -0
- package/dist/core/declarative-apply/round-apply.js +378 -0
- package/dist/core/depend.js +25 -0
- package/dist/core/expand-replace-dependencies.d.ts +8 -2
- package/dist/core/expand-replace-dependencies.js +116 -10
- package/dist/core/export/file-mapper.d.ts +71 -0
- package/dist/core/export/file-mapper.js +474 -0
- package/dist/core/export/grouper.d.ts +13 -0
- package/dist/core/export/grouper.js +76 -0
- package/dist/core/export/index.d.ts +45 -0
- package/dist/core/export/index.js +66 -0
- package/dist/core/export/types.d.ts +84 -0
- package/dist/core/export/types.js +25 -0
- package/dist/core/fixtures/empty-catalogs/postgres-15-16-baseline.json +287 -0
- package/dist/core/integrations/filter/dsl.d.ts +82 -41
- package/dist/core/integrations/filter/dsl.js +127 -61
- package/dist/core/integrations/filter/flatten.d.ts +51 -0
- package/dist/core/integrations/filter/flatten.js +116 -0
- package/dist/core/integrations/integration-dsl.d.ts +27 -1
- package/dist/core/integrations/integration.types.d.ts +26 -1
- package/dist/core/integrations/integration.types.js +31 -1
- package/dist/core/integrations/merge.d.ts +20 -0
- package/dist/core/integrations/merge.js +60 -0
- package/dist/core/integrations/serialize/dsl.d.ts +8 -12
- package/dist/core/integrations/serialize/dsl.js +2 -2
- package/dist/core/integrations/serialize/serialize.types.d.ts +31 -0
- package/dist/core/integrations/supabase.d.ts +8 -0
- package/dist/core/integrations/supabase.js +69 -8
- package/dist/core/objects/aggregate/aggregate.diff.d.ts +2 -8
- package/dist/core/objects/aggregate/aggregate.diff.js +16 -70
- package/dist/core/objects/aggregate/aggregate.model.d.ts +8 -8
- package/dist/core/objects/aggregate/aggregate.model.js +1 -1
- package/dist/core/objects/aggregate/changes/aggregate.alter.d.ts +2 -1
- package/dist/core/objects/aggregate/changes/aggregate.alter.js +1 -1
- package/dist/core/objects/aggregate/changes/aggregate.comment.d.ts +3 -2
- package/dist/core/objects/aggregate/changes/aggregate.comment.js +2 -2
- package/dist/core/objects/aggregate/changes/aggregate.create.d.ts +2 -1
- package/dist/core/objects/aggregate/changes/aggregate.create.js +2 -2
- package/dist/core/objects/aggregate/changes/aggregate.drop.d.ts +2 -1
- package/dist/core/objects/aggregate/changes/aggregate.drop.js +2 -2
- package/dist/core/objects/aggregate/changes/aggregate.privilege.d.ts +4 -3
- package/dist/core/objects/aggregate/changes/aggregate.privilege.js +3 -3
- package/dist/core/objects/aggregate/changes/aggregate.types.d.ts +1 -0
- package/dist/core/objects/base.change.d.ts +12 -1
- package/dist/core/objects/base.change.js +10 -0
- package/dist/core/objects/base.model.d.ts +4 -1
- package/dist/core/objects/base.model.js +5 -2
- package/dist/core/objects/base.privilege-diff.d.ts +38 -13
- package/dist/core/objects/base.privilege-diff.js +104 -22
- package/dist/core/objects/base.privilege.d.ts +1 -0
- package/dist/core/objects/base.privilege.js +9 -2
- package/dist/core/objects/collation/changes/collation.alter.d.ts +3 -2
- package/dist/core/objects/collation/changes/collation.alter.js +2 -2
- package/dist/core/objects/collation/changes/collation.comment.d.ts +3 -2
- package/dist/core/objects/collation/changes/collation.comment.js +2 -2
- package/dist/core/objects/collation/changes/collation.create.d.ts +2 -1
- package/dist/core/objects/collation/changes/collation.create.js +1 -1
- package/dist/core/objects/collation/changes/collation.drop.d.ts +2 -1
- package/dist/core/objects/collation/changes/collation.drop.js +1 -1
- package/dist/core/objects/collation/changes/collation.types.d.ts +1 -0
- package/dist/core/objects/collation/collation.diff.d.ts +2 -3
- package/dist/core/objects/diff-context.d.ts +15 -0
- package/dist/core/objects/diff-context.js +1 -0
- package/dist/core/objects/domain/changes/domain.alter.d.ts +9 -8
- package/dist/core/objects/domain/changes/domain.alter.js +8 -8
- package/dist/core/objects/domain/changes/domain.comment.d.ts +3 -2
- package/dist/core/objects/domain/changes/domain.comment.js +2 -2
- package/dist/core/objects/domain/changes/domain.create.d.ts +3 -2
- package/dist/core/objects/domain/changes/domain.create.js +12 -4
- package/dist/core/objects/domain/changes/domain.drop.d.ts +2 -1
- package/dist/core/objects/domain/changes/domain.drop.js +1 -1
- package/dist/core/objects/domain/changes/domain.privilege.d.ts +4 -3
- package/dist/core/objects/domain/changes/domain.privilege.js +3 -3
- package/dist/core/objects/domain/changes/domain.types.d.ts +1 -0
- package/dist/core/objects/domain/domain.diff.d.ts +2 -8
- package/dist/core/objects/domain/domain.diff.js +16 -77
- package/dist/core/objects/domain/domain.model.js +1 -1
- package/dist/core/objects/event-trigger/changes/event-trigger.alter.d.ts +3 -2
- package/dist/core/objects/event-trigger/changes/event-trigger.alter.js +2 -2
- package/dist/core/objects/event-trigger/changes/event-trigger.comment.d.ts +3 -2
- package/dist/core/objects/event-trigger/changes/event-trigger.comment.js +2 -2
- package/dist/core/objects/event-trigger/changes/event-trigger.create.d.ts +2 -1
- package/dist/core/objects/event-trigger/changes/event-trigger.create.js +1 -1
- package/dist/core/objects/event-trigger/changes/event-trigger.drop.d.ts +2 -1
- package/dist/core/objects/event-trigger/changes/event-trigger.drop.js +1 -1
- package/dist/core/objects/event-trigger/changes/event-trigger.types.d.ts +1 -0
- package/dist/core/objects/event-trigger/event-trigger.diff.d.ts +2 -3
- package/dist/core/objects/extension/changes/extension.alter.d.ts +3 -2
- package/dist/core/objects/extension/changes/extension.alter.js +2 -2
- package/dist/core/objects/extension/changes/extension.comment.d.ts +3 -2
- package/dist/core/objects/extension/changes/extension.comment.js +2 -2
- package/dist/core/objects/extension/changes/extension.create.d.ts +2 -1
- package/dist/core/objects/extension/changes/extension.create.js +4 -2
- package/dist/core/objects/extension/changes/extension.drop.d.ts +2 -1
- package/dist/core/objects/extension/changes/extension.drop.js +1 -1
- package/dist/core/objects/extension/changes/extension.types.d.ts +1 -0
- package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.alter.d.ts +3 -2
- package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.alter.js +2 -2
- package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.comment.d.ts +3 -2
- package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.comment.js +2 -2
- package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.create.d.ts +2 -1
- package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.create.js +1 -1
- package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.drop.d.ts +2 -1
- package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.drop.js +1 -1
- package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.privilege.d.ts +4 -3
- package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.privilege.js +3 -3
- package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.types.d.ts +1 -0
- package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/foreign-data-wrapper.diff.d.ts +2 -8
- package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/foreign-data-wrapper.diff.js +13 -77
- package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/foreign-data-wrapper.model.js +2 -2
- package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper.types.d.ts +1 -0
- package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.alter.d.ts +10 -9
- package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.alter.js +9 -9
- package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.comment.d.ts +3 -2
- package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.comment.js +2 -2
- package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.create.d.ts +2 -1
- package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.create.js +1 -1
- package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.drop.d.ts +2 -1
- package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.drop.js +1 -1
- package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.privilege.d.ts +4 -3
- package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.privilege.js +3 -3
- package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.types.d.ts +1 -0
- package/dist/core/objects/foreign-data-wrapper/foreign-table/foreign-table.diff.d.ts +2 -8
- package/dist/core/objects/foreign-data-wrapper/foreign-table/foreign-table.diff.js +16 -77
- package/dist/core/objects/foreign-data-wrapper/foreign-table/foreign-table.model.js +1 -1
- package/dist/core/objects/foreign-data-wrapper/server/changes/server.alter.d.ts +4 -3
- package/dist/core/objects/foreign-data-wrapper/server/changes/server.alter.js +3 -3
- package/dist/core/objects/foreign-data-wrapper/server/changes/server.comment.d.ts +3 -2
- package/dist/core/objects/foreign-data-wrapper/server/changes/server.comment.js +2 -2
- package/dist/core/objects/foreign-data-wrapper/server/changes/server.create.d.ts +2 -1
- package/dist/core/objects/foreign-data-wrapper/server/changes/server.create.js +1 -1
- package/dist/core/objects/foreign-data-wrapper/server/changes/server.drop.d.ts +2 -1
- package/dist/core/objects/foreign-data-wrapper/server/changes/server.drop.js +1 -1
- package/dist/core/objects/foreign-data-wrapper/server/changes/server.privilege.d.ts +4 -3
- package/dist/core/objects/foreign-data-wrapper/server/changes/server.privilege.js +3 -3
- package/dist/core/objects/foreign-data-wrapper/server/changes/server.types.d.ts +1 -0
- package/dist/core/objects/foreign-data-wrapper/server/server.diff.d.ts +2 -8
- package/dist/core/objects/foreign-data-wrapper/server/server.diff.js +13 -77
- package/dist/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.alter.d.ts +2 -1
- package/dist/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.alter.js +1 -1
- package/dist/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.create.d.ts +2 -1
- package/dist/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.create.js +1 -1
- package/dist/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.drop.d.ts +2 -1
- package/dist/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.drop.js +1 -1
- package/dist/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.types.d.ts +1 -0
- package/dist/core/objects/index/changes/index.alter.d.ts +4 -3
- package/dist/core/objects/index/changes/index.alter.js +3 -3
- package/dist/core/objects/index/changes/index.comment.d.ts +3 -2
- package/dist/core/objects/index/changes/index.comment.js +2 -2
- package/dist/core/objects/index/changes/index.create.d.ts +2 -1
- package/dist/core/objects/index/changes/index.create.js +1 -1
- package/dist/core/objects/index/changes/index.drop.d.ts +2 -1
- package/dist/core/objects/index/changes/index.drop.js +1 -1
- package/dist/core/objects/index/changes/index.types.d.ts +1 -0
- package/dist/core/objects/index/index.model.js +12 -2
- package/dist/core/objects/language/changes/language.alter.d.ts +2 -1
- package/dist/core/objects/language/changes/language.alter.js +1 -1
- package/dist/core/objects/language/changes/language.comment.d.ts +3 -2
- package/dist/core/objects/language/changes/language.comment.js +2 -2
- package/dist/core/objects/language/changes/language.create.d.ts +2 -1
- package/dist/core/objects/language/changes/language.create.js +1 -1
- package/dist/core/objects/language/changes/language.drop.d.ts +2 -1
- package/dist/core/objects/language/changes/language.drop.js +1 -1
- package/dist/core/objects/language/changes/language.privilege.d.ts +4 -3
- package/dist/core/objects/language/changes/language.privilege.js +3 -3
- package/dist/core/objects/language/changes/language.types.d.ts +1 -0
- package/dist/core/objects/language/language.diff.d.ts +2 -5
- package/dist/core/objects/language/language.diff.js +7 -39
- package/dist/core/objects/materialized-view/changes/materialized-view.alter.d.ts +3 -2
- package/dist/core/objects/materialized-view/changes/materialized-view.alter.js +2 -2
- package/dist/core/objects/materialized-view/changes/materialized-view.comment.d.ts +5 -4
- package/dist/core/objects/materialized-view/changes/materialized-view.comment.js +4 -4
- package/dist/core/objects/materialized-view/changes/materialized-view.create.d.ts +2 -1
- package/dist/core/objects/materialized-view/changes/materialized-view.create.js +1 -1
- package/dist/core/objects/materialized-view/changes/materialized-view.drop.d.ts +2 -1
- package/dist/core/objects/materialized-view/changes/materialized-view.drop.js +1 -1
- package/dist/core/objects/materialized-view/changes/materialized-view.privilege.d.ts +4 -3
- package/dist/core/objects/materialized-view/changes/materialized-view.privilege.js +3 -3
- package/dist/core/objects/materialized-view/changes/materialized-view.types.d.ts +1 -0
- package/dist/core/objects/materialized-view/materialized-view.diff.d.ts +2 -8
- package/dist/core/objects/materialized-view/materialized-view.diff.js +16 -158
- package/dist/core/objects/materialized-view/materialized-view.model.d.ts +3 -3
- package/dist/core/objects/materialized-view/materialized-view.model.js +1 -1
- package/dist/core/objects/procedure/changes/procedure.alter.d.ts +8 -7
- package/dist/core/objects/procedure/changes/procedure.alter.js +19 -19
- package/dist/core/objects/procedure/changes/procedure.comment.d.ts +3 -2
- package/dist/core/objects/procedure/changes/procedure.comment.js +2 -2
- package/dist/core/objects/procedure/changes/procedure.create.d.ts +2 -1
- package/dist/core/objects/procedure/changes/procedure.create.js +1 -1
- package/dist/core/objects/procedure/changes/procedure.drop.d.ts +2 -1
- package/dist/core/objects/procedure/changes/procedure.drop.js +1 -1
- package/dist/core/objects/procedure/changes/procedure.privilege.d.ts +4 -3
- package/dist/core/objects/procedure/changes/procedure.privilege.js +3 -3
- package/dist/core/objects/procedure/changes/procedure.types.d.ts +1 -0
- package/dist/core/objects/procedure/procedure.diff.d.ts +2 -8
- package/dist/core/objects/procedure/procedure.diff.js +57 -97
- package/dist/core/objects/procedure/procedure.model.d.ts +9 -9
- package/dist/core/objects/procedure/procedure.model.js +1 -1
- package/dist/core/objects/publication/changes/publication.alter.d.ts +10 -17
- package/dist/core/objects/publication/changes/publication.alter.js +12 -21
- package/dist/core/objects/publication/changes/publication.comment.d.ts +3 -2
- package/dist/core/objects/publication/changes/publication.comment.js +2 -2
- package/dist/core/objects/publication/changes/publication.create.d.ts +2 -1
- package/dist/core/objects/publication/changes/publication.create.js +1 -1
- package/dist/core/objects/publication/changes/publication.drop.d.ts +2 -1
- package/dist/core/objects/publication/changes/publication.drop.js +1 -1
- package/dist/core/objects/publication/changes/publication.types.d.ts +3 -2
- package/dist/core/objects/publication/publication.diff.d.ts +2 -3
- package/dist/core/objects/publication/publication.diff.js +8 -13
- package/dist/core/objects/rls-policy/changes/rls-policy.alter.d.ts +4 -3
- package/dist/core/objects/rls-policy/changes/rls-policy.alter.js +6 -6
- package/dist/core/objects/rls-policy/changes/rls-policy.comment.d.ts +3 -2
- package/dist/core/objects/rls-policy/changes/rls-policy.comment.js +2 -2
- package/dist/core/objects/rls-policy/changes/rls-policy.create.d.ts +2 -1
- package/dist/core/objects/rls-policy/changes/rls-policy.create.js +24 -1
- package/dist/core/objects/rls-policy/changes/rls-policy.drop.d.ts +2 -1
- package/dist/core/objects/rls-policy/changes/rls-policy.drop.js +1 -1
- package/dist/core/objects/rls-policy/changes/rls-policy.types.d.ts +1 -0
- package/dist/core/objects/rls-policy/rls-policy.model.d.ts +51 -2
- package/dist/core/objects/rls-policy/rls-policy.model.js +122 -1
- package/dist/core/objects/role/changes/role.alter.d.ts +3 -2
- package/dist/core/objects/role/changes/role.alter.js +2 -2
- package/dist/core/objects/role/changes/role.comment.d.ts +3 -2
- package/dist/core/objects/role/changes/role.comment.js +2 -2
- package/dist/core/objects/role/changes/role.create.d.ts +2 -1
- package/dist/core/objects/role/changes/role.create.js +1 -1
- package/dist/core/objects/role/changes/role.drop.d.ts +2 -1
- package/dist/core/objects/role/changes/role.drop.js +1 -1
- package/dist/core/objects/role/changes/role.privilege.d.ts +6 -5
- package/dist/core/objects/role/changes/role.privilege.js +5 -5
- package/dist/core/objects/role/changes/role.types.d.ts +1 -0
- package/dist/core/objects/role/role.diff.js +22 -1
- package/dist/core/objects/role/role.model.d.ts +4 -3
- package/dist/core/objects/role/role.model.js +118 -12
- package/dist/core/objects/rule/changes/rule.alter.d.ts +3 -2
- package/dist/core/objects/rule/changes/rule.alter.js +2 -2
- package/dist/core/objects/rule/changes/rule.comment.d.ts +3 -2
- package/dist/core/objects/rule/changes/rule.comment.js +2 -2
- package/dist/core/objects/rule/changes/rule.create.d.ts +2 -1
- package/dist/core/objects/rule/changes/rule.create.js +1 -1
- package/dist/core/objects/rule/changes/rule.drop.d.ts +2 -1
- package/dist/core/objects/rule/changes/rule.drop.js +1 -1
- package/dist/core/objects/rule/changes/rule.types.d.ts +1 -0
- package/dist/core/objects/rule/rule.model.d.ts +1 -1
- package/dist/core/objects/schema/changes/schema.alter.d.ts +2 -1
- package/dist/core/objects/schema/changes/schema.alter.js +1 -1
- package/dist/core/objects/schema/changes/schema.comment.d.ts +3 -2
- package/dist/core/objects/schema/changes/schema.comment.js +2 -2
- package/dist/core/objects/schema/changes/schema.create.d.ts +3 -5
- package/dist/core/objects/schema/changes/schema.drop.d.ts +2 -1
- package/dist/core/objects/schema/changes/schema.drop.js +1 -1
- package/dist/core/objects/schema/changes/schema.privilege.d.ts +4 -3
- package/dist/core/objects/schema/changes/schema.privilege.js +3 -3
- package/dist/core/objects/schema/changes/schema.types.d.ts +1 -0
- package/dist/core/objects/schema/schema.diff.d.ts +2 -8
- package/dist/core/objects/schema/schema.diff.js +16 -77
- package/dist/core/objects/schema/schema.model.js +1 -1
- package/dist/core/objects/sequence/changes/sequence.alter.d.ts +3 -2
- package/dist/core/objects/sequence/changes/sequence.alter.js +2 -2
- package/dist/core/objects/sequence/changes/sequence.comment.d.ts +3 -2
- package/dist/core/objects/sequence/changes/sequence.comment.js +2 -2
- package/dist/core/objects/sequence/changes/sequence.create.d.ts +2 -1
- package/dist/core/objects/sequence/changes/sequence.create.js +1 -1
- package/dist/core/objects/sequence/changes/sequence.drop.d.ts +2 -1
- package/dist/core/objects/sequence/changes/sequence.drop.js +11 -3
- package/dist/core/objects/sequence/changes/sequence.privilege.d.ts +4 -3
- package/dist/core/objects/sequence/changes/sequence.privilege.js +3 -3
- package/dist/core/objects/sequence/changes/sequence.types.d.ts +1 -0
- package/dist/core/objects/sequence/sequence.diff.d.ts +5 -8
- package/dist/core/objects/sequence/sequence.diff.js +55 -90
- package/dist/core/objects/sequence/sequence.model.js +1 -1
- package/dist/core/objects/subscription/changes/subscription.alter.d.ts +7 -6
- package/dist/core/objects/subscription/changes/subscription.alter.js +6 -6
- package/dist/core/objects/subscription/changes/subscription.comment.d.ts +3 -2
- package/dist/core/objects/subscription/changes/subscription.comment.js +2 -2
- package/dist/core/objects/subscription/changes/subscription.create.d.ts +2 -1
- package/dist/core/objects/subscription/changes/subscription.create.js +1 -1
- package/dist/core/objects/subscription/changes/subscription.drop.d.ts +2 -1
- package/dist/core/objects/subscription/changes/subscription.drop.js +1 -1
- package/dist/core/objects/subscription/changes/subscription.types.d.ts +1 -0
- package/dist/core/objects/subscription/subscription.diff.d.ts +2 -3
- package/dist/core/objects/table/changes/table.alter.d.ts +69 -22
- package/dist/core/objects/table/changes/table.alter.js +130 -27
- package/dist/core/objects/table/changes/table.comment.d.ts +7 -6
- package/dist/core/objects/table/changes/table.comment.js +6 -6
- package/dist/core/objects/table/changes/table.create.d.ts +2 -1
- package/dist/core/objects/table/changes/table.create.js +4 -1
- package/dist/core/objects/table/changes/table.drop.d.ts +16 -3
- package/dist/core/objects/table/changes/table.drop.js +24 -1
- package/dist/core/objects/table/changes/table.privilege.d.ts +4 -3
- package/dist/core/objects/table/changes/table.privilege.js +3 -3
- package/dist/core/objects/table/changes/table.types.d.ts +1 -0
- package/dist/core/objects/table/table.diff.d.ts +2 -8
- package/dist/core/objects/table/table.diff.js +101 -162
- package/dist/core/objects/table/table.model.d.ts +29 -22
- package/dist/core/objects/table/table.model.js +16 -8
- package/dist/core/objects/trigger/changes/trigger.alter.d.ts +2 -1
- package/dist/core/objects/trigger/changes/trigger.alter.js +24 -1
- package/dist/core/objects/trigger/changes/trigger.comment.d.ts +3 -2
- package/dist/core/objects/trigger/changes/trigger.comment.js +2 -2
- package/dist/core/objects/trigger/changes/trigger.create.d.ts +2 -1
- package/dist/core/objects/trigger/changes/trigger.create.js +5 -6
- package/dist/core/objects/trigger/changes/trigger.drop.d.ts +2 -1
- package/dist/core/objects/trigger/changes/trigger.drop.js +1 -1
- package/dist/core/objects/trigger/changes/trigger.types.d.ts +1 -0
- package/dist/core/objects/trigger/trigger.diff.js +7 -2
- package/dist/core/objects/trigger/trigger.model.d.ts +10 -1
- package/dist/core/objects/trigger/trigger.model.js +19 -1
- package/dist/core/objects/type/composite-type/changes/composite-type.alter.d.ts +5 -4
- package/dist/core/objects/type/composite-type/changes/composite-type.alter.js +4 -4
- package/dist/core/objects/type/composite-type/changes/composite-type.comment.d.ts +5 -4
- package/dist/core/objects/type/composite-type/changes/composite-type.comment.js +4 -4
- package/dist/core/objects/type/composite-type/changes/composite-type.create.d.ts +2 -1
- package/dist/core/objects/type/composite-type/changes/composite-type.create.js +1 -1
- package/dist/core/objects/type/composite-type/changes/composite-type.drop.d.ts +2 -1
- package/dist/core/objects/type/composite-type/changes/composite-type.drop.js +1 -1
- package/dist/core/objects/type/composite-type/changes/composite-type.privilege.d.ts +4 -3
- package/dist/core/objects/type/composite-type/changes/composite-type.privilege.js +3 -3
- package/dist/core/objects/type/composite-type/changes/composite-type.types.d.ts +1 -0
- package/dist/core/objects/type/composite-type/composite-type.diff.d.ts +2 -8
- package/dist/core/objects/type/composite-type/composite-type.diff.js +16 -77
- package/dist/core/objects/type/composite-type/composite-type.model.d.ts +3 -3
- package/dist/core/objects/type/composite-type/composite-type.model.js +2 -1
- package/dist/core/objects/type/enum/changes/enum.alter.d.ts +3 -2
- package/dist/core/objects/type/enum/changes/enum.alter.js +2 -2
- package/dist/core/objects/type/enum/changes/enum.comment.d.ts +3 -2
- package/dist/core/objects/type/enum/changes/enum.comment.js +2 -2
- package/dist/core/objects/type/enum/changes/enum.create.d.ts +2 -1
- package/dist/core/objects/type/enum/changes/enum.create.js +1 -1
- package/dist/core/objects/type/enum/changes/enum.drop.d.ts +2 -1
- package/dist/core/objects/type/enum/changes/enum.drop.js +1 -1
- package/dist/core/objects/type/enum/changes/enum.privilege.d.ts +4 -3
- package/dist/core/objects/type/enum/changes/enum.privilege.js +3 -3
- package/dist/core/objects/type/enum/changes/enum.types.d.ts +1 -0
- package/dist/core/objects/type/enum/enum.diff.d.ts +2 -8
- package/dist/core/objects/type/enum/enum.diff.js +25 -112
- package/dist/core/objects/type/enum/enum.model.js +1 -1
- package/dist/core/objects/type/range/changes/range.alter.d.ts +2 -1
- package/dist/core/objects/type/range/changes/range.alter.js +1 -1
- package/dist/core/objects/type/range/changes/range.comment.d.ts +3 -2
- package/dist/core/objects/type/range/changes/range.comment.js +2 -2
- package/dist/core/objects/type/range/changes/range.create.d.ts +2 -1
- package/dist/core/objects/type/range/changes/range.create.js +7 -4
- package/dist/core/objects/type/range/changes/range.drop.d.ts +2 -1
- package/dist/core/objects/type/range/changes/range.drop.js +1 -1
- package/dist/core/objects/type/range/changes/range.privilege.d.ts +4 -3
- package/dist/core/objects/type/range/changes/range.privilege.js +3 -3
- package/dist/core/objects/type/range/changes/range.types.d.ts +1 -0
- package/dist/core/objects/type/range/range.diff.d.ts +2 -8
- package/dist/core/objects/type/range/range.diff.js +16 -77
- package/dist/core/objects/type/range/range.model.js +1 -1
- package/dist/core/objects/type/type.types.d.ts +1 -0
- package/dist/core/objects/view/changes/view.alter.d.ts +4 -3
- package/dist/core/objects/view/changes/view.alter.js +3 -3
- package/dist/core/objects/view/changes/view.comment.d.ts +3 -2
- package/dist/core/objects/view/changes/view.comment.js +2 -2
- package/dist/core/objects/view/changes/view.create.d.ts +2 -1
- package/dist/core/objects/view/changes/view.create.js +1 -1
- package/dist/core/objects/view/changes/view.drop.d.ts +2 -1
- package/dist/core/objects/view/changes/view.drop.js +1 -1
- package/dist/core/objects/view/changes/view.privilege.d.ts +4 -3
- package/dist/core/objects/view/changes/view.privilege.js +3 -3
- package/dist/core/objects/view/changes/view.types.d.ts +1 -0
- package/dist/core/objects/view/view.diff.d.ts +2 -8
- package/dist/core/objects/view/view.diff.js +37 -168
- package/dist/core/objects/view/view.model.d.ts +18 -4
- package/dist/core/objects/view/view.model.js +3 -13
- package/dist/core/plan/apply.js +11 -28
- package/dist/core/plan/create.d.ts +19 -6
- package/dist/core/plan/create.js +154 -171
- package/dist/core/plan/serialize.js +16 -4
- package/dist/core/plan/sql-format/constants.d.ts +2 -0
- package/dist/core/plan/sql-format/constants.js +11 -0
- package/dist/core/plan/sql-format/fixtures.d.ts +2 -0
- package/dist/core/plan/sql-format/fixtures.js +2455 -0
- package/dist/core/plan/sql-format/format-utils.d.ts +37 -0
- package/dist/core/plan/sql-format/format-utils.js +274 -0
- package/dist/core/plan/sql-format/formatters.d.ts +20 -0
- package/dist/core/plan/sql-format/formatters.js +737 -0
- package/dist/core/plan/sql-format/index.d.ts +2 -0
- package/dist/core/plan/sql-format/index.js +98 -0
- package/dist/core/plan/sql-format/keyword-case.d.ts +2 -0
- package/dist/core/plan/sql-format/keyword-case.js +893 -0
- package/dist/core/plan/sql-format/protect.d.ts +3 -0
- package/dist/core/plan/sql-format/protect.js +269 -0
- package/dist/core/plan/sql-format/sql-scanner.d.ts +59 -0
- package/dist/core/plan/sql-format/sql-scanner.js +202 -0
- package/dist/core/plan/sql-format/tokenizer.d.ts +22 -0
- package/dist/core/plan/sql-format/tokenizer.js +118 -0
- package/dist/core/plan/sql-format/types.d.ts +28 -0
- package/dist/core/plan/sql-format/types.js +1 -0
- package/dist/core/plan/sql-format/wrap.d.ts +2 -0
- package/dist/core/plan/sql-format/wrap.js +165 -0
- package/dist/core/plan/sql-format.d.ts +2 -0
- package/dist/core/plan/sql-format.js +1 -0
- package/dist/core/plan/ssl-config.d.ts +32 -0
- package/dist/core/plan/ssl-config.js +115 -0
- package/dist/core/plan/statements.d.ts +2 -1
- package/dist/core/plan/statements.js +6 -2
- package/dist/core/plan/types.d.ts +9 -6
- package/dist/core/post-diff-cycle-breaking.d.ts +29 -0
- package/dist/core/post-diff-cycle-breaking.js +100 -0
- package/dist/core/postgres-config.d.ts +89 -3
- package/dist/core/postgres-config.js +273 -4
- package/dist/core/sort/custom-constraints.js +65 -1
- package/dist/core/sort/cycle-breakers.d.ts +15 -0
- package/dist/core/sort/cycle-breakers.js +269 -0
- package/dist/core/sort/graph-builder.js +10 -0
- package/dist/core/sort/logical-sort.js +34 -47
- package/dist/core/sort/sort-changes.js +97 -43
- package/dist/core/test-utils/assert-valid-sql.d.ts +10 -0
- package/dist/core/test-utils/assert-valid-sql.js +19 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.js +9 -1
- package/package.json +59 -22
- package/src/cli/app.ts +52 -0
- package/src/cli/bin/cli.ts +15 -0
- package/src/cli/commands/apply.ts +101 -0
- package/src/cli/commands/catalog-export.ts +78 -0
- package/src/cli/commands/declarative-apply.diagnostics.test.ts +77 -0
- package/src/cli/commands/declarative-apply.ts +380 -0
- package/src/cli/commands/declarative-export.ts +322 -0
- package/src/cli/commands/plan.ts +210 -0
- package/src/cli/commands/sync.ts +178 -0
- package/src/cli/exit-code.test.ts +19 -0
- package/src/cli/exit-code.ts +7 -0
- package/src/cli/formatters/index.ts +5 -0
- package/src/cli/formatters/tree/tree-builder.ts +380 -0
- package/src/cli/formatters/tree/tree-renderer.ts +372 -0
- package/src/cli/formatters/tree/tree.ts +238 -0
- package/src/cli/utils/apply-display.test.ts +348 -0
- package/src/cli/utils/apply-display.ts +238 -0
- package/src/cli/utils/export-display.test.ts +103 -0
- package/src/cli/utils/export-display.ts +275 -0
- package/src/cli/utils/integrations.test.ts +251 -0
- package/src/cli/utils/integrations.ts +170 -0
- package/src/cli/utils/resolve-input.test.ts +38 -0
- package/src/cli/utils/resolve-input.ts +17 -0
- package/src/cli/utils.ts +231 -0
- package/src/core/catalog-export/index.ts +20 -0
- package/src/core/catalog.diff.ts +252 -0
- package/src/core/catalog.model.test.ts +122 -0
- package/src/core/catalog.model.ts +510 -0
- package/src/core/catalog.snapshot.test.ts +488 -0
- package/src/core/catalog.snapshot.ts +289 -0
- package/src/core/change-utils.test.ts +61 -0
- package/src/core/change-utils.ts +73 -0
- package/src/core/change.types.ts +94 -0
- package/src/core/connection-url.test.ts +142 -0
- package/src/core/connection-url.ts +82 -0
- package/src/core/context.ts +26 -0
- package/src/core/declarative-apply/discover-sql.test.ts +103 -0
- package/src/core/declarative-apply/discover-sql.ts +107 -0
- package/src/core/declarative-apply/extract-catalog-providers.ts +220 -0
- package/src/core/declarative-apply/index.test.ts +67 -0
- package/src/core/declarative-apply/index.ts +205 -0
- package/src/core/declarative-apply/round-apply.test.ts +504 -0
- package/src/core/declarative-apply/round-apply.ts +562 -0
- package/src/core/depend.ts +1895 -0
- package/src/core/expand-replace-dependencies.test.ts +555 -0
- package/src/core/expand-replace-dependencies.ts +536 -0
- package/src/core/export/file-mapper.test.ts +816 -0
- package/src/core/export/file-mapper.ts +579 -0
- package/src/core/export/grouper.ts +108 -0
- package/src/core/export/index.ts +138 -0
- package/src/core/export/types.ts +104 -0
- package/src/core/fingerprint.ts +204 -0
- package/src/core/fixtures/empty-catalogs/postgres-15-16-baseline.json +287 -0
- package/src/core/integrations/filter/dsl.test.ts +450 -0
- package/src/core/integrations/filter/dsl.ts +305 -0
- package/src/core/integrations/filter/filter.types.ts +3 -0
- package/src/core/integrations/filter/flatten.test.ts +282 -0
- package/src/core/integrations/filter/flatten.ts +150 -0
- package/src/core/integrations/integration-dsl.ts +50 -0
- package/src/core/integrations/integration.types.ts +65 -0
- package/src/core/integrations/merge.test.ts +128 -0
- package/src/core/integrations/merge.ts +72 -0
- package/src/core/integrations/serialize/dsl.test.ts +110 -0
- package/src/core/integrations/serialize/dsl.ts +71 -0
- package/src/core/integrations/serialize/serialize.types.ts +40 -0
- package/src/core/integrations/supabase.ts +180 -0
- package/src/core/objects/aggregate/aggregate.diff.test.ts +215 -0
- package/src/core/objects/aggregate/aggregate.diff.ts +222 -0
- package/src/core/objects/aggregate/aggregate.model.ts +317 -0
- package/src/core/objects/aggregate/changes/aggregate.alter.test.ts +66 -0
- package/src/core/objects/aggregate/changes/aggregate.alter.ts +33 -0
- package/src/core/objects/aggregate/changes/aggregate.base.ts +20 -0
- package/src/core/objects/aggregate/changes/aggregate.comment.test.ts +89 -0
- package/src/core/objects/aggregate/changes/aggregate.comment.ts +63 -0
- package/src/core/objects/aggregate/changes/aggregate.create.test.ts +104 -0
- package/src/core/objects/aggregate/changes/aggregate.create.ts +330 -0
- package/src/core/objects/aggregate/changes/aggregate.drop.test.ts +82 -0
- package/src/core/objects/aggregate/changes/aggregate.drop.ts +33 -0
- package/src/core/objects/aggregate/changes/aggregate.privilege.test.ts +136 -0
- package/src/core/objects/aggregate/changes/aggregate.privilege.ts +147 -0
- package/src/core/objects/aggregate/changes/aggregate.types.ts +13 -0
- package/src/core/objects/base.change.ts +74 -0
- package/src/core/objects/base.default-privileges.ts +204 -0
- package/src/core/objects/base.diff.ts +20 -0
- package/src/core/objects/base.model.test.ts +43 -0
- package/src/core/objects/base.model.ts +85 -0
- package/src/core/objects/base.privilege-diff.ts +447 -0
- package/src/core/objects/base.privilege.ts +191 -0
- package/src/core/objects/collation/changes/collation.alter.test.ts +68 -0
- package/src/core/objects/collation/changes/collation.alter.ts +80 -0
- package/src/core/objects/collation/changes/collation.base.ts +20 -0
- package/src/core/objects/collation/changes/collation.comment.ts +69 -0
- package/src/core/objects/collation/changes/collation.create.test.ts +56 -0
- package/src/core/objects/collation/changes/collation.create.ts +107 -0
- package/src/core/objects/collation/changes/collation.drop.test.ts +31 -0
- package/src/core/objects/collation/changes/collation.drop.ts +38 -0
- package/src/core/objects/collation/changes/collation.types.ts +11 -0
- package/src/core/objects/collation/collation.diff.test.ts +97 -0
- package/src/core/objects/collation/collation.diff.ts +127 -0
- package/src/core/objects/collation/collation.model.ts +224 -0
- package/src/core/objects/diff-context.ts +16 -0
- package/src/core/objects/domain/changes/domain.alter.test.ts +335 -0
- package/src/core/objects/domain/changes/domain.alter.ts +287 -0
- package/src/core/objects/domain/changes/domain.base.ts +20 -0
- package/src/core/objects/domain/changes/domain.comment.ts +60 -0
- package/src/core/objects/domain/changes/domain.create.test.ts +95 -0
- package/src/core/objects/domain/changes/domain.create.ts +141 -0
- package/src/core/objects/domain/changes/domain.drop.test.ts +33 -0
- package/src/core/objects/domain/changes/domain.drop.ts +35 -0
- package/src/core/objects/domain/changes/domain.privilege.ts +172 -0
- package/src/core/objects/domain/changes/domain.types.ts +13 -0
- package/src/core/objects/domain/domain.diff.test.ts +284 -0
- package/src/core/objects/domain/domain.diff.ts +295 -0
- package/src/core/objects/domain/domain.model.ts +190 -0
- package/src/core/objects/event-trigger/changes/event-trigger.alter.test.ts +57 -0
- package/src/core/objects/event-trigger/changes/event-trigger.alter.ts +83 -0
- package/src/core/objects/event-trigger/changes/event-trigger.base.ts +20 -0
- package/src/core/objects/event-trigger/changes/event-trigger.comment.ts +67 -0
- package/src/core/objects/event-trigger/changes/event-trigger.create.test.ts +27 -0
- package/src/core/objects/event-trigger/changes/event-trigger.create.ts +73 -0
- package/src/core/objects/event-trigger/changes/event-trigger.drop.test.ts +25 -0
- package/src/core/objects/event-trigger/changes/event-trigger.drop.ts +35 -0
- package/src/core/objects/event-trigger/changes/event-trigger.types.ts +11 -0
- package/src/core/objects/event-trigger/event-trigger.diff.test.ts +131 -0
- package/src/core/objects/event-trigger/event-trigger.diff.ts +127 -0
- package/src/core/objects/event-trigger/event-trigger.model.ts +106 -0
- package/src/core/objects/extension/changes/extension.alter.test.ts +63 -0
- package/src/core/objects/extension/changes/extension.alter.ts +79 -0
- package/src/core/objects/extension/changes/extension.base.ts +20 -0
- package/src/core/objects/extension/changes/extension.comment.ts +65 -0
- package/src/core/objects/extension/changes/extension.create.test.ts +50 -0
- package/src/core/objects/extension/changes/extension.create.ts +66 -0
- package/src/core/objects/extension/changes/extension.drop.test.ts +26 -0
- package/src/core/objects/extension/changes/extension.drop.ts +35 -0
- package/src/core/objects/extension/changes/extension.types.ts +11 -0
- package/src/core/objects/extension/extension.diff.test.ts +42 -0
- package/src/core/objects/extension/extension.diff.ts +90 -0
- package/src/core/objects/extension/extension.model.test.ts +98 -0
- package/src/core/objects/extension/extension.model.ts +280 -0
- package/src/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.alter.test.ts +136 -0
- package/src/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.alter.ts +102 -0
- package/src/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.base.ts +20 -0
- package/src/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.comment.ts +73 -0
- package/src/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.create.test.ts +160 -0
- package/src/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.create.ts +96 -0
- package/src/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.drop.test.ts +26 -0
- package/src/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.drop.ts +37 -0
- package/src/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.privilege.ts +173 -0
- package/src/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.types.ts +13 -0
- package/src/core/objects/foreign-data-wrapper/foreign-data-wrapper/foreign-data-wrapper.diff.test.ts +286 -0
- package/src/core/objects/foreign-data-wrapper/foreign-data-wrapper/foreign-data-wrapper.diff.ts +271 -0
- package/src/core/objects/foreign-data-wrapper/foreign-data-wrapper/foreign-data-wrapper.model.ts +149 -0
- package/src/core/objects/foreign-data-wrapper/foreign-data-wrapper.types.ts +11 -0
- package/src/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.alter.test.ts +340 -0
- package/src/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.alter.ts +342 -0
- package/src/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.base.ts +20 -0
- package/src/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.comment.ts +73 -0
- package/src/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.create.test.ts +210 -0
- package/src/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.create.ts +82 -0
- package/src/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.drop.test.ts +46 -0
- package/src/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.drop.ts +38 -0
- package/src/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.privilege.ts +182 -0
- package/src/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.types.ts +13 -0
- package/src/core/objects/foreign-data-wrapper/foreign-table/foreign-table.diff.test.ts +813 -0
- package/src/core/objects/foreign-data-wrapper/foreign-table/foreign-table.diff.ts +343 -0
- package/src/core/objects/foreign-data-wrapper/foreign-table/foreign-table.model.ts +242 -0
- package/src/core/objects/foreign-data-wrapper/server/changes/server.alter.test.ts +183 -0
- package/src/core/objects/foreign-data-wrapper/server/changes/server.alter.ts +127 -0
- package/src/core/objects/foreign-data-wrapper/server/changes/server.base.ts +20 -0
- package/src/core/objects/foreign-data-wrapper/server/changes/server.comment.ts +61 -0
- package/src/core/objects/foreign-data-wrapper/server/changes/server.create.test.ts +144 -0
- package/src/core/objects/foreign-data-wrapper/server/changes/server.create.ts +82 -0
- package/src/core/objects/foreign-data-wrapper/server/changes/server.drop.test.ts +27 -0
- package/src/core/objects/foreign-data-wrapper/server/changes/server.drop.ts +35 -0
- package/src/core/objects/foreign-data-wrapper/server/changes/server.privilege.ts +165 -0
- package/src/core/objects/foreign-data-wrapper/server/changes/server.types.ts +13 -0
- package/src/core/objects/foreign-data-wrapper/server/server.diff.test.ts +262 -0
- package/src/core/objects/foreign-data-wrapper/server/server.diff.ts +247 -0
- package/src/core/objects/foreign-data-wrapper/server/server.model.ts +133 -0
- package/src/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.alter.test.ts +91 -0
- package/src/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.alter.ts +70 -0
- package/src/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.base.ts +20 -0
- package/src/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.create.test.ts +96 -0
- package/src/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.create.ts +67 -0
- package/src/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.drop.test.ts +60 -0
- package/src/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.drop.ts +41 -0
- package/src/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.types.ts +9 -0
- package/src/core/objects/foreign-data-wrapper/user-mapping/user-mapping.diff.test.ts +77 -0
- package/src/core/objects/foreign-data-wrapper/user-mapping/user-mapping.diff.ts +107 -0
- package/src/core/objects/foreign-data-wrapper/user-mapping/user-mapping.model.ts +96 -0
- package/src/core/objects/index/changes/index.alter.test.ts +209 -0
- package/src/core/objects/index/changes/index.alter.ts +145 -0
- package/src/core/objects/index/changes/index.base.ts +20 -0
- package/src/core/objects/index/changes/index.comment.ts +64 -0
- package/src/core/objects/index/changes/index.create.test.ts +69 -0
- package/src/core/objects/index/changes/index.create.ts +69 -0
- package/src/core/objects/index/changes/index.drop.test.ts +47 -0
- package/src/core/objects/index/changes/index.drop.ts +35 -0
- package/src/core/objects/index/changes/index.types.ts +7 -0
- package/src/core/objects/index/changes/utils.ts +16 -0
- package/src/core/objects/index/index.diff.test.ts +153 -0
- package/src/core/objects/index/index.diff.ts +243 -0
- package/src/core/objects/index/index.model.test.ts +83 -0
- package/src/core/objects/index/index.model.ts +379 -0
- package/src/core/objects/language/changes/language.alter.test.ts +36 -0
- package/src/core/objects/language/changes/language.alter.ts +54 -0
- package/src/core/objects/language/changes/language.base.ts +20 -0
- package/src/core/objects/language/changes/language.comment.ts +59 -0
- package/src/core/objects/language/changes/language.create.test.ts +30 -0
- package/src/core/objects/language/changes/language.create.ts +105 -0
- package/src/core/objects/language/changes/language.drop.test.ts +28 -0
- package/src/core/objects/language/changes/language.drop.ts +40 -0
- package/src/core/objects/language/changes/language.privilege.ts +173 -0
- package/src/core/objects/language/changes/language.types.ts +13 -0
- package/src/core/objects/language/language.diff.test.ts +135 -0
- package/src/core/objects/language/language.diff.ts +144 -0
- package/src/core/objects/language/language.model.ts +150 -0
- package/src/core/objects/materialized-view/changes/materialized-view.alter.test.ts +130 -0
- package/src/core/objects/materialized-view/changes/materialized-view.alter.ts +114 -0
- package/src/core/objects/materialized-view/changes/materialized-view.base.ts +20 -0
- package/src/core/objects/materialized-view/changes/materialized-view.comment.ts +177 -0
- package/src/core/objects/materialized-view/changes/materialized-view.create.test.ts +69 -0
- package/src/core/objects/materialized-view/changes/materialized-view.create.ts +94 -0
- package/src/core/objects/materialized-view/changes/materialized-view.drop.test.ts +37 -0
- package/src/core/objects/materialized-view/changes/materialized-view.drop.ts +61 -0
- package/src/core/objects/materialized-view/changes/materialized-view.privilege.ts +213 -0
- package/src/core/objects/materialized-view/changes/materialized-view.types.ts +13 -0
- package/src/core/objects/materialized-view/materialized-view.diff.test.ts +264 -0
- package/src/core/objects/materialized-view/materialized-view.diff.ts +301 -0
- package/src/core/objects/materialized-view/materialized-view.model.ts +258 -0
- package/src/core/objects/procedure/changes/procedure.alter.test.ts +1077 -0
- package/src/core/objects/procedure/changes/procedure.alter.ts +291 -0
- package/src/core/objects/procedure/changes/procedure.base.ts +20 -0
- package/src/core/objects/procedure/changes/procedure.comment.ts +71 -0
- package/src/core/objects/procedure/changes/procedure.create.test.ts +51 -0
- package/src/core/objects/procedure/changes/procedure.create.ts +93 -0
- package/src/core/objects/procedure/changes/procedure.drop.test.ts +90 -0
- package/src/core/objects/procedure/changes/procedure.drop.ts +50 -0
- package/src/core/objects/procedure/changes/procedure.privilege.ts +189 -0
- package/src/core/objects/procedure/changes/procedure.types.ts +13 -0
- package/src/core/objects/procedure/procedure.diff.test.ts +284 -0
- package/src/core/objects/procedure/procedure.diff.ts +371 -0
- package/src/core/objects/procedure/procedure.model.ts +264 -0
- package/src/core/objects/procedure/utils.ts +58 -0
- package/src/core/objects/publication/changes/publication.alter.test.ts +221 -0
- package/src/core/objects/publication/changes/publication.alter.ts +232 -0
- package/src/core/objects/publication/changes/publication.base.ts +20 -0
- package/src/core/objects/publication/changes/publication.comment.test.ts +73 -0
- package/src/core/objects/publication/changes/publication.comment.ts +65 -0
- package/src/core/objects/publication/changes/publication.create.test.ts +90 -0
- package/src/core/objects/publication/changes/publication.create.ts +83 -0
- package/src/core/objects/publication/changes/publication.drop.test.ts +48 -0
- package/src/core/objects/publication/changes/publication.drop.ts +30 -0
- package/src/core/objects/publication/changes/publication.types.ts +25 -0
- package/src/core/objects/publication/publication.diff.test.ts +297 -0
- package/src/core/objects/publication/publication.diff.ts +247 -0
- package/src/core/objects/publication/publication.model.ts +206 -0
- package/src/core/objects/publication/utils.ts +55 -0
- package/src/core/objects/rls-policy/changes/rls-policy.alter.test.ts +283 -0
- package/src/core/objects/rls-policy/changes/rls-policy.alter.ts +129 -0
- package/src/core/objects/rls-policy/changes/rls-policy.base.ts +20 -0
- package/src/core/objects/rls-policy/changes/rls-policy.comment.ts +70 -0
- package/src/core/objects/rls-policy/changes/rls-policy.create.test.ts +209 -0
- package/src/core/objects/rls-policy/changes/rls-policy.create.ts +128 -0
- package/src/core/objects/rls-policy/changes/rls-policy.drop.test.ts +33 -0
- package/src/core/objects/rls-policy/changes/rls-policy.drop.ts +40 -0
- package/src/core/objects/rls-policy/changes/rls-policy.types.ts +11 -0
- package/src/core/objects/rls-policy/rls-policy.diff.test.ts +81 -0
- package/src/core/objects/rls-policy/rls-policy.diff.ts +121 -0
- package/src/core/objects/rls-policy/rls-policy.model.ts +273 -0
- package/src/core/objects/role/changes/role.alter.test.ts +362 -0
- package/src/core/objects/role/changes/role.alter.ts +111 -0
- package/src/core/objects/role/changes/role.base.ts +24 -0
- package/src/core/objects/role/changes/role.comment.ts +56 -0
- package/src/core/objects/role/changes/role.create.test.ts +56 -0
- package/src/core/objects/role/changes/role.create.ts +103 -0
- package/src/core/objects/role/changes/role.drop.test.ts +32 -0
- package/src/core/objects/role/changes/role.drop.ts +35 -0
- package/src/core/objects/role/changes/role.privilege.ts +377 -0
- package/src/core/objects/role/changes/role.types.ts +13 -0
- package/src/core/objects/role/role.diff.test.ts +279 -0
- package/src/core/objects/role/role.diff.ts +499 -0
- package/src/core/objects/role/role.model.ts +452 -0
- package/src/core/objects/rule/changes/rule.alter.test.ts +82 -0
- package/src/core/objects/rule/changes/rule.alter.ts +73 -0
- package/src/core/objects/rule/changes/rule.base.ts +20 -0
- package/src/core/objects/rule/changes/rule.comment.test.ts +58 -0
- package/src/core/objects/rule/changes/rule.comment.ts +63 -0
- package/src/core/objects/rule/changes/rule.create.test.ts +63 -0
- package/src/core/objects/rule/changes/rule.create.ts +43 -0
- package/src/core/objects/rule/changes/rule.drop.test.ts +40 -0
- package/src/core/objects/rule/changes/rule.drop.ts +30 -0
- package/src/core/objects/rule/changes/rule.types.ts +13 -0
- package/src/core/objects/rule/rule.diff.test.ts +132 -0
- package/src/core/objects/rule/rule.diff.ts +79 -0
- package/src/core/objects/rule/rule.model.ts +173 -0
- package/src/core/objects/schema/changes/schema.alter.test.ts +31 -0
- package/src/core/objects/schema/changes/schema.alter.ts +46 -0
- package/src/core/objects/schema/changes/schema.base.ts +20 -0
- package/src/core/objects/schema/changes/schema.comment.ts +57 -0
- package/src/core/objects/schema/changes/schema.create.test.ts +25 -0
- package/src/core/objects/schema/changes/schema.create.ts +47 -0
- package/src/core/objects/schema/changes/schema.drop.test.ts +23 -0
- package/src/core/objects/schema/changes/schema.drop.ts +35 -0
- package/src/core/objects/schema/changes/schema.privilege.ts +176 -0
- package/src/core/objects/schema/changes/schema.types.ts +13 -0
- package/src/core/objects/schema/schema.diff.test.ts +42 -0
- package/src/core/objects/schema/schema.diff.ts +146 -0
- package/src/core/objects/schema/schema.model.ts +107 -0
- package/src/core/objects/sequence/changes/sequence.alter.test.ts +157 -0
- package/src/core/objects/sequence/changes/sequence.alter.ts +116 -0
- package/src/core/objects/sequence/changes/sequence.base.ts +20 -0
- package/src/core/objects/sequence/changes/sequence.comment.ts +61 -0
- package/src/core/objects/sequence/changes/sequence.create.test.ts +89 -0
- package/src/core/objects/sequence/changes/sequence.create.ts +112 -0
- package/src/core/objects/sequence/changes/sequence.drop.test.ts +35 -0
- package/src/core/objects/sequence/changes/sequence.drop.ts +50 -0
- package/src/core/objects/sequence/changes/sequence.privilege.ts +180 -0
- package/src/core/objects/sequence/changes/sequence.types.ts +13 -0
- package/src/core/objects/sequence/sequence.diff.test.ts +434 -0
- package/src/core/objects/sequence/sequence.diff.ts +334 -0
- package/src/core/objects/sequence/sequence.model.ts +185 -0
- package/src/core/objects/subscription/changes/subscription.alter.test.ts +134 -0
- package/src/core/objects/subscription/changes/subscription.alter.ts +111 -0
- package/src/core/objects/subscription/changes/subscription.base.ts +20 -0
- package/src/core/objects/subscription/changes/subscription.comment.test.ts +70 -0
- package/src/core/objects/subscription/changes/subscription.comment.ts +65 -0
- package/src/core/objects/subscription/changes/subscription.create.test.ts +80 -0
- package/src/core/objects/subscription/changes/subscription.create.ts +70 -0
- package/src/core/objects/subscription/changes/subscription.drop.test.ts +48 -0
- package/src/core/objects/subscription/changes/subscription.drop.ts +21 -0
- package/src/core/objects/subscription/changes/subscription.types.ts +23 -0
- package/src/core/objects/subscription/subscription.diff.test.ts +237 -0
- package/src/core/objects/subscription/subscription.diff.ts +242 -0
- package/src/core/objects/subscription/subscription.model.ts +190 -0
- package/src/core/objects/subscription/utils.ts +156 -0
- package/src/core/objects/table/changes/table.alter.test.ts +910 -0
- package/src/core/objects/table/changes/table.alter.ts +939 -0
- package/src/core/objects/table/changes/table.base.ts +20 -0
- package/src/core/objects/table/changes/table.comment.ts +267 -0
- package/src/core/objects/table/changes/table.create.test.ts +188 -0
- package/src/core/objects/table/changes/table.create.ts +193 -0
- package/src/core/objects/table/changes/table.drop.test.ts +36 -0
- package/src/core/objects/table/changes/table.drop.ts +87 -0
- package/src/core/objects/table/changes/table.privilege.ts +201 -0
- package/src/core/objects/table/changes/table.types.ts +13 -0
- package/src/core/objects/table/table.diff.test.ts +1189 -0
- package/src/core/objects/table/table.diff.ts +913 -0
- package/src/core/objects/table/table.model.ts +465 -0
- package/src/core/objects/trigger/changes/trigger.alter.test.ts +50 -0
- package/src/core/objects/trigger/changes/trigger.alter.ts +77 -0
- package/src/core/objects/trigger/changes/trigger.base.ts +20 -0
- package/src/core/objects/trigger/changes/trigger.comment.ts +65 -0
- package/src/core/objects/trigger/changes/trigger.create.test.ts +47 -0
- package/src/core/objects/trigger/changes/trigger.create.ts +89 -0
- package/src/core/objects/trigger/changes/trigger.drop.test.ts +47 -0
- package/src/core/objects/trigger/changes/trigger.drop.ts +40 -0
- package/src/core/objects/trigger/changes/trigger.types.ts +11 -0
- package/src/core/objects/trigger/trigger.diff.test.ts +84 -0
- package/src/core/objects/trigger/trigger.diff.ts +121 -0
- package/src/core/objects/trigger/trigger.model.ts +268 -0
- package/src/core/objects/type/composite-type/changes/composite-type.alter.test.ts +208 -0
- package/src/core/objects/type/composite-type/changes/composite-type.alter.ts +175 -0
- package/src/core/objects/type/composite-type/changes/composite-type.base.ts +20 -0
- package/src/core/objects/type/composite-type/changes/composite-type.comment.ts +146 -0
- package/src/core/objects/type/composite-type/changes/composite-type.create.test.ts +106 -0
- package/src/core/objects/type/composite-type/changes/composite-type.create.ts +96 -0
- package/src/core/objects/type/composite-type/changes/composite-type.drop.test.ts +36 -0
- package/src/core/objects/type/composite-type/changes/composite-type.drop.ts +38 -0
- package/src/core/objects/type/composite-type/changes/composite-type.privilege.ts +176 -0
- package/src/core/objects/type/composite-type/changes/composite-type.types.ts +13 -0
- package/src/core/objects/type/composite-type/composite-type.diff.test.ts +269 -0
- package/src/core/objects/type/composite-type/composite-type.diff.ts +310 -0
- package/src/core/objects/type/composite-type/composite-type.model.ts +253 -0
- package/src/core/objects/type/enum/changes/enum.alter.test.ts +113 -0
- package/src/core/objects/type/enum/changes/enum.alter.ts +92 -0
- package/src/core/objects/type/enum/changes/enum.base.ts +20 -0
- package/src/core/objects/type/enum/changes/enum.comment.ts +65 -0
- package/src/core/objects/type/enum/changes/enum.create.test.ts +31 -0
- package/src/core/objects/type/enum/changes/enum.create.ts +57 -0
- package/src/core/objects/type/enum/changes/enum.drop.test.ts +28 -0
- package/src/core/objects/type/enum/changes/enum.drop.ts +35 -0
- package/src/core/objects/type/enum/changes/enum.privilege.ts +176 -0
- package/src/core/objects/type/enum/changes/enum.types.ts +13 -0
- package/src/core/objects/type/enum/enum.diff.test.ts +372 -0
- package/src/core/objects/type/enum/enum.diff.ts +308 -0
- package/src/core/objects/type/enum/enum.model.ts +194 -0
- package/src/core/objects/type/range/changes/range.alter.test.ts +29 -0
- package/src/core/objects/type/range/changes/range.alter.ts +52 -0
- package/src/core/objects/type/range/changes/range.base.ts +20 -0
- package/src/core/objects/type/range/changes/range.comment.ts +65 -0
- package/src/core/objects/type/range/changes/range.create.test.ts +54 -0
- package/src/core/objects/type/range/changes/range.create.ts +156 -0
- package/src/core/objects/type/range/changes/range.drop.test.ts +28 -0
- package/src/core/objects/type/range/changes/range.drop.ts +35 -0
- package/src/core/objects/type/range/changes/range.privilege.ts +176 -0
- package/src/core/objects/type/range/changes/range.types.ts +13 -0
- package/src/core/objects/type/range/range.diff.test.ts +147 -0
- package/src/core/objects/type/range/range.diff.ts +197 -0
- package/src/core/objects/type/range/range.model.ts +187 -0
- package/src/core/objects/type/type.types.ts +6 -0
- package/src/core/objects/utils.ts +171 -0
- package/src/core/objects/view/changes/view.alter.test.ts +115 -0
- package/src/core/objects/view/changes/view.alter.ts +113 -0
- package/src/core/objects/view/changes/view.base.ts +20 -0
- package/src/core/objects/view/changes/view.comment.ts +60 -0
- package/src/core/objects/view/changes/view.create.test.ts +70 -0
- package/src/core/objects/view/changes/view.create.ts +74 -0
- package/src/core/objects/view/changes/view.drop.test.ts +37 -0
- package/src/core/objects/view/changes/view.drop.ts +41 -0
- package/src/core/objects/view/changes/view.privilege.ts +201 -0
- package/src/core/objects/view/changes/view.types.ts +13 -0
- package/src/core/objects/view/view.diff.test.ts +269 -0
- package/src/core/objects/view/view.diff.ts +230 -0
- package/src/core/objects/view/view.model.ts +262 -0
- package/src/core/plan/apply.ts +172 -0
- package/src/core/plan/create.ts +368 -0
- package/src/core/plan/hierarchy.ts +574 -0
- package/src/core/plan/index.ts +29 -0
- package/src/core/plan/io.ts +20 -0
- package/src/core/plan/risk.ts +48 -0
- package/src/core/plan/serialize.test.ts +317 -0
- package/src/core/plan/serialize.ts +209 -0
- package/src/core/plan/sql-format/constants.ts +13 -0
- package/src/core/plan/sql-format/fixtures.ts +2811 -0
- package/src/core/plan/sql-format/format-comment-literals.test.ts +96 -0
- package/src/core/plan/sql-format/format-functions.test.ts +127 -0
- package/src/core/plan/sql-format/format-lowercase-coverage.test.ts +119 -0
- package/src/core/plan/sql-format/format-off.test.ts +806 -0
- package/src/core/plan/sql-format/format-pretty-lower-leading.test.ts +1061 -0
- package/src/core/plan/sql-format/format-pretty-narrow.test.ts +1279 -0
- package/src/core/plan/sql-format/format-pretty-preserve.test.ts +1057 -0
- package/src/core/plan/sql-format/format-pretty-upper.test.ts +1048 -0
- package/src/core/plan/sql-format/format-stress.test.ts +616 -0
- package/src/core/plan/sql-format/format-utils.test.ts +91 -0
- package/src/core/plan/sql-format/format-utils.ts +391 -0
- package/src/core/plan/sql-format/formatters.ts +921 -0
- package/src/core/plan/sql-format/index.ts +149 -0
- package/src/core/plan/sql-format/keyword-case.test.ts +118 -0
- package/src/core/plan/sql-format/keyword-case.ts +1120 -0
- package/src/core/plan/sql-format/protect.test.ts +127 -0
- package/src/core/plan/sql-format/protect.ts +337 -0
- package/src/core/plan/sql-format/sql-scanner.test.ts +240 -0
- package/src/core/plan/sql-format/sql-scanner.ts +252 -0
- package/src/core/plan/sql-format/tokenizer.test.ts +68 -0
- package/src/core/plan/sql-format/tokenizer.ts +152 -0
- package/src/core/plan/sql-format/types.ts +31 -0
- package/src/core/plan/sql-format/wrap.test.ts +119 -0
- package/src/core/plan/sql-format/wrap.ts +196 -0
- package/src/core/plan/sql-format.ts +2 -0
- package/src/core/plan/ssl-config.ts +172 -0
- package/src/core/plan/statements.ts +22 -0
- package/src/core/plan/types.ts +168 -0
- package/src/core/post-diff-cycle-breaking.test.ts +303 -0
- package/src/core/post-diff-cycle-breaking.ts +138 -0
- package/src/core/postgres-config.test.ts +336 -0
- package/src/core/postgres-config.ts +458 -0
- package/src/core/sort/custom-constraints.ts +235 -0
- package/src/core/sort/cycle-breakers.test.ts +476 -0
- package/src/core/sort/cycle-breakers.ts +311 -0
- package/src/core/sort/debug-visualization.ts +239 -0
- package/src/core/sort/dependency-filter.ts +224 -0
- package/src/core/sort/graph-builder.ts +235 -0
- package/src/core/sort/graph-utils.ts +51 -0
- package/src/core/sort/logical-sort.test.ts +371 -0
- package/src/core/sort/logical-sort.ts +573 -0
- package/src/core/sort/sort-changes.ts +319 -0
- package/src/core/sort/topological-sort.test.ts +275 -0
- package/src/core/sort/topological-sort.ts +184 -0
- package/src/core/sort/types.ts +112 -0
- package/src/core/sort/utils.ts +69 -0
- package/src/core/test-utils/assert-valid-sql.ts +20 -0
- package/src/index.ts +41 -0
- package/src/typedoc.ts +253 -0
- package/dist/core/integrations/filter/extractors.d.ts +0 -12
- package/dist/core/integrations/filter/extractors.js +0 -136
|
@@ -15,7 +15,7 @@ export class AlterTableChangeOwner extends AlterTableChange {
|
|
|
15
15
|
get requires() {
|
|
16
16
|
return [this.table.stableId];
|
|
17
17
|
}
|
|
18
|
-
serialize() {
|
|
18
|
+
serialize(_options) {
|
|
19
19
|
return [
|
|
20
20
|
"ALTER TABLE",
|
|
21
21
|
`${this.table.schema}.${this.table.name}`,
|
|
@@ -37,7 +37,7 @@ export class AlterTableSetLogged extends AlterTableChange {
|
|
|
37
37
|
get requires() {
|
|
38
38
|
return [this.table.stableId];
|
|
39
39
|
}
|
|
40
|
-
serialize() {
|
|
40
|
+
serialize(_options) {
|
|
41
41
|
return [
|
|
42
42
|
"ALTER TABLE",
|
|
43
43
|
`${this.table.schema}.${this.table.name}`,
|
|
@@ -58,7 +58,7 @@ export class AlterTableSetUnlogged extends AlterTableChange {
|
|
|
58
58
|
get requires() {
|
|
59
59
|
return [this.table.stableId];
|
|
60
60
|
}
|
|
61
|
-
serialize() {
|
|
61
|
+
serialize(_options) {
|
|
62
62
|
return [
|
|
63
63
|
"ALTER TABLE",
|
|
64
64
|
`${this.table.schema}.${this.table.name}`,
|
|
@@ -79,7 +79,7 @@ export class AlterTableEnableRowLevelSecurity extends AlterTableChange {
|
|
|
79
79
|
get requires() {
|
|
80
80
|
return [this.table.stableId];
|
|
81
81
|
}
|
|
82
|
-
serialize() {
|
|
82
|
+
serialize(_options) {
|
|
83
83
|
return [
|
|
84
84
|
"ALTER TABLE",
|
|
85
85
|
`${this.table.schema}.${this.table.name}`,
|
|
@@ -100,7 +100,7 @@ export class AlterTableDisableRowLevelSecurity extends AlterTableChange {
|
|
|
100
100
|
get requires() {
|
|
101
101
|
return [this.table.stableId];
|
|
102
102
|
}
|
|
103
|
-
serialize() {
|
|
103
|
+
serialize(_options) {
|
|
104
104
|
return [
|
|
105
105
|
"ALTER TABLE",
|
|
106
106
|
`${this.table.schema}.${this.table.name}`,
|
|
@@ -121,7 +121,7 @@ export class AlterTableForceRowLevelSecurity extends AlterTableChange {
|
|
|
121
121
|
get requires() {
|
|
122
122
|
return [this.table.stableId];
|
|
123
123
|
}
|
|
124
|
-
serialize() {
|
|
124
|
+
serialize(_options) {
|
|
125
125
|
return [
|
|
126
126
|
"ALTER TABLE",
|
|
127
127
|
`${this.table.schema}.${this.table.name}`,
|
|
@@ -142,7 +142,7 @@ export class AlterTableNoForceRowLevelSecurity extends AlterTableChange {
|
|
|
142
142
|
get requires() {
|
|
143
143
|
return [this.table.stableId];
|
|
144
144
|
}
|
|
145
|
-
serialize() {
|
|
145
|
+
serialize(_options) {
|
|
146
146
|
return [
|
|
147
147
|
"ALTER TABLE",
|
|
148
148
|
`${this.table.schema}.${this.table.name}`,
|
|
@@ -165,7 +165,7 @@ export class AlterTableSetStorageParams extends AlterTableChange {
|
|
|
165
165
|
get requires() {
|
|
166
166
|
return [this.table.stableId];
|
|
167
167
|
}
|
|
168
|
-
serialize() {
|
|
168
|
+
serialize(_options) {
|
|
169
169
|
const storageParams = this.options.join(", ");
|
|
170
170
|
return [
|
|
171
171
|
"ALTER TABLE",
|
|
@@ -189,7 +189,7 @@ export class AlterTableResetStorageParams extends AlterTableChange {
|
|
|
189
189
|
get requires() {
|
|
190
190
|
return [this.table.stableId];
|
|
191
191
|
}
|
|
192
|
-
serialize() {
|
|
192
|
+
serialize(_options) {
|
|
193
193
|
const paramsSql = this.params.join(", ");
|
|
194
194
|
return [
|
|
195
195
|
"ALTER TABLE",
|
|
@@ -231,7 +231,7 @@ export class AlterTableAddConstraint extends AlterTableChange {
|
|
|
231
231
|
}
|
|
232
232
|
return reqs;
|
|
233
233
|
}
|
|
234
|
-
serialize() {
|
|
234
|
+
serialize(_options) {
|
|
235
235
|
return [
|
|
236
236
|
"ALTER TABLE",
|
|
237
237
|
`${this.table.schema}.${this.table.name}`,
|
|
@@ -264,7 +264,7 @@ export class AlterTableDropConstraint extends AlterTableChange {
|
|
|
264
264
|
this.table.stableId,
|
|
265
265
|
];
|
|
266
266
|
}
|
|
267
|
-
serialize() {
|
|
267
|
+
serialize(_options) {
|
|
268
268
|
return [
|
|
269
269
|
"ALTER TABLE",
|
|
270
270
|
`${this.table.schema}.${this.table.name}`,
|
|
@@ -291,7 +291,7 @@ export class AlterTableValidateConstraint extends AlterTableChange {
|
|
|
291
291
|
this.table.stableId,
|
|
292
292
|
];
|
|
293
293
|
}
|
|
294
|
-
serialize() {
|
|
294
|
+
serialize(_options) {
|
|
295
295
|
return [
|
|
296
296
|
"ALTER TABLE",
|
|
297
297
|
`${this.table.schema}.${this.table.name}`,
|
|
@@ -315,7 +315,7 @@ export class AlterTableSetReplicaIdentity extends AlterTableChange {
|
|
|
315
315
|
get requires() {
|
|
316
316
|
return [this.table.stableId];
|
|
317
317
|
}
|
|
318
|
-
serialize() {
|
|
318
|
+
serialize(_options) {
|
|
319
319
|
const clause = this.mode === "d"
|
|
320
320
|
? "DEFAULT"
|
|
321
321
|
: this.mode === "n"
|
|
@@ -351,7 +351,7 @@ export class AlterTableAddColumn extends AlterTableChange {
|
|
|
351
351
|
get requires() {
|
|
352
352
|
return [this.table.stableId];
|
|
353
353
|
}
|
|
354
|
-
serialize() {
|
|
354
|
+
serialize(_options) {
|
|
355
355
|
const parts = [
|
|
356
356
|
"ALTER TABLE",
|
|
357
357
|
`${this.table.schema}.${this.table.name}`,
|
|
@@ -386,10 +386,16 @@ export class AlterTableDropColumn extends AlterTableChange {
|
|
|
386
386
|
table;
|
|
387
387
|
column;
|
|
388
388
|
scope = "object";
|
|
389
|
+
// Drop the implicit `requires(table)` edge. Only set by the lazy
|
|
390
|
+
// cycle-breaker for the publication↔column case, where the table survives
|
|
391
|
+
// the migration and the edge is therefore artificial. See
|
|
392
|
+
// `sort/cycle-breakers.ts` for the full justification.
|
|
393
|
+
omitTableRequirement;
|
|
389
394
|
constructor(props) {
|
|
390
395
|
super();
|
|
391
396
|
this.table = props.table;
|
|
392
397
|
this.column = props.column;
|
|
398
|
+
this.omitTableRequirement = props.omitTableRequirement ?? false;
|
|
393
399
|
}
|
|
394
400
|
get drops() {
|
|
395
401
|
return [
|
|
@@ -397,12 +403,10 @@ export class AlterTableDropColumn extends AlterTableChange {
|
|
|
397
403
|
];
|
|
398
404
|
}
|
|
399
405
|
get requires() {
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
stableId.column(this.table.schema, this.table.name, this.column.name),
|
|
403
|
-
];
|
|
406
|
+
const colId = stableId.column(this.table.schema, this.table.name, this.column.name);
|
|
407
|
+
return this.omitTableRequirement ? [colId] : [this.table.stableId, colId];
|
|
404
408
|
}
|
|
405
|
-
serialize() {
|
|
409
|
+
serialize(_options) {
|
|
406
410
|
return [
|
|
407
411
|
"ALTER TABLE",
|
|
408
412
|
`${this.table.schema}.${this.table.name}`,
|
|
@@ -417,18 +421,26 @@ export class AlterTableDropColumn extends AlterTableChange {
|
|
|
417
421
|
export class AlterTableAlterColumnType extends AlterTableChange {
|
|
418
422
|
table;
|
|
419
423
|
column;
|
|
424
|
+
previousColumn;
|
|
420
425
|
scope = "object";
|
|
421
426
|
constructor(props) {
|
|
422
427
|
super();
|
|
423
428
|
this.table = props.table;
|
|
424
429
|
this.column = props.column;
|
|
430
|
+
this.previousColumn = props.previousColumn;
|
|
425
431
|
}
|
|
426
432
|
get requires() {
|
|
427
433
|
return [
|
|
428
434
|
stableId.column(this.table.schema, this.table.name, this.column.name),
|
|
429
435
|
];
|
|
430
436
|
}
|
|
431
|
-
serialize() {
|
|
437
|
+
serialize(_options) {
|
|
438
|
+
// previousColumn is optional so direct serializer tests/fixtures can keep
|
|
439
|
+
// emitting canonical ALTER TYPE SQL without forcing a USING expression.
|
|
440
|
+
// When provided, we can detect true type changes and add USING for casts
|
|
441
|
+
// PostgreSQL cannot perform automatically.
|
|
442
|
+
const hasTypeChangedWithPreviousDefinition = this.previousColumn?.data_type_str !== undefined &&
|
|
443
|
+
this.previousColumn.data_type_str !== this.column.data_type_str;
|
|
432
444
|
const parts = [
|
|
433
445
|
"ALTER TABLE",
|
|
434
446
|
`${this.table.schema}.${this.table.name}`,
|
|
@@ -440,6 +452,9 @@ export class AlterTableAlterColumnType extends AlterTableChange {
|
|
|
440
452
|
if (this.column.collation) {
|
|
441
453
|
parts.push("COLLATE", this.column.collation);
|
|
442
454
|
}
|
|
455
|
+
if (hasTypeChangedWithPreviousDefinition) {
|
|
456
|
+
parts.push("USING", `${this.column.name}::${this.column.data_type_str}`);
|
|
457
|
+
}
|
|
443
458
|
return parts.join(" ");
|
|
444
459
|
}
|
|
445
460
|
}
|
|
@@ -460,15 +475,18 @@ export class AlterTableAlterColumnSetDefault extends AlterTableChange {
|
|
|
460
475
|
stableId.column(this.table.schema, this.table.name, this.column.name),
|
|
461
476
|
];
|
|
462
477
|
}
|
|
463
|
-
serialize() {
|
|
478
|
+
serialize(_options) {
|
|
464
479
|
const set = this.column.is_generated ? "SET EXPRESSION AS" : "SET DEFAULT";
|
|
480
|
+
const value = this.column.is_generated
|
|
481
|
+
? `(${this.column.default ?? "NULL"})`
|
|
482
|
+
: (this.column.default ?? "NULL");
|
|
465
483
|
return [
|
|
466
484
|
"ALTER TABLE",
|
|
467
485
|
`${this.table.schema}.${this.table.name}`,
|
|
468
486
|
"ALTER COLUMN",
|
|
469
487
|
this.column.name,
|
|
470
488
|
set,
|
|
471
|
-
|
|
489
|
+
value,
|
|
472
490
|
].join(" ");
|
|
473
491
|
}
|
|
474
492
|
}
|
|
@@ -489,7 +507,7 @@ export class AlterTableAlterColumnDropDefault extends AlterTableChange {
|
|
|
489
507
|
stableId.column(this.table.schema, this.table.name, this.column.name),
|
|
490
508
|
];
|
|
491
509
|
}
|
|
492
|
-
serialize() {
|
|
510
|
+
serialize(_options) {
|
|
493
511
|
return [
|
|
494
512
|
"ALTER TABLE",
|
|
495
513
|
`${this.table.schema}.${this.table.name}`,
|
|
@@ -499,6 +517,91 @@ export class AlterTableAlterColumnDropDefault extends AlterTableChange {
|
|
|
499
517
|
].join(" ");
|
|
500
518
|
}
|
|
501
519
|
}
|
|
520
|
+
/**
|
|
521
|
+
* ALTER TABLE ... ALTER COLUMN ... ADD GENERATED ... AS IDENTITY
|
|
522
|
+
*/
|
|
523
|
+
export class AlterTableAlterColumnAddIdentity extends AlterTableChange {
|
|
524
|
+
table;
|
|
525
|
+
column;
|
|
526
|
+
scope = "object";
|
|
527
|
+
constructor(props) {
|
|
528
|
+
super();
|
|
529
|
+
this.table = props.table;
|
|
530
|
+
this.column = props.column;
|
|
531
|
+
}
|
|
532
|
+
get requires() {
|
|
533
|
+
return [
|
|
534
|
+
stableId.column(this.table.schema, this.table.name, this.column.name),
|
|
535
|
+
];
|
|
536
|
+
}
|
|
537
|
+
serialize() {
|
|
538
|
+
return [
|
|
539
|
+
"ALTER TABLE",
|
|
540
|
+
`${this.table.schema}.${this.table.name}`,
|
|
541
|
+
"ALTER COLUMN",
|
|
542
|
+
this.column.name,
|
|
543
|
+
"ADD",
|
|
544
|
+
this.column.is_identity_always
|
|
545
|
+
? "GENERATED ALWAYS AS IDENTITY"
|
|
546
|
+
: "GENERATED BY DEFAULT AS IDENTITY",
|
|
547
|
+
].join(" ");
|
|
548
|
+
}
|
|
549
|
+
}
|
|
550
|
+
/**
|
|
551
|
+
* ALTER TABLE ... ALTER COLUMN ... DROP IDENTITY
|
|
552
|
+
*/
|
|
553
|
+
export class AlterTableAlterColumnDropIdentity extends AlterTableChange {
|
|
554
|
+
table;
|
|
555
|
+
column;
|
|
556
|
+
scope = "object";
|
|
557
|
+
constructor(props) {
|
|
558
|
+
super();
|
|
559
|
+
this.table = props.table;
|
|
560
|
+
this.column = props.column;
|
|
561
|
+
}
|
|
562
|
+
get requires() {
|
|
563
|
+
return [
|
|
564
|
+
stableId.column(this.table.schema, this.table.name, this.column.name),
|
|
565
|
+
];
|
|
566
|
+
}
|
|
567
|
+
serialize() {
|
|
568
|
+
return [
|
|
569
|
+
"ALTER TABLE",
|
|
570
|
+
`${this.table.schema}.${this.table.name}`,
|
|
571
|
+
"ALTER COLUMN",
|
|
572
|
+
this.column.name,
|
|
573
|
+
"DROP IDENTITY",
|
|
574
|
+
].join(" ");
|
|
575
|
+
}
|
|
576
|
+
}
|
|
577
|
+
/**
|
|
578
|
+
* ALTER TABLE ... ALTER COLUMN ... SET GENERATED { ALWAYS | BY DEFAULT }
|
|
579
|
+
*/
|
|
580
|
+
export class AlterTableAlterColumnSetGenerated extends AlterTableChange {
|
|
581
|
+
table;
|
|
582
|
+
column;
|
|
583
|
+
scope = "object";
|
|
584
|
+
constructor(props) {
|
|
585
|
+
super();
|
|
586
|
+
this.table = props.table;
|
|
587
|
+
this.column = props.column;
|
|
588
|
+
}
|
|
589
|
+
get requires() {
|
|
590
|
+
return [
|
|
591
|
+
stableId.column(this.table.schema, this.table.name, this.column.name),
|
|
592
|
+
];
|
|
593
|
+
}
|
|
594
|
+
serialize() {
|
|
595
|
+
return [
|
|
596
|
+
"ALTER TABLE",
|
|
597
|
+
`${this.table.schema}.${this.table.name}`,
|
|
598
|
+
"ALTER COLUMN",
|
|
599
|
+
this.column.name,
|
|
600
|
+
"SET GENERATED",
|
|
601
|
+
this.column.is_identity_always ? "ALWAYS" : "BY DEFAULT",
|
|
602
|
+
].join(" ");
|
|
603
|
+
}
|
|
604
|
+
}
|
|
502
605
|
/**
|
|
503
606
|
* ALTER TABLE ... ALTER COLUMN ... SET NOT NULL
|
|
504
607
|
*/
|
|
@@ -516,7 +619,7 @@ export class AlterTableAlterColumnSetNotNull extends AlterTableChange {
|
|
|
516
619
|
stableId.column(this.table.schema, this.table.name, this.column.name),
|
|
517
620
|
];
|
|
518
621
|
}
|
|
519
|
-
serialize() {
|
|
622
|
+
serialize(_options) {
|
|
520
623
|
return [
|
|
521
624
|
"ALTER TABLE",
|
|
522
625
|
`${this.table.schema}.${this.table.name}`,
|
|
@@ -543,7 +646,7 @@ export class AlterTableAlterColumnDropNotNull extends AlterTableChange {
|
|
|
543
646
|
stableId.column(this.table.schema, this.table.name, this.column.name),
|
|
544
647
|
];
|
|
545
648
|
}
|
|
546
|
-
serialize() {
|
|
649
|
+
serialize(_options) {
|
|
547
650
|
return [
|
|
548
651
|
"ALTER TABLE",
|
|
549
652
|
`${this.table.schema}.${this.table.name}`,
|
|
@@ -569,7 +672,7 @@ export class AlterTableAttachPartition extends AlterTableChange {
|
|
|
569
672
|
// Depend on the partition child so that it is created before attach
|
|
570
673
|
return [this.partition.stableId, this.table.stableId];
|
|
571
674
|
}
|
|
572
|
-
serialize() {
|
|
675
|
+
serialize(_options) {
|
|
573
676
|
const bound = this.partition.partition_bound ?? "DEFAULT";
|
|
574
677
|
return [
|
|
575
678
|
"ALTER TABLE",
|
|
@@ -596,7 +699,7 @@ export class AlterTableDetachPartition extends AlterTableChange {
|
|
|
596
699
|
// Depend on the partition child for consistent ordering with potential drops
|
|
597
700
|
return [this.table.stableId, this.partition.stableId];
|
|
598
701
|
}
|
|
599
|
-
serialize() {
|
|
702
|
+
serialize(_options) {
|
|
600
703
|
return [
|
|
601
704
|
"ALTER TABLE",
|
|
602
705
|
`${this.table.schema}.${this.table.name}`,
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { SerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
|
|
1
2
|
import type { ColumnProps } from "../../base.model.ts";
|
|
2
3
|
import type { Table, TableConstraintProps } from "../table.model.ts";
|
|
3
4
|
import { CreateTableChange, DropTableChange } from "./table.base.ts";
|
|
@@ -29,7 +30,7 @@ export declare class CreateCommentOnTable extends CreateTableChange {
|
|
|
29
30
|
});
|
|
30
31
|
get creates(): `comment:${string}`[];
|
|
31
32
|
get requires(): `table:${string}`[];
|
|
32
|
-
serialize(): string;
|
|
33
|
+
serialize(_options?: SerializeOptions): string;
|
|
33
34
|
}
|
|
34
35
|
/**
|
|
35
36
|
* COMMENT ON TABLE ... IS ...
|
|
@@ -42,7 +43,7 @@ export declare class DropCommentOnTable extends DropTableChange {
|
|
|
42
43
|
});
|
|
43
44
|
get drops(): `comment:${string}`[];
|
|
44
45
|
get requires(): (`comment:${string}` | `table:${string}`)[];
|
|
45
|
-
serialize(): string;
|
|
46
|
+
serialize(_options?: SerializeOptions): string;
|
|
46
47
|
}
|
|
47
48
|
/**
|
|
48
49
|
* COMMENT ON COLUMN ... IS ...
|
|
@@ -57,7 +58,7 @@ export declare class CreateCommentOnColumn extends CreateTableChange {
|
|
|
57
58
|
});
|
|
58
59
|
get creates(): `comment:${string}`[];
|
|
59
60
|
get requires(): `column:${string}.${string}.${string}`[];
|
|
60
|
-
serialize(): string;
|
|
61
|
+
serialize(_options?: SerializeOptions): string;
|
|
61
62
|
}
|
|
62
63
|
/**
|
|
63
64
|
* COMMENT ON COLUMN ... IS ...
|
|
@@ -72,7 +73,7 @@ export declare class DropCommentOnColumn extends DropTableChange {
|
|
|
72
73
|
});
|
|
73
74
|
get drops(): `comment:${string}`[];
|
|
74
75
|
get requires(): (`column:${string}.${string}.${string}` | `comment:${string}`)[];
|
|
75
|
-
serialize(): string;
|
|
76
|
+
serialize(_options?: SerializeOptions): string;
|
|
76
77
|
}
|
|
77
78
|
/**
|
|
78
79
|
* COMMENT ON CONSTRAINT ... IS ...
|
|
@@ -87,7 +88,7 @@ export declare class CreateCommentOnConstraint extends CreateTableChange {
|
|
|
87
88
|
});
|
|
88
89
|
get creates(): `comment:${string}`[];
|
|
89
90
|
get requires(): `constraint:${string}.${string}.${string}`[];
|
|
90
|
-
serialize(): string;
|
|
91
|
+
serialize(_options?: SerializeOptions): string;
|
|
91
92
|
}
|
|
92
93
|
/**
|
|
93
94
|
* COMMENT ON CONSTRAINT ... IS ...
|
|
@@ -102,5 +103,5 @@ export declare class DropCommentOnConstraint extends DropTableChange {
|
|
|
102
103
|
});
|
|
103
104
|
get drops(): `comment:${string}`[];
|
|
104
105
|
get requires(): (`constraint:${string}.${string}.${string}` | `comment:${string}`)[];
|
|
105
|
-
serialize(): string;
|
|
106
|
+
serialize(_options?: SerializeOptions): string;
|
|
106
107
|
}
|
|
@@ -17,7 +17,7 @@ export class CreateCommentOnTable extends CreateTableChange {
|
|
|
17
17
|
get requires() {
|
|
18
18
|
return [this.table.stableId];
|
|
19
19
|
}
|
|
20
|
-
serialize() {
|
|
20
|
+
serialize(_options) {
|
|
21
21
|
return [
|
|
22
22
|
"COMMENT ON TABLE",
|
|
23
23
|
`${this.table.schema}.${this.table.name}`,
|
|
@@ -43,7 +43,7 @@ export class DropCommentOnTable extends DropTableChange {
|
|
|
43
43
|
get requires() {
|
|
44
44
|
return [stableId.comment(this.table.stableId), this.table.stableId];
|
|
45
45
|
}
|
|
46
|
-
serialize() {
|
|
46
|
+
serialize(_options) {
|
|
47
47
|
return [
|
|
48
48
|
"COMMENT ON TABLE",
|
|
49
49
|
`${this.table.schema}.${this.table.name}`,
|
|
@@ -72,7 +72,7 @@ export class CreateCommentOnColumn extends CreateTableChange {
|
|
|
72
72
|
stableId.column(this.table.schema, this.table.name, this.column.name),
|
|
73
73
|
];
|
|
74
74
|
}
|
|
75
|
-
serialize() {
|
|
75
|
+
serialize(_options) {
|
|
76
76
|
return [
|
|
77
77
|
"COMMENT ON COLUMN",
|
|
78
78
|
`${this.table.schema}.${this.table.name}.${this.column.name}`,
|
|
@@ -102,7 +102,7 @@ export class DropCommentOnColumn extends DropTableChange {
|
|
|
102
102
|
const columnStableId = stableId.column(this.table.schema, this.table.name, this.column.name);
|
|
103
103
|
return [stableId.comment(columnStableId), columnStableId];
|
|
104
104
|
}
|
|
105
|
-
serialize() {
|
|
105
|
+
serialize(_options) {
|
|
106
106
|
return [
|
|
107
107
|
"COMMENT ON COLUMN",
|
|
108
108
|
`${this.table.schema}.${this.table.name}.${this.column.name}`,
|
|
@@ -131,7 +131,7 @@ export class CreateCommentOnConstraint extends CreateTableChange {
|
|
|
131
131
|
stableId.constraint(this.table.schema, this.table.name, this.constraint.name),
|
|
132
132
|
];
|
|
133
133
|
}
|
|
134
|
-
serialize() {
|
|
134
|
+
serialize(_options) {
|
|
135
135
|
return [
|
|
136
136
|
"COMMENT ON CONSTRAINT",
|
|
137
137
|
this.constraint.name,
|
|
@@ -163,7 +163,7 @@ export class DropCommentOnConstraint extends DropTableChange {
|
|
|
163
163
|
const constraintStableId = stableId.constraint(this.table.schema, this.table.name, this.constraint.name);
|
|
164
164
|
return [stableId.comment(constraintStableId), constraintStableId];
|
|
165
165
|
}
|
|
166
|
-
serialize() {
|
|
166
|
+
serialize(_options) {
|
|
167
167
|
return [
|
|
168
168
|
"COMMENT ON CONSTRAINT",
|
|
169
169
|
this.constraint.name,
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { SerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
|
|
1
2
|
import type { Table } from "../table.model.ts";
|
|
2
3
|
import { CreateTableChange } from "./table.base.ts";
|
|
3
4
|
/**
|
|
@@ -29,5 +30,5 @@ export declare class CreateTable extends CreateTableChange {
|
|
|
29
30
|
});
|
|
30
31
|
get creates(): (`column:${string}.${string}.${string}` | `table:${string}`)[];
|
|
31
32
|
get requires(): string[];
|
|
32
|
-
serialize(): string;
|
|
33
|
+
serialize(_options?: SerializeOptions): string;
|
|
33
34
|
}
|
|
@@ -64,10 +64,13 @@ export class CreateTable extends CreateTableChange {
|
|
|
64
64
|
}
|
|
65
65
|
}
|
|
66
66
|
}
|
|
67
|
+
// Function dependencies from DEFAULT expressions are handled by pg_depend
|
|
68
|
+
// catalog constraints in the sort pipeline, which provides exact argument
|
|
69
|
+
// types and covers all expression contexts (not just column defaults).
|
|
67
70
|
}
|
|
68
71
|
return Array.from(dependencies);
|
|
69
72
|
}
|
|
70
|
-
serialize() {
|
|
73
|
+
serialize(_options) {
|
|
71
74
|
const parts = ["CREATE"];
|
|
72
75
|
// Add TEMPORARY/UNLOGGED based on persistence
|
|
73
76
|
if (this.table.persistence === "t") {
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { SerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
|
|
1
2
|
import type { Table } from "../table.model.ts";
|
|
2
3
|
import { DropTableChange } from "./table.base.ts";
|
|
3
4
|
/**
|
|
@@ -13,10 +14,22 @@ import { DropTableChange } from "./table.base.ts";
|
|
|
13
14
|
export declare class DropTable extends DropTableChange {
|
|
14
15
|
readonly table: Table;
|
|
15
16
|
readonly scope: "object";
|
|
17
|
+
/**
|
|
18
|
+
* Names of constraints on this table that are dropped explicitly by a
|
|
19
|
+
* separate `AlterTableDropConstraint` change. Those constraints must not be
|
|
20
|
+
* claimed by `DropTable.drops` / `.requires`, otherwise catalog edges tied
|
|
21
|
+
* to the constraint stableId will attach to this DropTable node instead of
|
|
22
|
+
* the dedicated AlterTableDropConstraint node. When two tables with mutual
|
|
23
|
+
* FK references are dropped in the same phase, that misattribution
|
|
24
|
+
* produces an unbreakable cycle between the two DropTable changes.
|
|
25
|
+
*/
|
|
26
|
+
readonly externallyDroppedConstraints: ReadonlySet<string>;
|
|
16
27
|
constructor(props: {
|
|
17
28
|
table: Table;
|
|
29
|
+
externallyDroppedConstraints?: ReadonlySet<string>;
|
|
18
30
|
});
|
|
19
|
-
get
|
|
20
|
-
get
|
|
21
|
-
|
|
31
|
+
private get claimedConstraints();
|
|
32
|
+
get drops(): (`column:${string}.${string}.${string}` | `constraint:${string}.${string}.${string}` | `table:${string}`)[];
|
|
33
|
+
get requires(): (`column:${string}.${string}.${string}` | `constraint:${string}.${string}.${string}` | `table:${string}`)[];
|
|
34
|
+
serialize(_options?: SerializeOptions): string;
|
|
22
35
|
}
|
|
@@ -13,23 +13,46 @@ import { DropTableChange } from "./table.base.js";
|
|
|
13
13
|
export class DropTable extends DropTableChange {
|
|
14
14
|
table;
|
|
15
15
|
scope = "object";
|
|
16
|
+
/**
|
|
17
|
+
* Names of constraints on this table that are dropped explicitly by a
|
|
18
|
+
* separate `AlterTableDropConstraint` change. Those constraints must not be
|
|
19
|
+
* claimed by `DropTable.drops` / `.requires`, otherwise catalog edges tied
|
|
20
|
+
* to the constraint stableId will attach to this DropTable node instead of
|
|
21
|
+
* the dedicated AlterTableDropConstraint node. When two tables with mutual
|
|
22
|
+
* FK references are dropped in the same phase, that misattribution
|
|
23
|
+
* produces an unbreakable cycle between the two DropTable changes.
|
|
24
|
+
*/
|
|
25
|
+
externallyDroppedConstraints;
|
|
16
26
|
constructor(props) {
|
|
17
27
|
super();
|
|
18
28
|
this.table = props.table;
|
|
29
|
+
this.externallyDroppedConstraints =
|
|
30
|
+
props.externallyDroppedConstraints ?? new Set();
|
|
31
|
+
}
|
|
32
|
+
get claimedConstraints() {
|
|
33
|
+
return this.table.constraints.filter((constraint) => !this.externallyDroppedConstraints.has(constraint.name));
|
|
19
34
|
}
|
|
20
35
|
get drops() {
|
|
21
36
|
return [
|
|
22
37
|
this.table.stableId,
|
|
23
38
|
...this.table.columns.map((column) => stableId.column(this.table.schema, this.table.name, column.name)),
|
|
39
|
+
// Include constraint stableIds so FK relationships that only exist at the
|
|
40
|
+
// constraint level still affect whole-table drop ordering. Skip any
|
|
41
|
+
// constraint that the diff layer is dropping via a dedicated
|
|
42
|
+
// AlterTableDropConstraint change — that node owns the stableId.
|
|
43
|
+
...this.claimedConstraints.map((constraint) => stableId.constraint(this.table.schema, this.table.name, constraint.name)),
|
|
24
44
|
];
|
|
25
45
|
}
|
|
26
46
|
get requires() {
|
|
27
47
|
return [
|
|
28
48
|
this.table.stableId,
|
|
29
49
|
...this.table.columns.map((col) => stableId.column(this.table.schema, this.table.name, col.name)),
|
|
50
|
+
// Mirror the dropped constraint ids in requires so drop-phase graph
|
|
51
|
+
// consumers can connect catalog FK edges back to this table drop.
|
|
52
|
+
...this.claimedConstraints.map((constraint) => stableId.constraint(this.table.schema, this.table.name, constraint.name)),
|
|
30
53
|
];
|
|
31
54
|
}
|
|
32
|
-
serialize() {
|
|
55
|
+
serialize(_options) {
|
|
33
56
|
return ["DROP TABLE", `${this.table.schema}.${this.table.name}`].join(" ");
|
|
34
57
|
}
|
|
35
58
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { SerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
|
|
1
2
|
import type { Table } from "../table.model.ts";
|
|
2
3
|
import { AlterTableChange } from "./table.base.ts";
|
|
3
4
|
export type TablePrivilege = GrantTablePrivileges | RevokeTablePrivileges | RevokeGrantOptionTablePrivileges;
|
|
@@ -38,7 +39,7 @@ export declare class GrantTablePrivileges extends AlterTableChange {
|
|
|
38
39
|
});
|
|
39
40
|
get creates(): `acl:${string}::grantee:${string}`[];
|
|
40
41
|
get requires(): (`role:${string}` | `table:${string}`)[];
|
|
41
|
-
serialize(): string;
|
|
42
|
+
serialize(_options?: SerializeOptions): string;
|
|
42
43
|
}
|
|
43
44
|
/**
|
|
44
45
|
* Revoke privileges on a table.
|
|
@@ -79,7 +80,7 @@ export declare class RevokeTablePrivileges extends AlterTableChange {
|
|
|
79
80
|
});
|
|
80
81
|
get drops(): `acl:${string}::grantee:${string}`[];
|
|
81
82
|
get requires(): (`acl:${string}::grantee:${string}` | `role:${string}` | `table:${string}`)[];
|
|
82
|
-
serialize(): string;
|
|
83
|
+
serialize(_options?: SerializeOptions): string;
|
|
83
84
|
}
|
|
84
85
|
/**
|
|
85
86
|
* Revoke grant option for privileges on a table.
|
|
@@ -103,5 +104,5 @@ export declare class RevokeGrantOptionTablePrivileges extends AlterTableChange {
|
|
|
103
104
|
version?: number;
|
|
104
105
|
});
|
|
105
106
|
get requires(): (`acl:${string}::grantee:${string}` | `role:${string}` | `table:${string}`)[];
|
|
106
|
-
serialize(): string;
|
|
107
|
+
serialize(_options?: SerializeOptions): string;
|
|
107
108
|
}
|
|
@@ -37,7 +37,7 @@ export class GrantTablePrivileges extends AlterTableChange {
|
|
|
37
37
|
get requires() {
|
|
38
38
|
return [this.table.stableId, stableId.role(this.grantee)];
|
|
39
39
|
}
|
|
40
|
-
serialize() {
|
|
40
|
+
serialize(_options) {
|
|
41
41
|
const hasGrantable = this.privileges.some((p) => p.grantable);
|
|
42
42
|
const hasBase = this.privileges.some((p) => !p.grantable);
|
|
43
43
|
if (hasGrantable && hasBase) {
|
|
@@ -98,7 +98,7 @@ export class RevokeTablePrivileges extends AlterTableChange {
|
|
|
98
98
|
stableId.role(this.grantee),
|
|
99
99
|
];
|
|
100
100
|
}
|
|
101
|
-
serialize() {
|
|
101
|
+
serialize(_options) {
|
|
102
102
|
const kindPrefix = getObjectKindPrefix("TABLE");
|
|
103
103
|
const list = this.privileges.map((p) => p.privilege);
|
|
104
104
|
const privSql = formatObjectPrivilegeList("TABLE", list, this.version);
|
|
@@ -138,7 +138,7 @@ export class RevokeGrantOptionTablePrivileges extends AlterTableChange {
|
|
|
138
138
|
stableId.role(this.grantee),
|
|
139
139
|
];
|
|
140
140
|
}
|
|
141
|
-
serialize() {
|
|
141
|
+
serialize(_options) {
|
|
142
142
|
const kindPrefix = getObjectKindPrefix("TABLE");
|
|
143
143
|
const privSql = formatObjectPrivilegeList("TABLE", this.privilegeNames, this.version);
|
|
144
144
|
const tableName = `${this.table.schema}.${this.table.name}`;
|
|
@@ -3,4 +3,5 @@ import type { CommentTable } from "./table.comment.ts";
|
|
|
3
3
|
import type { CreateTable } from "./table.create.ts";
|
|
4
4
|
import type { DropTable } from "./table.drop.ts";
|
|
5
5
|
import type { TablePrivilege } from "./table.privilege.ts";
|
|
6
|
+
/** Union of all table-related change variants (`objectType: "table"`). @category Change Types */
|
|
6
7
|
export type TableChange = AlterTable | CommentTable | CreateTable | DropTable | TablePrivilege;
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type { Role } from "../role/role.model.ts";
|
|
1
|
+
import type { ObjectDiffContext } from "../diff-context.ts";
|
|
3
2
|
import type { TableChange } from "./changes/table.types.ts";
|
|
4
3
|
import { Table } from "./table.model.ts";
|
|
5
4
|
/**
|
|
@@ -10,9 +9,4 @@ import { Table } from "./table.model.ts";
|
|
|
10
9
|
* @param branch - The tables in the branch catalog.
|
|
11
10
|
* @returns A list of changes to apply to main to make it match branch.
|
|
12
11
|
*/
|
|
13
|
-
export declare function diffTables(ctx:
|
|
14
|
-
version: number;
|
|
15
|
-
currentUser: string;
|
|
16
|
-
defaultPrivilegeState: DefaultPrivilegeState;
|
|
17
|
-
mainRoles: Record<string, Role>;
|
|
18
|
-
}, main: Record<string, Table>, branch: Record<string, Table>): TableChange[];
|
|
12
|
+
export declare function diffTables(ctx: Pick<ObjectDiffContext, "version" | "currentUser" | "defaultPrivilegeState">, main: Record<string, Table>, branch: Record<string, Table>): TableChange[];
|