@supabase/pg-delta 1.0.0-alpha.10 → 1.0.0-alpha.12
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/dist/cli/commands/declarative-export.js +12 -17
- package/dist/cli/commands/plan.js +10 -13
- package/dist/cli/commands/sync.js +8 -12
- package/dist/cli/utils/integrations.d.ts +30 -6
- package/dist/cli/utils/integrations.js +98 -6
- 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/depend.js +25 -0
- package/dist/core/expand-replace-dependencies.js +23 -0
- package/dist/core/export/file-mapper.d.ts +2 -2
- package/dist/core/integrations/filter/dsl.d.ts +78 -74
- package/dist/core/integrations/filter/dsl.js +127 -79
- 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 +17 -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.js +42 -8
- 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 +1 -1
- package/dist/core/objects/aggregate/changes/aggregate.drop.d.ts +2 -1
- package/dist/core/objects/aggregate/changes/aggregate.drop.js +1 -1
- 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/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/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 +8 -2
- 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/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/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.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/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/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/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/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/procedure/changes/procedure.alter.d.ts +8 -7
- package/dist/core/objects/procedure/changes/procedure.alter.js +7 -7
- 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/publication/changes/publication.alter.d.ts +9 -7
- package/dist/core/objects/publication/changes/publication.alter.js +12 -7
- 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 +1 -0
- 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 +3 -3
- 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 +1 -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/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/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/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/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 +4 -1
- package/dist/core/objects/sequence/sequence.diff.js +12 -0
- 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/table/changes/table.alter.d.ts +65 -22
- package/dist/core/objects/table/changes/table.alter.js +107 -22
- 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 +1 -1
- package/dist/core/objects/table/changes/table.drop.d.ts +4 -3
- package/dist/core/objects/table/changes/table.drop.js +7 -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.js +46 -1
- package/dist/core/objects/trigger/changes/trigger.alter.d.ts +2 -1
- package/dist/core/objects/trigger/changes/trigger.alter.js +1 -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 +1 -1
- 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/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/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/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 +1 -1
- 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/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.js +24 -13
- package/dist/core/postgres-config.d.ts +2 -2
- package/dist/core/sort/custom-constraints.js +65 -1
- package/dist/core/sort/logical-sort.js +3 -24
- package/package.json +5 -1
- package/src/cli/commands/declarative-export.ts +19 -27
- package/src/cli/commands/plan.ts +14 -20
- package/src/cli/commands/sync.ts +8 -15
- package/src/cli/utils/integrations.test.ts +210 -3
- package/src/cli/utils/integrations.ts +134 -6
- package/src/core/catalog.snapshot.test.ts +11 -2
- package/src/core/change-utils.test.ts +61 -0
- package/src/core/change-utils.ts +73 -0
- package/src/core/change.types.ts +50 -0
- package/src/core/depend.ts +25 -0
- package/src/core/expand-replace-dependencies.test.ts +126 -1
- package/src/core/expand-replace-dependencies.ts +50 -0
- package/src/core/export/file-mapper.ts +7 -2
- package/src/core/integrations/filter/dsl.test.ts +299 -60
- package/src/core/integrations/filter/dsl.ts +208 -169
- 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 +17 -1
- 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 +26 -7
- package/src/core/integrations/serialize/dsl.ts +8 -14
- package/src/core/integrations/serialize/serialize.types.ts +37 -0
- package/src/core/integrations/supabase.ts +42 -8
- package/src/core/objects/aggregate/changes/aggregate.alter.ts +2 -1
- package/src/core/objects/aggregate/changes/aggregate.comment.ts +3 -2
- package/src/core/objects/aggregate/changes/aggregate.create.ts +2 -1
- package/src/core/objects/aggregate/changes/aggregate.drop.ts +2 -1
- package/src/core/objects/aggregate/changes/aggregate.privilege.ts +4 -3
- package/src/core/objects/aggregate/changes/aggregate.types.ts +1 -0
- package/src/core/objects/base.change.ts +13 -1
- package/src/core/objects/base.model.test.ts +43 -0
- package/src/core/objects/base.model.ts +5 -2
- package/src/core/objects/collation/changes/collation.alter.ts +3 -2
- package/src/core/objects/collation/changes/collation.comment.ts +3 -2
- package/src/core/objects/collation/changes/collation.create.ts +2 -1
- package/src/core/objects/collation/changes/collation.drop.ts +2 -1
- package/src/core/objects/collation/changes/collation.types.ts +1 -0
- package/src/core/objects/domain/changes/domain.alter.ts +9 -8
- package/src/core/objects/domain/changes/domain.comment.ts +3 -2
- package/src/core/objects/domain/changes/domain.create.ts +19 -2
- package/src/core/objects/domain/changes/domain.drop.ts +2 -1
- package/src/core/objects/domain/changes/domain.privilege.ts +4 -3
- package/src/core/objects/domain/changes/domain.types.ts +1 -0
- package/src/core/objects/event-trigger/changes/event-trigger.alter.ts +3 -2
- package/src/core/objects/event-trigger/changes/event-trigger.comment.ts +3 -2
- package/src/core/objects/event-trigger/changes/event-trigger.create.ts +2 -1
- package/src/core/objects/event-trigger/changes/event-trigger.drop.ts +2 -1
- package/src/core/objects/event-trigger/changes/event-trigger.types.ts +1 -0
- package/src/core/objects/extension/changes/extension.alter.ts +3 -2
- package/src/core/objects/extension/changes/extension.comment.ts +3 -2
- package/src/core/objects/extension/changes/extension.create.test.ts +22 -0
- package/src/core/objects/extension/changes/extension.create.ts +5 -2
- package/src/core/objects/extension/changes/extension.drop.ts +2 -1
- package/src/core/objects/extension/changes/extension.types.ts +1 -0
- package/src/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.alter.ts +3 -2
- package/src/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.comment.ts +3 -2
- package/src/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.create.ts +2 -1
- package/src/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.drop.ts +2 -1
- package/src/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.privilege.ts +4 -3
- package/src/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.types.ts +1 -0
- package/src/core/objects/foreign-data-wrapper/foreign-data-wrapper.types.ts +1 -0
- package/src/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.alter.ts +10 -9
- package/src/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.comment.ts +3 -2
- package/src/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.create.ts +2 -1
- package/src/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.drop.ts +2 -1
- package/src/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.privilege.ts +4 -3
- package/src/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.types.ts +1 -0
- package/src/core/objects/foreign-data-wrapper/server/changes/server.alter.ts +4 -3
- package/src/core/objects/foreign-data-wrapper/server/changes/server.comment.ts +3 -2
- package/src/core/objects/foreign-data-wrapper/server/changes/server.create.ts +2 -1
- package/src/core/objects/foreign-data-wrapper/server/changes/server.drop.ts +2 -1
- package/src/core/objects/foreign-data-wrapper/server/changes/server.privilege.ts +4 -3
- package/src/core/objects/foreign-data-wrapper/server/changes/server.types.ts +1 -0
- package/src/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.alter.ts +2 -1
- package/src/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.create.ts +2 -1
- package/src/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.drop.ts +2 -1
- package/src/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.types.ts +1 -0
- package/src/core/objects/index/changes/index.alter.ts +4 -3
- package/src/core/objects/index/changes/index.comment.ts +3 -2
- package/src/core/objects/index/changes/index.create.ts +2 -1
- package/src/core/objects/index/changes/index.drop.ts +2 -1
- package/src/core/objects/index/changes/index.types.ts +1 -0
- package/src/core/objects/language/changes/language.alter.ts +2 -1
- package/src/core/objects/language/changes/language.comment.ts +3 -2
- package/src/core/objects/language/changes/language.create.ts +2 -1
- package/src/core/objects/language/changes/language.drop.ts +2 -1
- package/src/core/objects/language/changes/language.privilege.ts +4 -3
- package/src/core/objects/language/changes/language.types.ts +1 -0
- package/src/core/objects/materialized-view/changes/materialized-view.alter.ts +3 -2
- package/src/core/objects/materialized-view/changes/materialized-view.comment.ts +5 -4
- package/src/core/objects/materialized-view/changes/materialized-view.create.ts +2 -1
- package/src/core/objects/materialized-view/changes/materialized-view.drop.ts +2 -1
- package/src/core/objects/materialized-view/changes/materialized-view.privilege.ts +4 -3
- package/src/core/objects/materialized-view/changes/materialized-view.types.ts +1 -0
- package/src/core/objects/procedure/changes/procedure.alter.ts +8 -7
- package/src/core/objects/procedure/changes/procedure.comment.ts +3 -2
- package/src/core/objects/procedure/changes/procedure.create.ts +2 -1
- package/src/core/objects/procedure/changes/procedure.drop.ts +2 -1
- package/src/core/objects/procedure/changes/procedure.privilege.ts +4 -3
- package/src/core/objects/procedure/changes/procedure.types.ts +1 -0
- package/src/core/objects/publication/changes/publication.alter.test.ts +4 -0
- package/src/core/objects/publication/changes/publication.alter.ts +14 -7
- package/src/core/objects/publication/changes/publication.comment.ts +3 -2
- package/src/core/objects/publication/changes/publication.create.ts +2 -1
- package/src/core/objects/publication/changes/publication.drop.ts +2 -1
- package/src/core/objects/publication/changes/publication.types.ts +1 -0
- package/src/core/objects/rls-policy/changes/rls-policy.alter.ts +4 -3
- package/src/core/objects/rls-policy/changes/rls-policy.comment.ts +3 -2
- package/src/core/objects/rls-policy/changes/rls-policy.create.ts +2 -1
- package/src/core/objects/rls-policy/changes/rls-policy.drop.ts +2 -1
- package/src/core/objects/rls-policy/changes/rls-policy.types.ts +1 -0
- package/src/core/objects/role/changes/role.alter.ts +3 -2
- package/src/core/objects/role/changes/role.comment.ts +3 -2
- package/src/core/objects/role/changes/role.create.ts +2 -1
- package/src/core/objects/role/changes/role.drop.ts +2 -1
- package/src/core/objects/role/changes/role.privilege.ts +6 -5
- package/src/core/objects/role/changes/role.types.ts +1 -0
- package/src/core/objects/rule/changes/rule.alter.ts +3 -2
- package/src/core/objects/rule/changes/rule.comment.ts +3 -2
- package/src/core/objects/rule/changes/rule.create.ts +2 -1
- package/src/core/objects/rule/changes/rule.drop.ts +2 -1
- package/src/core/objects/rule/changes/rule.types.ts +1 -0
- package/src/core/objects/schema/changes/schema.alter.ts +2 -1
- package/src/core/objects/schema/changes/schema.comment.ts +3 -2
- package/src/core/objects/schema/changes/schema.create.ts +3 -3
- package/src/core/objects/schema/changes/schema.drop.ts +2 -1
- package/src/core/objects/schema/changes/schema.privilege.ts +4 -3
- package/src/core/objects/schema/changes/schema.types.ts +1 -0
- package/src/core/objects/sequence/changes/sequence.alter.ts +3 -2
- package/src/core/objects/sequence/changes/sequence.comment.ts +3 -2
- package/src/core/objects/sequence/changes/sequence.create.ts +2 -1
- package/src/core/objects/sequence/changes/sequence.drop.ts +16 -3
- package/src/core/objects/sequence/changes/sequence.privilege.ts +4 -3
- package/src/core/objects/sequence/changes/sequence.types.ts +1 -0
- package/src/core/objects/sequence/sequence.diff.test.ts +73 -1
- package/src/core/objects/sequence/sequence.diff.ts +24 -2
- package/src/core/objects/subscription/changes/subscription.alter.ts +7 -6
- package/src/core/objects/subscription/changes/subscription.comment.ts +3 -2
- package/src/core/objects/subscription/changes/subscription.create.ts +2 -1
- package/src/core/objects/subscription/changes/subscription.drop.ts +2 -1
- package/src/core/objects/subscription/changes/subscription.types.ts +1 -0
- package/src/core/objects/table/changes/table.alter.test.ts +38 -0
- package/src/core/objects/table/changes/table.alter.ts +123 -22
- package/src/core/objects/table/changes/table.comment.ts +7 -6
- package/src/core/objects/table/changes/table.create.ts +2 -1
- package/src/core/objects/table/changes/table.drop.ts +20 -1
- package/src/core/objects/table/changes/table.privilege.ts +4 -3
- package/src/core/objects/table/changes/table.types.ts +1 -0
- package/src/core/objects/table/table.diff.test.ts +121 -0
- package/src/core/objects/table/table.diff.ts +64 -1
- package/src/core/objects/trigger/changes/trigger.alter.ts +2 -1
- package/src/core/objects/trigger/changes/trigger.comment.ts +3 -2
- package/src/core/objects/trigger/changes/trigger.create.ts +2 -1
- package/src/core/objects/trigger/changes/trigger.drop.ts +2 -1
- package/src/core/objects/trigger/changes/trigger.types.ts +1 -0
- package/src/core/objects/type/composite-type/changes/composite-type.alter.ts +5 -4
- package/src/core/objects/type/composite-type/changes/composite-type.comment.ts +5 -4
- package/src/core/objects/type/composite-type/changes/composite-type.create.ts +2 -1
- package/src/core/objects/type/composite-type/changes/composite-type.drop.ts +2 -1
- package/src/core/objects/type/composite-type/changes/composite-type.privilege.ts +4 -3
- package/src/core/objects/type/composite-type/changes/composite-type.types.ts +1 -0
- package/src/core/objects/type/enum/changes/enum.alter.ts +3 -2
- package/src/core/objects/type/enum/changes/enum.comment.ts +3 -2
- package/src/core/objects/type/enum/changes/enum.create.ts +2 -1
- package/src/core/objects/type/enum/changes/enum.drop.ts +2 -1
- package/src/core/objects/type/enum/changes/enum.privilege.ts +4 -3
- package/src/core/objects/type/enum/changes/enum.types.ts +1 -0
- package/src/core/objects/type/range/changes/range.alter.ts +2 -1
- package/src/core/objects/type/range/changes/range.comment.ts +3 -2
- package/src/core/objects/type/range/changes/range.create.ts +2 -1
- package/src/core/objects/type/range/changes/range.drop.ts +2 -1
- package/src/core/objects/type/range/changes/range.privilege.ts +4 -3
- package/src/core/objects/type/range/changes/range.types.ts +1 -0
- package/src/core/objects/type/type.types.ts +1 -0
- package/src/core/objects/view/changes/view.alter.ts +4 -3
- package/src/core/objects/view/changes/view.comment.ts +3 -2
- package/src/core/objects/view/changes/view.create.ts +2 -1
- package/src/core/objects/view/changes/view.drop.ts +2 -1
- package/src/core/objects/view/changes/view.privilege.ts +4 -3
- package/src/core/objects/view/changes/view.types.ts +1 -0
- package/src/core/objects/view/view.diff.test.ts +96 -0
- package/src/core/objects/view/view.diff.ts +30 -15
- package/src/core/plan/sql-format/format-off.test.ts +1 -1
- package/src/core/plan/sql-format/format-pretty-lower-leading.test.ts +1 -1
- package/src/core/plan/sql-format/format-pretty-narrow.test.ts +1 -1
- package/src/core/plan/sql-format/format-pretty-preserve.test.ts +1 -1
- package/src/core/plan/sql-format/format-pretty-upper.test.ts +1 -1
- package/src/core/postgres-config.ts +2 -2
- package/src/core/sort/custom-constraints.ts +75 -1
- package/src/core/sort/logical-sort.ts +3 -27
- package/src/typedoc.ts +253 -0
- package/dist/core/integrations/filter/extractors.d.ts +0 -12
- package/dist/core/integrations/filter/extractors.js +0 -178
- package/src/core/integrations/filter/extractors.test.ts +0 -244
- package/src/core/integrations/filter/extractors.ts +0 -187
|
@@ -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}`,
|
|
@@ -402,7 +402,7 @@ export class AlterTableDropColumn extends AlterTableChange {
|
|
|
402
402
|
stableId.column(this.table.schema, this.table.name, this.column.name),
|
|
403
403
|
];
|
|
404
404
|
}
|
|
405
|
-
serialize() {
|
|
405
|
+
serialize(_options) {
|
|
406
406
|
return [
|
|
407
407
|
"ALTER TABLE",
|
|
408
408
|
`${this.table.schema}.${this.table.name}`,
|
|
@@ -428,7 +428,7 @@ export class AlterTableAlterColumnType extends AlterTableChange {
|
|
|
428
428
|
stableId.column(this.table.schema, this.table.name, this.column.name),
|
|
429
429
|
];
|
|
430
430
|
}
|
|
431
|
-
serialize() {
|
|
431
|
+
serialize(_options) {
|
|
432
432
|
const parts = [
|
|
433
433
|
"ALTER TABLE",
|
|
434
434
|
`${this.table.schema}.${this.table.name}`,
|
|
@@ -460,7 +460,7 @@ export class AlterTableAlterColumnSetDefault extends AlterTableChange {
|
|
|
460
460
|
stableId.column(this.table.schema, this.table.name, this.column.name),
|
|
461
461
|
];
|
|
462
462
|
}
|
|
463
|
-
serialize() {
|
|
463
|
+
serialize(_options) {
|
|
464
464
|
const set = this.column.is_generated ? "SET EXPRESSION AS" : "SET DEFAULT";
|
|
465
465
|
return [
|
|
466
466
|
"ALTER TABLE",
|
|
@@ -489,7 +489,7 @@ export class AlterTableAlterColumnDropDefault extends AlterTableChange {
|
|
|
489
489
|
stableId.column(this.table.schema, this.table.name, this.column.name),
|
|
490
490
|
];
|
|
491
491
|
}
|
|
492
|
-
serialize() {
|
|
492
|
+
serialize(_options) {
|
|
493
493
|
return [
|
|
494
494
|
"ALTER TABLE",
|
|
495
495
|
`${this.table.schema}.${this.table.name}`,
|
|
@@ -499,6 +499,91 @@ export class AlterTableAlterColumnDropDefault extends AlterTableChange {
|
|
|
499
499
|
].join(" ");
|
|
500
500
|
}
|
|
501
501
|
}
|
|
502
|
+
/**
|
|
503
|
+
* ALTER TABLE ... ALTER COLUMN ... ADD GENERATED ... AS IDENTITY
|
|
504
|
+
*/
|
|
505
|
+
export class AlterTableAlterColumnAddIdentity extends AlterTableChange {
|
|
506
|
+
table;
|
|
507
|
+
column;
|
|
508
|
+
scope = "object";
|
|
509
|
+
constructor(props) {
|
|
510
|
+
super();
|
|
511
|
+
this.table = props.table;
|
|
512
|
+
this.column = props.column;
|
|
513
|
+
}
|
|
514
|
+
get requires() {
|
|
515
|
+
return [
|
|
516
|
+
stableId.column(this.table.schema, this.table.name, this.column.name),
|
|
517
|
+
];
|
|
518
|
+
}
|
|
519
|
+
serialize() {
|
|
520
|
+
return [
|
|
521
|
+
"ALTER TABLE",
|
|
522
|
+
`${this.table.schema}.${this.table.name}`,
|
|
523
|
+
"ALTER COLUMN",
|
|
524
|
+
this.column.name,
|
|
525
|
+
"ADD",
|
|
526
|
+
this.column.is_identity_always
|
|
527
|
+
? "GENERATED ALWAYS AS IDENTITY"
|
|
528
|
+
: "GENERATED BY DEFAULT AS IDENTITY",
|
|
529
|
+
].join(" ");
|
|
530
|
+
}
|
|
531
|
+
}
|
|
532
|
+
/**
|
|
533
|
+
* ALTER TABLE ... ALTER COLUMN ... DROP IDENTITY
|
|
534
|
+
*/
|
|
535
|
+
export class AlterTableAlterColumnDropIdentity extends AlterTableChange {
|
|
536
|
+
table;
|
|
537
|
+
column;
|
|
538
|
+
scope = "object";
|
|
539
|
+
constructor(props) {
|
|
540
|
+
super();
|
|
541
|
+
this.table = props.table;
|
|
542
|
+
this.column = props.column;
|
|
543
|
+
}
|
|
544
|
+
get requires() {
|
|
545
|
+
return [
|
|
546
|
+
stableId.column(this.table.schema, this.table.name, this.column.name),
|
|
547
|
+
];
|
|
548
|
+
}
|
|
549
|
+
serialize() {
|
|
550
|
+
return [
|
|
551
|
+
"ALTER TABLE",
|
|
552
|
+
`${this.table.schema}.${this.table.name}`,
|
|
553
|
+
"ALTER COLUMN",
|
|
554
|
+
this.column.name,
|
|
555
|
+
"DROP IDENTITY",
|
|
556
|
+
].join(" ");
|
|
557
|
+
}
|
|
558
|
+
}
|
|
559
|
+
/**
|
|
560
|
+
* ALTER TABLE ... ALTER COLUMN ... SET GENERATED { ALWAYS | BY DEFAULT }
|
|
561
|
+
*/
|
|
562
|
+
export class AlterTableAlterColumnSetGenerated extends AlterTableChange {
|
|
563
|
+
table;
|
|
564
|
+
column;
|
|
565
|
+
scope = "object";
|
|
566
|
+
constructor(props) {
|
|
567
|
+
super();
|
|
568
|
+
this.table = props.table;
|
|
569
|
+
this.column = props.column;
|
|
570
|
+
}
|
|
571
|
+
get requires() {
|
|
572
|
+
return [
|
|
573
|
+
stableId.column(this.table.schema, this.table.name, this.column.name),
|
|
574
|
+
];
|
|
575
|
+
}
|
|
576
|
+
serialize() {
|
|
577
|
+
return [
|
|
578
|
+
"ALTER TABLE",
|
|
579
|
+
`${this.table.schema}.${this.table.name}`,
|
|
580
|
+
"ALTER COLUMN",
|
|
581
|
+
this.column.name,
|
|
582
|
+
"SET GENERATED",
|
|
583
|
+
this.column.is_identity_always ? "ALWAYS" : "BY DEFAULT",
|
|
584
|
+
].join(" ");
|
|
585
|
+
}
|
|
586
|
+
}
|
|
502
587
|
/**
|
|
503
588
|
* ALTER TABLE ... ALTER COLUMN ... SET NOT NULL
|
|
504
589
|
*/
|
|
@@ -516,7 +601,7 @@ export class AlterTableAlterColumnSetNotNull extends AlterTableChange {
|
|
|
516
601
|
stableId.column(this.table.schema, this.table.name, this.column.name),
|
|
517
602
|
];
|
|
518
603
|
}
|
|
519
|
-
serialize() {
|
|
604
|
+
serialize(_options) {
|
|
520
605
|
return [
|
|
521
606
|
"ALTER TABLE",
|
|
522
607
|
`${this.table.schema}.${this.table.name}`,
|
|
@@ -543,7 +628,7 @@ export class AlterTableAlterColumnDropNotNull extends AlterTableChange {
|
|
|
543
628
|
stableId.column(this.table.schema, this.table.name, this.column.name),
|
|
544
629
|
];
|
|
545
630
|
}
|
|
546
|
-
serialize() {
|
|
631
|
+
serialize(_options) {
|
|
547
632
|
return [
|
|
548
633
|
"ALTER TABLE",
|
|
549
634
|
`${this.table.schema}.${this.table.name}`,
|
|
@@ -569,7 +654,7 @@ export class AlterTableAttachPartition extends AlterTableChange {
|
|
|
569
654
|
// Depend on the partition child so that it is created before attach
|
|
570
655
|
return [this.partition.stableId, this.table.stableId];
|
|
571
656
|
}
|
|
572
|
-
serialize() {
|
|
657
|
+
serialize(_options) {
|
|
573
658
|
const bound = this.partition.partition_bound ?? "DEFAULT";
|
|
574
659
|
return [
|
|
575
660
|
"ALTER TABLE",
|
|
@@ -596,7 +681,7 @@ export class AlterTableDetachPartition extends AlterTableChange {
|
|
|
596
681
|
// Depend on the partition child for consistent ordering with potential drops
|
|
597
682
|
return [this.table.stableId, this.partition.stableId];
|
|
598
683
|
}
|
|
599
|
-
serialize() {
|
|
684
|
+
serialize(_options) {
|
|
600
685
|
return [
|
|
601
686
|
"ALTER TABLE",
|
|
602
687
|
`${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
|
}
|
|
@@ -70,7 +70,7 @@ export class CreateTable extends CreateTableChange {
|
|
|
70
70
|
}
|
|
71
71
|
return Array.from(dependencies);
|
|
72
72
|
}
|
|
73
|
-
serialize() {
|
|
73
|
+
serialize(_options) {
|
|
74
74
|
const parts = ["CREATE"];
|
|
75
75
|
// Add TEMPORARY/UNLOGGED based on persistence
|
|
76
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
|
/**
|
|
@@ -16,7 +17,7 @@ export declare class DropTable extends DropTableChange {
|
|
|
16
17
|
constructor(props: {
|
|
17
18
|
table: Table;
|
|
18
19
|
});
|
|
19
|
-
get drops(): (`column:${string}.${string}.${string}` | `table:${string}`)[];
|
|
20
|
-
get requires(): (`column:${string}.${string}.${string}` | `table:${string}`)[];
|
|
21
|
-
serialize(): string;
|
|
20
|
+
get drops(): (`column:${string}.${string}.${string}` | `constraint:${string}.${string}.${string}` | `table:${string}`)[];
|
|
21
|
+
get requires(): (`column:${string}.${string}.${string}` | `constraint:${string}.${string}.${string}` | `table:${string}`)[];
|
|
22
|
+
serialize(_options?: SerializeOptions): string;
|
|
22
23
|
}
|
|
@@ -21,15 +21,21 @@ export class DropTable extends DropTableChange {
|
|
|
21
21
|
return [
|
|
22
22
|
this.table.stableId,
|
|
23
23
|
...this.table.columns.map((column) => stableId.column(this.table.schema, this.table.name, column.name)),
|
|
24
|
+
// Include constraint stableIds so FK relationships that only exist at the
|
|
25
|
+
// constraint level still affect whole-table drop ordering.
|
|
26
|
+
...this.table.constraints.map((constraint) => stableId.constraint(this.table.schema, this.table.name, constraint.name)),
|
|
24
27
|
];
|
|
25
28
|
}
|
|
26
29
|
get requires() {
|
|
27
30
|
return [
|
|
28
31
|
this.table.stableId,
|
|
29
32
|
...this.table.columns.map((col) => stableId.column(this.table.schema, this.table.name, col.name)),
|
|
33
|
+
// Mirror the dropped constraint ids in requires so drop-phase graph
|
|
34
|
+
// consumers can connect catalog FK edges back to this table drop.
|
|
35
|
+
...this.table.constraints.map((constraint) => stableId.constraint(this.table.schema, this.table.name, constraint.name)),
|
|
30
36
|
];
|
|
31
37
|
}
|
|
32
|
-
serialize() {
|
|
38
|
+
serialize(_options) {
|
|
33
39
|
return ["DROP TABLE", `${this.table.schema}.${this.table.name}`].join(" ");
|
|
34
40
|
}
|
|
35
41
|
}
|
|
@@ -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,7 +1,7 @@
|
|
|
1
1
|
import { diffObjects } from "../base.diff.js";
|
|
2
2
|
import { diffPrivileges, emitColumnPrivilegeChanges, } from "../base.privilege-diff.js";
|
|
3
3
|
import { deepEqual } from "../utils.js";
|
|
4
|
-
import { AlterTableAddColumn, AlterTableAddConstraint, AlterTableAlterColumnDropDefault, AlterTableAlterColumnDropNotNull, AlterTableAlterColumnSetDefault, AlterTableAlterColumnSetNotNull, AlterTableAlterColumnType, AlterTableAttachPartition, AlterTableChangeOwner, AlterTableDetachPartition, AlterTableDisableRowLevelSecurity, AlterTableDropColumn, AlterTableDropConstraint, AlterTableEnableRowLevelSecurity, AlterTableForceRowLevelSecurity, AlterTableNoForceRowLevelSecurity, AlterTableResetStorageParams, AlterTableSetLogged, AlterTableSetReplicaIdentity, AlterTableSetStorageParams, AlterTableSetUnlogged, AlterTableValidateConstraint, } from "./changes/table.alter.js";
|
|
4
|
+
import { AlterTableAddColumn, AlterTableAddConstraint, AlterTableAlterColumnAddIdentity, AlterTableAlterColumnDropDefault, AlterTableAlterColumnDropIdentity, AlterTableAlterColumnDropNotNull, AlterTableAlterColumnSetDefault, AlterTableAlterColumnSetGenerated, AlterTableAlterColumnSetNotNull, AlterTableAlterColumnType, AlterTableAttachPartition, AlterTableChangeOwner, AlterTableDetachPartition, AlterTableDisableRowLevelSecurity, AlterTableDropColumn, AlterTableDropConstraint, AlterTableEnableRowLevelSecurity, AlterTableForceRowLevelSecurity, AlterTableNoForceRowLevelSecurity, AlterTableResetStorageParams, AlterTableSetLogged, AlterTableSetReplicaIdentity, AlterTableSetStorageParams, AlterTableSetUnlogged, AlterTableValidateConstraint, } from "./changes/table.alter.js";
|
|
5
5
|
import { CreateCommentOnColumn, CreateCommentOnConstraint, CreateCommentOnTable, DropCommentOnColumn, DropCommentOnConstraint, DropCommentOnTable, } from "./changes/table.comment.js";
|
|
6
6
|
import { CreateTable } from "./changes/table.create.js";
|
|
7
7
|
import { DropTable } from "./changes/table.drop.js";
|
|
@@ -381,6 +381,17 @@ export function diffTables(ctx, main, branch) {
|
|
|
381
381
|
partitionNotNullChanged &&
|
|
382
382
|
parentBranchCol.not_null === branchCol.not_null);
|
|
383
383
|
}
|
|
384
|
+
case "identity": {
|
|
385
|
+
const parentIdentityChanged = parentMainCol.is_identity !== parentBranchCol.is_identity ||
|
|
386
|
+
parentMainCol.is_identity_always !==
|
|
387
|
+
parentBranchCol.is_identity_always;
|
|
388
|
+
const partitionIdentityChanged = mainCol.is_identity !== branchCol.is_identity ||
|
|
389
|
+
mainCol.is_identity_always !== branchCol.is_identity_always;
|
|
390
|
+
return (parentIdentityChanged &&
|
|
391
|
+
partitionIdentityChanged &&
|
|
392
|
+
parentBranchCol.is_identity === branchCol.is_identity &&
|
|
393
|
+
parentBranchCol.is_identity_always === branchCol.is_identity_always);
|
|
394
|
+
}
|
|
384
395
|
}
|
|
385
396
|
};
|
|
386
397
|
// Helper to check if parent has the same column add/drop
|
|
@@ -450,6 +461,16 @@ export function diffTables(ctx, main, branch) {
|
|
|
450
461
|
}));
|
|
451
462
|
}
|
|
452
463
|
}
|
|
464
|
+
// PostgreSQL rejects SET DEFAULT while the column still has identity metadata,
|
|
465
|
+
// so identity removal must lead the IDENTITY -> serial/default transition.
|
|
466
|
+
if (mainCol.is_identity && !branchCol.is_identity) {
|
|
467
|
+
if (!parentHasSameColumnPropertyChange(name, "identity")) {
|
|
468
|
+
changes.push(new AlterTableAlterColumnDropIdentity({
|
|
469
|
+
table: branchTable,
|
|
470
|
+
column: branchCol,
|
|
471
|
+
}));
|
|
472
|
+
}
|
|
473
|
+
}
|
|
453
474
|
// DEFAULT change
|
|
454
475
|
if (mainCol.default !== branchCol.default) {
|
|
455
476
|
// Skip if parent has the same default change
|
|
@@ -490,6 +511,30 @@ export function diffTables(ctx, main, branch) {
|
|
|
490
511
|
}
|
|
491
512
|
}
|
|
492
513
|
}
|
|
514
|
+
// Serial-like defaults have to be cleared before ADD GENERATED AS IDENTITY,
|
|
515
|
+
// while mode-only flips stay in-place on an existing identity column.
|
|
516
|
+
if ((!mainCol.is_identity && branchCol.is_identity) ||
|
|
517
|
+
(mainCol.is_identity &&
|
|
518
|
+
branchCol.is_identity &&
|
|
519
|
+
mainCol.is_identity_always !== branchCol.is_identity_always)) {
|
|
520
|
+
// Skip if parent has the same identity change
|
|
521
|
+
if (!parentHasSameColumnPropertyChange(name, "identity")) {
|
|
522
|
+
if (!mainCol.is_identity && branchCol.is_identity) {
|
|
523
|
+
changes.push(new AlterTableAlterColumnAddIdentity({
|
|
524
|
+
table: branchTable,
|
|
525
|
+
column: branchCol,
|
|
526
|
+
}));
|
|
527
|
+
}
|
|
528
|
+
else if (mainCol.is_identity &&
|
|
529
|
+
branchCol.is_identity &&
|
|
530
|
+
mainCol.is_identity_always !== branchCol.is_identity_always) {
|
|
531
|
+
changes.push(new AlterTableAlterColumnSetGenerated({
|
|
532
|
+
table: branchTable,
|
|
533
|
+
column: branchCol,
|
|
534
|
+
}));
|
|
535
|
+
}
|
|
536
|
+
}
|
|
537
|
+
}
|
|
493
538
|
// NOT NULL change
|
|
494
539
|
if (mainCol.not_null !== branchCol.not_null) {
|
|
495
540
|
// Skip if parent has the same NOT NULL change
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { SerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
|
|
1
2
|
import type { TableLikeObject } from "../../base.model.ts";
|
|
2
3
|
import type { Trigger } from "../trigger.model.ts";
|
|
3
4
|
import { AlterTriggerChange } from "./trigger.base.ts";
|
|
@@ -25,5 +26,5 @@ export declare class ReplaceTrigger extends AlterTriggerChange {
|
|
|
25
26
|
indexableObject?: TableLikeObject;
|
|
26
27
|
});
|
|
27
28
|
get requires(): `trigger:${string}`[];
|
|
28
|
-
serialize(): string;
|
|
29
|
+
serialize(_options?: SerializeOptions): string;
|
|
29
30
|
}
|
|
@@ -18,7 +18,7 @@ export class ReplaceTrigger extends AlterTriggerChange {
|
|
|
18
18
|
get requires() {
|
|
19
19
|
return [this.trigger.stableId];
|
|
20
20
|
}
|
|
21
|
-
serialize() {
|
|
21
|
+
serialize(_options) {
|
|
22
22
|
if (this.trigger.isConstraintTrigger) {
|
|
23
23
|
const dropChange = new DropTrigger({ trigger: this.trigger });
|
|
24
24
|
const createChange = new CreateTrigger({
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { SerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
|
|
1
2
|
import type { Trigger } from "../trigger.model.ts";
|
|
2
3
|
import { CreateTriggerChange, DropTriggerChange } from "./trigger.base.ts";
|
|
3
4
|
export type CommentTrigger = CreateCommentOnTrigger | DropCommentOnTrigger;
|
|
@@ -9,7 +10,7 @@ export declare class CreateCommentOnTrigger extends CreateTriggerChange {
|
|
|
9
10
|
});
|
|
10
11
|
get creates(): `comment:${string}`[];
|
|
11
12
|
get requires(): `trigger:${string}`[];
|
|
12
|
-
serialize(): string;
|
|
13
|
+
serialize(_options?: SerializeOptions): string;
|
|
13
14
|
}
|
|
14
15
|
export declare class DropCommentOnTrigger extends DropTriggerChange {
|
|
15
16
|
readonly trigger: Trigger;
|
|
@@ -19,5 +20,5 @@ export declare class DropCommentOnTrigger extends DropTriggerChange {
|
|
|
19
20
|
});
|
|
20
21
|
get drops(): `comment:${string}`[];
|
|
21
22
|
get requires(): (`comment:${string}` | `trigger:${string}`)[];
|
|
22
|
-
serialize(): string;
|
|
23
|
+
serialize(_options?: SerializeOptions): string;
|
|
23
24
|
}
|
|
@@ -14,7 +14,7 @@ export class CreateCommentOnTrigger extends CreateTriggerChange {
|
|
|
14
14
|
get requires() {
|
|
15
15
|
return [this.trigger.stableId];
|
|
16
16
|
}
|
|
17
|
-
serialize() {
|
|
17
|
+
serialize(_options) {
|
|
18
18
|
return [
|
|
19
19
|
"COMMENT ON TRIGGER",
|
|
20
20
|
this.trigger.name,
|
|
@@ -39,7 +39,7 @@ export class DropCommentOnTrigger extends DropTriggerChange {
|
|
|
39
39
|
get requires() {
|
|
40
40
|
return [stableId.comment(this.trigger.stableId), this.trigger.stableId];
|
|
41
41
|
}
|
|
42
|
-
serialize() {
|
|
42
|
+
serialize(_options) {
|
|
43
43
|
return [
|
|
44
44
|
"COMMENT ON TRIGGER",
|
|
45
45
|
this.trigger.name,
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { SerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
|
|
1
2
|
import type { TableLikeObject } from "../../base.model.ts";
|
|
2
3
|
import type { Trigger } from "../trigger.model.ts";
|
|
3
4
|
import { CreateTriggerChange } from "./trigger.base.ts";
|
|
@@ -37,5 +38,5 @@ export declare class CreateTrigger extends CreateTriggerChange {
|
|
|
37
38
|
});
|
|
38
39
|
get creates(): `trigger:${string}`[];
|
|
39
40
|
get requires(): string[];
|
|
40
|
-
serialize(): string;
|
|
41
|
+
serialize(_options?: SerializeOptions): string;
|
|
41
42
|
}
|