@supabase/pg-delta 1.0.0-alpha.11 → 1.0.0-alpha.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/core/expand-replace-dependencies.js +23 -0
- 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/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/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/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/sort/custom-constraints.ts +74 -0
- package/src/typedoc.ts +5 -0
|
@@ -19,6 +19,7 @@ import { CreateEnum } from "./objects/type/enum/changes/enum.create.ts";
|
|
|
19
19
|
import { DropEnum } from "./objects/type/enum/changes/enum.drop.ts";
|
|
20
20
|
import { CreateRange } from "./objects/type/range/changes/range.create.ts";
|
|
21
21
|
import { DropRange } from "./objects/type/range/changes/range.drop.ts";
|
|
22
|
+
import { stableId } from "./objects/utils.ts";
|
|
22
23
|
import { CreateView } from "./objects/view/changes/view.create.ts";
|
|
23
24
|
import { DropView } from "./objects/view/changes/view.drop.ts";
|
|
24
25
|
|
|
@@ -121,6 +122,17 @@ export function expandReplaceDependencies({
|
|
|
121
122
|
if (!dependents) continue;
|
|
122
123
|
|
|
123
124
|
for (const dependentRaw of dependents) {
|
|
125
|
+
if (
|
|
126
|
+
isOwnedSequenceColumnDependency(
|
|
127
|
+
refId,
|
|
128
|
+
dependentRaw,
|
|
129
|
+
mainCatalog,
|
|
130
|
+
branchCatalog,
|
|
131
|
+
)
|
|
132
|
+
) {
|
|
133
|
+
continue;
|
|
134
|
+
}
|
|
135
|
+
|
|
124
136
|
// Continue traversing the dependency graph from the raw dependent id.
|
|
125
137
|
if (!visitedRefs.has(dependentRaw)) {
|
|
126
138
|
visitedRefs.add(dependentRaw);
|
|
@@ -181,6 +193,44 @@ export function expandReplaceDependencies({
|
|
|
181
193
|
return [...changes, ...additions];
|
|
182
194
|
}
|
|
183
195
|
|
|
196
|
+
function isOwnedSequenceColumnDependency(
|
|
197
|
+
referencedId: string,
|
|
198
|
+
dependentId: string,
|
|
199
|
+
mainCatalog: Catalog,
|
|
200
|
+
branchCatalog: Catalog,
|
|
201
|
+
): boolean {
|
|
202
|
+
// When a sequence replace root is still OWNED BY the same column, the
|
|
203
|
+
// sequence->column pg_depend edge is bookkeeping for ownership, not a signal
|
|
204
|
+
// that the whole owning table needs to be replaced. Skipping that edge keeps
|
|
205
|
+
// expandReplaceDependencies focused on recreating the sequence itself.
|
|
206
|
+
if (
|
|
207
|
+
!referencedId.startsWith("sequence:") ||
|
|
208
|
+
!dependentId.startsWith("column:")
|
|
209
|
+
) {
|
|
210
|
+
return false;
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
const sequence =
|
|
214
|
+
branchCatalog.sequences[referencedId] ??
|
|
215
|
+
mainCatalog.sequences[referencedId];
|
|
216
|
+
if (
|
|
217
|
+
!sequence?.owned_by_schema ||
|
|
218
|
+
!sequence.owned_by_table ||
|
|
219
|
+
!sequence.owned_by_column
|
|
220
|
+
) {
|
|
221
|
+
return false;
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
return (
|
|
225
|
+
dependentId ===
|
|
226
|
+
stableId.column(
|
|
227
|
+
sequence.owned_by_schema,
|
|
228
|
+
sequence.owned_by_table,
|
|
229
|
+
sequence.owned_by_column,
|
|
230
|
+
)
|
|
231
|
+
);
|
|
232
|
+
}
|
|
233
|
+
|
|
184
234
|
function normalizeDependentId(dependentId: string): string | null {
|
|
185
235
|
let id = dependentId;
|
|
186
236
|
|
|
@@ -1,22 +1,41 @@
|
|
|
1
1
|
import { describe, expect, test } from "bun:test";
|
|
2
2
|
import type { Change } from "../../change.types.ts";
|
|
3
3
|
import { compileSerializeDSL } from "./dsl.ts";
|
|
4
|
+
import type { SerializeOptions } from "./serialize.types.ts";
|
|
4
5
|
|
|
5
6
|
function makeChange(
|
|
6
7
|
type: string,
|
|
7
8
|
operation: string,
|
|
8
|
-
serializeFn: (opts?:
|
|
9
|
+
serializeFn: (opts?: SerializeOptions) => string,
|
|
9
10
|
): Change {
|
|
10
11
|
return {
|
|
11
12
|
objectType: type,
|
|
12
13
|
operation,
|
|
13
14
|
scope: "object",
|
|
14
15
|
schema: { name: "test" },
|
|
16
|
+
extension: { schema: "pgmq" },
|
|
15
17
|
serialize: serializeFn,
|
|
16
18
|
} as unknown as Change;
|
|
17
19
|
}
|
|
18
20
|
|
|
19
21
|
describe("compileSerializeDSL", () => {
|
|
22
|
+
test("matching extension rule can skip schema serialization", () => {
|
|
23
|
+
const serializer = compileSerializeDSL([
|
|
24
|
+
{
|
|
25
|
+
when: { objectType: "extension", operation: "create" },
|
|
26
|
+
options: { skipSchema: true },
|
|
27
|
+
},
|
|
28
|
+
]);
|
|
29
|
+
|
|
30
|
+
const change = makeChange("extension", "create", (opts) =>
|
|
31
|
+
opts?.skipSchema
|
|
32
|
+
? "CREATE EXTENSION pgmq"
|
|
33
|
+
: "CREATE EXTENSION pgmq WITH SCHEMA pgmq",
|
|
34
|
+
);
|
|
35
|
+
|
|
36
|
+
expect(serializer(change)).toBe("CREATE EXTENSION pgmq");
|
|
37
|
+
});
|
|
38
|
+
|
|
20
39
|
test("matching rule applies its options", () => {
|
|
21
40
|
const serializer = compileSerializeDSL([
|
|
22
41
|
{
|
|
@@ -6,16 +6,7 @@
|
|
|
6
6
|
|
|
7
7
|
import type { Change } from "../../change.types.ts";
|
|
8
8
|
import { evaluatePattern, type FilterPattern } from "../filter/dsl.ts";
|
|
9
|
-
import type { ChangeSerializer } from "./serialize.types.ts";
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* Serialization options that can be passed to change.serialize().
|
|
13
|
-
*/
|
|
14
|
-
type SerializeOptions = {
|
|
15
|
-
skipAuthorization?: boolean;
|
|
16
|
-
// Can be extended with more options in the future
|
|
17
|
-
[key: string]: unknown;
|
|
18
|
-
};
|
|
9
|
+
import type { ChangeSerializer, SerializeOptions } from "./serialize.types.ts";
|
|
19
10
|
|
|
20
11
|
/**
|
|
21
12
|
* A serialization rule that applies options when a pattern matches.
|
|
@@ -1,3 +1,40 @@
|
|
|
1
1
|
import type { Change } from "../../change.types.ts";
|
|
2
2
|
|
|
3
|
+
/**
|
|
4
|
+
* Shared serialization options passed to `change.serialize(options)`.
|
|
5
|
+
*
|
|
6
|
+
* This is the global source of truth for serialize-option flags used by the
|
|
7
|
+
* integration serialization DSL and concrete change serializers.
|
|
8
|
+
*
|
|
9
|
+
* @category Integration
|
|
10
|
+
*/
|
|
11
|
+
export type SerializeOptions = {
|
|
12
|
+
/** Skip `AUTHORIZATION` when serializing schema creation. */
|
|
13
|
+
skipAuthorization?: boolean;
|
|
14
|
+
/** Skip `WITH SCHEMA ...` when serializing extension creation. */
|
|
15
|
+
skipSchema?: boolean;
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Schema-specific view of {@link SerializeOptions}.
|
|
20
|
+
*
|
|
21
|
+
* @category Integration
|
|
22
|
+
*/
|
|
23
|
+
export type SchemaSerializeOptions = Pick<
|
|
24
|
+
SerializeOptions,
|
|
25
|
+
"skipAuthorization"
|
|
26
|
+
>;
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Extension-specific view of {@link SerializeOptions}.
|
|
30
|
+
*
|
|
31
|
+
* @category Integration
|
|
32
|
+
*/
|
|
33
|
+
export type ExtensionSerializeOptions = Pick<SerializeOptions, "skipSchema">;
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Compiled serializer function used during plan/declarative export rendering.
|
|
37
|
+
*
|
|
38
|
+
* @category Integration
|
|
39
|
+
*/
|
|
3
40
|
export type ChangeSerializer = (change: Change) => string | undefined;
|
|
@@ -92,6 +92,12 @@ export const supabase: IntegrationDSL = {
|
|
|
92
92
|
operation: "create",
|
|
93
93
|
scope: "object",
|
|
94
94
|
},
|
|
95
|
+
// Include extension DROPs used to disable some extensions (eg: pg-net)
|
|
96
|
+
{
|
|
97
|
+
objectType: "extension",
|
|
98
|
+
operation: "drop",
|
|
99
|
+
scope: "object",
|
|
100
|
+
},
|
|
95
101
|
// Exclude system objects
|
|
96
102
|
{
|
|
97
103
|
not: {
|
|
@@ -141,5 +147,18 @@ export const supabase: IntegrationDSL = {
|
|
|
141
147
|
skipAuthorization: true,
|
|
142
148
|
},
|
|
143
149
|
},
|
|
150
|
+
// pgmq extensions creates it's own schema on install doing a `CREATE EXTENSION pgmq WITH SCHEMA pgmq;`
|
|
151
|
+
// will cause an error because the schema will create extension and extension refer to unexisting schema
|
|
152
|
+
{
|
|
153
|
+
when: {
|
|
154
|
+
objectType: "extension",
|
|
155
|
+
operation: "create",
|
|
156
|
+
scope: "object",
|
|
157
|
+
"extension/schema": ["pgmq"],
|
|
158
|
+
},
|
|
159
|
+
options: {
|
|
160
|
+
skipSchema: true,
|
|
161
|
+
},
|
|
162
|
+
},
|
|
144
163
|
],
|
|
145
164
|
};
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { SerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
|
|
1
2
|
import type { Aggregate } from "../aggregate.model.ts";
|
|
2
3
|
import { AlterAggregateChange } from "./aggregate.base.ts";
|
|
3
4
|
|
|
@@ -23,7 +24,7 @@ export class AlterAggregateChangeOwner extends AlterAggregateChange {
|
|
|
23
24
|
return [this.aggregate.stableId];
|
|
24
25
|
}
|
|
25
26
|
|
|
26
|
-
serialize(): string {
|
|
27
|
+
serialize(_options?: SerializeOptions): string {
|
|
27
28
|
const signature = this.aggregate.identityArguments;
|
|
28
29
|
const qualifiedName = `${this.aggregate.schema}.${this.aggregate.name}`;
|
|
29
30
|
const withArgs = signature.length > 0 ? `(${signature})` : "()";
|
|
@@ -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 { Aggregate } from "../aggregate.model.ts";
|
|
@@ -27,7 +28,7 @@ export class CreateCommentOnAggregate extends CreateAggregateChange {
|
|
|
27
28
|
return [this.aggregate.stableId];
|
|
28
29
|
}
|
|
29
30
|
|
|
30
|
-
serialize(): string {
|
|
31
|
+
serialize(_options?: SerializeOptions): string {
|
|
31
32
|
const signature = this.aggregate.identityArguments;
|
|
32
33
|
const qualifiedName = `${this.aggregate.schema}.${this.aggregate.name}`;
|
|
33
34
|
const withArgs = signature.length > 0 ? `(${signature})` : "()";
|
|
@@ -53,7 +54,7 @@ export class DropCommentOnAggregate extends DropAggregateChange {
|
|
|
53
54
|
return [stableId.comment(this.aggregate.stableId), this.aggregate.stableId];
|
|
54
55
|
}
|
|
55
56
|
|
|
56
|
-
serialize(): string {
|
|
57
|
+
serialize(_options?: SerializeOptions): string {
|
|
57
58
|
const signature = this.aggregate.identityArguments;
|
|
58
59
|
const qualifiedName = `${this.aggregate.schema}.${this.aggregate.name}`;
|
|
59
60
|
const withArgs = signature.length > 0 ? `(${signature})` : "()";
|
|
@@ -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 {
|
|
3
4
|
parseProcedureReference,
|
|
@@ -166,7 +167,7 @@ export class CreateAggregate extends CreateAggregateChange {
|
|
|
166
167
|
return Array.from(dependencies);
|
|
167
168
|
}
|
|
168
169
|
|
|
169
|
-
serialize(): string {
|
|
170
|
+
serialize(_options?: SerializeOptions): string {
|
|
170
171
|
const signature = this.aggregate.identityArguments;
|
|
171
172
|
const qualifiedName = `${this.aggregate.schema}.${this.aggregate.name}`;
|
|
172
173
|
const head = [
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { SerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
|
|
1
2
|
import type { Aggregate } from "../aggregate.model.ts";
|
|
2
3
|
import { DropAggregateChange } from "./aggregate.base.ts";
|
|
3
4
|
|
|
@@ -23,7 +24,7 @@ export class DropAggregate extends DropAggregateChange {
|
|
|
23
24
|
return [this.aggregate.stableId];
|
|
24
25
|
}
|
|
25
26
|
|
|
26
|
-
serialize(): string {
|
|
27
|
+
serialize(_options?: SerializeOptions): string {
|
|
27
28
|
const signature = this.aggregate.identityArguments;
|
|
28
29
|
const qualifiedName = `${this.aggregate.schema}.${this.aggregate.name}`;
|
|
29
30
|
const withArgs = signature.length > 0 ? `(${signature})` : "(*)";
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { SerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
|
|
1
2
|
import {
|
|
2
3
|
formatObjectPrivilegeList,
|
|
3
4
|
getObjectKindPrefix,
|
|
@@ -39,7 +40,7 @@ export class GrantAggregatePrivileges extends AlterAggregateChange {
|
|
|
39
40
|
return [this.aggregate.stableId, stableId.role(this.grantee)];
|
|
40
41
|
}
|
|
41
42
|
|
|
42
|
-
serialize(): string {
|
|
43
|
+
serialize(_options?: SerializeOptions): string {
|
|
43
44
|
const hasGrantable = this.privileges.some((p) => p.grantable);
|
|
44
45
|
const hasBase = this.privileges.some((p) => !p.grantable);
|
|
45
46
|
if (hasGrantable && hasBase) {
|
|
@@ -92,7 +93,7 @@ export class RevokeAggregatePrivileges extends AlterAggregateChange {
|
|
|
92
93
|
];
|
|
93
94
|
}
|
|
94
95
|
|
|
95
|
-
serialize(): string {
|
|
96
|
+
serialize(_options?: SerializeOptions): string {
|
|
96
97
|
const kindPrefix = getObjectKindPrefix("FUNCTION");
|
|
97
98
|
const list = this.privileges.map((p) => p.privilege);
|
|
98
99
|
const privSql = formatObjectPrivilegeList("FUNCTION", list, this.version);
|
|
@@ -131,7 +132,7 @@ export class RevokeGrantOptionAggregatePrivileges extends AlterAggregateChange {
|
|
|
131
132
|
];
|
|
132
133
|
}
|
|
133
134
|
|
|
134
|
-
serialize(): string {
|
|
135
|
+
serialize(_options?: SerializeOptions): string {
|
|
135
136
|
const kindPrefix = getObjectKindPrefix("FUNCTION");
|
|
136
137
|
const privSql = formatObjectPrivilegeList(
|
|
137
138
|
"FUNCTION",
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import type { SerializeOptions } from "../integrations/serialize/serialize.types.ts";
|
|
2
|
+
|
|
1
3
|
type ChangeOperation = "create" | "alter" | "drop";
|
|
2
4
|
|
|
3
5
|
/**
|
|
@@ -61,7 +63,7 @@ export abstract class BaseChange {
|
|
|
61
63
|
/**
|
|
62
64
|
* Serialize the change into a single SQL statement.
|
|
63
65
|
*/
|
|
64
|
-
abstract serialize(options?:
|
|
66
|
+
abstract serialize(options?: SerializeOptions): string;
|
|
65
67
|
}
|
|
66
68
|
|
|
67
69
|
/**
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { SerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
|
|
1
2
|
import type { Collation } from "../collation.model.ts";
|
|
2
3
|
import { AlterCollationChange } from "./collation.base.ts";
|
|
3
4
|
|
|
@@ -36,7 +37,7 @@ export class AlterCollationChangeOwner extends AlterCollationChange {
|
|
|
36
37
|
return [this.collation.stableId];
|
|
37
38
|
}
|
|
38
39
|
|
|
39
|
-
serialize(): string {
|
|
40
|
+
serialize(_options?: SerializeOptions): string {
|
|
40
41
|
return [
|
|
41
42
|
"ALTER COLLATION",
|
|
42
43
|
`${this.collation.schema}.${this.collation.name}`,
|
|
@@ -62,7 +63,7 @@ export class AlterCollationRefreshVersion extends AlterCollationChange {
|
|
|
62
63
|
return [this.collation.stableId];
|
|
63
64
|
}
|
|
64
65
|
|
|
65
|
-
serialize(): string {
|
|
66
|
+
serialize(_options?: SerializeOptions): string {
|
|
66
67
|
return [
|
|
67
68
|
"ALTER COLLATION",
|
|
68
69
|
`${this.collation.schema}.${this.collation.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 { Collation } from "../collation.model.ts";
|
|
@@ -30,7 +31,7 @@ export class CreateCommentOnCollation extends CreateCollationChange {
|
|
|
30
31
|
return [this.collation.stableId];
|
|
31
32
|
}
|
|
32
33
|
|
|
33
|
-
serialize(): string {
|
|
34
|
+
serialize(_options?: SerializeOptions): string {
|
|
34
35
|
return [
|
|
35
36
|
"COMMENT ON COLLATION",
|
|
36
37
|
`${this.collation.schema}.${this.collation.name}`,
|
|
@@ -58,7 +59,7 @@ export class DropCommentOnCollation extends DropCollationChange {
|
|
|
58
59
|
return [stableId.comment(this.collation.stableId)];
|
|
59
60
|
}
|
|
60
61
|
|
|
61
|
-
serialize(): string {
|
|
62
|
+
serialize(_options?: SerializeOptions): string {
|
|
62
63
|
return [
|
|
63
64
|
"COMMENT ON COLLATION",
|
|
64
65
|
`${this.collation.schema}.${this.collation.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 { Collation } from "../collation.model.ts";
|
|
@@ -48,7 +49,7 @@ export class CreateCollation extends CreateCollationChange {
|
|
|
48
49
|
return Array.from(dependencies);
|
|
49
50
|
}
|
|
50
51
|
|
|
51
|
-
serialize(): string {
|
|
52
|
+
serialize(_options?: SerializeOptions): string {
|
|
52
53
|
const parts: string[] = ["CREATE COLLATION"];
|
|
53
54
|
|
|
54
55
|
// Add schema and name (already quoted in model extraction)
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { SerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
|
|
1
2
|
import type { Collation } from "../collation.model.ts";
|
|
2
3
|
import { DropCollationChange } from "./collation.base.ts";
|
|
3
4
|
|
|
@@ -28,7 +29,7 @@ export class DropCollation extends DropCollationChange {
|
|
|
28
29
|
return [this.collation.stableId];
|
|
29
30
|
}
|
|
30
31
|
|
|
31
|
-
serialize(): string {
|
|
32
|
+
serialize(_options?: SerializeOptions): string {
|
|
32
33
|
return [
|
|
33
34
|
"DROP COLLATION",
|
|
34
35
|
`${this.collation.schema}.${this.collation.name}`,
|
|
@@ -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 { Domain, DomainConstraintProps } from "../domain.model.ts";
|
|
3
4
|
import { AlterDomainChange, DropDomainChange } from "./domain.base.ts";
|
|
@@ -63,7 +64,7 @@ export class AlterDomainSetDefault extends AlterDomainChange {
|
|
|
63
64
|
return [this.domain.stableId];
|
|
64
65
|
}
|
|
65
66
|
|
|
66
|
-
serialize(): string {
|
|
67
|
+
serialize(_options?: SerializeOptions): string {
|
|
67
68
|
return `ALTER DOMAIN ${this.domain.schema}.${this.domain.name} SET DEFAULT ${this.defaultValue}`;
|
|
68
69
|
}
|
|
69
70
|
}
|
|
@@ -84,7 +85,7 @@ export class AlterDomainDropDefault extends AlterDomainChange {
|
|
|
84
85
|
return [this.domain.stableId];
|
|
85
86
|
}
|
|
86
87
|
|
|
87
|
-
serialize(): string {
|
|
88
|
+
serialize(_options?: SerializeOptions): string {
|
|
88
89
|
return `ALTER DOMAIN ${this.domain.schema}.${this.domain.name} DROP DEFAULT`;
|
|
89
90
|
}
|
|
90
91
|
}
|
|
@@ -105,7 +106,7 @@ export class AlterDomainSetNotNull extends AlterDomainChange {
|
|
|
105
106
|
return [this.domain.stableId];
|
|
106
107
|
}
|
|
107
108
|
|
|
108
|
-
serialize(): string {
|
|
109
|
+
serialize(_options?: SerializeOptions): string {
|
|
109
110
|
return `ALTER DOMAIN ${this.domain.schema}.${this.domain.name} SET NOT NULL`;
|
|
110
111
|
}
|
|
111
112
|
}
|
|
@@ -126,7 +127,7 @@ export class AlterDomainDropNotNull extends AlterDomainChange {
|
|
|
126
127
|
return [this.domain.stableId];
|
|
127
128
|
}
|
|
128
129
|
|
|
129
|
-
serialize(): string {
|
|
130
|
+
serialize(_options?: SerializeOptions): string {
|
|
130
131
|
return `ALTER DOMAIN ${this.domain.schema}.${this.domain.name} DROP NOT NULL`;
|
|
131
132
|
}
|
|
132
133
|
}
|
|
@@ -149,7 +150,7 @@ export class AlterDomainChangeOwner extends AlterDomainChange {
|
|
|
149
150
|
return [this.domain.stableId, stableId.role(this.owner)];
|
|
150
151
|
}
|
|
151
152
|
|
|
152
|
-
serialize(): string {
|
|
153
|
+
serialize(_options?: SerializeOptions): string {
|
|
153
154
|
return `ALTER DOMAIN ${this.domain.schema}.${this.domain.name} OWNER TO ${this.owner}`;
|
|
154
155
|
}
|
|
155
156
|
}
|
|
@@ -182,7 +183,7 @@ export class AlterDomainAddConstraint extends AlterDomainChange {
|
|
|
182
183
|
return [this.domain.stableId];
|
|
183
184
|
}
|
|
184
185
|
|
|
185
|
-
serialize(): string {
|
|
186
|
+
serialize(_options?: SerializeOptions): string {
|
|
186
187
|
const domainName = `${this.domain.schema}.${this.domain.name}`;
|
|
187
188
|
const parts: string[] = [
|
|
188
189
|
"ALTER DOMAIN",
|
|
@@ -235,7 +236,7 @@ export class AlterDomainDropConstraint extends DropDomainChange {
|
|
|
235
236
|
];
|
|
236
237
|
}
|
|
237
238
|
|
|
238
|
-
serialize(): string {
|
|
239
|
+
serialize(_options?: SerializeOptions): string {
|
|
239
240
|
const domainName = `${this.domain.schema}.${this.domain.name}`;
|
|
240
241
|
return [
|
|
241
242
|
"ALTER DOMAIN",
|
|
@@ -274,7 +275,7 @@ export class AlterDomainValidateConstraint extends AlterDomainChange {
|
|
|
274
275
|
];
|
|
275
276
|
}
|
|
276
277
|
|
|
277
|
-
serialize(): string {
|
|
278
|
+
serialize(_options?: SerializeOptions): string {
|
|
278
279
|
const domainName = `${this.domain.schema}.${this.domain.name}`;
|
|
279
280
|
return [
|
|
280
281
|
"ALTER DOMAIN",
|
|
@@ -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 { Domain } from "../domain.model.ts";
|
|
@@ -25,7 +26,7 @@ export class CreateCommentOnDomain extends CreateDomainChange {
|
|
|
25
26
|
return [this.domain.stableId];
|
|
26
27
|
}
|
|
27
28
|
|
|
28
|
-
serialize(): string {
|
|
29
|
+
serialize(_options?: SerializeOptions): string {
|
|
29
30
|
return [
|
|
30
31
|
"COMMENT ON DOMAIN",
|
|
31
32
|
`${this.domain.schema}.${this.domain.name}`,
|
|
@@ -49,7 +50,7 @@ export class DropCommentOnDomain extends DropDomainChange {
|
|
|
49
50
|
return [stableId.comment(this.domain.stableId), this.domain.stableId];
|
|
50
51
|
}
|
|
51
52
|
|
|
52
|
-
serialize(): string {
|
|
53
|
+
serialize(_options?: SerializeOptions): string {
|
|
53
54
|
return [
|
|
54
55
|
"COMMENT ON DOMAIN",
|
|
55
56
|
`${this.domain.schema}.${this.domain.name}`,
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { SerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
|
|
1
2
|
import {
|
|
2
3
|
isUserDefinedTypeSchema,
|
|
3
4
|
parseTypeString,
|
|
@@ -87,7 +88,7 @@ export class CreateDomain extends CreateDomainChange {
|
|
|
87
88
|
return Array.from(dependencies);
|
|
88
89
|
}
|
|
89
90
|
|
|
90
|
-
serialize(): string {
|
|
91
|
+
serialize(_options?: SerializeOptions): string {
|
|
91
92
|
const parts: string[] = [];
|
|
92
93
|
|
|
93
94
|
// Schema-qualified name
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { SerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
|
|
1
2
|
import type { Domain } from "../domain.model.ts";
|
|
2
3
|
import { DropDomainChange } from "./domain.base.ts";
|
|
3
4
|
|
|
@@ -28,7 +29,7 @@ export class DropDomain extends DropDomainChange {
|
|
|
28
29
|
return [this.domain.stableId];
|
|
29
30
|
}
|
|
30
31
|
|
|
31
|
-
serialize(): string {
|
|
32
|
+
serialize(_options?: SerializeOptions): string {
|
|
32
33
|
return `DROP DOMAIN ${this.domain.schema}.${this.domain.name}`;
|
|
33
34
|
}
|
|
34
35
|
}
|
|
@@ -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 GrantDomainPrivileges extends AlterDomainChange {
|
|
|
52
53
|
return [this.domain.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) {
|
|
@@ -114,7 +115,7 @@ export class RevokeDomainPrivileges extends AlterDomainChange {
|
|
|
114
115
|
return [this.domain.stableId, stableId.role(this.grantee)];
|
|
115
116
|
}
|
|
116
117
|
|
|
117
|
-
serialize(): string {
|
|
118
|
+
serialize(_options?: SerializeOptions): string {
|
|
118
119
|
const kindPrefix = getObjectKindPrefix("DOMAIN");
|
|
119
120
|
const list = this.privileges.map((p) => p.privilege);
|
|
120
121
|
const privSql = formatObjectPrivilegeList("DOMAIN", list, this.version);
|
|
@@ -158,7 +159,7 @@ export class RevokeGrantOptionDomainPrivileges extends AlterDomainChange {
|
|
|
158
159
|
];
|
|
159
160
|
}
|
|
160
161
|
|
|
161
|
-
serialize(): string {
|
|
162
|
+
serialize(_options?: SerializeOptions): string {
|
|
162
163
|
const kindPrefix = getObjectKindPrefix("DOMAIN");
|
|
163
164
|
const privSql = formatObjectPrivilegeList(
|
|
164
165
|
"DOMAIN",
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { SerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
|
|
1
2
|
import type { EventTrigger } from "../event-trigger.model.ts";
|
|
2
3
|
import { AlterEventTriggerChange } from "./event-trigger.base.ts";
|
|
3
4
|
|
|
@@ -37,7 +38,7 @@ export class AlterEventTriggerChangeOwner extends AlterEventTriggerChange {
|
|
|
37
38
|
return [this.eventTrigger.stableId];
|
|
38
39
|
}
|
|
39
40
|
|
|
40
|
-
serialize(): string {
|
|
41
|
+
serialize(_options?: SerializeOptions): string {
|
|
41
42
|
return [
|
|
42
43
|
"ALTER EVENT TRIGGER",
|
|
43
44
|
this.eventTrigger.name,
|
|
@@ -75,7 +76,7 @@ export class AlterEventTriggerSetEnabled extends AlterEventTriggerChange {
|
|
|
75
76
|
return [this.eventTrigger.stableId];
|
|
76
77
|
}
|
|
77
78
|
|
|
78
|
-
serialize(): string {
|
|
79
|
+
serialize(_options?: SerializeOptions): string {
|
|
79
80
|
const clause = ENABLED_SQL[this.enabled];
|
|
80
81
|
return ["ALTER EVENT TRIGGER", this.eventTrigger.name, clause].join(" ");
|
|
81
82
|
}
|
|
@@ -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 { EventTrigger } from "../event-trigger.model.ts";
|
|
@@ -27,7 +28,7 @@ export class CreateCommentOnEventTrigger extends CreateEventTriggerChange {
|
|
|
27
28
|
return [this.eventTrigger.stableId];
|
|
28
29
|
}
|
|
29
30
|
|
|
30
|
-
serialize(): string {
|
|
31
|
+
serialize(_options?: SerializeOptions): string {
|
|
31
32
|
return [
|
|
32
33
|
"COMMENT ON EVENT TRIGGER",
|
|
33
34
|
this.eventTrigger.name,
|
|
@@ -58,7 +59,7 @@ export class DropCommentOnEventTrigger extends DropEventTriggerChange {
|
|
|
58
59
|
];
|
|
59
60
|
}
|
|
60
61
|
|
|
61
|
-
serialize(): string {
|
|
62
|
+
serialize(_options?: SerializeOptions): string {
|
|
62
63
|
return ["COMMENT ON EVENT TRIGGER", this.eventTrigger.name, "IS NULL"].join(
|
|
63
64
|
" ",
|
|
64
65
|
);
|
|
@@ -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 { parseProcedureReference, stableId } from "../../utils.ts";
|
|
3
4
|
import type { EventTrigger } from "../event-trigger.model.ts";
|
|
@@ -48,7 +49,7 @@ export class CreateEventTrigger extends CreateEventTriggerChange {
|
|
|
48
49
|
return Array.from(dependencies);
|
|
49
50
|
}
|
|
50
51
|
|
|
51
|
-
serialize(): string {
|
|
52
|
+
serialize(_options?: SerializeOptions): string {
|
|
52
53
|
const parts: string[] = [
|
|
53
54
|
"CREATE EVENT TRIGGER",
|
|
54
55
|
this.eventTrigger.name,
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { SerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
|
|
1
2
|
import type { EventTrigger } from "../event-trigger.model.ts";
|
|
2
3
|
import { DropEventTriggerChange } from "./event-trigger.base.ts";
|
|
3
4
|
|
|
@@ -28,7 +29,7 @@ export class DropEventTrigger extends DropEventTriggerChange {
|
|
|
28
29
|
return [this.eventTrigger.stableId];
|
|
29
30
|
}
|
|
30
31
|
|
|
31
|
-
serialize(): string {
|
|
32
|
+
serialize(_options?: SerializeOptions): string {
|
|
32
33
|
return ["DROP EVENT TRIGGER", this.eventTrigger.name].join(" ");
|
|
33
34
|
}
|
|
34
35
|
}
|
|
@@ -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 { Extension } from "../extension.model.ts";
|
|
@@ -39,7 +40,7 @@ export class AlterExtensionUpdateVersion extends AlterExtensionChange {
|
|
|
39
40
|
return [this.extension.stableId];
|
|
40
41
|
}
|
|
41
42
|
|
|
42
|
-
serialize(): string {
|
|
43
|
+
serialize(_options?: SerializeOptions): string {
|
|
43
44
|
return [
|
|
44
45
|
"ALTER EXTENSION",
|
|
45
46
|
this.extension.name,
|
|
@@ -67,7 +68,7 @@ export class AlterExtensionSetSchema extends AlterExtensionChange {
|
|
|
67
68
|
return [this.extension.stableId, stableId.schema(this.schema)];
|
|
68
69
|
}
|
|
69
70
|
|
|
70
|
-
serialize(): string {
|
|
71
|
+
serialize(_options?: SerializeOptions): string {
|
|
71
72
|
return [
|
|
72
73
|
"ALTER EXTENSION",
|
|
73
74
|
this.extension.name,
|