@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
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { SerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
|
|
1
2
|
import { parseProcedureReference, stableId } from "../../utils.ts";
|
|
2
3
|
import type { Language } from "../language.model.ts";
|
|
3
4
|
import { CreateLanguageChange } from "./language.base.ts";
|
|
@@ -71,7 +72,7 @@ export class CreateLanguage extends CreateLanguageChange {
|
|
|
71
72
|
return Array.from(dependencies);
|
|
72
73
|
}
|
|
73
74
|
|
|
74
|
-
serialize(): string {
|
|
75
|
+
serialize(_options?: SerializeOptions): string {
|
|
75
76
|
const parts: string[] = [`CREATE${this.orReplace ? " OR REPLACE" : ""}`];
|
|
76
77
|
|
|
77
78
|
// Only include non-default flags. We never print the optional
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { SerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
|
|
1
2
|
import type { Language } from "../language.model.ts";
|
|
2
3
|
import { DropLanguageChange } from "./language.base.ts";
|
|
3
4
|
|
|
@@ -28,7 +29,7 @@ export class DropLanguage extends DropLanguageChange {
|
|
|
28
29
|
return [this.language.stableId];
|
|
29
30
|
}
|
|
30
31
|
|
|
31
|
-
serialize(): string {
|
|
32
|
+
serialize(_options?: SerializeOptions): string {
|
|
32
33
|
const parts: string[] = ["DROP"];
|
|
33
34
|
|
|
34
35
|
// Do not print optional keywords (e.g., PROCEDURAL). Keep the statement minimal.
|
|
@@ -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 GrantLanguagePrivileges extends AlterLanguageChange {
|
|
|
52
53
|
return [this.language.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) {
|
|
@@ -117,7 +118,7 @@ export class RevokeLanguagePrivileges extends AlterLanguageChange {
|
|
|
117
118
|
];
|
|
118
119
|
}
|
|
119
120
|
|
|
120
|
-
serialize(): string {
|
|
121
|
+
serialize(_options?: SerializeOptions): string {
|
|
121
122
|
const kindPrefix = getObjectKindPrefix("LANGUAGE");
|
|
122
123
|
const list = this.privileges.map((p) => p.privilege);
|
|
123
124
|
const privSql = formatObjectPrivilegeList("LANGUAGE", list, this.version);
|
|
@@ -160,7 +161,7 @@ export class RevokeGrantOptionLanguagePrivileges extends AlterLanguageChange {
|
|
|
160
161
|
];
|
|
161
162
|
}
|
|
162
163
|
|
|
163
|
-
serialize(): string {
|
|
164
|
+
serialize(_options?: SerializeOptions): string {
|
|
164
165
|
const kindPrefix = getObjectKindPrefix("LANGUAGE");
|
|
165
166
|
const privSql = formatObjectPrivilegeList(
|
|
166
167
|
"LANGUAGE",
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { SerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
|
|
1
2
|
import type { MaterializedView } from "../materialized-view.model.ts";
|
|
2
3
|
import { AlterMaterializedViewChange } from "./materialized-view.base.ts";
|
|
3
4
|
|
|
@@ -53,7 +54,7 @@ export class AlterMaterializedViewChangeOwner extends AlterMaterializedViewChang
|
|
|
53
54
|
return [this.materializedView.stableId];
|
|
54
55
|
}
|
|
55
56
|
|
|
56
|
-
serialize(): string {
|
|
57
|
+
serialize(_options?: SerializeOptions): string {
|
|
57
58
|
return [
|
|
58
59
|
"ALTER MATERIALIZED VIEW",
|
|
59
60
|
`${this.materializedView.schema}.${this.materializedView.name}`,
|
|
@@ -88,7 +89,7 @@ export class AlterMaterializedViewSetStorageParams extends AlterMaterializedView
|
|
|
88
89
|
return [this.materializedView.stableId];
|
|
89
90
|
}
|
|
90
91
|
|
|
91
|
-
serialize(): string {
|
|
92
|
+
serialize(_options?: SerializeOptions): string {
|
|
92
93
|
const head = [
|
|
93
94
|
"ALTER MATERIALIZED VIEW",
|
|
94
95
|
`${this.materializedView.schema}.${this.materializedView.name}`,
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { SerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
|
|
1
2
|
import { quoteLiteral } from "../../base.change.ts";
|
|
2
3
|
import type { ColumnProps } from "../../base.model.ts";
|
|
3
4
|
import { stableId } from "../../utils.ts";
|
|
@@ -36,7 +37,7 @@ export class CreateCommentOnMaterializedView extends CreateMaterializedViewChang
|
|
|
36
37
|
return [this.materializedView.stableId];
|
|
37
38
|
}
|
|
38
39
|
|
|
39
|
-
serialize(): string {
|
|
40
|
+
serialize(_options?: SerializeOptions): string {
|
|
40
41
|
return [
|
|
41
42
|
"COMMENT ON MATERIALIZED VIEW",
|
|
42
43
|
`${this.materializedView.schema}.${this.materializedView.name}`,
|
|
@@ -67,7 +68,7 @@ export class DropCommentOnMaterializedView extends DropMaterializedViewChange {
|
|
|
67
68
|
];
|
|
68
69
|
}
|
|
69
70
|
|
|
70
|
-
serialize(): string {
|
|
71
|
+
serialize(_options?: SerializeOptions): string {
|
|
71
72
|
return [
|
|
72
73
|
"COMMENT ON MATERIALIZED VIEW",
|
|
73
74
|
`${this.materializedView.schema}.${this.materializedView.name}`,
|
|
@@ -112,7 +113,7 @@ export class CreateCommentOnMaterializedViewColumn extends CreateMaterializedVie
|
|
|
112
113
|
];
|
|
113
114
|
}
|
|
114
115
|
|
|
115
|
-
serialize(): string {
|
|
116
|
+
serialize(_options?: SerializeOptions): string {
|
|
116
117
|
return [
|
|
117
118
|
"COMMENT ON COLUMN",
|
|
118
119
|
`${this.materializedView.schema}.${this.materializedView.name}.${this.column.name}`,
|
|
@@ -166,7 +167,7 @@ export class DropCommentOnMaterializedViewColumn extends DropMaterializedViewCha
|
|
|
166
167
|
];
|
|
167
168
|
}
|
|
168
169
|
|
|
169
|
-
serialize(): string {
|
|
170
|
+
serialize(_options?: SerializeOptions): string {
|
|
170
171
|
return [
|
|
171
172
|
"COMMENT ON COLUMN",
|
|
172
173
|
`${this.materializedView.schema}.${this.materializedView.name}.${this.column.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 { MaterializedView } from "../materialized-view.model.ts";
|
|
3
4
|
import { CreateMaterializedViewChange } from "./materialized-view.base.ts";
|
|
@@ -62,7 +63,7 @@ export class CreateMaterializedView extends CreateMaterializedViewChange {
|
|
|
62
63
|
return Array.from(dependencies);
|
|
63
64
|
}
|
|
64
65
|
|
|
65
|
-
serialize(): string {
|
|
66
|
+
serialize(_options?: SerializeOptions): string {
|
|
66
67
|
const parts: string[] = ["CREATE MATERIALIZED VIEW"];
|
|
67
68
|
|
|
68
69
|
// Add schema and 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 { MaterializedView } from "../materialized-view.model.ts";
|
|
3
4
|
import { DropMaterializedViewChange } from "./materialized-view.base.ts";
|
|
@@ -51,7 +52,7 @@ export class DropMaterializedView extends DropMaterializedViewChange {
|
|
|
51
52
|
];
|
|
52
53
|
}
|
|
53
54
|
|
|
54
|
-
serialize(): string {
|
|
55
|
+
serialize(_options?: SerializeOptions): string {
|
|
55
56
|
return [
|
|
56
57
|
"DROP MATERIALIZED VIEW",
|
|
57
58
|
`${this.materializedView.schema}.${this.materializedView.name}`,
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { SerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
|
|
1
2
|
import {
|
|
2
3
|
formatObjectPrivilegeList,
|
|
3
4
|
getObjectKindPrefix,
|
|
@@ -58,7 +59,7 @@ export class GrantMaterializedViewPrivileges extends AlterMaterializedViewChange
|
|
|
58
59
|
return [this.materializedView.stableId, stableId.role(this.grantee)];
|
|
59
60
|
}
|
|
60
61
|
|
|
61
|
-
serialize(): string {
|
|
62
|
+
serialize(_options?: SerializeOptions): string {
|
|
62
63
|
const hasGrantable = this.privileges.some((p) => p.grantable);
|
|
63
64
|
const hasBase = this.privileges.some((p) => !p.grantable);
|
|
64
65
|
if (hasGrantable && hasBase) {
|
|
@@ -138,7 +139,7 @@ export class RevokeMaterializedViewPrivileges extends AlterMaterializedViewChang
|
|
|
138
139
|
];
|
|
139
140
|
}
|
|
140
141
|
|
|
141
|
-
serialize(): string {
|
|
142
|
+
serialize(_options?: SerializeOptions): string {
|
|
142
143
|
const kindPrefix = getObjectKindPrefix("MATERIALIZED VIEW");
|
|
143
144
|
const list = this.privileges.map((p) => p.privilege);
|
|
144
145
|
const privSql = formatObjectPrivilegeList(
|
|
@@ -195,7 +196,7 @@ export class RevokeGrantOptionMaterializedViewPrivileges extends AlterMaterializ
|
|
|
195
196
|
];
|
|
196
197
|
}
|
|
197
198
|
|
|
198
|
-
serialize(): string {
|
|
199
|
+
serialize(_options?: SerializeOptions): string {
|
|
199
200
|
const kindPrefix = getObjectKindPrefix("MATERIALIZED VIEW");
|
|
200
201
|
const privSql = formatObjectPrivilegeList(
|
|
201
202
|
"MATERIALIZED VIEW",
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { SerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
|
|
1
2
|
import type { Procedure } from "../procedure.model.ts";
|
|
2
3
|
import { formatConfigValue } from "../utils.ts";
|
|
3
4
|
import { AlterProcedureChange } from "./procedure.base.ts";
|
|
@@ -60,7 +61,7 @@ export class AlterProcedureChangeOwner extends AlterProcedureChange {
|
|
|
60
61
|
return [this.procedure.stableId];
|
|
61
62
|
}
|
|
62
63
|
|
|
63
|
-
serialize(): string {
|
|
64
|
+
serialize(_options?: SerializeOptions): string {
|
|
64
65
|
const objectType = this.procedure.kind === "p" ? "PROCEDURE" : "FUNCTION";
|
|
65
66
|
|
|
66
67
|
return [
|
|
@@ -91,7 +92,7 @@ export class AlterProcedureSetSecurity extends AlterProcedureChange {
|
|
|
91
92
|
return [this.procedure.stableId];
|
|
92
93
|
}
|
|
93
94
|
|
|
94
|
-
serialize(): string {
|
|
95
|
+
serialize(_options?: SerializeOptions): string {
|
|
95
96
|
const objectType = this.procedure.kind === "p" ? "PROCEDURE" : "FUNCTION";
|
|
96
97
|
const security = this.securityDefiner
|
|
97
98
|
? "SECURITY DEFINER"
|
|
@@ -142,7 +143,7 @@ export class AlterProcedureSetConfig extends AlterProcedureChange {
|
|
|
142
143
|
return [this.procedure.stableId];
|
|
143
144
|
}
|
|
144
145
|
|
|
145
|
-
serialize(): string {
|
|
146
|
+
serialize(_options?: SerializeOptions): string {
|
|
146
147
|
const head = [
|
|
147
148
|
"ALTER",
|
|
148
149
|
this.procedure.kind === "p" ? "PROCEDURE" : "FUNCTION",
|
|
@@ -176,7 +177,7 @@ export class AlterProcedureSetVolatility extends AlterProcedureChange {
|
|
|
176
177
|
return [this.procedure.stableId];
|
|
177
178
|
}
|
|
178
179
|
|
|
179
|
-
serialize(): string {
|
|
180
|
+
serialize(_options?: SerializeOptions): string {
|
|
180
181
|
const objectType = this.procedure.kind === "p" ? "PROCEDURE" : "FUNCTION";
|
|
181
182
|
const volMap: Record<string, string> = {
|
|
182
183
|
i: "IMMUTABLE",
|
|
@@ -210,7 +211,7 @@ export class AlterProcedureSetStrictness extends AlterProcedureChange {
|
|
|
210
211
|
return [this.procedure.stableId];
|
|
211
212
|
}
|
|
212
213
|
|
|
213
|
-
serialize(): string {
|
|
214
|
+
serialize(_options?: SerializeOptions): string {
|
|
214
215
|
const objectType = this.procedure.kind === "p" ? "PROCEDURE" : "FUNCTION";
|
|
215
216
|
const strictness = this.isStrict ? "STRICT" : "CALLED ON NULL INPUT";
|
|
216
217
|
return [
|
|
@@ -240,7 +241,7 @@ export class AlterProcedureSetLeakproof extends AlterProcedureChange {
|
|
|
240
241
|
return [this.procedure.stableId];
|
|
241
242
|
}
|
|
242
243
|
|
|
243
|
-
serialize(): string {
|
|
244
|
+
serialize(_options?: SerializeOptions): string {
|
|
244
245
|
const objectType = this.procedure.kind === "p" ? "PROCEDURE" : "FUNCTION";
|
|
245
246
|
const leak = this.leakproof ? "LEAKPROOF" : "NOT LEAKPROOF";
|
|
246
247
|
return ["ALTER", objectType, procedureSignature(this.procedure), leak].join(
|
|
@@ -267,7 +268,7 @@ export class AlterProcedureSetParallel extends AlterProcedureChange {
|
|
|
267
268
|
return [this.procedure.stableId];
|
|
268
269
|
}
|
|
269
270
|
|
|
270
|
-
serialize(): string {
|
|
271
|
+
serialize(_options?: SerializeOptions): string {
|
|
271
272
|
const objectType = this.procedure.kind === "p" ? "PROCEDURE" : "FUNCTION";
|
|
272
273
|
const parallelMap: Record<string, string> = {
|
|
273
274
|
u: "PARALLEL UNSAFE",
|
|
@@ -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 { Procedure } from "../procedure.model.ts";
|
|
@@ -30,7 +31,7 @@ export class CreateCommentOnProcedure extends CreateProcedureChange {
|
|
|
30
31
|
return [this.procedure.stableId];
|
|
31
32
|
}
|
|
32
33
|
|
|
33
|
-
serialize(): string {
|
|
34
|
+
serialize(_options?: SerializeOptions): string {
|
|
34
35
|
return [
|
|
35
36
|
"COMMENT ON",
|
|
36
37
|
this.procedure.kind === "p" ? "PROCEDURE" : "FUNCTION",
|
|
@@ -59,7 +60,7 @@ export class DropCommentOnProcedure extends DropProcedureChange {
|
|
|
59
60
|
return [stableId.comment(this.procedure.stableId), this.procedure.stableId];
|
|
60
61
|
}
|
|
61
62
|
|
|
62
|
-
serialize(): string {
|
|
63
|
+
serialize(_options?: SerializeOptions): string {
|
|
63
64
|
return [
|
|
64
65
|
"COMMENT ON",
|
|
65
66
|
this.procedure.kind === "p" ? "PROCEDURE" : "FUNCTION",
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { SerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
|
|
1
2
|
import { parseTypeString, stableId } from "../../utils.ts";
|
|
2
3
|
import type { Procedure } from "../procedure.model.ts";
|
|
3
4
|
import { CreateProcedureChange } from "./procedure.base.ts";
|
|
@@ -78,7 +79,7 @@ export class CreateProcedure extends CreateProcedureChange {
|
|
|
78
79
|
return Array.from(dependencies);
|
|
79
80
|
}
|
|
80
81
|
|
|
81
|
-
serialize(): string {
|
|
82
|
+
serialize(_options?: SerializeOptions): string {
|
|
82
83
|
// Use the server-generated CREATE statement for functions/procedures
|
|
83
84
|
// Normalize trailing semicolon and OR REPLACE clause according to flag
|
|
84
85
|
let definition = this.procedure.definition.trim();
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { SerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
|
|
1
2
|
import type { Procedure } from "../procedure.model.ts";
|
|
2
3
|
import { formatFunctionArguments } from "../utils.ts";
|
|
3
4
|
import { DropProcedureChange } from "./procedure.base.ts";
|
|
@@ -30,7 +31,7 @@ export class DropProcedure extends DropProcedureChange {
|
|
|
30
31
|
return [this.procedure.stableId];
|
|
31
32
|
}
|
|
32
33
|
|
|
33
|
-
serialize(): string {
|
|
34
|
+
serialize(_options?: SerializeOptions): string {
|
|
34
35
|
const objectType = this.procedure.kind === "p" ? "PROCEDURE" : "FUNCTION";
|
|
35
36
|
|
|
36
37
|
// Build argument list
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { SerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
|
|
1
2
|
import {
|
|
2
3
|
formatObjectPrivilegeList,
|
|
3
4
|
getObjectKindPrefix,
|
|
@@ -53,7 +54,7 @@ export class GrantProcedurePrivileges extends AlterProcedureChange {
|
|
|
53
54
|
return [this.procedure.stableId, stableId.role(this.grantee)];
|
|
54
55
|
}
|
|
55
56
|
|
|
56
|
-
serialize(): string {
|
|
57
|
+
serialize(_options?: SerializeOptions): string {
|
|
57
58
|
const hasGrantable = this.privileges.some((p) => p.grantable);
|
|
58
59
|
const hasBase = this.privileges.some((p) => !p.grantable);
|
|
59
60
|
if (hasGrantable && hasBase) {
|
|
@@ -123,7 +124,7 @@ export class RevokeProcedurePrivileges extends AlterProcedureChange {
|
|
|
123
124
|
];
|
|
124
125
|
}
|
|
125
126
|
|
|
126
|
-
serialize(): string {
|
|
127
|
+
serialize(_options?: SerializeOptions): string {
|
|
127
128
|
const objectKind = this.procedure.kind === "p" ? "PROCEDURE" : "FUNCTION";
|
|
128
129
|
const kindPrefix = getObjectKindPrefix(objectKind);
|
|
129
130
|
const list = this.privileges.map((p) => p.privilege);
|
|
@@ -171,7 +172,7 @@ export class RevokeGrantOptionProcedurePrivileges extends AlterProcedureChange {
|
|
|
171
172
|
];
|
|
172
173
|
}
|
|
173
174
|
|
|
174
|
-
serialize(): string {
|
|
175
|
+
serialize(_options?: SerializeOptions): string {
|
|
175
176
|
const objectKind = this.procedure.kind === "p" ? "PROCEDURE" : "FUNCTION";
|
|
176
177
|
const kindPrefix = getObjectKindPrefix(objectKind);
|
|
177
178
|
const privSql = formatObjectPrivilegeList(
|
|
@@ -156,6 +156,10 @@ describe("publication.alter", () => {
|
|
|
156
156
|
stableId.table("public", "logs"),
|
|
157
157
|
stableId.table("audit", "events"),
|
|
158
158
|
]);
|
|
159
|
+
expect(change.drops).toEqual([
|
|
160
|
+
stableId.table("public", "logs"),
|
|
161
|
+
stableId.table("audit", "events"),
|
|
162
|
+
]);
|
|
159
163
|
await assertValidSql(change.serialize());
|
|
160
164
|
expect(change.serialize()).toBe(
|
|
161
165
|
"ALTER PUBLICATION pub_drop_tables DROP TABLE public.logs, audit.events",
|
|
@@ -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 {
|
|
3
4
|
Publication,
|
|
@@ -31,7 +32,7 @@ export class AlterPublicationSetOptions extends AlterPublicationChange {
|
|
|
31
32
|
return [this.publication.stableId];
|
|
32
33
|
}
|
|
33
34
|
|
|
34
|
-
serialize(): string {
|
|
35
|
+
serialize(_options?: SerializeOptions): string {
|
|
35
36
|
const assignments: string[] = [];
|
|
36
37
|
|
|
37
38
|
if (this.setPublish) {
|
|
@@ -79,7 +80,7 @@ export class AlterPublicationSetList extends AlterPublicationChange {
|
|
|
79
80
|
return Array.from(dependencies);
|
|
80
81
|
}
|
|
81
82
|
|
|
82
|
-
serialize(): string {
|
|
83
|
+
serialize(_options?: SerializeOptions): string {
|
|
83
84
|
const clauses = formatPublicationObjects(
|
|
84
85
|
this.publication.tables,
|
|
85
86
|
this.publication.schemas,
|
|
@@ -118,7 +119,7 @@ export class AlterPublicationAddTables extends AlterPublicationChange {
|
|
|
118
119
|
return Array.from(dependencies);
|
|
119
120
|
}
|
|
120
121
|
|
|
121
|
-
serialize(): string {
|
|
122
|
+
serialize(_options?: SerializeOptions): string {
|
|
122
123
|
const clauses = this.tables.map((table) => formatPublicationTable(table));
|
|
123
124
|
return `ALTER PUBLICATION ${this.publication.name} ADD ${clauses.join(", ")}`;
|
|
124
125
|
}
|
|
@@ -150,7 +151,13 @@ export class AlterPublicationDropTables extends AlterPublicationChange {
|
|
|
150
151
|
return Array.from(dependencies);
|
|
151
152
|
}
|
|
152
153
|
|
|
153
|
-
|
|
154
|
+
get drops() {
|
|
155
|
+
// Treat ALTER PUBLICATION ... DROP TABLE as a destructive change so it runs
|
|
156
|
+
// in the drop phase before DROP TABLE removes the referenced relation.
|
|
157
|
+
return this.tables.map((table) => stableId.table(table.schema, table.name));
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
serialize(_options?: SerializeOptions): string {
|
|
154
161
|
const targets = this.tables.map((table) => `${table.schema}.${table.name}`);
|
|
155
162
|
return `ALTER PUBLICATION ${this.publication.name} DROP TABLE ${targets.join(", ")}`;
|
|
156
163
|
}
|
|
@@ -174,7 +181,7 @@ export class AlterPublicationAddSchemas extends AlterPublicationChange {
|
|
|
174
181
|
];
|
|
175
182
|
}
|
|
176
183
|
|
|
177
|
-
serialize(): string {
|
|
184
|
+
serialize(_options?: SerializeOptions): string {
|
|
178
185
|
const clauses = this.schemas.map((schema) => `TABLES IN SCHEMA ${schema}`);
|
|
179
186
|
return `ALTER PUBLICATION ${this.publication.name} ADD ${clauses.join(", ")}`;
|
|
180
187
|
}
|
|
@@ -198,7 +205,7 @@ export class AlterPublicationDropSchemas extends AlterPublicationChange {
|
|
|
198
205
|
];
|
|
199
206
|
}
|
|
200
207
|
|
|
201
|
-
serialize(): string {
|
|
208
|
+
serialize(_options?: SerializeOptions): string {
|
|
202
209
|
const clauses = this.schemas.map((schema) => `TABLES IN SCHEMA ${schema}`);
|
|
203
210
|
return `ALTER PUBLICATION ${this.publication.name} DROP ${clauses.join(", ")}`;
|
|
204
211
|
}
|
|
@@ -219,7 +226,7 @@ export class AlterPublicationSetOwner extends AlterPublicationChange {
|
|
|
219
226
|
return [this.publication.stableId, stableId.role(this.owner)];
|
|
220
227
|
}
|
|
221
228
|
|
|
222
|
-
serialize(): string {
|
|
229
|
+
serialize(_options?: SerializeOptions): string {
|
|
223
230
|
return `ALTER PUBLICATION ${this.publication.name} OWNER TO ${this.owner}`;
|
|
224
231
|
}
|
|
225
232
|
}
|
|
@@ -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 { Publication } from "../publication.model.ts";
|
|
@@ -27,7 +28,7 @@ export class CreateCommentOnPublication extends CreatePublicationChange {
|
|
|
27
28
|
return [this.publication.stableId];
|
|
28
29
|
}
|
|
29
30
|
|
|
30
|
-
serialize(): string {
|
|
31
|
+
serialize(_options?: SerializeOptions): string {
|
|
31
32
|
return [
|
|
32
33
|
"COMMENT ON PUBLICATION",
|
|
33
34
|
this.publication.name,
|
|
@@ -58,7 +59,7 @@ export class DropCommentOnPublication extends DropPublicationChange {
|
|
|
58
59
|
];
|
|
59
60
|
}
|
|
60
61
|
|
|
61
|
-
serialize(): string {
|
|
62
|
+
serialize(_options?: SerializeOptions): string {
|
|
62
63
|
return `COMMENT ON PUBLICATION ${this.publication.name} IS NULL`;
|
|
63
64
|
}
|
|
64
65
|
}
|
|
@@ -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 { Publication } from "../publication.model.ts";
|
|
3
4
|
import {
|
|
@@ -48,7 +49,7 @@ export class CreatePublication extends CreatePublicationChange {
|
|
|
48
49
|
return Array.from(dependencies);
|
|
49
50
|
}
|
|
50
51
|
|
|
51
|
-
serialize(): string {
|
|
52
|
+
serialize(_options?: SerializeOptions): string {
|
|
52
53
|
const parts: string[] = ["CREATE PUBLICATION", this.publication.name];
|
|
53
54
|
|
|
54
55
|
if (this.publication.all_tables) {
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { SerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
|
|
1
2
|
import type { Publication } from "../publication.model.ts";
|
|
2
3
|
import { DropPublicationChange } from "./publication.base.ts";
|
|
3
4
|
|
|
@@ -23,7 +24,7 @@ export class DropPublication extends DropPublicationChange {
|
|
|
23
24
|
return [this.publication.stableId];
|
|
24
25
|
}
|
|
25
26
|
|
|
26
|
-
serialize(): string {
|
|
27
|
+
serialize(_options?: SerializeOptions): string {
|
|
27
28
|
return `DROP PUBLICATION ${this.publication.name}`;
|
|
28
29
|
}
|
|
29
30
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { SerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
|
|
1
2
|
import type { RlsPolicy } from "../rls-policy.model.ts";
|
|
2
3
|
import { AlterRlsPolicyChange } from "./rls-policy.base.ts";
|
|
3
4
|
|
|
@@ -38,7 +39,7 @@ export class AlterRlsPolicySetRoles extends AlterRlsPolicyChange {
|
|
|
38
39
|
return [this.policy.stableId];
|
|
39
40
|
}
|
|
40
41
|
|
|
41
|
-
serialize(): string {
|
|
42
|
+
serialize(_options?: SerializeOptions): string {
|
|
42
43
|
const targetRoles = this.roles;
|
|
43
44
|
const toPublic =
|
|
44
45
|
targetRoles.length === 0 ||
|
|
@@ -74,7 +75,7 @@ export class AlterRlsPolicySetUsingExpression extends AlterRlsPolicyChange {
|
|
|
74
75
|
return [this.policy.stableId];
|
|
75
76
|
}
|
|
76
77
|
|
|
77
|
-
serialize(): string {
|
|
78
|
+
serialize(_options?: SerializeOptions): string {
|
|
78
79
|
const expr = this.usingExpression ?? "true";
|
|
79
80
|
return [
|
|
80
81
|
"ALTER POLICY",
|
|
@@ -108,7 +109,7 @@ export class AlterRlsPolicySetWithCheckExpression extends AlterRlsPolicyChange {
|
|
|
108
109
|
return [this.policy.stableId];
|
|
109
110
|
}
|
|
110
111
|
|
|
111
|
-
serialize(): string {
|
|
112
|
+
serialize(_options?: SerializeOptions): string {
|
|
112
113
|
const expr = this.withCheckExpression ?? "true";
|
|
113
114
|
return [
|
|
114
115
|
"ALTER POLICY",
|
|
@@ -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 { RlsPolicy } from "../rls-policy.model.ts";
|
|
@@ -27,7 +28,7 @@ export class CreateCommentOnRlsPolicy extends CreateRlsPolicyChange {
|
|
|
27
28
|
return [this.policy.stableId];
|
|
28
29
|
}
|
|
29
30
|
|
|
30
|
-
serialize(): string {
|
|
31
|
+
serialize(_options?: SerializeOptions): string {
|
|
31
32
|
return [
|
|
32
33
|
"COMMENT ON POLICY",
|
|
33
34
|
this.policy.name,
|
|
@@ -57,7 +58,7 @@ export class DropCommentOnRlsPolicy extends DropRlsPolicyChange {
|
|
|
57
58
|
return [stableId.comment(this.policy.stableId), this.policy.stableId];
|
|
58
59
|
}
|
|
59
60
|
|
|
60
|
-
serialize(): string {
|
|
61
|
+
serialize(_options?: SerializeOptions): string {
|
|
61
62
|
return [
|
|
62
63
|
"COMMENT ON POLICY",
|
|
63
64
|
this.policy.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 { RlsPolicy } from "../rls-policy.model.ts";
|
|
3
4
|
import { CreateRlsPolicyChange } from "./rls-policy.base.ts";
|
|
@@ -47,7 +48,7 @@ export class CreateRlsPolicy extends CreateRlsPolicyChange {
|
|
|
47
48
|
return Array.from(dependencies);
|
|
48
49
|
}
|
|
49
50
|
|
|
50
|
-
serialize(): string {
|
|
51
|
+
serialize(_options?: SerializeOptions): string {
|
|
51
52
|
const parts: string[] = ["CREATE POLICY"];
|
|
52
53
|
|
|
53
54
|
// Add policy name
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { SerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
|
|
1
2
|
import type { RlsPolicy } from "../rls-policy.model.ts";
|
|
2
3
|
import { DropRlsPolicyChange } from "./rls-policy.base.ts";
|
|
3
4
|
|
|
@@ -28,7 +29,7 @@ export class DropRlsPolicy extends DropRlsPolicyChange {
|
|
|
28
29
|
return [this.policy.stableId];
|
|
29
30
|
}
|
|
30
31
|
|
|
31
|
-
serialize(): string {
|
|
32
|
+
serialize(_options?: SerializeOptions): string {
|
|
32
33
|
return [
|
|
33
34
|
"DROP POLICY",
|
|
34
35
|
this.policy.name,
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { SerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
|
|
1
2
|
import { formatConfigValue } from "../../procedure/utils.ts";
|
|
2
3
|
import type { Role } from "../role.model.ts";
|
|
3
4
|
import { AlterRoleChange } from "./role.base.ts";
|
|
@@ -56,7 +57,7 @@ export class AlterRoleSetOptions extends AlterRoleChange {
|
|
|
56
57
|
return [this.role.stableId];
|
|
57
58
|
}
|
|
58
59
|
|
|
59
|
-
serialize(): string {
|
|
60
|
+
serialize(_options?: SerializeOptions): string {
|
|
60
61
|
const parts: string[] = ["ALTER ROLE", this.role.name];
|
|
61
62
|
return [...parts, "WITH", this.options.join(" ")].join(" ");
|
|
62
63
|
}
|
|
@@ -93,7 +94,7 @@ export class AlterRoleSetConfig extends AlterRoleChange {
|
|
|
93
94
|
return [this.role.stableId];
|
|
94
95
|
}
|
|
95
96
|
|
|
96
|
-
serialize(): string {
|
|
97
|
+
serialize(_options?: SerializeOptions): string {
|
|
97
98
|
const head = ["ALTER ROLE", this.role.name].join(" ");
|
|
98
99
|
if (this.action === "reset_all") {
|
|
99
100
|
return `${head} RESET ALL`;
|
|
@@ -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 { Role } from "../role.model.ts";
|
|
@@ -22,7 +23,7 @@ export class CreateCommentOnRole extends CreateRoleChange {
|
|
|
22
23
|
return [this.role.stableId];
|
|
23
24
|
}
|
|
24
25
|
|
|
25
|
-
serialize(): string {
|
|
26
|
+
serialize(_options?: SerializeOptions): string {
|
|
26
27
|
return [
|
|
27
28
|
"COMMENT ON ROLE",
|
|
28
29
|
this.role.name,
|
|
@@ -49,7 +50,7 @@ export class DropCommentOnRole extends DropRoleChange {
|
|
|
49
50
|
return [stableId.comment(this.role.stableId), this.role.stableId];
|
|
50
51
|
}
|
|
51
52
|
|
|
52
|
-
serialize(): string {
|
|
53
|
+
serialize(_options?: SerializeOptions): string {
|
|
53
54
|
return ["COMMENT ON ROLE", this.role.name, "IS NULL"].join(" ");
|
|
54
55
|
}
|
|
55
56
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { SerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
|
|
1
2
|
import type { Role } from "../role.model.ts";
|
|
2
3
|
import { CreateRoleChange } from "./role.base.ts";
|
|
3
4
|
|
|
@@ -41,7 +42,7 @@ export class CreateRole extends CreateRoleChange {
|
|
|
41
42
|
return [this.role.stableId];
|
|
42
43
|
}
|
|
43
44
|
|
|
44
|
-
serialize(): string {
|
|
45
|
+
serialize(_options?: SerializeOptions): string {
|
|
45
46
|
const parts: string[] = ["CREATE ROLE"];
|
|
46
47
|
|
|
47
48
|
// Add role name
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { SerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
|
|
1
2
|
import type { Role } from "../role.model.ts";
|
|
2
3
|
import { DropRoleChange } from "./role.base.ts";
|
|
3
4
|
|
|
@@ -28,7 +29,7 @@ export class DropRole extends DropRoleChange {
|
|
|
28
29
|
return [this.role.stableId];
|
|
29
30
|
}
|
|
30
31
|
|
|
31
|
-
serialize(): string {
|
|
32
|
+
serialize(_options?: SerializeOptions): string {
|
|
32
33
|
return ["DROP ROLE", this.role.name].join(" ");
|
|
33
34
|
}
|
|
34
35
|
}
|