@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 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}`;
|
|
@@ -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
|
}
|
|
@@ -51,7 +51,7 @@ export class CreateTrigger extends CreateTriggerChange {
|
|
|
51
51
|
dependencies.add(stableId.role(this.trigger.owner));
|
|
52
52
|
return Array.from(dependencies);
|
|
53
53
|
}
|
|
54
|
-
serialize() {
|
|
54
|
+
serialize(_options) {
|
|
55
55
|
let definition = this.trigger.definition.trim();
|
|
56
56
|
const isConstraintTrigger = this.trigger.isConstraintTrigger;
|
|
57
57
|
definition = definition.replace(/^CREATE\s+(?:OR\s+REPLACE\s+)?/i, `CREATE ${this.orReplace && !isConstraintTrigger ? "OR REPLACE " : ""}`);
|
|
@@ -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
|
/**
|
|
@@ -18,5 +19,5 @@ export declare class DropTrigger extends DropTriggerChange {
|
|
|
18
19
|
});
|
|
19
20
|
get drops(): `trigger:${string}`[];
|
|
20
21
|
get requires(): `trigger:${string}`[];
|
|
21
|
-
serialize(): string;
|
|
22
|
+
serialize(_options?: SerializeOptions): string;
|
|
22
23
|
}
|
|
@@ -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
|
/**
|
|
@@ -29,7 +30,7 @@ export declare class AlterCompositeTypeChangeOwner extends AlterCompositeTypeCha
|
|
|
29
30
|
owner: string;
|
|
30
31
|
});
|
|
31
32
|
get requires(): `type:${string}`[];
|
|
32
|
-
serialize(): string;
|
|
33
|
+
serialize(_options?: SerializeOptions): string;
|
|
33
34
|
}
|
|
34
35
|
/**
|
|
35
36
|
* ALTER TYPE ... ADD ATTRIBUTE ...
|
|
@@ -44,7 +45,7 @@ export declare class AlterCompositeTypeAddAttribute extends AlterCompositeTypeCh
|
|
|
44
45
|
});
|
|
45
46
|
get creates(): string[];
|
|
46
47
|
get requires(): `type:${string}`[];
|
|
47
|
-
serialize(): string;
|
|
48
|
+
serialize(_options?: SerializeOptions): string;
|
|
48
49
|
}
|
|
49
50
|
/**
|
|
50
51
|
* ALTER TYPE ... DROP ATTRIBUTE ...
|
|
@@ -58,7 +59,7 @@ export declare class AlterCompositeTypeDropAttribute extends AlterCompositeTypeC
|
|
|
58
59
|
attribute: CompositeType["columns"][number];
|
|
59
60
|
});
|
|
60
61
|
get requires(): string[];
|
|
61
|
-
serialize(): string;
|
|
62
|
+
serialize(_options?: SerializeOptions): string;
|
|
62
63
|
}
|
|
63
64
|
/**
|
|
64
65
|
* ALTER TYPE ... ALTER ATTRIBUTE ... TYPE ... [ COLLATE ... ]
|
|
@@ -72,7 +73,7 @@ export declare class AlterCompositeTypeAlterAttributeType extends AlterComposite
|
|
|
72
73
|
attribute: CompositeType["columns"][number];
|
|
73
74
|
});
|
|
74
75
|
get requires(): string[];
|
|
75
|
-
serialize(): string;
|
|
76
|
+
serialize(_options?: SerializeOptions): string;
|
|
76
77
|
}
|
|
77
78
|
/**
|
|
78
79
|
* Replace a composite type by dropping and recreating it.
|
|
@@ -14,7 +14,7 @@ export class AlterCompositeTypeChangeOwner extends AlterCompositeTypeChange {
|
|
|
14
14
|
get requires() {
|
|
15
15
|
return [this.compositeType.stableId];
|
|
16
16
|
}
|
|
17
|
-
serialize() {
|
|
17
|
+
serialize(_options) {
|
|
18
18
|
return [
|
|
19
19
|
"ALTER TYPE",
|
|
20
20
|
`${this.compositeType.schema}.${this.compositeType.name}`,
|
|
@@ -41,7 +41,7 @@ export class AlterCompositeTypeAddAttribute extends AlterCompositeTypeChange {
|
|
|
41
41
|
get requires() {
|
|
42
42
|
return [this.compositeType.stableId];
|
|
43
43
|
}
|
|
44
|
-
serialize() {
|
|
44
|
+
serialize(_options) {
|
|
45
45
|
const parts = [
|
|
46
46
|
"ALTER TYPE",
|
|
47
47
|
`${this.compositeType.schema}.${this.compositeType.name}`,
|
|
@@ -73,7 +73,7 @@ export class AlterCompositeTypeDropAttribute extends AlterCompositeTypeChange {
|
|
|
73
73
|
this.compositeType.stableId,
|
|
74
74
|
];
|
|
75
75
|
}
|
|
76
|
-
serialize() {
|
|
76
|
+
serialize(_options) {
|
|
77
77
|
return [
|
|
78
78
|
"ALTER TYPE",
|
|
79
79
|
`${this.compositeType.schema}.${this.compositeType.name}`,
|
|
@@ -100,7 +100,7 @@ export class AlterCompositeTypeAlterAttributeType extends AlterCompositeTypeChan
|
|
|
100
100
|
this.compositeType.stableId,
|
|
101
101
|
];
|
|
102
102
|
}
|
|
103
|
-
serialize() {
|
|
103
|
+
serialize(_options) {
|
|
104
104
|
const parts = [
|
|
105
105
|
"ALTER TYPE",
|
|
106
106
|
`${this.compositeType.schema}.${this.compositeType.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 { CompositeType } from "../composite-type.model.ts";
|
|
3
4
|
import { CreateCompositeTypeChange, DropCompositeTypeChange } from "./composite-type.base.ts";
|
|
@@ -15,7 +16,7 @@ export declare class CreateCommentOnCompositeType extends CreateCompositeTypeCha
|
|
|
15
16
|
});
|
|
16
17
|
get creates(): `comment:${string}`[];
|
|
17
18
|
get requires(): `type:${string}`[];
|
|
18
|
-
serialize(): string;
|
|
19
|
+
serialize(_options?: SerializeOptions): string;
|
|
19
20
|
}
|
|
20
21
|
export declare class DropCommentOnCompositeType extends DropCompositeTypeChange {
|
|
21
22
|
readonly compositeType: CompositeType;
|
|
@@ -25,7 +26,7 @@ export declare class DropCommentOnCompositeType extends DropCompositeTypeChange
|
|
|
25
26
|
});
|
|
26
27
|
get drops(): `comment:${string}`[];
|
|
27
28
|
get requires(): (`comment:${string}` | `type:${string}`)[];
|
|
28
|
-
serialize(): string;
|
|
29
|
+
serialize(_options?: SerializeOptions): string;
|
|
29
30
|
}
|
|
30
31
|
export declare class CreateCommentOnCompositeTypeAttribute extends CreateCompositeTypeChange {
|
|
31
32
|
readonly compositeType: CompositeType;
|
|
@@ -37,7 +38,7 @@ export declare class CreateCommentOnCompositeTypeAttribute extends CreateComposi
|
|
|
37
38
|
});
|
|
38
39
|
get creates(): `comment:${string}`[];
|
|
39
40
|
get requires(): string[];
|
|
40
|
-
serialize(): string;
|
|
41
|
+
serialize(_options?: SerializeOptions): string;
|
|
41
42
|
}
|
|
42
43
|
export declare class DropCommentOnCompositeTypeAttribute extends DropCompositeTypeChange {
|
|
43
44
|
readonly compositeType: CompositeType;
|
|
@@ -49,5 +50,5 @@ export declare class DropCommentOnCompositeTypeAttribute extends DropCompositeTy
|
|
|
49
50
|
});
|
|
50
51
|
get drops(): `comment:${string}`[];
|
|
51
52
|
get requires(): string[];
|
|
52
|
-
serialize(): string;
|
|
53
|
+
serialize(_options?: SerializeOptions): string;
|
|
53
54
|
}
|
|
@@ -14,7 +14,7 @@ export class CreateCommentOnCompositeType extends CreateCompositeTypeChange {
|
|
|
14
14
|
get requires() {
|
|
15
15
|
return [this.compositeType.stableId];
|
|
16
16
|
}
|
|
17
|
-
serialize() {
|
|
17
|
+
serialize(_options) {
|
|
18
18
|
return [
|
|
19
19
|
"COMMENT ON TYPE",
|
|
20
20
|
`${this.compositeType.schema}.${this.compositeType.name}`,
|
|
@@ -40,7 +40,7 @@ export class DropCommentOnCompositeType extends DropCompositeTypeChange {
|
|
|
40
40
|
this.compositeType.stableId,
|
|
41
41
|
];
|
|
42
42
|
}
|
|
43
|
-
serialize() {
|
|
43
|
+
serialize(_options) {
|
|
44
44
|
return [
|
|
45
45
|
"COMMENT ON TYPE",
|
|
46
46
|
`${this.compositeType.schema}.${this.compositeType.name}`,
|
|
@@ -67,7 +67,7 @@ export class CreateCommentOnCompositeTypeAttribute extends CreateCompositeTypeCh
|
|
|
67
67
|
this.compositeType.stableId,
|
|
68
68
|
];
|
|
69
69
|
}
|
|
70
|
-
serialize() {
|
|
70
|
+
serialize(_options) {
|
|
71
71
|
return [
|
|
72
72
|
"COMMENT ON COLUMN",
|
|
73
73
|
`${this.compositeType.schema}.${this.compositeType.name}.${this.attribute.name}`,
|
|
@@ -98,7 +98,7 @@ export class DropCommentOnCompositeTypeAttribute extends DropCompositeTypeChange
|
|
|
98
98
|
this.compositeType.stableId,
|
|
99
99
|
];
|
|
100
100
|
}
|
|
101
|
-
serialize() {
|
|
101
|
+
serialize(_options) {
|
|
102
102
|
return [
|
|
103
103
|
"COMMENT ON COLUMN",
|
|
104
104
|
`${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 type { CompositeType } from "../composite-type.model.ts";
|
|
2
3
|
import { CreateCompositeTypeChange } from "./composite-type.base.ts";
|
|
3
4
|
/**
|
|
@@ -19,5 +20,5 @@ export declare class CreateCompositeType extends CreateCompositeTypeChange {
|
|
|
19
20
|
});
|
|
20
21
|
get creates(): `type:${string}`[];
|
|
21
22
|
get requires(): string[];
|
|
22
|
-
serialize(): string;
|
|
23
|
+
serialize(_options?: SerializeOptions): string;
|
|
23
24
|
}
|
|
@@ -48,7 +48,7 @@ export class CreateCompositeType extends CreateCompositeTypeChange {
|
|
|
48
48
|
}
|
|
49
49
|
return Array.from(dependencies);
|
|
50
50
|
}
|
|
51
|
-
serialize() {
|
|
51
|
+
serialize(_options) {
|
|
52
52
|
const parts = ["CREATE TYPE"];
|
|
53
53
|
// Add schema and name
|
|
54
54
|
parts.push(`${this.compositeType.schema}.${this.compositeType.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
|
/**
|
|
@@ -18,5 +19,5 @@ export declare class DropCompositeType extends DropCompositeTypeChange {
|
|
|
18
19
|
});
|
|
19
20
|
get drops(): `type:${string}`[];
|
|
20
21
|
get requires(): `type:${string}`[];
|
|
21
|
-
serialize(): string;
|
|
22
|
+
serialize(_options?: SerializeOptions): string;
|
|
22
23
|
}
|
|
@@ -22,7 +22,7 @@ export class DropCompositeType extends DropCompositeTypeChange {
|
|
|
22
22
|
get requires() {
|
|
23
23
|
return [this.compositeType.stableId];
|
|
24
24
|
}
|
|
25
|
-
serialize() {
|
|
25
|
+
serialize(_options) {
|
|
26
26
|
return [
|
|
27
27
|
"DROP TYPE",
|
|
28
28
|
`${this.compositeType.schema}.${this.compositeType.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
|
export type CompositeTypePrivilege = GrantCompositeTypePrivileges | RevokeCompositeTypePrivileges | RevokeGrantOptionCompositeTypePrivileges;
|
|
@@ -34,7 +35,7 @@ export declare class GrantCompositeTypePrivileges extends AlterCompositeTypeChan
|
|
|
34
35
|
});
|
|
35
36
|
get creates(): `acl:${string}::grantee:${string}`[];
|
|
36
37
|
get requires(): (`role:${string}` | `type:${string}`)[];
|
|
37
|
-
serialize(): string;
|
|
38
|
+
serialize(_options?: SerializeOptions): string;
|
|
38
39
|
}
|
|
39
40
|
/**
|
|
40
41
|
* Revoke privileges on a composite type.
|
|
@@ -71,7 +72,7 @@ export declare class RevokeCompositeTypePrivileges extends AlterCompositeTypeCha
|
|
|
71
72
|
});
|
|
72
73
|
get drops(): `acl:${string}::grantee:${string}`[];
|
|
73
74
|
get requires(): (`acl:${string}::grantee:${string}` | `role:${string}` | `type:${string}`)[];
|
|
74
|
-
serialize(): string;
|
|
75
|
+
serialize(_options?: SerializeOptions): string;
|
|
75
76
|
}
|
|
76
77
|
/**
|
|
77
78
|
* Revoke grant option for privileges on a composite type.
|
|
@@ -93,5 +94,5 @@ export declare class RevokeGrantOptionCompositeTypePrivileges extends AlterCompo
|
|
|
93
94
|
version?: number;
|
|
94
95
|
});
|
|
95
96
|
get requires(): (`acl:${string}::grantee:${string}` | `role:${string}` | `type:${string}`)[];
|
|
96
|
-
serialize(): string;
|
|
97
|
+
serialize(_options?: SerializeOptions): string;
|
|
97
98
|
}
|