@supabase/pg-delta 1.0.0-alpha.11 → 1.0.0-alpha.13
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/core/expand-replace-dependencies.js +23 -0
- package/dist/core/export/index.d.ts +2 -2
- package/dist/core/export/index.js +4 -1
- package/dist/core/integrations/integration.types.d.ts +26 -1
- package/dist/core/integrations/integration.types.js +31 -1
- package/dist/core/integrations/serialize/dsl.d.ts +1 -8
- package/dist/core/integrations/serialize/serialize.types.d.ts +31 -0
- package/dist/core/integrations/supabase.js +19 -0
- 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/base.change.d.ts +2 -1
- 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/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 +2 -1
- package/dist/core/objects/domain/changes/domain.create.js +1 -1
- 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/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/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/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-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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/plan/create.js +5 -17
- package/dist/core/plan/types.d.ts +3 -6
- package/dist/core/sort/custom-constraints.js +64 -0
- package/package.json +1 -1
- package/src/core/expand-replace-dependencies.test.ts +126 -1
- package/src/core/expand-replace-dependencies.ts +50 -0
- package/src/core/export/index.ts +13 -4
- package/src/core/integrations/integration.types.ts +59 -1
- package/src/core/integrations/serialize/dsl.test.ts +20 -1
- package/src/core/integrations/serialize/dsl.ts +1 -10
- package/src/core/integrations/serialize/serialize.types.ts +37 -0
- package/src/core/integrations/supabase.ts +19 -0
- 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/base.change.ts +3 -1
- 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/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 +2 -1
- 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/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/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/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-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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/plan/create.ts +11 -27
- 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/plan/types.ts +3 -6
- package/src/core/sort/custom-constraints.ts +74 -0
- package/src/typedoc.ts +5 -0
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { SerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
|
|
1
2
|
import { quoteLiteral } from "../../base.change.ts";
|
|
2
3
|
import type { ColumnProps } from "../../base.model.ts";
|
|
3
4
|
import { stableId } from "../../utils.ts";
|
|
@@ -49,7 +50,7 @@ export class CreateCommentOnTable extends CreateTableChange {
|
|
|
49
50
|
return [this.table.stableId];
|
|
50
51
|
}
|
|
51
52
|
|
|
52
|
-
serialize(): string {
|
|
53
|
+
serialize(_options?: SerializeOptions): string {
|
|
53
54
|
return [
|
|
54
55
|
"COMMENT ON TABLE",
|
|
55
56
|
`${this.table.schema}.${this.table.name}`,
|
|
@@ -80,7 +81,7 @@ export class DropCommentOnTable extends DropTableChange {
|
|
|
80
81
|
return [stableId.comment(this.table.stableId), this.table.stableId];
|
|
81
82
|
}
|
|
82
83
|
|
|
83
|
-
serialize(): string {
|
|
84
|
+
serialize(_options?: SerializeOptions): string {
|
|
84
85
|
return [
|
|
85
86
|
"COMMENT ON TABLE",
|
|
86
87
|
`${this.table.schema}.${this.table.name}`,
|
|
@@ -118,7 +119,7 @@ export class CreateCommentOnColumn extends CreateTableChange {
|
|
|
118
119
|
];
|
|
119
120
|
}
|
|
120
121
|
|
|
121
|
-
serialize(): string {
|
|
122
|
+
serialize(_options?: SerializeOptions): string {
|
|
122
123
|
return [
|
|
123
124
|
"COMMENT ON COLUMN",
|
|
124
125
|
`${this.table.schema}.${this.table.name}.${this.column.name}`,
|
|
@@ -161,7 +162,7 @@ export class DropCommentOnColumn extends DropTableChange {
|
|
|
161
162
|
return [stableId.comment(columnStableId), columnStableId];
|
|
162
163
|
}
|
|
163
164
|
|
|
164
|
-
serialize(): string {
|
|
165
|
+
serialize(_options?: SerializeOptions): string {
|
|
165
166
|
return [
|
|
166
167
|
"COMMENT ON COLUMN",
|
|
167
168
|
`${this.table.schema}.${this.table.name}.${this.column.name}`,
|
|
@@ -206,7 +207,7 @@ export class CreateCommentOnConstraint extends CreateTableChange {
|
|
|
206
207
|
];
|
|
207
208
|
}
|
|
208
209
|
|
|
209
|
-
serialize(): string {
|
|
210
|
+
serialize(_options?: SerializeOptions): string {
|
|
210
211
|
return [
|
|
211
212
|
"COMMENT ON CONSTRAINT",
|
|
212
213
|
this.constraint.name,
|
|
@@ -254,7 +255,7 @@ export class DropCommentOnConstraint extends DropTableChange {
|
|
|
254
255
|
return [stableId.comment(constraintStableId), constraintStableId];
|
|
255
256
|
}
|
|
256
257
|
|
|
257
|
-
serialize(): string {
|
|
258
|
+
serialize(_options?: SerializeOptions): string {
|
|
258
259
|
return [
|
|
259
260
|
"COMMENT ON CONSTRAINT",
|
|
260
261
|
this.constraint.name,
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { SerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
|
|
1
2
|
import { isUserDefinedTypeSchema, stableId } from "../../utils.ts";
|
|
2
3
|
import type { Table } from "../table.model.ts";
|
|
3
4
|
import { CreateTableChange } from "./table.base.ts";
|
|
@@ -93,7 +94,7 @@ export class CreateTable extends CreateTableChange {
|
|
|
93
94
|
return Array.from(dependencies);
|
|
94
95
|
}
|
|
95
96
|
|
|
96
|
-
serialize(): string {
|
|
97
|
+
serialize(_options?: SerializeOptions): string {
|
|
97
98
|
const parts: string[] = ["CREATE"];
|
|
98
99
|
|
|
99
100
|
// Add TEMPORARY/UNLOGGED based on persistence
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { SerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
|
|
1
2
|
import { stableId } from "../../utils.ts";
|
|
2
3
|
import type { Table } from "../table.model.ts";
|
|
3
4
|
import { DropTableChange } from "./table.base.ts";
|
|
@@ -27,6 +28,15 @@ export class DropTable extends DropTableChange {
|
|
|
27
28
|
...this.table.columns.map((column) =>
|
|
28
29
|
stableId.column(this.table.schema, this.table.name, column.name),
|
|
29
30
|
),
|
|
31
|
+
// Include constraint stableIds so FK relationships that only exist at the
|
|
32
|
+
// constraint level still affect whole-table drop ordering.
|
|
33
|
+
...this.table.constraints.map((constraint) =>
|
|
34
|
+
stableId.constraint(
|
|
35
|
+
this.table.schema,
|
|
36
|
+
this.table.name,
|
|
37
|
+
constraint.name,
|
|
38
|
+
),
|
|
39
|
+
),
|
|
30
40
|
];
|
|
31
41
|
}
|
|
32
42
|
|
|
@@ -36,10 +46,19 @@ export class DropTable extends DropTableChange {
|
|
|
36
46
|
...this.table.columns.map((col) =>
|
|
37
47
|
stableId.column(this.table.schema, this.table.name, col.name),
|
|
38
48
|
),
|
|
49
|
+
// Mirror the dropped constraint ids in requires so drop-phase graph
|
|
50
|
+
// consumers can connect catalog FK edges back to this table drop.
|
|
51
|
+
...this.table.constraints.map((constraint) =>
|
|
52
|
+
stableId.constraint(
|
|
53
|
+
this.table.schema,
|
|
54
|
+
this.table.name,
|
|
55
|
+
constraint.name,
|
|
56
|
+
),
|
|
57
|
+
),
|
|
39
58
|
];
|
|
40
59
|
}
|
|
41
60
|
|
|
42
|
-
serialize(): string {
|
|
61
|
+
serialize(_options?: SerializeOptions): string {
|
|
43
62
|
return ["DROP TABLE", `${this.table.schema}.${this.table.name}`].join(" ");
|
|
44
63
|
}
|
|
45
64
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { SerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
|
|
1
2
|
import {
|
|
2
3
|
formatObjectPrivilegeList,
|
|
3
4
|
getObjectKindPrefix,
|
|
@@ -57,7 +58,7 @@ export class GrantTablePrivileges extends AlterTableChange {
|
|
|
57
58
|
return [this.table.stableId, stableId.role(this.grantee)];
|
|
58
59
|
}
|
|
59
60
|
|
|
60
|
-
serialize(): string {
|
|
61
|
+
serialize(_options?: SerializeOptions): string {
|
|
61
62
|
const hasGrantable = this.privileges.some((p) => p.grantable);
|
|
62
63
|
const hasBase = this.privileges.some((p) => !p.grantable);
|
|
63
64
|
if (hasGrantable && hasBase) {
|
|
@@ -132,7 +133,7 @@ export class RevokeTablePrivileges extends AlterTableChange {
|
|
|
132
133
|
];
|
|
133
134
|
}
|
|
134
135
|
|
|
135
|
-
serialize(): string {
|
|
136
|
+
serialize(_options?: SerializeOptions): string {
|
|
136
137
|
const kindPrefix = getObjectKindPrefix("TABLE");
|
|
137
138
|
const list = this.privileges.map((p) => p.privilege);
|
|
138
139
|
const privSql = formatObjectPrivilegeList("TABLE", list, this.version);
|
|
@@ -183,7 +184,7 @@ export class RevokeGrantOptionTablePrivileges extends AlterTableChange {
|
|
|
183
184
|
];
|
|
184
185
|
}
|
|
185
186
|
|
|
186
|
-
serialize(): string {
|
|
187
|
+
serialize(_options?: SerializeOptions): string {
|
|
187
188
|
const kindPrefix = getObjectKindPrefix("TABLE");
|
|
188
189
|
const privSql = formatObjectPrivilegeList(
|
|
189
190
|
"TABLE",
|
|
@@ -3,9 +3,12 @@ import { DefaultPrivilegeState } from "../base.default-privileges.ts";
|
|
|
3
3
|
import {
|
|
4
4
|
AlterTableAddColumn,
|
|
5
5
|
AlterTableAddConstraint,
|
|
6
|
+
AlterTableAlterColumnAddIdentity,
|
|
6
7
|
AlterTableAlterColumnDropDefault,
|
|
8
|
+
AlterTableAlterColumnDropIdentity,
|
|
7
9
|
AlterTableAlterColumnDropNotNull,
|
|
8
10
|
AlterTableAlterColumnSetDefault,
|
|
11
|
+
AlterTableAlterColumnSetGenerated,
|
|
9
12
|
AlterTableAlterColumnSetNotNull,
|
|
10
13
|
AlterTableAlterColumnType,
|
|
11
14
|
AlterTableChangeOwner,
|
|
@@ -714,6 +717,124 @@ describe.concurrent("table.diff", () => {
|
|
|
714
717
|
).toBe(true);
|
|
715
718
|
});
|
|
716
719
|
|
|
720
|
+
test("identity transitions emit drop/add/set-generated changes", () => {
|
|
721
|
+
const serialColumn = {
|
|
722
|
+
name: "id",
|
|
723
|
+
position: 1,
|
|
724
|
+
data_type: "integer",
|
|
725
|
+
data_type_str: "integer",
|
|
726
|
+
is_custom_type: false,
|
|
727
|
+
custom_type_type: null,
|
|
728
|
+
custom_type_category: null,
|
|
729
|
+
custom_type_schema: null,
|
|
730
|
+
custom_type_name: null,
|
|
731
|
+
not_null: false,
|
|
732
|
+
is_identity: false,
|
|
733
|
+
is_identity_always: false,
|
|
734
|
+
is_generated: false,
|
|
735
|
+
collation: null,
|
|
736
|
+
default: "nextval('public.t_identity_id_seq'::regclass)",
|
|
737
|
+
comment: null,
|
|
738
|
+
};
|
|
739
|
+
|
|
740
|
+
const identityAlwaysColumn = {
|
|
741
|
+
...serialColumn,
|
|
742
|
+
is_identity: true,
|
|
743
|
+
is_identity_always: true,
|
|
744
|
+
default: null,
|
|
745
|
+
};
|
|
746
|
+
|
|
747
|
+
const identityByDefaultColumn = {
|
|
748
|
+
...identityAlwaysColumn,
|
|
749
|
+
is_identity_always: false,
|
|
750
|
+
};
|
|
751
|
+
|
|
752
|
+
const serialToIdentityMain = new Table({
|
|
753
|
+
...base,
|
|
754
|
+
name: "t_identity",
|
|
755
|
+
columns: [serialColumn],
|
|
756
|
+
});
|
|
757
|
+
const serialToIdentityBranch = new Table({
|
|
758
|
+
...base,
|
|
759
|
+
name: "t_identity",
|
|
760
|
+
columns: [identityAlwaysColumn],
|
|
761
|
+
});
|
|
762
|
+
|
|
763
|
+
const serialToIdentityChanges = diffTables(
|
|
764
|
+
testContext,
|
|
765
|
+
{ [serialToIdentityMain.stableId]: serialToIdentityMain },
|
|
766
|
+
{ [serialToIdentityBranch.stableId]: serialToIdentityBranch },
|
|
767
|
+
);
|
|
768
|
+
expect(
|
|
769
|
+
serialToIdentityChanges.some(
|
|
770
|
+
(c) => c instanceof AlterTableAlterColumnDropDefault,
|
|
771
|
+
),
|
|
772
|
+
).toBe(true);
|
|
773
|
+
expect(
|
|
774
|
+
serialToIdentityChanges.some(
|
|
775
|
+
(c) => c instanceof AlterTableAlterColumnAddIdentity,
|
|
776
|
+
),
|
|
777
|
+
).toBe(true);
|
|
778
|
+
|
|
779
|
+
const identityToSerialChanges = diffTables(
|
|
780
|
+
testContext,
|
|
781
|
+
{ [serialToIdentityBranch.stableId]: serialToIdentityBranch },
|
|
782
|
+
{ [serialToIdentityMain.stableId]: serialToIdentityMain },
|
|
783
|
+
);
|
|
784
|
+
expect(
|
|
785
|
+
identityToSerialChanges.some(
|
|
786
|
+
(c) => c instanceof AlterTableAlterColumnDropIdentity,
|
|
787
|
+
),
|
|
788
|
+
).toBe(true);
|
|
789
|
+
expect(
|
|
790
|
+
identityToSerialChanges.some(
|
|
791
|
+
(c) => c instanceof AlterTableAlterColumnSetDefault,
|
|
792
|
+
),
|
|
793
|
+
).toBe(true);
|
|
794
|
+
|
|
795
|
+
const alwaysToByDefaultMain = new Table({
|
|
796
|
+
...base,
|
|
797
|
+
name: "t_identity_mode",
|
|
798
|
+
columns: [identityAlwaysColumn],
|
|
799
|
+
});
|
|
800
|
+
const alwaysToByDefaultBranch = new Table({
|
|
801
|
+
...base,
|
|
802
|
+
name: "t_identity_mode",
|
|
803
|
+
columns: [identityByDefaultColumn],
|
|
804
|
+
});
|
|
805
|
+
const alwaysToByDefaultChanges = diffTables(
|
|
806
|
+
testContext,
|
|
807
|
+
{ [alwaysToByDefaultMain.stableId]: alwaysToByDefaultMain },
|
|
808
|
+
{ [alwaysToByDefaultBranch.stableId]: alwaysToByDefaultBranch },
|
|
809
|
+
);
|
|
810
|
+
expect(
|
|
811
|
+
alwaysToByDefaultChanges.some(
|
|
812
|
+
(c) => c instanceof AlterTableAlterColumnSetGenerated,
|
|
813
|
+
),
|
|
814
|
+
).toBe(true);
|
|
815
|
+
|
|
816
|
+
const byDefaultToAlwaysMain = new Table({
|
|
817
|
+
...base,
|
|
818
|
+
name: "t_identity_mode_reverse",
|
|
819
|
+
columns: [identityByDefaultColumn],
|
|
820
|
+
});
|
|
821
|
+
const byDefaultToAlwaysBranch = new Table({
|
|
822
|
+
...base,
|
|
823
|
+
name: "t_identity_mode_reverse",
|
|
824
|
+
columns: [identityAlwaysColumn],
|
|
825
|
+
});
|
|
826
|
+
const byDefaultToAlwaysChanges = diffTables(
|
|
827
|
+
testContext,
|
|
828
|
+
{ [byDefaultToAlwaysMain.stableId]: byDefaultToAlwaysMain },
|
|
829
|
+
{ [byDefaultToAlwaysBranch.stableId]: byDefaultToAlwaysBranch },
|
|
830
|
+
);
|
|
831
|
+
expect(
|
|
832
|
+
byDefaultToAlwaysChanges.some(
|
|
833
|
+
(c) => c instanceof AlterTableAlterColumnSetGenerated,
|
|
834
|
+
),
|
|
835
|
+
).toBe(true);
|
|
836
|
+
});
|
|
837
|
+
|
|
717
838
|
test("created table with privileges emits grant changes", () => {
|
|
718
839
|
const t = new Table({
|
|
719
840
|
...base,
|
|
@@ -8,9 +8,12 @@ import { deepEqual } from "../utils.ts";
|
|
|
8
8
|
import {
|
|
9
9
|
AlterTableAddColumn,
|
|
10
10
|
AlterTableAddConstraint,
|
|
11
|
+
AlterTableAlterColumnAddIdentity,
|
|
11
12
|
AlterTableAlterColumnDropDefault,
|
|
13
|
+
AlterTableAlterColumnDropIdentity,
|
|
12
14
|
AlterTableAlterColumnDropNotNull,
|
|
13
15
|
AlterTableAlterColumnSetDefault,
|
|
16
|
+
AlterTableAlterColumnSetGenerated,
|
|
14
17
|
AlterTableAlterColumnSetNotNull,
|
|
15
18
|
AlterTableAlterColumnType,
|
|
16
19
|
AlterTableAttachPartition,
|
|
@@ -545,7 +548,7 @@ export function diffTables(
|
|
|
545
548
|
// Helper to check if parent has the same column property change
|
|
546
549
|
const parentHasSameColumnPropertyChange = (
|
|
547
550
|
columnName: string,
|
|
548
|
-
property: "type" | "default" | "not_null",
|
|
551
|
+
property: "type" | "default" | "not_null" | "identity",
|
|
549
552
|
): boolean => {
|
|
550
553
|
const { parentMain, parentBranch } = getParentTables();
|
|
551
554
|
if (!parentMain || !parentBranch) {
|
|
@@ -601,6 +604,21 @@ export function diffTables(
|
|
|
601
604
|
parentBranchCol.not_null === branchCol.not_null
|
|
602
605
|
);
|
|
603
606
|
}
|
|
607
|
+
case "identity": {
|
|
608
|
+
const parentIdentityChanged =
|
|
609
|
+
parentMainCol.is_identity !== parentBranchCol.is_identity ||
|
|
610
|
+
parentMainCol.is_identity_always !==
|
|
611
|
+
parentBranchCol.is_identity_always;
|
|
612
|
+
const partitionIdentityChanged =
|
|
613
|
+
mainCol.is_identity !== branchCol.is_identity ||
|
|
614
|
+
mainCol.is_identity_always !== branchCol.is_identity_always;
|
|
615
|
+
return (
|
|
616
|
+
parentIdentityChanged &&
|
|
617
|
+
partitionIdentityChanged &&
|
|
618
|
+
parentBranchCol.is_identity === branchCol.is_identity &&
|
|
619
|
+
parentBranchCol.is_identity_always === branchCol.is_identity_always
|
|
620
|
+
);
|
|
621
|
+
}
|
|
604
622
|
}
|
|
605
623
|
};
|
|
606
624
|
|
|
@@ -698,6 +716,19 @@ export function diffTables(
|
|
|
698
716
|
}
|
|
699
717
|
}
|
|
700
718
|
|
|
719
|
+
// PostgreSQL rejects SET DEFAULT while the column still has identity metadata,
|
|
720
|
+
// so identity removal must lead the IDENTITY -> serial/default transition.
|
|
721
|
+
if (mainCol.is_identity && !branchCol.is_identity) {
|
|
722
|
+
if (!parentHasSameColumnPropertyChange(name, "identity")) {
|
|
723
|
+
changes.push(
|
|
724
|
+
new AlterTableAlterColumnDropIdentity({
|
|
725
|
+
table: branchTable,
|
|
726
|
+
column: branchCol,
|
|
727
|
+
}),
|
|
728
|
+
);
|
|
729
|
+
}
|
|
730
|
+
}
|
|
731
|
+
|
|
701
732
|
// DEFAULT change
|
|
702
733
|
if (mainCol.default !== branchCol.default) {
|
|
703
734
|
// Skip if parent has the same default change
|
|
@@ -746,6 +777,38 @@ export function diffTables(
|
|
|
746
777
|
}
|
|
747
778
|
}
|
|
748
779
|
|
|
780
|
+
// Serial-like defaults have to be cleared before ADD GENERATED AS IDENTITY,
|
|
781
|
+
// while mode-only flips stay in-place on an existing identity column.
|
|
782
|
+
if (
|
|
783
|
+
(!mainCol.is_identity && branchCol.is_identity) ||
|
|
784
|
+
(mainCol.is_identity &&
|
|
785
|
+
branchCol.is_identity &&
|
|
786
|
+
mainCol.is_identity_always !== branchCol.is_identity_always)
|
|
787
|
+
) {
|
|
788
|
+
// Skip if parent has the same identity change
|
|
789
|
+
if (!parentHasSameColumnPropertyChange(name, "identity")) {
|
|
790
|
+
if (!mainCol.is_identity && branchCol.is_identity) {
|
|
791
|
+
changes.push(
|
|
792
|
+
new AlterTableAlterColumnAddIdentity({
|
|
793
|
+
table: branchTable,
|
|
794
|
+
column: branchCol,
|
|
795
|
+
}),
|
|
796
|
+
);
|
|
797
|
+
} else if (
|
|
798
|
+
mainCol.is_identity &&
|
|
799
|
+
branchCol.is_identity &&
|
|
800
|
+
mainCol.is_identity_always !== branchCol.is_identity_always
|
|
801
|
+
) {
|
|
802
|
+
changes.push(
|
|
803
|
+
new AlterTableAlterColumnSetGenerated({
|
|
804
|
+
table: branchTable,
|
|
805
|
+
column: branchCol,
|
|
806
|
+
}),
|
|
807
|
+
);
|
|
808
|
+
}
|
|
809
|
+
}
|
|
810
|
+
}
|
|
811
|
+
|
|
749
812
|
// NOT NULL change
|
|
750
813
|
if (mainCol.not_null !== branchCol.not_null) {
|
|
751
814
|
// 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 { quoteLiteral } from "../../base.change.ts";
|
|
2
3
|
import type { TableLikeObject } from "../../base.model.ts";
|
|
3
4
|
import type { Trigger } from "../trigger.model.ts";
|
|
@@ -40,7 +41,7 @@ export class ReplaceTrigger extends AlterTriggerChange {
|
|
|
40
41
|
return [this.trigger.stableId];
|
|
41
42
|
}
|
|
42
43
|
|
|
43
|
-
serialize(): string {
|
|
44
|
+
serialize(_options?: SerializeOptions): string {
|
|
44
45
|
if (this.trigger.isConstraintTrigger) {
|
|
45
46
|
const dropChange = new DropTrigger({ trigger: this.trigger });
|
|
46
47
|
const createChange = new CreateTrigger({
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { SerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
|
|
1
2
|
import { quoteLiteral } from "../../base.change.ts";
|
|
2
3
|
import { stableId } from "../../utils.ts";
|
|
3
4
|
import type { Trigger } from "../trigger.model.ts";
|
|
@@ -22,7 +23,7 @@ export class CreateCommentOnTrigger extends CreateTriggerChange {
|
|
|
22
23
|
return [this.trigger.stableId];
|
|
23
24
|
}
|
|
24
25
|
|
|
25
|
-
serialize(): string {
|
|
26
|
+
serialize(_options?: SerializeOptions): string {
|
|
26
27
|
return [
|
|
27
28
|
"COMMENT ON TRIGGER",
|
|
28
29
|
this.trigger.name,
|
|
@@ -52,7 +53,7 @@ export class DropCommentOnTrigger extends DropTriggerChange {
|
|
|
52
53
|
return [stableId.comment(this.trigger.stableId), this.trigger.stableId];
|
|
53
54
|
}
|
|
54
55
|
|
|
55
|
-
serialize(): string {
|
|
56
|
+
serialize(_options?: SerializeOptions): string {
|
|
56
57
|
return [
|
|
57
58
|
"COMMENT ON TRIGGER",
|
|
58
59
|
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 { stableId } from "../../utils.ts";
|
|
3
4
|
import type { Trigger } from "../trigger.model.ts";
|
|
@@ -74,7 +75,7 @@ export class CreateTrigger extends CreateTriggerChange {
|
|
|
74
75
|
return Array.from(dependencies);
|
|
75
76
|
}
|
|
76
77
|
|
|
77
|
-
serialize(): string {
|
|
78
|
+
serialize(_options?: SerializeOptions): string {
|
|
78
79
|
let definition = this.trigger.definition.trim();
|
|
79
80
|
const isConstraintTrigger = this.trigger.isConstraintTrigger;
|
|
80
81
|
|
|
@@ -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 { DropTriggerChange } from "./trigger.base.ts";
|
|
3
4
|
|
|
@@ -28,7 +29,7 @@ export class DropTrigger extends DropTriggerChange {
|
|
|
28
29
|
return [this.trigger.stableId];
|
|
29
30
|
}
|
|
30
31
|
|
|
31
|
-
serialize(): string {
|
|
32
|
+
serialize(_options?: SerializeOptions): string {
|
|
32
33
|
return [
|
|
33
34
|
"DROP TRIGGER",
|
|
34
35
|
this.trigger.name,
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { SerializeOptions } from "../../../../integrations/serialize/serialize.types.ts";
|
|
1
2
|
import type { CompositeType } from "../composite-type.model.ts";
|
|
2
3
|
import { AlterCompositeTypeChange } from "./composite-type.base.ts";
|
|
3
4
|
|
|
@@ -42,7 +43,7 @@ export class AlterCompositeTypeChangeOwner extends AlterCompositeTypeChange {
|
|
|
42
43
|
return [this.compositeType.stableId];
|
|
43
44
|
}
|
|
44
45
|
|
|
45
|
-
serialize(): string {
|
|
46
|
+
serialize(_options?: SerializeOptions): string {
|
|
46
47
|
return [
|
|
47
48
|
"ALTER TYPE",
|
|
48
49
|
`${this.compositeType.schema}.${this.compositeType.name}`,
|
|
@@ -77,7 +78,7 @@ export class AlterCompositeTypeAddAttribute extends AlterCompositeTypeChange {
|
|
|
77
78
|
return [this.compositeType.stableId];
|
|
78
79
|
}
|
|
79
80
|
|
|
80
|
-
serialize(): string {
|
|
81
|
+
serialize(_options?: SerializeOptions): string {
|
|
81
82
|
const parts = [
|
|
82
83
|
"ALTER TYPE",
|
|
83
84
|
`${this.compositeType.schema}.${this.compositeType.name}`,
|
|
@@ -116,7 +117,7 @@ export class AlterCompositeTypeDropAttribute extends AlterCompositeTypeChange {
|
|
|
116
117
|
];
|
|
117
118
|
}
|
|
118
119
|
|
|
119
|
-
serialize(): string {
|
|
120
|
+
serialize(_options?: SerializeOptions): string {
|
|
120
121
|
return [
|
|
121
122
|
"ALTER TYPE",
|
|
122
123
|
`${this.compositeType.schema}.${this.compositeType.name}`,
|
|
@@ -150,7 +151,7 @@ export class AlterCompositeTypeAlterAttributeType extends AlterCompositeTypeChan
|
|
|
150
151
|
];
|
|
151
152
|
}
|
|
152
153
|
|
|
153
|
-
serialize(): string {
|
|
154
|
+
serialize(_options?: SerializeOptions): string {
|
|
154
155
|
const parts = [
|
|
155
156
|
"ALTER TYPE",
|
|
156
157
|
`${this.compositeType.schema}.${this.compositeType.name}`,
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { SerializeOptions } from "../../../../integrations/serialize/serialize.types.ts";
|
|
1
2
|
import { quoteLiteral } from "../../../base.change.ts";
|
|
2
3
|
import type { ColumnProps } from "../../../base.model.ts";
|
|
3
4
|
import { stableId } from "../../../utils.ts";
|
|
@@ -36,7 +37,7 @@ export class CreateCommentOnCompositeType extends CreateCompositeTypeChange {
|
|
|
36
37
|
return [this.compositeType.stableId];
|
|
37
38
|
}
|
|
38
39
|
|
|
39
|
-
serialize(): string {
|
|
40
|
+
serialize(_options?: SerializeOptions): string {
|
|
40
41
|
return [
|
|
41
42
|
"COMMENT ON TYPE",
|
|
42
43
|
`${this.compositeType.schema}.${this.compositeType.name}`,
|
|
@@ -67,7 +68,7 @@ export class DropCommentOnCompositeType extends DropCompositeTypeChange {
|
|
|
67
68
|
];
|
|
68
69
|
}
|
|
69
70
|
|
|
70
|
-
serialize(): string {
|
|
71
|
+
serialize(_options?: SerializeOptions): string {
|
|
71
72
|
return [
|
|
72
73
|
"COMMENT ON TYPE",
|
|
73
74
|
`${this.compositeType.schema}.${this.compositeType.name}`,
|
|
@@ -99,7 +100,7 @@ export class CreateCommentOnCompositeTypeAttribute extends CreateCompositeTypeCh
|
|
|
99
100
|
];
|
|
100
101
|
}
|
|
101
102
|
|
|
102
|
-
serialize(): string {
|
|
103
|
+
serialize(_options?: SerializeOptions): string {
|
|
103
104
|
return [
|
|
104
105
|
"COMMENT ON COLUMN",
|
|
105
106
|
`${this.compositeType.schema}.${this.compositeType.name}.${this.attribute.name}`,
|
|
@@ -135,7 +136,7 @@ export class DropCommentOnCompositeTypeAttribute extends DropCompositeTypeChange
|
|
|
135
136
|
];
|
|
136
137
|
}
|
|
137
138
|
|
|
138
|
-
serialize(): string {
|
|
139
|
+
serialize(_options?: SerializeOptions): string {
|
|
139
140
|
return [
|
|
140
141
|
"COMMENT ON COLUMN",
|
|
141
142
|
`${this.compositeType.schema}.${this.compositeType.name}.${this.attribute.name}`,
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { SerializeOptions } from "../../../../integrations/serialize/serialize.types.ts";
|
|
1
2
|
import { isUserDefinedTypeSchema, stableId } from "../../../utils.ts";
|
|
2
3
|
import type { CompositeType } from "../composite-type.model.ts";
|
|
3
4
|
import { CreateCompositeTypeChange } from "./composite-type.base.ts";
|
|
@@ -65,7 +66,7 @@ export class CreateCompositeType extends CreateCompositeTypeChange {
|
|
|
65
66
|
return Array.from(dependencies);
|
|
66
67
|
}
|
|
67
68
|
|
|
68
|
-
serialize(): string {
|
|
69
|
+
serialize(_options?: SerializeOptions): string {
|
|
69
70
|
const parts: string[] = ["CREATE TYPE"];
|
|
70
71
|
|
|
71
72
|
// Add schema and name
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { SerializeOptions } from "../../../../integrations/serialize/serialize.types.ts";
|
|
1
2
|
import type { CompositeType } from "../composite-type.model.ts";
|
|
2
3
|
import { DropCompositeTypeChange } from "./composite-type.base.ts";
|
|
3
4
|
|
|
@@ -28,7 +29,7 @@ export class DropCompositeType extends DropCompositeTypeChange {
|
|
|
28
29
|
return [this.compositeType.stableId];
|
|
29
30
|
}
|
|
30
31
|
|
|
31
|
-
serialize(): string {
|
|
32
|
+
serialize(_options?: SerializeOptions): string {
|
|
32
33
|
return [
|
|
33
34
|
"DROP TYPE",
|
|
34
35
|
`${this.compositeType.schema}.${this.compositeType.name}`,
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { SerializeOptions } from "../../../../integrations/serialize/serialize.types.ts";
|
|
1
2
|
import {
|
|
2
3
|
formatObjectPrivilegeList,
|
|
3
4
|
getObjectKindPrefix,
|
|
@@ -52,7 +53,7 @@ export class GrantCompositeTypePrivileges extends AlterCompositeTypeChange {
|
|
|
52
53
|
return [this.compositeType.stableId, stableId.role(this.grantee)];
|
|
53
54
|
}
|
|
54
55
|
|
|
55
|
-
serialize(): string {
|
|
56
|
+
serialize(_options?: SerializeOptions): string {
|
|
56
57
|
const hasGrantable = this.privileges.some((p) => p.grantable);
|
|
57
58
|
const hasBase = this.privileges.some((p) => !p.grantable);
|
|
58
59
|
if (hasGrantable && hasBase) {
|
|
@@ -118,7 +119,7 @@ export class RevokeCompositeTypePrivileges extends AlterCompositeTypeChange {
|
|
|
118
119
|
];
|
|
119
120
|
}
|
|
120
121
|
|
|
121
|
-
serialize(): string {
|
|
122
|
+
serialize(_options?: SerializeOptions): string {
|
|
122
123
|
const kindPrefix = getObjectKindPrefix("TYPE");
|
|
123
124
|
const list = this.privileges.map((p) => p.privilege);
|
|
124
125
|
const privSql = formatObjectPrivilegeList("TYPE", list, this.version);
|
|
@@ -162,7 +163,7 @@ export class RevokeGrantOptionCompositeTypePrivileges extends AlterCompositeType
|
|
|
162
163
|
];
|
|
163
164
|
}
|
|
164
165
|
|
|
165
|
-
serialize(): string {
|
|
166
|
+
serialize(_options?: SerializeOptions): string {
|
|
166
167
|
const kindPrefix = getObjectKindPrefix("TYPE");
|
|
167
168
|
const privSql = formatObjectPrivilegeList(
|
|
168
169
|
"TYPE",
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { SerializeOptions } from "../../../../integrations/serialize/serialize.types.ts";
|
|
1
2
|
import { quoteLiteral } from "../../../base.change.ts";
|
|
2
3
|
import type { Enum } from "../enum.model.ts";
|
|
3
4
|
import { AlterEnumChange } from "./enum.base.ts";
|
|
@@ -36,7 +37,7 @@ export class AlterEnumChangeOwner extends AlterEnumChange {
|
|
|
36
37
|
return [this.enum.stableId];
|
|
37
38
|
}
|
|
38
39
|
|
|
39
|
-
serialize(): string {
|
|
40
|
+
serialize(_options?: SerializeOptions): string {
|
|
40
41
|
return [
|
|
41
42
|
"ALTER TYPE",
|
|
42
43
|
`${this.enum.schema}.${this.enum.name}`,
|
|
@@ -70,7 +71,7 @@ export class AlterEnumAddValue extends AlterEnumChange {
|
|
|
70
71
|
return [this.enum.stableId];
|
|
71
72
|
}
|
|
72
73
|
|
|
73
|
-
serialize(): string {
|
|
74
|
+
serialize(_options?: SerializeOptions): string {
|
|
74
75
|
const parts = [
|
|
75
76
|
"ALTER TYPE",
|
|
76
77
|
`${this.enum.schema}.${this.enum.name}`,
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { SerializeOptions } from "../../../../integrations/serialize/serialize.types.ts";
|
|
1
2
|
import { quoteLiteral } from "../../../base.change.ts";
|
|
2
3
|
import { stableId } from "../../../utils.ts";
|
|
3
4
|
import type { Enum } from "../enum.model.ts";
|
|
@@ -26,7 +27,7 @@ export class CreateCommentOnEnum extends CreateEnumChange {
|
|
|
26
27
|
return [this.enum.stableId];
|
|
27
28
|
}
|
|
28
29
|
|
|
29
|
-
serialize(): string {
|
|
30
|
+
serialize(_options?: SerializeOptions): string {
|
|
30
31
|
return [
|
|
31
32
|
"COMMENT ON TYPE",
|
|
32
33
|
`${this.enum.schema}.${this.enum.name}`,
|
|
@@ -54,7 +55,7 @@ export class DropCommentOnEnum extends DropEnumChange {
|
|
|
54
55
|
return [stableId.comment(this.enum.stableId), this.enum.stableId];
|
|
55
56
|
}
|
|
56
57
|
|
|
57
|
-
serialize(): string {
|
|
58
|
+
serialize(_options?: SerializeOptions): string {
|
|
58
59
|
return [
|
|
59
60
|
"COMMENT ON TYPE",
|
|
60
61
|
`${this.enum.schema}.${this.enum.name}`,
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { SerializeOptions } from "../../../../integrations/serialize/serialize.types.ts";
|
|
1
2
|
import { quoteLiteral } from "../../../base.change.ts";
|
|
2
3
|
import { stableId } from "../../../utils.ts";
|
|
3
4
|
import type { Enum } from "../enum.model.ts";
|
|
@@ -38,7 +39,7 @@ export class CreateEnum extends CreateEnumChange {
|
|
|
38
39
|
return Array.from(dependencies);
|
|
39
40
|
}
|
|
40
41
|
|
|
41
|
-
serialize(): string {
|
|
42
|
+
serialize(_options?: SerializeOptions): string {
|
|
42
43
|
const parts: string[] = ["CREATE TYPE"];
|
|
43
44
|
|
|
44
45
|
// Add schema and name
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { SerializeOptions } from "../../../../integrations/serialize/serialize.types.ts";
|
|
1
2
|
import type { Enum } from "../enum.model.ts";
|
|
2
3
|
import { DropEnumChange } from "./enum.base.ts";
|
|
3
4
|
|
|
@@ -28,7 +29,7 @@ export class DropEnum extends DropEnumChange {
|
|
|
28
29
|
return [this.enum.stableId];
|
|
29
30
|
}
|
|
30
31
|
|
|
31
|
-
serialize(): string {
|
|
32
|
+
serialize(_options?: SerializeOptions): string {
|
|
32
33
|
return ["DROP TYPE", `${this.enum.schema}.${this.enum.name}`].join(" ");
|
|
33
34
|
}
|
|
34
35
|
}
|