@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 {
|
|
2
3
|
formatObjectPrivilegeList,
|
|
3
4
|
getObjectKindPrefix,
|
|
@@ -52,7 +53,7 @@ export class GrantEnumPrivileges extends AlterEnumChange {
|
|
|
52
53
|
return [this.enum.stableId, stableId.role(this.grantee)];
|
|
53
54
|
}
|
|
54
55
|
|
|
55
|
-
serialize(): string {
|
|
56
|
+
serialize(_options?: SerializeOptions): string {
|
|
56
57
|
const hasGrantable = this.privileges.some((p) => p.grantable);
|
|
57
58
|
const hasBase = this.privileges.some((p) => !p.grantable);
|
|
58
59
|
if (hasGrantable && hasBase) {
|
|
@@ -118,7 +119,7 @@ export class RevokeEnumPrivileges extends AlterEnumChange {
|
|
|
118
119
|
];
|
|
119
120
|
}
|
|
120
121
|
|
|
121
|
-
serialize(): string {
|
|
122
|
+
serialize(_options?: SerializeOptions): string {
|
|
122
123
|
const kindPrefix = getObjectKindPrefix("TYPE");
|
|
123
124
|
const list = this.privileges.map((p) => p.privilege);
|
|
124
125
|
const privSql = formatObjectPrivilegeList("TYPE", list, this.version);
|
|
@@ -162,7 +163,7 @@ export class RevokeGrantOptionEnumPrivileges extends AlterEnumChange {
|
|
|
162
163
|
];
|
|
163
164
|
}
|
|
164
165
|
|
|
165
|
-
serialize(): string {
|
|
166
|
+
serialize(_options?: SerializeOptions): string {
|
|
166
167
|
const kindPrefix = getObjectKindPrefix("TYPE");
|
|
167
168
|
const privSql = formatObjectPrivilegeList(
|
|
168
169
|
"TYPE",
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { SerializeOptions } from "../../../../integrations/serialize/serialize.types.ts";
|
|
1
2
|
import type { Range } from "../range.model.ts";
|
|
2
3
|
import { AlterRangeChange } from "./range.base.ts";
|
|
3
4
|
|
|
@@ -34,7 +35,7 @@ export class AlterRangeChangeOwner extends AlterRangeChange {
|
|
|
34
35
|
return [this.range.stableId];
|
|
35
36
|
}
|
|
36
37
|
|
|
37
|
-
serialize(): string {
|
|
38
|
+
serialize(_options?: SerializeOptions): string {
|
|
38
39
|
return [
|
|
39
40
|
"ALTER TYPE",
|
|
40
41
|
`${this.range.schema}.${this.range.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 { Range } from "../range.model.ts";
|
|
@@ -26,7 +27,7 @@ export class CreateCommentOnRange extends CreateRangeChange {
|
|
|
26
27
|
return [this.range.stableId];
|
|
27
28
|
}
|
|
28
29
|
|
|
29
|
-
serialize(): string {
|
|
30
|
+
serialize(_options?: SerializeOptions): string {
|
|
30
31
|
return [
|
|
31
32
|
"COMMENT ON TYPE",
|
|
32
33
|
`${this.range.schema}.${this.range.name}`,
|
|
@@ -54,7 +55,7 @@ export class DropCommentOnRange extends DropRangeChange {
|
|
|
54
55
|
return [stableId.comment(this.range.stableId), this.range.stableId];
|
|
55
56
|
}
|
|
56
57
|
|
|
57
|
-
serialize(): string {
|
|
58
|
+
serialize(_options?: SerializeOptions): string {
|
|
58
59
|
return [
|
|
59
60
|
"COMMENT ON TYPE",
|
|
60
61
|
`${this.range.schema}.${this.range.name}`,
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { SerializeOptions } from "../../../../integrations/serialize/serialize.types.ts";
|
|
1
2
|
import {
|
|
2
3
|
isUserDefinedTypeSchema,
|
|
3
4
|
parseProcedureReference,
|
|
@@ -98,7 +99,7 @@ export class CreateRange extends CreateRangeChange {
|
|
|
98
99
|
return Array.from(dependencies);
|
|
99
100
|
}
|
|
100
101
|
|
|
101
|
-
serialize(): string {
|
|
102
|
+
serialize(_options?: SerializeOptions): string {
|
|
102
103
|
const name = `${this.range.schema}.${this.range.name}`;
|
|
103
104
|
const prefix: string = ["CREATE TYPE", name, "AS RANGE"].join(" ");
|
|
104
105
|
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { SerializeOptions } from "../../../../integrations/serialize/serialize.types.ts";
|
|
1
2
|
import type { Range } from "../range.model.ts";
|
|
2
3
|
import { DropRangeChange } from "./range.base.ts";
|
|
3
4
|
|
|
@@ -28,7 +29,7 @@ export class DropRange extends DropRangeChange {
|
|
|
28
29
|
return [this.range.stableId];
|
|
29
30
|
}
|
|
30
31
|
|
|
31
|
-
serialize(): string {
|
|
32
|
+
serialize(_options?: SerializeOptions): string {
|
|
32
33
|
return ["DROP TYPE", `${this.range.schema}.${this.range.name}`].join(" ");
|
|
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 GrantRangePrivileges extends AlterRangeChange {
|
|
|
52
53
|
return [this.range.stableId, stableId.role(this.grantee)];
|
|
53
54
|
}
|
|
54
55
|
|
|
55
|
-
serialize(): string {
|
|
56
|
+
serialize(_options?: SerializeOptions): string {
|
|
56
57
|
const hasGrantable = this.privileges.some((p) => p.grantable);
|
|
57
58
|
const hasBase = this.privileges.some((p) => !p.grantable);
|
|
58
59
|
if (hasGrantable && hasBase) {
|
|
@@ -118,7 +119,7 @@ export class RevokeRangePrivileges extends AlterRangeChange {
|
|
|
118
119
|
];
|
|
119
120
|
}
|
|
120
121
|
|
|
121
|
-
serialize(): string {
|
|
122
|
+
serialize(_options?: SerializeOptions): string {
|
|
122
123
|
const kindPrefix = getObjectKindPrefix("TYPE");
|
|
123
124
|
const list = this.privileges.map((p) => p.privilege);
|
|
124
125
|
const privSql = formatObjectPrivilegeList("TYPE", list, this.version);
|
|
@@ -162,7 +163,7 @@ export class RevokeGrantOptionRangePrivileges extends AlterRangeChange {
|
|
|
162
163
|
];
|
|
163
164
|
}
|
|
164
165
|
|
|
165
|
-
serialize(): string {
|
|
166
|
+
serialize(_options?: SerializeOptions): string {
|
|
166
167
|
const kindPrefix = getObjectKindPrefix("TYPE");
|
|
167
168
|
const privSql = formatObjectPrivilegeList(
|
|
168
169
|
"TYPE",
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { SerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
|
|
1
2
|
import type { View } from "../view.model.ts";
|
|
2
3
|
import { AlterViewChange } from "./view.base.ts";
|
|
3
4
|
|
|
@@ -42,7 +43,7 @@ export class AlterViewChangeOwner extends AlterViewChange {
|
|
|
42
43
|
return [this.view.stableId];
|
|
43
44
|
}
|
|
44
45
|
|
|
45
|
-
serialize(): string {
|
|
46
|
+
serialize(_options?: SerializeOptions): string {
|
|
46
47
|
return [
|
|
47
48
|
"ALTER VIEW",
|
|
48
49
|
`${this.view.schema}.${this.view.name}`,
|
|
@@ -72,7 +73,7 @@ export class AlterViewSetOptions extends AlterViewChange {
|
|
|
72
73
|
return [this.view.stableId];
|
|
73
74
|
}
|
|
74
75
|
|
|
75
|
-
serialize(): string {
|
|
76
|
+
serialize(_options?: SerializeOptions): string {
|
|
76
77
|
const opts = this.options.join(", ");
|
|
77
78
|
return [
|
|
78
79
|
"ALTER VIEW",
|
|
@@ -101,7 +102,7 @@ export class AlterViewResetOptions extends AlterViewChange {
|
|
|
101
102
|
return [this.view.stableId];
|
|
102
103
|
}
|
|
103
104
|
|
|
104
|
-
serialize(): string {
|
|
105
|
+
serialize(_options?: SerializeOptions): string {
|
|
105
106
|
return [
|
|
106
107
|
"ALTER VIEW",
|
|
107
108
|
`${this.view.schema}.${this.view.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 { View } from "../view.model.ts";
|
|
@@ -22,7 +23,7 @@ export class CreateCommentOnView extends CreateViewChange {
|
|
|
22
23
|
return [this.view.stableId];
|
|
23
24
|
}
|
|
24
25
|
|
|
25
|
-
serialize(): string {
|
|
26
|
+
serialize(_options?: SerializeOptions): string {
|
|
26
27
|
return [
|
|
27
28
|
"COMMENT ON VIEW",
|
|
28
29
|
`${this.view.schema}.${this.view.name}`,
|
|
@@ -49,7 +50,7 @@ export class DropCommentOnView extends DropViewChange {
|
|
|
49
50
|
return [stableId.comment(this.view.stableId), this.view.stableId];
|
|
50
51
|
}
|
|
51
52
|
|
|
52
|
-
serialize(): string {
|
|
53
|
+
serialize(_options?: SerializeOptions): string {
|
|
53
54
|
return [
|
|
54
55
|
"COMMENT ON VIEW",
|
|
55
56
|
`${this.view.schema}.${this.view.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 { View } from "../view.model.ts";
|
|
3
4
|
import { CreateViewChange } from "./view.base.ts";
|
|
@@ -52,7 +53,7 @@ export class CreateView extends CreateViewChange {
|
|
|
52
53
|
return Array.from(dependencies);
|
|
53
54
|
}
|
|
54
55
|
|
|
55
|
-
serialize(): string {
|
|
56
|
+
serialize(_options?: SerializeOptions): string {
|
|
56
57
|
const parts: string[] = [
|
|
57
58
|
`CREATE${this.orReplace ? " OR REPLACE" : ""} VIEW`,
|
|
58
59
|
];
|
|
@@ -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 { View } from "../view.model.ts";
|
|
3
4
|
import { DropViewChange } from "./view.base.ts";
|
|
@@ -34,7 +35,7 @@ export class DropView extends DropViewChange {
|
|
|
34
35
|
];
|
|
35
36
|
}
|
|
36
37
|
|
|
37
|
-
serialize(): string {
|
|
38
|
+
serialize(_options?: SerializeOptions): string {
|
|
38
39
|
return ["DROP VIEW", `${this.view.schema}.${this.view.name}`].join(" ");
|
|
39
40
|
}
|
|
40
41
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { SerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
|
|
1
2
|
import {
|
|
2
3
|
formatObjectPrivilegeList,
|
|
3
4
|
getObjectKindPrefix,
|
|
@@ -57,7 +58,7 @@ export class GrantViewPrivileges extends AlterViewChange {
|
|
|
57
58
|
return [this.view.stableId, stableId.role(this.grantee)];
|
|
58
59
|
}
|
|
59
60
|
|
|
60
|
-
serialize(): string {
|
|
61
|
+
serialize(_options?: SerializeOptions): string {
|
|
61
62
|
const hasGrantable = this.privileges.some((p) => p.grantable);
|
|
62
63
|
const hasBase = this.privileges.some((p) => !p.grantable);
|
|
63
64
|
if (hasGrantable && hasBase) {
|
|
@@ -132,7 +133,7 @@ export class RevokeViewPrivileges extends AlterViewChange {
|
|
|
132
133
|
];
|
|
133
134
|
}
|
|
134
135
|
|
|
135
|
-
serialize(): string {
|
|
136
|
+
serialize(_options?: SerializeOptions): string {
|
|
136
137
|
const kindPrefix = getObjectKindPrefix("VIEW");
|
|
137
138
|
const list = this.privileges.map((p) => p.privilege);
|
|
138
139
|
const privSql = formatObjectPrivilegeList("VIEW", list, this.version);
|
|
@@ -183,7 +184,7 @@ export class RevokeGrantOptionViewPrivileges extends AlterViewChange {
|
|
|
183
184
|
];
|
|
184
185
|
}
|
|
185
186
|
|
|
186
|
-
serialize(): string {
|
|
187
|
+
serialize(_options?: SerializeOptions): string {
|
|
187
188
|
const kindPrefix = getObjectKindPrefix("VIEW");
|
|
188
189
|
const privSql = formatObjectPrivilegeList(
|
|
189
190
|
"VIEW",
|
package/src/core/plan/create.ts
CHANGED
|
@@ -10,15 +10,12 @@ import { createEmptyCatalog, extractCatalog } from "../catalog.model.ts";
|
|
|
10
10
|
import type { Change } from "../change.types.ts";
|
|
11
11
|
import type { DiffContext } from "../context.ts";
|
|
12
12
|
import { buildPlanScopeFingerprint, hashStableIds } from "../fingerprint.ts";
|
|
13
|
+
import type { FilterDSL } from "../integrations/filter/dsl.ts";
|
|
13
14
|
import {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
} from "../integrations/
|
|
17
|
-
import type {
|
|
18
|
-
import {
|
|
19
|
-
compileSerializeDSL,
|
|
20
|
-
type SerializeDSL,
|
|
21
|
-
} from "../integrations/serialize/dsl.ts";
|
|
15
|
+
type ResolvedIntegration,
|
|
16
|
+
resolveIntegration,
|
|
17
|
+
} from "../integrations/integration.types.ts";
|
|
18
|
+
import type { SerializeDSL } from "../integrations/serialize/dsl.ts";
|
|
22
19
|
import { createManagedPool, endPool } from "../postgres-config.ts";
|
|
23
20
|
import { sortChanges } from "../sort/sort-changes.ts";
|
|
24
21
|
import type { PgDependRow } from "../sort/types.ts";
|
|
@@ -155,23 +152,10 @@ function buildPlanForCatalogs(
|
|
|
155
152
|
: undefined;
|
|
156
153
|
|
|
157
154
|
// Build final integration: compile DSL if needed, use functions directly otherwise
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
typeof filterOption === "function"
|
|
163
|
-
? filterOption
|
|
164
|
-
: filterDSL
|
|
165
|
-
? compileFilterDSL(filterDSL)
|
|
166
|
-
: undefined,
|
|
167
|
-
serialize:
|
|
168
|
-
typeof serializeOption === "function"
|
|
169
|
-
? serializeOption
|
|
170
|
-
: serializeDSL
|
|
171
|
-
? compileSerializeDSL(serializeDSL)
|
|
172
|
-
: undefined,
|
|
173
|
-
};
|
|
174
|
-
}
|
|
155
|
+
const finalIntegration = resolveIntegration({
|
|
156
|
+
filter: filterOption,
|
|
157
|
+
serialize: serializeOption,
|
|
158
|
+
});
|
|
175
159
|
|
|
176
160
|
// Use filter from final integration
|
|
177
161
|
const filterFn = finalIntegration?.filter;
|
|
@@ -317,7 +301,7 @@ function buildPlan(
|
|
|
317
301
|
options?: CreatePlanOptions,
|
|
318
302
|
filterDSL?: FilterDSL,
|
|
319
303
|
serializeDSL?: SerializeDSL,
|
|
320
|
-
integration?:
|
|
304
|
+
integration?: ResolvedIntegration,
|
|
321
305
|
): Plan {
|
|
322
306
|
const role = options?.role;
|
|
323
307
|
const statements = generateStatements(changes, {
|
|
@@ -350,7 +334,7 @@ function buildPlan(
|
|
|
350
334
|
function generateStatements(
|
|
351
335
|
changes: Change[],
|
|
352
336
|
options?: {
|
|
353
|
-
integration?:
|
|
337
|
+
integration?: ResolvedIntegration;
|
|
354
338
|
role?: string;
|
|
355
339
|
},
|
|
356
340
|
): string[] {
|
|
@@ -439,7 +439,7 @@ describe("sql formatting snapshots", () => {
|
|
|
439
439
|
CREATE SEQUENCE public.table_with_very_long_name_for_formatting_and_wrapping_test_id_seq;
|
|
440
440
|
|
|
441
441
|
-- sequence.drop
|
|
442
|
-
DROP SEQUENCE public.table_with_very_long_name_for_formatting_and_wrapping_test_id_seq;
|
|
442
|
+
DROP SEQUENCE public.table_with_very_long_name_for_formatting_and_wrapping_test_id_seq CASCADE;
|
|
443
443
|
|
|
444
444
|
-- sequence.alter.set_owned_by
|
|
445
445
|
ALTER SEQUENCE public.table_with_very_long_name_for_formatting_and_wrapping_test_id_seq OWNED BY public.table_with_very_long_name_for_formatting_and_wrapping_test.id;
|
|
@@ -579,7 +579,7 @@ describe("sql formatting snapshots", () => {
|
|
|
579
579
|
create sequence public.table_with_very_long_name_for_formatting_and_wrapping_test_id_seq;
|
|
580
580
|
|
|
581
581
|
-- sequence.drop
|
|
582
|
-
drop sequence public.table_with_very_long_name_for_formatting_and_wrapping_test_id_seq;
|
|
582
|
+
drop sequence public.table_with_very_long_name_for_formatting_and_wrapping_test_id_seq cascade;
|
|
583
583
|
|
|
584
584
|
-- sequence.alter.set_owned_by
|
|
585
585
|
alter sequence public.table_with_very_long_name_for_formatting_and_wrapping_test_id_seq owned by
|
|
@@ -684,7 +684,7 @@ describe("sql formatting snapshots", () => {
|
|
|
684
684
|
|
|
685
685
|
-- sequence.drop
|
|
686
686
|
DROP SEQUENCE
|
|
687
|
-
public.table_with_very_long_name_for_formatting_and_wrapping_test_id_seq;
|
|
687
|
+
public.table_with_very_long_name_for_formatting_and_wrapping_test_id_seq CASCADE;
|
|
688
688
|
|
|
689
689
|
-- sequence.alter.set_owned_by
|
|
690
690
|
ALTER SEQUENCE
|
|
@@ -577,7 +577,7 @@ describe("sql formatting snapshots", () => {
|
|
|
577
577
|
CREATE SEQUENCE public.table_with_very_long_name_for_formatting_and_wrapping_test_id_seq;
|
|
578
578
|
|
|
579
579
|
-- sequence.drop
|
|
580
|
-
DROP SEQUENCE public.table_with_very_long_name_for_formatting_and_wrapping_test_id_seq;
|
|
580
|
+
DROP SEQUENCE public.table_with_very_long_name_for_formatting_and_wrapping_test_id_seq CASCADE;
|
|
581
581
|
|
|
582
582
|
-- sequence.alter.set_owned_by
|
|
583
583
|
ALTER SEQUENCE public.table_with_very_long_name_for_formatting_and_wrapping_test_id_seq OWNED BY
|
|
@@ -570,7 +570,7 @@ describe("sql formatting snapshots", () => {
|
|
|
570
570
|
CREATE SEQUENCE public.table_with_very_long_name_for_formatting_and_wrapping_test_id_seq;
|
|
571
571
|
|
|
572
572
|
-- sequence.drop
|
|
573
|
-
DROP SEQUENCE public.table_with_very_long_name_for_formatting_and_wrapping_test_id_seq;
|
|
573
|
+
DROP SEQUENCE public.table_with_very_long_name_for_formatting_and_wrapping_test_id_seq CASCADE;
|
|
574
574
|
|
|
575
575
|
-- sequence.alter.set_owned_by
|
|
576
576
|
ALTER SEQUENCE public.table_with_very_long_name_for_formatting_and_wrapping_test_id_seq OWNED BY
|
package/src/core/plan/types.ts
CHANGED
|
@@ -4,10 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
import z from "zod";
|
|
6
6
|
import type { Change } from "../change.types.ts";
|
|
7
|
-
import type {
|
|
8
|
-
import type { ChangeFilter } from "../integrations/filter/filter.types.ts";
|
|
9
|
-
import type { SerializeDSL } from "../integrations/serialize/dsl.ts";
|
|
10
|
-
import type { ChangeSerializer } from "../integrations/serialize/serialize.types.ts";
|
|
7
|
+
import type { Integration } from "../integrations/integration.types.ts";
|
|
11
8
|
|
|
12
9
|
// ============================================================================
|
|
13
10
|
// Core Types
|
|
@@ -157,9 +154,9 @@ export type Plan = z.infer<typeof PlanSchema>;
|
|
|
157
154
|
*/
|
|
158
155
|
export interface CreatePlanOptions {
|
|
159
156
|
/** Filter - either FilterDSL (stored in plan) or ChangeFilter function (not stored) */
|
|
160
|
-
filter?:
|
|
157
|
+
filter?: Integration["filter"];
|
|
161
158
|
/** Serialize - either SerializeDSL (stored in plan) or ChangeSerializer function (not stored) */
|
|
162
|
-
serialize?:
|
|
159
|
+
serialize?: Integration["serialize"];
|
|
163
160
|
/** Role to use when executing the migration (SET ROLE will be added to statements) */
|
|
164
161
|
role?: string;
|
|
165
162
|
/**
|
|
@@ -4,6 +4,12 @@ import {
|
|
|
4
4
|
GrantRoleDefaultPrivileges,
|
|
5
5
|
RevokeRoleDefaultPrivileges,
|
|
6
6
|
} from "../objects/role/changes/role.privilege.ts";
|
|
7
|
+
import {
|
|
8
|
+
AlterTableAlterColumnAddIdentity,
|
|
9
|
+
AlterTableAlterColumnDropDefault,
|
|
10
|
+
AlterTableAlterColumnDropIdentity,
|
|
11
|
+
AlterTableAlterColumnSetDefault,
|
|
12
|
+
} from "../objects/table/changes/table.alter.ts";
|
|
7
13
|
import type { Constraint } from "./types.ts";
|
|
8
14
|
|
|
9
15
|
/**
|
|
@@ -143,11 +149,79 @@ function generateDefaultPrivilegeConstraints(changes: Change[]): Constraint[] {
|
|
|
143
149
|
return constraints;
|
|
144
150
|
}
|
|
145
151
|
|
|
152
|
+
function generateIdentityTransitionConstraints(
|
|
153
|
+
changes: Change[],
|
|
154
|
+
): Constraint[] {
|
|
155
|
+
const constraints: Constraint[] = [];
|
|
156
|
+
const dropDefaultByColumn = new Map<string, number[]>();
|
|
157
|
+
const dropIdentityByColumn = new Map<string, number[]>();
|
|
158
|
+
const addIdentityByColumn = new Map<string, number[]>();
|
|
159
|
+
const setDefaultByColumn = new Map<string, number[]>();
|
|
160
|
+
|
|
161
|
+
for (let i = 0; i < changes.length; i++) {
|
|
162
|
+
const change = changes[i];
|
|
163
|
+
const columnKey =
|
|
164
|
+
"table" in change && "column" in change
|
|
165
|
+
? `${change.table.schema}.${change.table.name}.${change.column.name}`
|
|
166
|
+
: null;
|
|
167
|
+
if (!columnKey) continue;
|
|
168
|
+
|
|
169
|
+
if (change instanceof AlterTableAlterColumnDropDefault) {
|
|
170
|
+
const entries = dropDefaultByColumn.get(columnKey) ?? [];
|
|
171
|
+
entries.push(i);
|
|
172
|
+
dropDefaultByColumn.set(columnKey, entries);
|
|
173
|
+
} else if (change instanceof AlterTableAlterColumnAddIdentity) {
|
|
174
|
+
const entries = addIdentityByColumn.get(columnKey) ?? [];
|
|
175
|
+
entries.push(i);
|
|
176
|
+
addIdentityByColumn.set(columnKey, entries);
|
|
177
|
+
} else if (change instanceof AlterTableAlterColumnDropIdentity) {
|
|
178
|
+
const entries = dropIdentityByColumn.get(columnKey) ?? [];
|
|
179
|
+
entries.push(i);
|
|
180
|
+
dropIdentityByColumn.set(columnKey, entries);
|
|
181
|
+
} else if (change instanceof AlterTableAlterColumnSetDefault) {
|
|
182
|
+
const entries = setDefaultByColumn.get(columnKey) ?? [];
|
|
183
|
+
entries.push(i);
|
|
184
|
+
setDefaultByColumn.set(columnKey, entries);
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
// These rules only order same-column ALTERs inside the create/alter phase.
|
|
189
|
+
// Sequence drops are handled separately in the earlier drop phase.
|
|
190
|
+
for (const [columnKey, dropDefaultIndexes] of dropDefaultByColumn) {
|
|
191
|
+
const addIdentityIndexes = addIdentityByColumn.get(columnKey) ?? [];
|
|
192
|
+
for (const sourceIndex of dropDefaultIndexes) {
|
|
193
|
+
for (const targetIndex of addIdentityIndexes) {
|
|
194
|
+
constraints.push({
|
|
195
|
+
sourceChangeIndex: sourceIndex,
|
|
196
|
+
targetChangeIndex: targetIndex,
|
|
197
|
+
source: "custom",
|
|
198
|
+
});
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
for (const [columnKey, dropIdentityIndexes] of dropIdentityByColumn) {
|
|
204
|
+
const setDefaultIndexes = setDefaultByColumn.get(columnKey) ?? [];
|
|
205
|
+
for (const sourceIndex of dropIdentityIndexes) {
|
|
206
|
+
for (const targetIndex of setDefaultIndexes) {
|
|
207
|
+
constraints.push({
|
|
208
|
+
sourceChangeIndex: sourceIndex,
|
|
209
|
+
targetChangeIndex: targetIndex,
|
|
210
|
+
source: "custom",
|
|
211
|
+
});
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
return constraints;
|
|
217
|
+
}
|
|
218
|
+
|
|
146
219
|
/**
|
|
147
220
|
* All custom constraint generators.
|
|
148
221
|
*/
|
|
149
222
|
const customConstraintGenerators: ConstraintGenerator[] = [
|
|
150
223
|
generateDefaultPrivilegeConstraints,
|
|
224
|
+
generateIdentityTransitionConstraints,
|
|
151
225
|
];
|
|
152
226
|
|
|
153
227
|
/**
|
package/src/typedoc.ts
CHANGED
|
@@ -25,6 +25,11 @@ export type { FlatValue } from "./core/integrations/filter/flatten.ts";
|
|
|
25
25
|
|
|
26
26
|
export type { IntegrationDSL } from "./core/integrations/integration-dsl.ts";
|
|
27
27
|
export type { SerializeDSL } from "./core/integrations/serialize/dsl.ts";
|
|
28
|
+
export type {
|
|
29
|
+
ExtensionSerializeOptions,
|
|
30
|
+
SchemaSerializeOptions,
|
|
31
|
+
SerializeOptions,
|
|
32
|
+
} from "./core/integrations/serialize/serialize.types.ts";
|
|
28
33
|
|
|
29
34
|
// ---------------------------------------------------------------------------
|
|
30
35
|
// Change Types — Base & Top-Level Unions
|