@supabase/pg-delta 1.0.0-alpha.1 → 1.0.0-alpha.11
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/README.md +41 -2
- package/dist/cli/app.js +26 -3
- package/dist/cli/bin/cli.js +5 -0
- package/dist/cli/commands/catalog-export.d.ts +5 -0
- package/dist/cli/commands/catalog-export.js +64 -0
- package/dist/cli/commands/declarative-apply.d.ts +6 -0
- package/dist/cli/commands/declarative-apply.js +288 -0
- package/dist/cli/commands/declarative-export.d.ts +5 -0
- package/dist/cli/commands/declarative-export.js +240 -0
- package/dist/cli/commands/plan.js +47 -16
- package/dist/cli/commands/sync.js +8 -12
- package/dist/cli/exit-code.d.ts +2 -0
- package/dist/cli/exit-code.js +7 -0
- package/dist/cli/formatters/tree/tree.js +3 -2
- package/dist/cli/utils/apply-display.d.ts +52 -0
- package/dist/cli/utils/apply-display.js +183 -0
- package/dist/cli/utils/export-display.d.ts +43 -0
- package/dist/cli/utils/export-display.js +202 -0
- package/dist/cli/utils/integrations.d.ts +30 -6
- package/dist/cli/utils/integrations.js +98 -6
- package/dist/cli/utils/resolve-input.d.ts +7 -0
- package/dist/cli/utils/resolve-input.js +13 -0
- package/dist/cli/utils.d.ts +2 -0
- package/dist/cli/utils.js +1 -1
- package/dist/core/catalog-export/index.d.ts +11 -0
- package/dist/core/catalog-export/index.js +10 -0
- package/dist/core/catalog.diff.d.ts +1 -0
- package/dist/core/catalog.diff.js +64 -48
- package/dist/core/catalog.model.d.ts +16 -3
- package/dist/core/catalog.model.js +132 -30
- package/dist/core/catalog.snapshot.d.ts +66 -0
- package/dist/core/catalog.snapshot.js +206 -0
- package/dist/core/change-utils.d.ts +9 -0
- package/dist/core/change-utils.js +71 -0
- package/dist/core/change.types.d.ts +22 -0
- package/dist/core/change.types.js +37 -1
- package/dist/core/context.d.ts +3 -3
- package/dist/core/context.js +7 -10
- package/dist/core/declarative-apply/discover-sql.d.ts +18 -0
- package/dist/core/declarative-apply/discover-sql.js +86 -0
- package/dist/core/declarative-apply/extract-catalog-providers.d.ts +23 -0
- package/dist/core/declarative-apply/extract-catalog-providers.js +159 -0
- package/dist/core/declarative-apply/index.d.ts +49 -0
- package/dist/core/declarative-apply/index.js +134 -0
- package/dist/core/declarative-apply/round-apply.d.ts +100 -0
- package/dist/core/declarative-apply/round-apply.js +378 -0
- package/dist/core/depend.d.ts +2 -2
- package/dist/core/depend.js +33 -7
- package/dist/core/export/file-mapper.d.ts +71 -0
- package/dist/core/export/file-mapper.js +474 -0
- package/dist/core/export/grouper.d.ts +13 -0
- package/dist/core/export/grouper.js +76 -0
- package/dist/core/export/index.d.ts +45 -0
- package/dist/core/export/index.js +63 -0
- package/dist/core/export/types.d.ts +84 -0
- package/dist/core/export/types.js +25 -0
- package/dist/core/fixtures/empty-catalogs/postgres-15-16-baseline.json +287 -0
- package/dist/core/integrations/filter/dsl.d.ts +82 -41
- package/dist/core/integrations/filter/dsl.js +127 -61
- package/dist/core/integrations/filter/flatten.d.ts +51 -0
- package/dist/core/integrations/filter/flatten.js +116 -0
- package/dist/core/integrations/integration-dsl.d.ts +27 -1
- package/dist/core/integrations/merge.d.ts +20 -0
- package/dist/core/integrations/merge.js +60 -0
- package/dist/core/integrations/serialize/dsl.d.ts +7 -4
- package/dist/core/integrations/serialize/dsl.js +2 -2
- package/dist/core/integrations/supabase.d.ts +8 -0
- package/dist/core/integrations/supabase.js +34 -8
- package/dist/core/objects/aggregate/aggregate.diff.d.ts +2 -8
- package/dist/core/objects/aggregate/aggregate.diff.js +16 -70
- package/dist/core/objects/aggregate/aggregate.model.d.ts +10 -10
- package/dist/core/objects/aggregate/aggregate.model.js +8 -10
- package/dist/core/objects/aggregate/changes/aggregate.create.js +1 -1
- package/dist/core/objects/aggregate/changes/aggregate.drop.js +1 -1
- package/dist/core/objects/aggregate/changes/aggregate.types.d.ts +1 -0
- package/dist/core/objects/base.change.d.ts +10 -0
- package/dist/core/objects/base.change.js +10 -0
- package/dist/core/objects/base.model.d.ts +4 -1
- package/dist/core/objects/base.model.js +5 -2
- package/dist/core/objects/base.privilege-diff.d.ts +38 -13
- package/dist/core/objects/base.privilege-diff.js +104 -22
- package/dist/core/objects/base.privilege.d.ts +1 -0
- package/dist/core/objects/base.privilege.js +9 -2
- package/dist/core/objects/collation/changes/collation.types.d.ts +1 -0
- package/dist/core/objects/collation/collation.diff.d.ts +2 -3
- package/dist/core/objects/collation/collation.model.d.ts +2 -2
- package/dist/core/objects/collation/collation.model.js +29 -28
- package/dist/core/objects/diff-context.d.ts +15 -0
- package/dist/core/objects/diff-context.js +1 -0
- package/dist/core/objects/domain/changes/domain.create.d.ts +1 -1
- package/dist/core/objects/domain/changes/domain.create.js +11 -3
- package/dist/core/objects/domain/changes/domain.types.d.ts +1 -0
- package/dist/core/objects/domain/domain.diff.d.ts +2 -8
- package/dist/core/objects/domain/domain.diff.js +16 -77
- package/dist/core/objects/domain/domain.model.d.ts +2 -2
- package/dist/core/objects/domain/domain.model.js +9 -11
- package/dist/core/objects/event-trigger/changes/event-trigger.types.d.ts +1 -0
- package/dist/core/objects/event-trigger/event-trigger.diff.d.ts +2 -3
- package/dist/core/objects/event-trigger/event-trigger.model.d.ts +2 -2
- package/dist/core/objects/event-trigger/event-trigger.model.js +7 -9
- package/dist/core/objects/extension/changes/extension.types.d.ts +1 -0
- package/dist/core/objects/extension/extension.model.d.ts +2 -2
- package/dist/core/objects/extension/extension.model.js +8 -10
- package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.types.d.ts +1 -0
- package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/foreign-data-wrapper.diff.d.ts +2 -8
- package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/foreign-data-wrapper.diff.js +13 -77
- package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/foreign-data-wrapper.model.d.ts +2 -2
- package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/foreign-data-wrapper.model.js +22 -24
- package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper.types.d.ts +1 -0
- package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.types.d.ts +1 -0
- package/dist/core/objects/foreign-data-wrapper/foreign-table/foreign-table.diff.d.ts +2 -8
- package/dist/core/objects/foreign-data-wrapper/foreign-table/foreign-table.diff.js +16 -77
- package/dist/core/objects/foreign-data-wrapper/foreign-table/foreign-table.model.d.ts +2 -2
- package/dist/core/objects/foreign-data-wrapper/foreign-table/foreign-table.model.js +21 -23
- package/dist/core/objects/foreign-data-wrapper/server/changes/server.types.d.ts +1 -0
- package/dist/core/objects/foreign-data-wrapper/server/server.diff.d.ts +2 -8
- package/dist/core/objects/foreign-data-wrapper/server/server.diff.js +13 -77
- package/dist/core/objects/foreign-data-wrapper/server/server.model.d.ts +2 -2
- package/dist/core/objects/foreign-data-wrapper/server/server.model.js +20 -22
- package/dist/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.types.d.ts +1 -0
- package/dist/core/objects/foreign-data-wrapper/user-mapping/user-mapping.model.d.ts +2 -2
- package/dist/core/objects/foreign-data-wrapper/user-mapping/user-mapping.model.js +20 -22
- package/dist/core/objects/index/changes/index.types.d.ts +1 -0
- package/dist/core/objects/index/index.model.d.ts +4 -4
- package/dist/core/objects/index/index.model.js +9 -11
- package/dist/core/objects/language/changes/language.types.d.ts +1 -0
- package/dist/core/objects/language/language.diff.d.ts +2 -5
- package/dist/core/objects/language/language.diff.js +7 -39
- package/dist/core/objects/language/language.model.js +5 -7
- package/dist/core/objects/materialized-view/changes/materialized-view.types.d.ts +1 -0
- package/dist/core/objects/materialized-view/materialized-view.diff.d.ts +2 -8
- package/dist/core/objects/materialized-view/materialized-view.diff.js +16 -158
- package/dist/core/objects/materialized-view/materialized-view.model.d.ts +5 -5
- package/dist/core/objects/materialized-view/materialized-view.model.js +9 -11
- package/dist/core/objects/procedure/changes/procedure.alter.js +12 -12
- package/dist/core/objects/procedure/changes/procedure.types.d.ts +1 -0
- package/dist/core/objects/procedure/procedure.diff.d.ts +2 -8
- package/dist/core/objects/procedure/procedure.diff.js +16 -77
- package/dist/core/objects/procedure/procedure.model.d.ts +11 -11
- package/dist/core/objects/procedure/procedure.model.js +9 -11
- package/dist/core/objects/publication/changes/publication.alter.d.ts +0 -9
- package/dist/core/objects/publication/changes/publication.alter.js +0 -14
- package/dist/core/objects/publication/changes/publication.types.d.ts +3 -2
- package/dist/core/objects/publication/publication.diff.d.ts +2 -3
- package/dist/core/objects/publication/publication.diff.js +8 -13
- package/dist/core/objects/publication/publication.model.d.ts +2 -2
- package/dist/core/objects/publication/publication.model.js +7 -9
- package/dist/core/objects/rls-policy/changes/rls-policy.alter.js +3 -3
- package/dist/core/objects/rls-policy/changes/rls-policy.types.d.ts +1 -0
- package/dist/core/objects/rls-policy/rls-policy.model.d.ts +4 -4
- package/dist/core/objects/rls-policy/rls-policy.model.js +8 -10
- package/dist/core/objects/role/changes/role.types.d.ts +1 -0
- package/dist/core/objects/role/role.diff.js +22 -1
- package/dist/core/objects/role/role.model.d.ts +6 -5
- package/dist/core/objects/role/role.model.js +146 -40
- package/dist/core/objects/rule/changes/rule.types.d.ts +1 -0
- package/dist/core/objects/rule/rule.model.d.ts +3 -3
- package/dist/core/objects/rule/rule.model.js +7 -9
- package/dist/core/objects/schema/changes/schema.types.d.ts +1 -0
- package/dist/core/objects/schema/schema.diff.d.ts +2 -8
- package/dist/core/objects/schema/schema.diff.js +16 -77
- package/dist/core/objects/schema/schema.model.d.ts +2 -2
- package/dist/core/objects/schema/schema.model.js +9 -11
- package/dist/core/objects/sequence/changes/sequence.types.d.ts +1 -0
- package/dist/core/objects/sequence/sequence.diff.d.ts +2 -8
- package/dist/core/objects/sequence/sequence.diff.js +16 -79
- package/dist/core/objects/sequence/sequence.model.d.ts +2 -2
- package/dist/core/objects/sequence/sequence.model.js +9 -11
- package/dist/core/objects/subscription/changes/subscription.types.d.ts +1 -0
- package/dist/core/objects/subscription/subscription.diff.d.ts +2 -3
- package/dist/core/objects/subscription/subscription.model.d.ts +2 -2
- package/dist/core/objects/subscription/subscription.model.js +25 -20
- package/dist/core/objects/table/changes/table.create.js +3 -0
- package/dist/core/objects/table/changes/table.types.d.ts +1 -0
- package/dist/core/objects/table/table.diff.d.ts +2 -8
- package/dist/core/objects/table/table.diff.js +26 -157
- package/dist/core/objects/table/table.model.d.ts +27 -24
- package/dist/core/objects/table/table.model.js +12 -11
- package/dist/core/objects/trigger/changes/trigger.alter.js +23 -0
- package/dist/core/objects/trigger/changes/trigger.create.js +4 -5
- package/dist/core/objects/trigger/changes/trigger.types.d.ts +1 -0
- package/dist/core/objects/trigger/trigger.model.d.ts +11 -2
- package/dist/core/objects/trigger/trigger.model.js +22 -10
- package/dist/core/objects/type/composite-type/changes/composite-type.types.d.ts +1 -0
- package/dist/core/objects/type/composite-type/composite-type.diff.d.ts +2 -8
- package/dist/core/objects/type/composite-type/composite-type.diff.js +16 -77
- package/dist/core/objects/type/composite-type/composite-type.model.d.ts +5 -5
- package/dist/core/objects/type/composite-type/composite-type.model.js +10 -11
- package/dist/core/objects/type/enum/changes/enum.types.d.ts +1 -0
- package/dist/core/objects/type/enum/enum.diff.d.ts +2 -8
- package/dist/core/objects/type/enum/enum.diff.js +25 -112
- package/dist/core/objects/type/enum/enum.model.d.ts +2 -2
- package/dist/core/objects/type/enum/enum.model.js +23 -25
- package/dist/core/objects/type/range/changes/range.create.js +6 -3
- package/dist/core/objects/type/range/changes/range.types.d.ts +1 -0
- package/dist/core/objects/type/range/range.diff.d.ts +2 -8
- package/dist/core/objects/type/range/range.diff.js +16 -77
- package/dist/core/objects/type/range/range.model.d.ts +2 -2
- package/dist/core/objects/type/range/range.model.js +8 -10
- package/dist/core/objects/type/type.types.d.ts +1 -0
- package/dist/core/objects/view/changes/view.types.d.ts +1 -0
- package/dist/core/objects/view/view.diff.d.ts +2 -8
- package/dist/core/objects/view/view.diff.js +37 -168
- package/dist/core/objects/view/view.model.d.ts +20 -6
- package/dist/core/objects/view/view.model.js +11 -23
- package/dist/core/plan/apply.d.ts +2 -2
- package/dist/core/plan/apply.js +33 -16
- package/dist/core/plan/create.d.ts +20 -7
- package/dist/core/plan/create.js +153 -112
- package/dist/core/plan/serialize.js +16 -4
- package/dist/core/plan/sql-format/constants.d.ts +2 -0
- package/dist/core/plan/sql-format/constants.js +11 -0
- package/dist/core/plan/sql-format/fixtures.d.ts +2 -0
- package/dist/core/plan/sql-format/fixtures.js +2447 -0
- package/dist/core/plan/sql-format/format-utils.d.ts +37 -0
- package/dist/core/plan/sql-format/format-utils.js +274 -0
- package/dist/core/plan/sql-format/formatters.d.ts +20 -0
- package/dist/core/plan/sql-format/formatters.js +737 -0
- package/dist/core/plan/sql-format/index.d.ts +2 -0
- package/dist/core/plan/sql-format/index.js +98 -0
- package/dist/core/plan/sql-format/keyword-case.d.ts +2 -0
- package/dist/core/plan/sql-format/keyword-case.js +893 -0
- package/dist/core/plan/sql-format/protect.d.ts +3 -0
- package/dist/core/plan/sql-format/protect.js +269 -0
- package/dist/core/plan/sql-format/sql-scanner.d.ts +59 -0
- package/dist/core/plan/sql-format/sql-scanner.js +202 -0
- package/dist/core/plan/sql-format/tokenizer.d.ts +22 -0
- package/dist/core/plan/sql-format/tokenizer.js +118 -0
- package/dist/core/plan/sql-format/types.d.ts +28 -0
- package/dist/core/plan/sql-format/types.js +1 -0
- package/dist/core/plan/sql-format/wrap.d.ts +2 -0
- package/dist/core/plan/sql-format/wrap.js +165 -0
- package/dist/core/plan/sql-format.d.ts +2 -0
- package/dist/core/plan/sql-format.js +1 -0
- package/dist/core/plan/ssl-config.d.ts +32 -0
- package/dist/core/plan/ssl-config.js +115 -0
- package/dist/core/plan/statements.d.ts +2 -1
- package/dist/core/plan/statements.js +6 -2
- package/dist/core/plan/types.d.ts +6 -0
- package/dist/core/postgres-config.d.ts +47 -3
- package/dist/core/postgres-config.js +225 -39
- package/dist/core/sort/custom-constraints.js +1 -1
- package/dist/core/sort/graph-builder.js +10 -0
- package/dist/core/sort/logical-sort.js +34 -47
- package/dist/core/test-utils/assert-valid-sql.d.ts +10 -0
- package/dist/core/test-utils/assert-valid-sql.js +19 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.js +9 -1
- package/package.json +60 -22
- package/src/cli/app.ts +52 -0
- package/src/cli/bin/cli.ts +15 -0
- package/src/cli/commands/apply.ts +101 -0
- package/src/cli/commands/catalog-export.ts +78 -0
- package/src/cli/commands/declarative-apply.diagnostics.test.ts +77 -0
- package/src/cli/commands/declarative-apply.ts +380 -0
- package/src/cli/commands/declarative-export.ts +322 -0
- package/src/cli/commands/plan.ts +210 -0
- package/src/cli/commands/sync.ts +178 -0
- package/src/cli/exit-code.test.ts +19 -0
- package/src/cli/exit-code.ts +7 -0
- package/src/cli/formatters/index.ts +5 -0
- package/src/cli/formatters/tree/tree-builder.ts +380 -0
- package/src/cli/formatters/tree/tree-renderer.ts +372 -0
- package/src/cli/formatters/tree/tree.ts +238 -0
- package/src/cli/utils/apply-display.test.ts +348 -0
- package/src/cli/utils/apply-display.ts +238 -0
- package/src/cli/utils/export-display.test.ts +103 -0
- package/src/cli/utils/export-display.ts +275 -0
- package/src/cli/utils/integrations.test.ts +251 -0
- package/src/cli/utils/integrations.ts +170 -0
- package/src/cli/utils/resolve-input.test.ts +38 -0
- package/src/cli/utils/resolve-input.ts +17 -0
- package/src/cli/utils.ts +231 -0
- package/src/core/catalog-export/index.ts +20 -0
- package/src/core/catalog.diff.ts +247 -0
- package/src/core/catalog.model.test.ts +122 -0
- package/src/core/catalog.model.ts +510 -0
- package/src/core/catalog.snapshot.test.ts +486 -0
- package/src/core/catalog.snapshot.ts +289 -0
- package/src/core/change-utils.test.ts +61 -0
- package/src/core/change-utils.ts +73 -0
- package/src/core/change.types.ts +94 -0
- package/src/core/context.ts +26 -0
- package/src/core/declarative-apply/discover-sql.test.ts +103 -0
- package/src/core/declarative-apply/discover-sql.ts +107 -0
- package/src/core/declarative-apply/extract-catalog-providers.ts +220 -0
- package/src/core/declarative-apply/index.test.ts +67 -0
- package/src/core/declarative-apply/index.ts +205 -0
- package/src/core/declarative-apply/round-apply.test.ts +504 -0
- package/src/core/declarative-apply/round-apply.ts +562 -0
- package/src/core/depend.ts +1895 -0
- package/src/core/expand-replace-dependencies.test.ts +70 -0
- package/src/core/expand-replace-dependencies.ts +380 -0
- package/src/core/export/file-mapper.test.ts +816 -0
- package/src/core/export/file-mapper.ts +579 -0
- package/src/core/export/grouper.ts +108 -0
- package/src/core/export/index.ts +129 -0
- package/src/core/export/types.ts +104 -0
- package/src/core/fingerprint.ts +204 -0
- package/src/core/fixtures/empty-catalogs/postgres-15-16-baseline.json +287 -0
- package/src/core/integrations/filter/dsl.test.ts +450 -0
- package/src/core/integrations/filter/dsl.ts +305 -0
- package/src/core/integrations/filter/filter.types.ts +3 -0
- package/src/core/integrations/filter/flatten.test.ts +282 -0
- package/src/core/integrations/filter/flatten.ts +150 -0
- package/src/core/integrations/integration-dsl.ts +50 -0
- package/src/core/integrations/integration.types.ts +7 -0
- package/src/core/integrations/merge.test.ts +128 -0
- package/src/core/integrations/merge.ts +72 -0
- package/src/core/integrations/serialize/dsl.test.ts +91 -0
- package/src/core/integrations/serialize/dsl.ts +80 -0
- package/src/core/integrations/serialize/serialize.types.ts +3 -0
- package/src/core/integrations/supabase.ts +145 -0
- package/src/core/objects/aggregate/aggregate.diff.test.ts +215 -0
- package/src/core/objects/aggregate/aggregate.diff.ts +222 -0
- package/src/core/objects/aggregate/aggregate.model.ts +317 -0
- package/src/core/objects/aggregate/changes/aggregate.alter.test.ts +66 -0
- package/src/core/objects/aggregate/changes/aggregate.alter.ts +32 -0
- package/src/core/objects/aggregate/changes/aggregate.base.ts +20 -0
- package/src/core/objects/aggregate/changes/aggregate.comment.test.ts +89 -0
- package/src/core/objects/aggregate/changes/aggregate.comment.ts +62 -0
- package/src/core/objects/aggregate/changes/aggregate.create.test.ts +104 -0
- package/src/core/objects/aggregate/changes/aggregate.create.ts +329 -0
- package/src/core/objects/aggregate/changes/aggregate.drop.test.ts +82 -0
- package/src/core/objects/aggregate/changes/aggregate.drop.ts +32 -0
- package/src/core/objects/aggregate/changes/aggregate.privilege.test.ts +136 -0
- package/src/core/objects/aggregate/changes/aggregate.privilege.ts +146 -0
- package/src/core/objects/aggregate/changes/aggregate.types.ts +13 -0
- package/src/core/objects/base.change.ts +72 -0
- package/src/core/objects/base.default-privileges.ts +204 -0
- package/src/core/objects/base.diff.ts +20 -0
- package/src/core/objects/base.model.test.ts +43 -0
- package/src/core/objects/base.model.ts +85 -0
- package/src/core/objects/base.privilege-diff.ts +447 -0
- package/src/core/objects/base.privilege.ts +191 -0
- package/src/core/objects/collation/changes/collation.alter.test.ts +68 -0
- package/src/core/objects/collation/changes/collation.alter.ts +79 -0
- package/src/core/objects/collation/changes/collation.base.ts +20 -0
- package/src/core/objects/collation/changes/collation.comment.ts +68 -0
- package/src/core/objects/collation/changes/collation.create.test.ts +56 -0
- package/src/core/objects/collation/changes/collation.create.ts +106 -0
- package/src/core/objects/collation/changes/collation.drop.test.ts +31 -0
- package/src/core/objects/collation/changes/collation.drop.ts +37 -0
- package/src/core/objects/collation/changes/collation.types.ts +11 -0
- package/src/core/objects/collation/collation.diff.test.ts +97 -0
- package/src/core/objects/collation/collation.diff.ts +127 -0
- package/src/core/objects/collation/collation.model.ts +224 -0
- package/src/core/objects/diff-context.ts +16 -0
- package/src/core/objects/domain/changes/domain.alter.test.ts +335 -0
- package/src/core/objects/domain/changes/domain.alter.ts +286 -0
- package/src/core/objects/domain/changes/domain.base.ts +20 -0
- package/src/core/objects/domain/changes/domain.comment.ts +59 -0
- package/src/core/objects/domain/changes/domain.create.test.ts +95 -0
- package/src/core/objects/domain/changes/domain.create.ts +140 -0
- package/src/core/objects/domain/changes/domain.drop.test.ts +33 -0
- package/src/core/objects/domain/changes/domain.drop.ts +34 -0
- package/src/core/objects/domain/changes/domain.privilege.ts +171 -0
- package/src/core/objects/domain/changes/domain.types.ts +13 -0
- package/src/core/objects/domain/domain.diff.test.ts +284 -0
- package/src/core/objects/domain/domain.diff.ts +295 -0
- package/src/core/objects/domain/domain.model.ts +190 -0
- package/src/core/objects/event-trigger/changes/event-trigger.alter.test.ts +57 -0
- package/src/core/objects/event-trigger/changes/event-trigger.alter.ts +82 -0
- package/src/core/objects/event-trigger/changes/event-trigger.base.ts +20 -0
- package/src/core/objects/event-trigger/changes/event-trigger.comment.ts +66 -0
- package/src/core/objects/event-trigger/changes/event-trigger.create.test.ts +27 -0
- package/src/core/objects/event-trigger/changes/event-trigger.create.ts +72 -0
- package/src/core/objects/event-trigger/changes/event-trigger.drop.test.ts +25 -0
- package/src/core/objects/event-trigger/changes/event-trigger.drop.ts +34 -0
- package/src/core/objects/event-trigger/changes/event-trigger.types.ts +11 -0
- package/src/core/objects/event-trigger/event-trigger.diff.test.ts +131 -0
- package/src/core/objects/event-trigger/event-trigger.diff.ts +127 -0
- package/src/core/objects/event-trigger/event-trigger.model.ts +106 -0
- package/src/core/objects/extension/changes/extension.alter.test.ts +63 -0
- package/src/core/objects/extension/changes/extension.alter.ts +78 -0
- package/src/core/objects/extension/changes/extension.base.ts +20 -0
- package/src/core/objects/extension/changes/extension.comment.ts +64 -0
- package/src/core/objects/extension/changes/extension.create.test.ts +28 -0
- package/src/core/objects/extension/changes/extension.create.ts +63 -0
- package/src/core/objects/extension/changes/extension.drop.test.ts +26 -0
- package/src/core/objects/extension/changes/extension.drop.ts +34 -0
- package/src/core/objects/extension/changes/extension.types.ts +11 -0
- package/src/core/objects/extension/extension.diff.test.ts +42 -0
- package/src/core/objects/extension/extension.diff.ts +90 -0
- package/src/core/objects/extension/extension.model.test.ts +98 -0
- package/src/core/objects/extension/extension.model.ts +280 -0
- package/src/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.alter.test.ts +136 -0
- package/src/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.alter.ts +101 -0
- package/src/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.base.ts +20 -0
- package/src/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.comment.ts +72 -0
- package/src/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.create.test.ts +160 -0
- package/src/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.create.ts +95 -0
- package/src/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.drop.test.ts +26 -0
- package/src/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.drop.ts +36 -0
- package/src/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.privilege.ts +172 -0
- package/src/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.types.ts +13 -0
- package/src/core/objects/foreign-data-wrapper/foreign-data-wrapper/foreign-data-wrapper.diff.test.ts +286 -0
- package/src/core/objects/foreign-data-wrapper/foreign-data-wrapper/foreign-data-wrapper.diff.ts +271 -0
- package/src/core/objects/foreign-data-wrapper/foreign-data-wrapper/foreign-data-wrapper.model.ts +149 -0
- package/src/core/objects/foreign-data-wrapper/foreign-data-wrapper.types.ts +11 -0
- package/src/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.alter.test.ts +340 -0
- package/src/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.alter.ts +341 -0
- package/src/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.base.ts +20 -0
- package/src/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.comment.ts +72 -0
- package/src/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.create.test.ts +210 -0
- package/src/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.create.ts +81 -0
- package/src/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.drop.test.ts +46 -0
- package/src/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.drop.ts +37 -0
- package/src/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.privilege.ts +181 -0
- package/src/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.types.ts +13 -0
- package/src/core/objects/foreign-data-wrapper/foreign-table/foreign-table.diff.test.ts +813 -0
- package/src/core/objects/foreign-data-wrapper/foreign-table/foreign-table.diff.ts +343 -0
- package/src/core/objects/foreign-data-wrapper/foreign-table/foreign-table.model.ts +242 -0
- package/src/core/objects/foreign-data-wrapper/server/changes/server.alter.test.ts +183 -0
- package/src/core/objects/foreign-data-wrapper/server/changes/server.alter.ts +126 -0
- package/src/core/objects/foreign-data-wrapper/server/changes/server.base.ts +20 -0
- package/src/core/objects/foreign-data-wrapper/server/changes/server.comment.ts +60 -0
- package/src/core/objects/foreign-data-wrapper/server/changes/server.create.test.ts +144 -0
- package/src/core/objects/foreign-data-wrapper/server/changes/server.create.ts +81 -0
- package/src/core/objects/foreign-data-wrapper/server/changes/server.drop.test.ts +27 -0
- package/src/core/objects/foreign-data-wrapper/server/changes/server.drop.ts +34 -0
- package/src/core/objects/foreign-data-wrapper/server/changes/server.privilege.ts +164 -0
- package/src/core/objects/foreign-data-wrapper/server/changes/server.types.ts +13 -0
- package/src/core/objects/foreign-data-wrapper/server/server.diff.test.ts +262 -0
- package/src/core/objects/foreign-data-wrapper/server/server.diff.ts +247 -0
- package/src/core/objects/foreign-data-wrapper/server/server.model.ts +133 -0
- package/src/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.alter.test.ts +91 -0
- package/src/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.alter.ts +69 -0
- package/src/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.base.ts +20 -0
- package/src/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.create.test.ts +96 -0
- package/src/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.create.ts +66 -0
- package/src/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.drop.test.ts +60 -0
- package/src/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.drop.ts +40 -0
- package/src/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.types.ts +9 -0
- package/src/core/objects/foreign-data-wrapper/user-mapping/user-mapping.diff.test.ts +77 -0
- package/src/core/objects/foreign-data-wrapper/user-mapping/user-mapping.diff.ts +107 -0
- package/src/core/objects/foreign-data-wrapper/user-mapping/user-mapping.model.ts +96 -0
- package/src/core/objects/index/changes/index.alter.test.ts +209 -0
- package/src/core/objects/index/changes/index.alter.ts +144 -0
- package/src/core/objects/index/changes/index.base.ts +20 -0
- package/src/core/objects/index/changes/index.comment.ts +63 -0
- package/src/core/objects/index/changes/index.create.test.ts +69 -0
- package/src/core/objects/index/changes/index.create.ts +68 -0
- package/src/core/objects/index/changes/index.drop.test.ts +47 -0
- package/src/core/objects/index/changes/index.drop.ts +34 -0
- package/src/core/objects/index/changes/index.types.ts +7 -0
- package/src/core/objects/index/changes/utils.ts +16 -0
- package/src/core/objects/index/index.diff.test.ts +153 -0
- package/src/core/objects/index/index.diff.ts +243 -0
- package/src/core/objects/index/index.model.ts +370 -0
- package/src/core/objects/language/changes/language.alter.test.ts +36 -0
- package/src/core/objects/language/changes/language.alter.ts +53 -0
- package/src/core/objects/language/changes/language.base.ts +20 -0
- package/src/core/objects/language/changes/language.comment.ts +58 -0
- package/src/core/objects/language/changes/language.create.test.ts +30 -0
- package/src/core/objects/language/changes/language.create.ts +104 -0
- package/src/core/objects/language/changes/language.drop.test.ts +28 -0
- package/src/core/objects/language/changes/language.drop.ts +39 -0
- package/src/core/objects/language/changes/language.privilege.ts +172 -0
- package/src/core/objects/language/changes/language.types.ts +13 -0
- package/src/core/objects/language/language.diff.test.ts +135 -0
- package/src/core/objects/language/language.diff.ts +144 -0
- package/src/core/objects/language/language.model.ts +150 -0
- package/src/core/objects/materialized-view/changes/materialized-view.alter.test.ts +130 -0
- package/src/core/objects/materialized-view/changes/materialized-view.alter.ts +113 -0
- package/src/core/objects/materialized-view/changes/materialized-view.base.ts +20 -0
- package/src/core/objects/materialized-view/changes/materialized-view.comment.ts +176 -0
- package/src/core/objects/materialized-view/changes/materialized-view.create.test.ts +69 -0
- package/src/core/objects/materialized-view/changes/materialized-view.create.ts +93 -0
- package/src/core/objects/materialized-view/changes/materialized-view.drop.test.ts +37 -0
- package/src/core/objects/materialized-view/changes/materialized-view.drop.ts +60 -0
- package/src/core/objects/materialized-view/changes/materialized-view.privilege.ts +212 -0
- package/src/core/objects/materialized-view/changes/materialized-view.types.ts +13 -0
- package/src/core/objects/materialized-view/materialized-view.diff.test.ts +264 -0
- package/src/core/objects/materialized-view/materialized-view.diff.ts +301 -0
- package/src/core/objects/materialized-view/materialized-view.model.ts +258 -0
- package/src/core/objects/procedure/changes/procedure.alter.test.ts +1077 -0
- package/src/core/objects/procedure/changes/procedure.alter.ts +290 -0
- package/src/core/objects/procedure/changes/procedure.base.ts +20 -0
- package/src/core/objects/procedure/changes/procedure.comment.ts +70 -0
- package/src/core/objects/procedure/changes/procedure.create.test.ts +51 -0
- package/src/core/objects/procedure/changes/procedure.create.ts +92 -0
- package/src/core/objects/procedure/changes/procedure.drop.test.ts +90 -0
- package/src/core/objects/procedure/changes/procedure.drop.ts +49 -0
- package/src/core/objects/procedure/changes/procedure.privilege.ts +188 -0
- package/src/core/objects/procedure/changes/procedure.types.ts +13 -0
- package/src/core/objects/procedure/procedure.diff.test.ts +161 -0
- package/src/core/objects/procedure/procedure.diff.ts +341 -0
- package/src/core/objects/procedure/procedure.model.ts +264 -0
- package/src/core/objects/procedure/utils.ts +58 -0
- package/src/core/objects/publication/changes/publication.alter.test.ts +217 -0
- package/src/core/objects/publication/changes/publication.alter.ts +225 -0
- package/src/core/objects/publication/changes/publication.base.ts +20 -0
- package/src/core/objects/publication/changes/publication.comment.test.ts +73 -0
- package/src/core/objects/publication/changes/publication.comment.ts +64 -0
- package/src/core/objects/publication/changes/publication.create.test.ts +90 -0
- package/src/core/objects/publication/changes/publication.create.ts +82 -0
- package/src/core/objects/publication/changes/publication.drop.test.ts +48 -0
- package/src/core/objects/publication/changes/publication.drop.ts +29 -0
- package/src/core/objects/publication/changes/publication.types.ts +25 -0
- package/src/core/objects/publication/publication.diff.test.ts +297 -0
- package/src/core/objects/publication/publication.diff.ts +247 -0
- package/src/core/objects/publication/publication.model.ts +206 -0
- package/src/core/objects/publication/utils.ts +55 -0
- package/src/core/objects/rls-policy/changes/rls-policy.alter.test.ts +267 -0
- package/src/core/objects/rls-policy/changes/rls-policy.alter.ts +128 -0
- package/src/core/objects/rls-policy/changes/rls-policy.base.ts +20 -0
- package/src/core/objects/rls-policy/changes/rls-policy.comment.ts +69 -0
- package/src/core/objects/rls-policy/changes/rls-policy.create.test.ts +81 -0
- package/src/core/objects/rls-policy/changes/rls-policy.create.ts +100 -0
- package/src/core/objects/rls-policy/changes/rls-policy.drop.test.ts +31 -0
- package/src/core/objects/rls-policy/changes/rls-policy.drop.ts +39 -0
- package/src/core/objects/rls-policy/changes/rls-policy.types.ts +11 -0
- package/src/core/objects/rls-policy/rls-policy.diff.test.ts +79 -0
- package/src/core/objects/rls-policy/rls-policy.diff.ts +121 -0
- package/src/core/objects/rls-policy/rls-policy.model.ts +140 -0
- package/src/core/objects/role/changes/role.alter.test.ts +362 -0
- package/src/core/objects/role/changes/role.alter.ts +110 -0
- package/src/core/objects/role/changes/role.base.ts +24 -0
- package/src/core/objects/role/changes/role.comment.ts +55 -0
- package/src/core/objects/role/changes/role.create.test.ts +56 -0
- package/src/core/objects/role/changes/role.create.ts +102 -0
- package/src/core/objects/role/changes/role.drop.test.ts +32 -0
- package/src/core/objects/role/changes/role.drop.ts +34 -0
- package/src/core/objects/role/changes/role.privilege.ts +376 -0
- package/src/core/objects/role/changes/role.types.ts +13 -0
- package/src/core/objects/role/role.diff.test.ts +279 -0
- package/src/core/objects/role/role.diff.ts +499 -0
- package/src/core/objects/role/role.model.ts +452 -0
- package/src/core/objects/rule/changes/rule.alter.test.ts +82 -0
- package/src/core/objects/rule/changes/rule.alter.ts +72 -0
- package/src/core/objects/rule/changes/rule.base.ts +20 -0
- package/src/core/objects/rule/changes/rule.comment.test.ts +58 -0
- package/src/core/objects/rule/changes/rule.comment.ts +62 -0
- package/src/core/objects/rule/changes/rule.create.test.ts +63 -0
- package/src/core/objects/rule/changes/rule.create.ts +42 -0
- package/src/core/objects/rule/changes/rule.drop.test.ts +40 -0
- package/src/core/objects/rule/changes/rule.drop.ts +29 -0
- package/src/core/objects/rule/changes/rule.types.ts +13 -0
- package/src/core/objects/rule/rule.diff.test.ts +132 -0
- package/src/core/objects/rule/rule.diff.ts +79 -0
- package/src/core/objects/rule/rule.model.ts +173 -0
- package/src/core/objects/schema/changes/schema.alter.test.ts +31 -0
- package/src/core/objects/schema/changes/schema.alter.ts +45 -0
- package/src/core/objects/schema/changes/schema.base.ts +20 -0
- package/src/core/objects/schema/changes/schema.comment.ts +56 -0
- package/src/core/objects/schema/changes/schema.create.test.ts +25 -0
- package/src/core/objects/schema/changes/schema.create.ts +47 -0
- package/src/core/objects/schema/changes/schema.drop.test.ts +23 -0
- package/src/core/objects/schema/changes/schema.drop.ts +34 -0
- package/src/core/objects/schema/changes/schema.privilege.ts +175 -0
- package/src/core/objects/schema/changes/schema.types.ts +13 -0
- package/src/core/objects/schema/schema.diff.test.ts +42 -0
- package/src/core/objects/schema/schema.diff.ts +146 -0
- package/src/core/objects/schema/schema.model.ts +107 -0
- package/src/core/objects/sequence/changes/sequence.alter.test.ts +157 -0
- package/src/core/objects/sequence/changes/sequence.alter.ts +115 -0
- package/src/core/objects/sequence/changes/sequence.base.ts +20 -0
- package/src/core/objects/sequence/changes/sequence.comment.ts +60 -0
- package/src/core/objects/sequence/changes/sequence.create.test.ts +89 -0
- package/src/core/objects/sequence/changes/sequence.create.ts +111 -0
- package/src/core/objects/sequence/changes/sequence.drop.test.ts +35 -0
- package/src/core/objects/sequence/changes/sequence.drop.ts +37 -0
- package/src/core/objects/sequence/changes/sequence.privilege.ts +179 -0
- package/src/core/objects/sequence/changes/sequence.types.ts +13 -0
- package/src/core/objects/sequence/sequence.diff.test.ts +255 -0
- package/src/core/objects/sequence/sequence.diff.ts +294 -0
- package/src/core/objects/sequence/sequence.model.ts +185 -0
- package/src/core/objects/subscription/changes/subscription.alter.test.ts +134 -0
- package/src/core/objects/subscription/changes/subscription.alter.ts +110 -0
- package/src/core/objects/subscription/changes/subscription.base.ts +20 -0
- package/src/core/objects/subscription/changes/subscription.comment.test.ts +70 -0
- package/src/core/objects/subscription/changes/subscription.comment.ts +64 -0
- package/src/core/objects/subscription/changes/subscription.create.test.ts +80 -0
- package/src/core/objects/subscription/changes/subscription.create.ts +69 -0
- package/src/core/objects/subscription/changes/subscription.drop.test.ts +48 -0
- package/src/core/objects/subscription/changes/subscription.drop.ts +20 -0
- package/src/core/objects/subscription/changes/subscription.types.ts +23 -0
- package/src/core/objects/subscription/subscription.diff.test.ts +237 -0
- package/src/core/objects/subscription/subscription.diff.ts +242 -0
- package/src/core/objects/subscription/subscription.model.ts +190 -0
- package/src/core/objects/subscription/utils.ts +156 -0
- package/src/core/objects/table/changes/table.alter.test.ts +846 -0
- package/src/core/objects/table/changes/table.alter.ts +806 -0
- package/src/core/objects/table/changes/table.base.ts +20 -0
- package/src/core/objects/table/changes/table.comment.ts +266 -0
- package/src/core/objects/table/changes/table.create.test.ts +188 -0
- package/src/core/objects/table/changes/table.create.ts +192 -0
- package/src/core/objects/table/changes/table.drop.test.ts +36 -0
- package/src/core/objects/table/changes/table.drop.ts +45 -0
- package/src/core/objects/table/changes/table.privilege.ts +200 -0
- package/src/core/objects/table/changes/table.types.ts +13 -0
- package/src/core/objects/table/table.diff.test.ts +868 -0
- package/src/core/objects/table/table.diff.ts +817 -0
- package/src/core/objects/table/table.model.ts +460 -0
- package/src/core/objects/trigger/changes/trigger.alter.test.ts +50 -0
- package/src/core/objects/trigger/changes/trigger.alter.ts +76 -0
- package/src/core/objects/trigger/changes/trigger.base.ts +20 -0
- package/src/core/objects/trigger/changes/trigger.comment.ts +64 -0
- package/src/core/objects/trigger/changes/trigger.create.test.ts +47 -0
- package/src/core/objects/trigger/changes/trigger.create.ts +88 -0
- package/src/core/objects/trigger/changes/trigger.drop.test.ts +47 -0
- package/src/core/objects/trigger/changes/trigger.drop.ts +39 -0
- package/src/core/objects/trigger/changes/trigger.types.ts +11 -0
- package/src/core/objects/trigger/trigger.diff.test.ts +84 -0
- package/src/core/objects/trigger/trigger.diff.ts +116 -0
- package/src/core/objects/trigger/trigger.model.ts +264 -0
- package/src/core/objects/type/composite-type/changes/composite-type.alter.test.ts +208 -0
- package/src/core/objects/type/composite-type/changes/composite-type.alter.ts +174 -0
- package/src/core/objects/type/composite-type/changes/composite-type.base.ts +20 -0
- package/src/core/objects/type/composite-type/changes/composite-type.comment.ts +145 -0
- package/src/core/objects/type/composite-type/changes/composite-type.create.test.ts +106 -0
- package/src/core/objects/type/composite-type/changes/composite-type.create.ts +95 -0
- package/src/core/objects/type/composite-type/changes/composite-type.drop.test.ts +36 -0
- package/src/core/objects/type/composite-type/changes/composite-type.drop.ts +37 -0
- package/src/core/objects/type/composite-type/changes/composite-type.privilege.ts +175 -0
- package/src/core/objects/type/composite-type/changes/composite-type.types.ts +13 -0
- package/src/core/objects/type/composite-type/composite-type.diff.test.ts +269 -0
- package/src/core/objects/type/composite-type/composite-type.diff.ts +310 -0
- package/src/core/objects/type/composite-type/composite-type.model.ts +253 -0
- package/src/core/objects/type/enum/changes/enum.alter.test.ts +113 -0
- package/src/core/objects/type/enum/changes/enum.alter.ts +91 -0
- package/src/core/objects/type/enum/changes/enum.base.ts +20 -0
- package/src/core/objects/type/enum/changes/enum.comment.ts +64 -0
- package/src/core/objects/type/enum/changes/enum.create.test.ts +31 -0
- package/src/core/objects/type/enum/changes/enum.create.ts +56 -0
- package/src/core/objects/type/enum/changes/enum.drop.test.ts +28 -0
- package/src/core/objects/type/enum/changes/enum.drop.ts +34 -0
- package/src/core/objects/type/enum/changes/enum.privilege.ts +175 -0
- package/src/core/objects/type/enum/changes/enum.types.ts +13 -0
- package/src/core/objects/type/enum/enum.diff.test.ts +372 -0
- package/src/core/objects/type/enum/enum.diff.ts +308 -0
- package/src/core/objects/type/enum/enum.model.ts +194 -0
- package/src/core/objects/type/range/changes/range.alter.test.ts +29 -0
- package/src/core/objects/type/range/changes/range.alter.ts +51 -0
- package/src/core/objects/type/range/changes/range.base.ts +20 -0
- package/src/core/objects/type/range/changes/range.comment.ts +64 -0
- package/src/core/objects/type/range/changes/range.create.test.ts +54 -0
- package/src/core/objects/type/range/changes/range.create.ts +155 -0
- package/src/core/objects/type/range/changes/range.drop.test.ts +28 -0
- package/src/core/objects/type/range/changes/range.drop.ts +34 -0
- package/src/core/objects/type/range/changes/range.privilege.ts +175 -0
- package/src/core/objects/type/range/changes/range.types.ts +13 -0
- package/src/core/objects/type/range/range.diff.test.ts +147 -0
- package/src/core/objects/type/range/range.diff.ts +197 -0
- package/src/core/objects/type/range/range.model.ts +187 -0
- package/src/core/objects/type/type.types.ts +6 -0
- package/src/core/objects/utils.ts +171 -0
- package/src/core/objects/view/changes/view.alter.test.ts +115 -0
- package/src/core/objects/view/changes/view.alter.ts +112 -0
- package/src/core/objects/view/changes/view.base.ts +20 -0
- package/src/core/objects/view/changes/view.comment.ts +59 -0
- package/src/core/objects/view/changes/view.create.test.ts +70 -0
- package/src/core/objects/view/changes/view.create.ts +73 -0
- package/src/core/objects/view/changes/view.drop.test.ts +37 -0
- package/src/core/objects/view/changes/view.drop.ts +40 -0
- package/src/core/objects/view/changes/view.privilege.ts +200 -0
- package/src/core/objects/view/changes/view.types.ts +13 -0
- package/src/core/objects/view/view.diff.test.ts +269 -0
- package/src/core/objects/view/view.diff.ts +230 -0
- package/src/core/objects/view/view.model.ts +262 -0
- package/src/core/plan/apply.ts +172 -0
- package/src/core/plan/create.ts +384 -0
- package/src/core/plan/hierarchy.ts +574 -0
- package/src/core/plan/index.ts +29 -0
- package/src/core/plan/io.ts +20 -0
- package/src/core/plan/risk.ts +48 -0
- package/src/core/plan/serialize.test.ts +317 -0
- package/src/core/plan/serialize.ts +209 -0
- package/src/core/plan/sql-format/constants.ts +13 -0
- package/src/core/plan/sql-format/fixtures.ts +2803 -0
- package/src/core/plan/sql-format/format-comment-literals.test.ts +96 -0
- package/src/core/plan/sql-format/format-functions.test.ts +127 -0
- package/src/core/plan/sql-format/format-lowercase-coverage.test.ts +119 -0
- package/src/core/plan/sql-format/format-off.test.ts +806 -0
- package/src/core/plan/sql-format/format-pretty-lower-leading.test.ts +1061 -0
- package/src/core/plan/sql-format/format-pretty-narrow.test.ts +1279 -0
- package/src/core/plan/sql-format/format-pretty-preserve.test.ts +1057 -0
- package/src/core/plan/sql-format/format-pretty-upper.test.ts +1048 -0
- package/src/core/plan/sql-format/format-stress.test.ts +616 -0
- package/src/core/plan/sql-format/format-utils.test.ts +91 -0
- package/src/core/plan/sql-format/format-utils.ts +391 -0
- package/src/core/plan/sql-format/formatters.ts +921 -0
- package/src/core/plan/sql-format/index.ts +149 -0
- package/src/core/plan/sql-format/keyword-case.test.ts +118 -0
- package/src/core/plan/sql-format/keyword-case.ts +1120 -0
- package/src/core/plan/sql-format/protect.test.ts +127 -0
- package/src/core/plan/sql-format/protect.ts +337 -0
- package/src/core/plan/sql-format/sql-scanner.test.ts +240 -0
- package/src/core/plan/sql-format/sql-scanner.ts +252 -0
- package/src/core/plan/sql-format/tokenizer.test.ts +68 -0
- package/src/core/plan/sql-format/tokenizer.ts +152 -0
- package/src/core/plan/sql-format/types.ts +31 -0
- package/src/core/plan/sql-format/wrap.test.ts +119 -0
- package/src/core/plan/sql-format/wrap.ts +196 -0
- package/src/core/plan/sql-format.ts +2 -0
- package/src/core/plan/ssl-config.ts +172 -0
- package/src/core/plan/statements.ts +22 -0
- package/src/core/plan/types.ts +171 -0
- package/src/core/postgres-config.ts +293 -0
- package/src/core/sort/custom-constraints.ts +161 -0
- package/src/core/sort/debug-visualization.ts +239 -0
- package/src/core/sort/dependency-filter.ts +224 -0
- package/src/core/sort/graph-builder.ts +235 -0
- package/src/core/sort/graph-utils.ts +51 -0
- package/src/core/sort/logical-sort.test.ts +371 -0
- package/src/core/sort/logical-sort.ts +573 -0
- package/src/core/sort/sort-changes.ts +234 -0
- package/src/core/sort/topological-sort.test.ts +275 -0
- package/src/core/sort/topological-sort.ts +184 -0
- package/src/core/sort/types.ts +112 -0
- package/src/core/sort/utils.ts +69 -0
- package/src/core/test-utils/assert-valid-sql.ts +20 -0
- package/src/index.ts +41 -0
- package/src/typedoc.ts +248 -0
- package/dist/core/integrations/filter/extractors.d.ts +0 -12
- package/dist/core/integrations/filter/extractors.js +0 -136
|
@@ -0,0 +1,1057 @@
|
|
|
1
|
+
import { describe, expect, test } from "bun:test";
|
|
2
|
+
import { renderScript } from "./fixtures.ts";
|
|
3
|
+
|
|
4
|
+
describe("sql formatting snapshots", () => {
|
|
5
|
+
test("format-pretty-preserve", () => {
|
|
6
|
+
const output = [
|
|
7
|
+
"-- format: { keywordCase: 'preserve', alignColumns: false, alignKeyValues: false, indent: 3 }",
|
|
8
|
+
renderScript({
|
|
9
|
+
keywordCase: "preserve",
|
|
10
|
+
alignColumns: false,
|
|
11
|
+
alignKeyValues: false,
|
|
12
|
+
indent: 3,
|
|
13
|
+
}),
|
|
14
|
+
]
|
|
15
|
+
.filter(Boolean)
|
|
16
|
+
.join("\n");
|
|
17
|
+
expect(output).toMatchInlineSnapshot(`
|
|
18
|
+
"-- format: { keywordCase: 'preserve', alignColumns: false, alignKeyValues: false, indent: 3 }
|
|
19
|
+
-- schema.create
|
|
20
|
+
CREATE SCHEMA application_schema_with_very_long_name_for_wrapping_tests AUTHORIZATION admin;
|
|
21
|
+
|
|
22
|
+
-- schema.drop
|
|
23
|
+
DROP SCHEMA application_schema_with_very_long_name_for_wrapping_tests;
|
|
24
|
+
|
|
25
|
+
-- schema.alter.change_owner
|
|
26
|
+
ALTER SCHEMA application_schema_with_very_long_name_for_wrapping_tests OWNER TO new_admin;
|
|
27
|
+
|
|
28
|
+
-- schema.comment
|
|
29
|
+
COMMENT ON SCHEMA application_schema_with_very_long_name_for_wrapping_tests IS
|
|
30
|
+
'application schema';
|
|
31
|
+
|
|
32
|
+
-- schema.drop_comment
|
|
33
|
+
COMMENT ON SCHEMA application_schema_with_very_long_name_for_wrapping_tests IS NULL;
|
|
34
|
+
|
|
35
|
+
-- schema.grant
|
|
36
|
+
GRANT ALL ON SCHEMA application_schema_with_very_long_name_for_wrapping_tests TO app_user
|
|
37
|
+
WITH GRANT OPTION;
|
|
38
|
+
|
|
39
|
+
-- schema.revoke
|
|
40
|
+
REVOKE CREATE ON SCHEMA application_schema_with_very_long_name_for_wrapping_tests FROM app_user;
|
|
41
|
+
|
|
42
|
+
-- schema.revoke_grant_option
|
|
43
|
+
REVOKE GRANT OPTION FOR USAGE
|
|
44
|
+
ON SCHEMA application_schema_with_very_long_name_for_wrapping_tests FROM app_user;
|
|
45
|
+
|
|
46
|
+
-- extension.create
|
|
47
|
+
CREATE EXTENSION pgcrypto WITH SCHEMA extensions;
|
|
48
|
+
|
|
49
|
+
-- extension.drop
|
|
50
|
+
DROP EXTENSION pgcrypto;
|
|
51
|
+
|
|
52
|
+
-- extension.alter.update_version
|
|
53
|
+
ALTER EXTENSION pgcrypto UPDATE TO '1.4';
|
|
54
|
+
|
|
55
|
+
-- extension.alter.set_schema
|
|
56
|
+
ALTER EXTENSION pgcrypto SET SCHEMA public;
|
|
57
|
+
|
|
58
|
+
-- extension.comment
|
|
59
|
+
COMMENT ON EXTENSION pgcrypto IS 'cryptographic functions';
|
|
60
|
+
|
|
61
|
+
-- extension.drop_comment
|
|
62
|
+
COMMENT ON EXTENSION pgcrypto IS NULL;
|
|
63
|
+
|
|
64
|
+
-- domain.create
|
|
65
|
+
CREATE DOMAIN public.test_domain_all AS custom.text[][]
|
|
66
|
+
COLLATE mycoll
|
|
67
|
+
DEFAULT 'hello'
|
|
68
|
+
NOT NULL
|
|
69
|
+
CHECK (VALUE <> '');
|
|
70
|
+
|
|
71
|
+
-- domain.drop
|
|
72
|
+
DROP DOMAIN public.test_domain_all;
|
|
73
|
+
|
|
74
|
+
-- domain.alter.set_default
|
|
75
|
+
ALTER DOMAIN public.test_domain_all
|
|
76
|
+
SET DEFAULT 'world';
|
|
77
|
+
|
|
78
|
+
-- domain.alter.drop_default
|
|
79
|
+
ALTER DOMAIN public.test_domain_all
|
|
80
|
+
DROP DEFAULT;
|
|
81
|
+
|
|
82
|
+
-- domain.alter.set_not_null
|
|
83
|
+
ALTER DOMAIN public.test_domain_all
|
|
84
|
+
SET NOT NULL;
|
|
85
|
+
|
|
86
|
+
-- domain.alter.drop_not_null
|
|
87
|
+
ALTER DOMAIN public.test_domain_all
|
|
88
|
+
DROP NOT NULL;
|
|
89
|
+
|
|
90
|
+
-- domain.alter.change_owner
|
|
91
|
+
ALTER DOMAIN public.test_domain_all
|
|
92
|
+
OWNER TO new_owner;
|
|
93
|
+
|
|
94
|
+
-- domain.alter.add_constraint
|
|
95
|
+
ALTER DOMAIN public.test_domain_all
|
|
96
|
+
ADD CONSTRAINT domain_len_chk CHECK (char_length(VALUE) <= 255) NOT VALID;
|
|
97
|
+
|
|
98
|
+
-- domain.alter.drop_constraint
|
|
99
|
+
ALTER DOMAIN public.test_domain_all
|
|
100
|
+
DROP CONSTRAINT domain_chk;
|
|
101
|
+
|
|
102
|
+
-- domain.alter.validate_constraint
|
|
103
|
+
ALTER DOMAIN public.test_domain_all
|
|
104
|
+
VALIDATE CONSTRAINT domain_len_chk;
|
|
105
|
+
|
|
106
|
+
-- domain.comment
|
|
107
|
+
COMMENT ON DOMAIN public.test_domain_all IS 'domain comment';
|
|
108
|
+
|
|
109
|
+
-- domain.drop_comment
|
|
110
|
+
COMMENT ON DOMAIN public.test_domain_all IS NULL;
|
|
111
|
+
|
|
112
|
+
-- domain.grant
|
|
113
|
+
GRANT ALL ON DOMAIN public.test_domain_all TO app_user;
|
|
114
|
+
|
|
115
|
+
-- domain.revoke
|
|
116
|
+
REVOKE ALL ON DOMAIN public.test_domain_all FROM app_user;
|
|
117
|
+
|
|
118
|
+
-- domain.revoke_grant_option
|
|
119
|
+
REVOKE GRANT OPTION FOR ALL ON DOMAIN public.test_domain_all FROM app_user;
|
|
120
|
+
|
|
121
|
+
-- type.enum.create
|
|
122
|
+
CREATE TYPE public.test_enum AS ENUM (
|
|
123
|
+
'value1',
|
|
124
|
+
'value2',
|
|
125
|
+
'value3'
|
|
126
|
+
);
|
|
127
|
+
|
|
128
|
+
-- type.enum.drop
|
|
129
|
+
DROP TYPE public.test_enum;
|
|
130
|
+
|
|
131
|
+
-- type.enum.alter.change_owner
|
|
132
|
+
ALTER TYPE public.test_enum OWNER TO new_owner;
|
|
133
|
+
|
|
134
|
+
-- type.enum.alter.add_value
|
|
135
|
+
ALTER TYPE public.test_enum ADD VALUE 'value4' AFTER 'value2';
|
|
136
|
+
|
|
137
|
+
-- type.enum.comment
|
|
138
|
+
COMMENT ON TYPE public.test_enum IS 'enum comment';
|
|
139
|
+
|
|
140
|
+
-- type.enum.drop_comment
|
|
141
|
+
COMMENT ON TYPE public.test_enum IS NULL;
|
|
142
|
+
|
|
143
|
+
-- type.enum.grant
|
|
144
|
+
GRANT ALL ON TYPE public.test_enum TO app_user;
|
|
145
|
+
|
|
146
|
+
-- type.enum.revoke
|
|
147
|
+
REVOKE ALL ON TYPE public.test_enum FROM app_user;
|
|
148
|
+
|
|
149
|
+
-- type.enum.revoke_grant_option
|
|
150
|
+
REVOKE GRANT OPTION FOR ALL ON TYPE public.test_enum FROM app_user;
|
|
151
|
+
|
|
152
|
+
-- type.composite.create
|
|
153
|
+
CREATE TYPE public.test_type AS (
|
|
154
|
+
id integer,
|
|
155
|
+
name text COLLATE "en_US"
|
|
156
|
+
);
|
|
157
|
+
|
|
158
|
+
-- type.composite.drop
|
|
159
|
+
DROP TYPE public.test_type;
|
|
160
|
+
|
|
161
|
+
-- type.composite.alter.change_owner
|
|
162
|
+
ALTER TYPE public.test_type OWNER TO new_owner;
|
|
163
|
+
|
|
164
|
+
-- type.composite.alter.add_attribute
|
|
165
|
+
ALTER TYPE public.test_type ADD ATTRIBUTE age integer;
|
|
166
|
+
|
|
167
|
+
-- type.composite.alter.drop_attribute
|
|
168
|
+
ALTER TYPE public.test_type DROP ATTRIBUTE name;
|
|
169
|
+
|
|
170
|
+
-- type.composite.alter.alter_attr_type
|
|
171
|
+
ALTER TYPE public.test_type ALTER ATTRIBUTE name TYPE varchar(255) COLLATE "C";
|
|
172
|
+
|
|
173
|
+
-- type.composite.comment
|
|
174
|
+
COMMENT ON TYPE public.test_type IS 'composite comment';
|
|
175
|
+
|
|
176
|
+
-- type.composite.drop_comment
|
|
177
|
+
COMMENT ON TYPE public.test_type IS NULL;
|
|
178
|
+
|
|
179
|
+
-- type.composite.attr_comment
|
|
180
|
+
COMMENT ON COLUMN public.test_type.id IS 'attr comment';
|
|
181
|
+
|
|
182
|
+
-- type.composite.drop_attr_comment
|
|
183
|
+
COMMENT ON COLUMN public.test_type.id IS NULL;
|
|
184
|
+
|
|
185
|
+
-- type.composite.grant
|
|
186
|
+
GRANT ALL ON TYPE public.test_type TO app_user;
|
|
187
|
+
|
|
188
|
+
-- type.composite.revoke
|
|
189
|
+
REVOKE ALL ON TYPE public.test_type FROM app_user;
|
|
190
|
+
|
|
191
|
+
-- type.composite.revoke_grant_option
|
|
192
|
+
REVOKE GRANT OPTION FOR ALL ON TYPE public.test_type FROM app_user;
|
|
193
|
+
|
|
194
|
+
-- type.range.create
|
|
195
|
+
CREATE TYPE public.daterange_custom AS RANGE (
|
|
196
|
+
SUBTYPE = date,
|
|
197
|
+
SUBTYPE_OPCLASS = public.date_ops,
|
|
198
|
+
COLLATION = "en_US",
|
|
199
|
+
CANONICAL = public.canon_fn,
|
|
200
|
+
SUBTYPE_DIFF = public.diff_fn
|
|
201
|
+
);
|
|
202
|
+
|
|
203
|
+
-- type.range.drop
|
|
204
|
+
DROP TYPE public.daterange_custom;
|
|
205
|
+
|
|
206
|
+
-- type.range.alter.change_owner
|
|
207
|
+
ALTER TYPE public.daterange_custom OWNER TO new_owner;
|
|
208
|
+
|
|
209
|
+
-- type.range.comment
|
|
210
|
+
COMMENT ON TYPE public.daterange_custom IS 'range comment';
|
|
211
|
+
|
|
212
|
+
-- type.range.drop_comment
|
|
213
|
+
COMMENT ON TYPE public.daterange_custom IS NULL;
|
|
214
|
+
|
|
215
|
+
-- type.range.grant
|
|
216
|
+
GRANT ALL ON TYPE public.daterange_custom TO app_user;
|
|
217
|
+
|
|
218
|
+
-- type.range.revoke
|
|
219
|
+
REVOKE ALL ON TYPE public.daterange_custom FROM app_user;
|
|
220
|
+
|
|
221
|
+
-- type.range.revoke_grant_option
|
|
222
|
+
REVOKE GRANT OPTION FOR ALL ON TYPE public.daterange_custom FROM app_user;
|
|
223
|
+
|
|
224
|
+
-- collation.create
|
|
225
|
+
CREATE COLLATION public.test (
|
|
226
|
+
LOCALE = 'en_US',
|
|
227
|
+
LC_COLLATE = 'en_US',
|
|
228
|
+
LC_CTYPE = 'en_US',
|
|
229
|
+
PROVIDER = icu,
|
|
230
|
+
DETERMINISTIC = false,
|
|
231
|
+
RULES = '& A < a <<< à',
|
|
232
|
+
VERSION = '1.0'
|
|
233
|
+
);
|
|
234
|
+
|
|
235
|
+
-- collation.drop
|
|
236
|
+
DROP COLLATION public.test;
|
|
237
|
+
|
|
238
|
+
-- collation.alter.change_owner
|
|
239
|
+
ALTER COLLATION public.test OWNER TO new_owner;
|
|
240
|
+
|
|
241
|
+
-- collation.alter.refresh_version
|
|
242
|
+
ALTER COLLATION public.test REFRESH VERSION;
|
|
243
|
+
|
|
244
|
+
-- collation.comment
|
|
245
|
+
COMMENT ON COLLATION public.test IS 'collation comment';
|
|
246
|
+
|
|
247
|
+
-- collation.drop_comment
|
|
248
|
+
COMMENT ON COLLATION public.test IS NULL;
|
|
249
|
+
|
|
250
|
+
-- table.create
|
|
251
|
+
CREATE TABLE public.table_with_very_long_name_for_formatting_and_wrapping_test (
|
|
252
|
+
id bigint GENERATED ALWAYS AS IDENTITY NOT NULL,
|
|
253
|
+
status text COLLATE "en_US" DEFAULT 'pending',
|
|
254
|
+
created_at timestamptz DEFAULT now(),
|
|
255
|
+
ref_id bigint,
|
|
256
|
+
computed bigint GENERATED ALWAYS AS (id * 2) STORED
|
|
257
|
+
) WITH (fillfactor=70, autovacuum_enabled=false);
|
|
258
|
+
|
|
259
|
+
-- table.drop
|
|
260
|
+
DROP TABLE public.table_with_very_long_name_for_formatting_and_wrapping_test;
|
|
261
|
+
|
|
262
|
+
-- table.alter.add_column
|
|
263
|
+
ALTER TABLE public.table_with_very_long_name_for_formatting_and_wrapping_test
|
|
264
|
+
ADD COLUMN email text COLLATE "en_US" DEFAULT 'user@example.com' NOT NULL;
|
|
265
|
+
|
|
266
|
+
-- table.alter.drop_column
|
|
267
|
+
ALTER TABLE public.table_with_very_long_name_for_formatting_and_wrapping_test
|
|
268
|
+
DROP COLUMN computed;
|
|
269
|
+
|
|
270
|
+
-- table.alter.column_type
|
|
271
|
+
ALTER TABLE public.table_with_very_long_name_for_formatting_and_wrapping_test
|
|
272
|
+
ALTER COLUMN status TYPE character varying(255) COLLATE "C";
|
|
273
|
+
|
|
274
|
+
-- table.alter.column_set_default
|
|
275
|
+
ALTER TABLE public.table_with_very_long_name_for_formatting_and_wrapping_test
|
|
276
|
+
ALTER COLUMN status SET DEFAULT 'active';
|
|
277
|
+
|
|
278
|
+
-- table.alter.column_drop_default
|
|
279
|
+
ALTER TABLE public.table_with_very_long_name_for_formatting_and_wrapping_test
|
|
280
|
+
ALTER COLUMN status DROP DEFAULT;
|
|
281
|
+
|
|
282
|
+
-- table.alter.column_set_not_null
|
|
283
|
+
ALTER TABLE public.table_with_very_long_name_for_formatting_and_wrapping_test
|
|
284
|
+
ALTER COLUMN status SET NOT NULL;
|
|
285
|
+
|
|
286
|
+
-- table.alter.column_drop_not_null
|
|
287
|
+
ALTER TABLE public.table_with_very_long_name_for_formatting_and_wrapping_test
|
|
288
|
+
ALTER COLUMN status DROP NOT NULL;
|
|
289
|
+
|
|
290
|
+
-- table.alter.add_constraint
|
|
291
|
+
ALTER TABLE public.table_with_very_long_name_for_formatting_and_wrapping_test
|
|
292
|
+
ADD CONSTRAINT uq_t_fmt_status UNIQUE (status);
|
|
293
|
+
|
|
294
|
+
-- table.alter.add_fk_constraint
|
|
295
|
+
ALTER TABLE public.table_with_very_long_name_for_formatting_and_wrapping_test
|
|
296
|
+
ADD CONSTRAINT fk_t_fmt_ref FOREIGN KEY (ref_id) REFERENCES public.other_table(id) MATCH FULL
|
|
297
|
+
ON UPDATE SET NULL ON DELETE CASCADE DEFERRABLE INITIALLY DEFERRED;
|
|
298
|
+
|
|
299
|
+
-- table.alter.drop_constraint
|
|
300
|
+
ALTER TABLE public.table_with_very_long_name_for_formatting_and_wrapping_test
|
|
301
|
+
DROP CONSTRAINT uq_t_fmt_status;
|
|
302
|
+
|
|
303
|
+
-- table.alter.validate_constraint
|
|
304
|
+
ALTER TABLE public.table_with_very_long_name_for_formatting_and_wrapping_test
|
|
305
|
+
VALIDATE CONSTRAINT chk_t_fmt_status;
|
|
306
|
+
|
|
307
|
+
-- table.alter.change_owner
|
|
308
|
+
ALTER TABLE public.table_with_very_long_name_for_formatting_and_wrapping_test
|
|
309
|
+
OWNER TO new_owner;
|
|
310
|
+
|
|
311
|
+
-- table.alter.set_logged
|
|
312
|
+
ALTER TABLE public.table_with_very_long_name_for_formatting_and_wrapping_test
|
|
313
|
+
SET LOGGED;
|
|
314
|
+
|
|
315
|
+
-- table.alter.set_unlogged
|
|
316
|
+
ALTER TABLE public.table_with_very_long_name_for_formatting_and_wrapping_test
|
|
317
|
+
SET UNLOGGED;
|
|
318
|
+
|
|
319
|
+
-- table.alter.enable_rls
|
|
320
|
+
ALTER TABLE public.table_with_very_long_name_for_formatting_and_wrapping_test
|
|
321
|
+
ENABLE ROW LEVEL SECURITY;
|
|
322
|
+
|
|
323
|
+
-- table.alter.disable_rls
|
|
324
|
+
ALTER TABLE public.table_with_very_long_name_for_formatting_and_wrapping_test
|
|
325
|
+
DISABLE ROW LEVEL SECURITY;
|
|
326
|
+
|
|
327
|
+
-- table.alter.force_rls
|
|
328
|
+
ALTER TABLE public.table_with_very_long_name_for_formatting_and_wrapping_test
|
|
329
|
+
FORCE ROW LEVEL SECURITY;
|
|
330
|
+
|
|
331
|
+
-- table.alter.no_force_rls
|
|
332
|
+
ALTER TABLE public.table_with_very_long_name_for_formatting_and_wrapping_test
|
|
333
|
+
NO FORCE ROW LEVEL SECURITY;
|
|
334
|
+
|
|
335
|
+
-- table.alter.set_storage_params
|
|
336
|
+
ALTER TABLE public.table_with_very_long_name_for_formatting_and_wrapping_test
|
|
337
|
+
SET (fillfactor=80, autovacuum_enabled=true);
|
|
338
|
+
|
|
339
|
+
-- table.alter.reset_storage_params
|
|
340
|
+
ALTER TABLE public.table_with_very_long_name_for_formatting_and_wrapping_test
|
|
341
|
+
RESET (fillfactor, autovacuum_enabled);
|
|
342
|
+
|
|
343
|
+
-- table.alter.replica_identity
|
|
344
|
+
ALTER TABLE public.table_with_very_long_name_for_formatting_and_wrapping_test
|
|
345
|
+
REPLICA IDENTITY FULL;
|
|
346
|
+
|
|
347
|
+
-- table.alter.attach_partition
|
|
348
|
+
ALTER TABLE public.events
|
|
349
|
+
ATTACH PARTITION public.events_2024 FOR VALUES FROM ('2024-01-01') TO ('2025-01-01');
|
|
350
|
+
|
|
351
|
+
-- table.alter.detach_partition
|
|
352
|
+
ALTER TABLE public.events
|
|
353
|
+
DETACH PARTITION public.events_2024;
|
|
354
|
+
|
|
355
|
+
-- table.comment
|
|
356
|
+
COMMENT ON TABLE public.table_with_very_long_name_for_formatting_and_wrapping_test IS
|
|
357
|
+
'table comment';
|
|
358
|
+
|
|
359
|
+
-- table.drop_comment
|
|
360
|
+
COMMENT ON TABLE public.table_with_very_long_name_for_formatting_and_wrapping_test IS NULL;
|
|
361
|
+
|
|
362
|
+
-- table.column_comment
|
|
363
|
+
COMMENT ON COLUMN public.table_with_very_long_name_for_formatting_and_wrapping_test.id IS
|
|
364
|
+
'id column';
|
|
365
|
+
|
|
366
|
+
-- table.drop_column_comment
|
|
367
|
+
COMMENT ON COLUMN public.table_with_very_long_name_for_formatting_and_wrapping_test.id IS NULL;
|
|
368
|
+
|
|
369
|
+
-- table.constraint_comment
|
|
370
|
+
COMMENT ON CONSTRAINT pk_t_fmt
|
|
371
|
+
ON public.table_with_very_long_name_for_formatting_and_wrapping_test IS 'primary key';
|
|
372
|
+
|
|
373
|
+
-- table.drop_constraint_comment
|
|
374
|
+
COMMENT ON CONSTRAINT chk_t_fmt_status
|
|
375
|
+
ON public.table_with_very_long_name_for_formatting_and_wrapping_test IS NULL;
|
|
376
|
+
|
|
377
|
+
-- table.grant
|
|
378
|
+
GRANT INSERT,
|
|
379
|
+
SELECT ON public.table_with_very_long_name_for_formatting_and_wrapping_test TO app_reader;
|
|
380
|
+
|
|
381
|
+
-- table.revoke
|
|
382
|
+
REVOKE DELETE,
|
|
383
|
+
UPDATE ON public.table_with_very_long_name_for_formatting_and_wrapping_test FROM app_reader;
|
|
384
|
+
|
|
385
|
+
-- table.revoke_grant_option
|
|
386
|
+
REVOKE GRANT OPTION FOR INSERT,
|
|
387
|
+
SELECT ON public.table_with_very_long_name_for_formatting_and_wrapping_test FROM app_reader;
|
|
388
|
+
|
|
389
|
+
-- publication.create
|
|
390
|
+
CREATE PUBLICATION pub_custom FOR TABLE
|
|
391
|
+
public.articles_with_a_very_long_name_very_very_long_name_that_will_go_above_the_wrapping_limit (
|
|
392
|
+
id,
|
|
393
|
+
title
|
|
394
|
+
) WHERE (published = true),
|
|
395
|
+
TABLE public.comments_a_little_smaller_name_than_the_previous_one, TABLES IN SCHEMA analytics;
|
|
396
|
+
|
|
397
|
+
-- publication.drop
|
|
398
|
+
DROP PUBLICATION pub_custom;
|
|
399
|
+
|
|
400
|
+
-- publication.alter.set_options
|
|
401
|
+
ALTER PUBLICATION pub_custom
|
|
402
|
+
SET (publish = 'insert, update, delete, truncate', publish_via_partition_root = false);
|
|
403
|
+
|
|
404
|
+
-- publication.alter.set_list
|
|
405
|
+
ALTER PUBLICATION pub_custom
|
|
406
|
+
SET TABLE
|
|
407
|
+
public.articles_with_a_very_long_name_very_very_long_name_that_will_go_above_the_wrapping_limit
|
|
408
|
+
(id, title) WHERE (published = true),
|
|
409
|
+
TABLE public.comments_a_little_smaller_name_than_the_previous_one, TABLES IN SCHEMA analytics;
|
|
410
|
+
|
|
411
|
+
-- publication.alter.add_tables
|
|
412
|
+
ALTER PUBLICATION pub_custom
|
|
413
|
+
ADD TABLE public.new_table_with_very_long_name_for_formatting_and_wrapping_test;
|
|
414
|
+
|
|
415
|
+
-- publication.alter.drop_tables
|
|
416
|
+
ALTER PUBLICATION pub_custom DROP TABLE public.comments_a_little_smaller_name_than_the_previous_one;
|
|
417
|
+
|
|
418
|
+
-- publication.alter.add_schemas
|
|
419
|
+
ALTER PUBLICATION pub_custom ADD TABLES IN SCHEMA staging;
|
|
420
|
+
|
|
421
|
+
-- publication.alter.drop_schemas
|
|
422
|
+
ALTER PUBLICATION pub_custom DROP TABLES IN SCHEMA analytics;
|
|
423
|
+
|
|
424
|
+
-- publication.alter.set_owner
|
|
425
|
+
ALTER PUBLICATION pub_custom OWNER TO new_owner;
|
|
426
|
+
|
|
427
|
+
-- publication.comment
|
|
428
|
+
COMMENT ON PUBLICATION pub_custom IS 'publication comment';
|
|
429
|
+
|
|
430
|
+
-- publication.drop_comment
|
|
431
|
+
COMMENT ON PUBLICATION pub_custom IS NULL;
|
|
432
|
+
|
|
433
|
+
-- view.create
|
|
434
|
+
CREATE VIEW public.test_view WITH (security_barrier=true, check_option=local) AS SELECT *
|
|
435
|
+
FROM test_table;
|
|
436
|
+
|
|
437
|
+
-- view.drop
|
|
438
|
+
DROP VIEW public.test_view;
|
|
439
|
+
|
|
440
|
+
-- view.alter.change_owner
|
|
441
|
+
ALTER VIEW public.test_view OWNER TO new_owner;
|
|
442
|
+
|
|
443
|
+
-- view.alter.set_options
|
|
444
|
+
ALTER VIEW public.test_view SET (security_barrier=true, check_option=cascaded);
|
|
445
|
+
|
|
446
|
+
-- view.alter.reset_options
|
|
447
|
+
ALTER VIEW public.test_view RESET (security_barrier);
|
|
448
|
+
|
|
449
|
+
-- view.comment
|
|
450
|
+
COMMENT ON VIEW public.test_view IS 'view comment';
|
|
451
|
+
|
|
452
|
+
-- view.drop_comment
|
|
453
|
+
COMMENT ON VIEW public.test_view IS NULL;
|
|
454
|
+
|
|
455
|
+
-- view.grant
|
|
456
|
+
GRANT SELECT ON public.test_view TO app_reader WITH GRANT OPTION;
|
|
457
|
+
|
|
458
|
+
-- view.revoke
|
|
459
|
+
REVOKE SELECT ON public.test_view FROM app_reader;
|
|
460
|
+
|
|
461
|
+
-- view.revoke_grant_option
|
|
462
|
+
REVOKE GRANT OPTION FOR SELECT ON public.test_view FROM app_reader;
|
|
463
|
+
|
|
464
|
+
-- rule.create
|
|
465
|
+
CREATE RULE test_rule AS ON INSERT TO public.test_table DO INSTEAD NOTHING;
|
|
466
|
+
|
|
467
|
+
-- rule.drop
|
|
468
|
+
DROP RULE test_rule ON public.test_table;
|
|
469
|
+
|
|
470
|
+
-- rule.replace
|
|
471
|
+
CREATE OR REPLACE RULE test_rule AS ON INSERT TO public.test_table DO INSTEAD NOTHING;
|
|
472
|
+
|
|
473
|
+
-- rule.alter.set_enabled
|
|
474
|
+
ALTER TABLE public.test_table
|
|
475
|
+
DISABLE RULE test_rule;
|
|
476
|
+
|
|
477
|
+
-- rule.comment
|
|
478
|
+
COMMENT ON RULE test_rule ON public.test_table IS 'rule comment';
|
|
479
|
+
|
|
480
|
+
-- rule.drop_comment
|
|
481
|
+
COMMENT ON RULE test_rule ON public.test_table IS NULL;
|
|
482
|
+
|
|
483
|
+
-- procedure.create
|
|
484
|
+
CREATE PROCEDURE public.test_procedure()
|
|
485
|
+
LANGUAGE plpgsql
|
|
486
|
+
AS $$ begin null; end; $$;
|
|
487
|
+
|
|
488
|
+
-- procedure.drop
|
|
489
|
+
DROP PROCEDURE public.test_procedure();
|
|
490
|
+
|
|
491
|
+
-- function.create
|
|
492
|
+
CREATE FUNCTION public.calculate_metrics_for_analytics_dashboard_with_extended_name (
|
|
493
|
+
"p_schema_name_for_analytics" text,
|
|
494
|
+
"p_table_name_for_metrics" text,
|
|
495
|
+
"p_limit_count_default" integer DEFAULT 100
|
|
496
|
+
)
|
|
497
|
+
RETURNS TABLE (
|
|
498
|
+
total bigint,
|
|
499
|
+
average numeric
|
|
500
|
+
)
|
|
501
|
+
LANGUAGE plpgsql
|
|
502
|
+
STABLE
|
|
503
|
+
SECURITY DEFINER
|
|
504
|
+
PARALLEL SAFE
|
|
505
|
+
COST 100
|
|
506
|
+
ROWS 10
|
|
507
|
+
STRICT
|
|
508
|
+
SET search_path TO 'pg_catalog', 'public'
|
|
509
|
+
AS $function$ BEGIN RETURN QUERY SELECT count(*)::bigint, avg(value)::numeric FROM generate_series(1, p_limit_count_default); END; $function$;
|
|
510
|
+
|
|
511
|
+
-- function.drop
|
|
512
|
+
DROP FUNCTION
|
|
513
|
+
public.calculate_metrics_for_analytics_dashboard_with_extended_name(IN
|
|
514
|
+
"p_schema_name_for_analytics" text,
|
|
515
|
+
IN "p_table_name_for_metrics" text, IN "p_limit_count_default" integer);
|
|
516
|
+
|
|
517
|
+
-- function.alter.change_owner
|
|
518
|
+
ALTER FUNCTION
|
|
519
|
+
public.calculate_metrics_for_analytics_dashboard_with_extended_name(text, text, integer) OWNER TO
|
|
520
|
+
new_admin;
|
|
521
|
+
|
|
522
|
+
-- function.alter.set_security
|
|
523
|
+
ALTER FUNCTION
|
|
524
|
+
public.calculate_metrics_for_analytics_dashboard_with_extended_name(text, text, integer) SECURITY
|
|
525
|
+
INVOKER;
|
|
526
|
+
|
|
527
|
+
-- function.alter.set_config
|
|
528
|
+
ALTER FUNCTION
|
|
529
|
+
public.calculate_metrics_for_analytics_dashboard_with_extended_name(text, text, integer)
|
|
530
|
+
SET work_mem TO '256MB';
|
|
531
|
+
|
|
532
|
+
-- function.alter.set_volatility
|
|
533
|
+
ALTER FUNCTION
|
|
534
|
+
public.calculate_metrics_for_analytics_dashboard_with_extended_name(text, text, integer)
|
|
535
|
+
IMMUTABLE;
|
|
536
|
+
|
|
537
|
+
-- function.alter.set_strictness
|
|
538
|
+
ALTER FUNCTION
|
|
539
|
+
public.calculate_metrics_for_analytics_dashboard_with_extended_name(text, text, integer) CALLED
|
|
540
|
+
ON NULL INPUT;
|
|
541
|
+
|
|
542
|
+
-- function.alter.set_leakproof
|
|
543
|
+
ALTER FUNCTION
|
|
544
|
+
public.calculate_metrics_for_analytics_dashboard_with_extended_name(text, text, integer)
|
|
545
|
+
LEAKPROOF;
|
|
546
|
+
|
|
547
|
+
-- function.alter.set_parallel
|
|
548
|
+
ALTER FUNCTION
|
|
549
|
+
public.calculate_metrics_for_analytics_dashboard_with_extended_name(text, text, integer) PARALLEL
|
|
550
|
+
RESTRICTED;
|
|
551
|
+
|
|
552
|
+
-- function.comment
|
|
553
|
+
COMMENT ON FUNCTION
|
|
554
|
+
public.calculate_metrics_for_analytics_dashboard_with_extended_name(text,text,integer) IS
|
|
555
|
+
'Calculate metrics for a given table';
|
|
556
|
+
|
|
557
|
+
-- function.drop_comment
|
|
558
|
+
COMMENT ON FUNCTION
|
|
559
|
+
public.calculate_metrics_for_analytics_dashboard_with_extended_name(text,text,integer) IS NULL;
|
|
560
|
+
|
|
561
|
+
-- function.grant
|
|
562
|
+
GRANT ALL ON FUNCTION
|
|
563
|
+
public.calculate_metrics_for_analytics_dashboard_with_extended_name(text, text, integer) TO
|
|
564
|
+
app_user WITH GRANT OPTION;
|
|
565
|
+
|
|
566
|
+
-- function.revoke
|
|
567
|
+
REVOKE ALL ON FUNCTION
|
|
568
|
+
public.calculate_metrics_for_analytics_dashboard_with_extended_name(text, text, integer) FROM
|
|
569
|
+
app_user;
|
|
570
|
+
|
|
571
|
+
-- function.revoke_grant_option
|
|
572
|
+
REVOKE GRANT OPTION FOR ALL ON FUNCTION
|
|
573
|
+
public.calculate_metrics_for_analytics_dashboard_with_extended_name(text, text, integer) FROM
|
|
574
|
+
app_user;
|
|
575
|
+
|
|
576
|
+
-- sequence.create
|
|
577
|
+
CREATE SEQUENCE public.table_with_very_long_name_for_formatting_and_wrapping_test_id_seq;
|
|
578
|
+
|
|
579
|
+
-- sequence.drop
|
|
580
|
+
DROP SEQUENCE public.table_with_very_long_name_for_formatting_and_wrapping_test_id_seq;
|
|
581
|
+
|
|
582
|
+
-- sequence.alter.set_owned_by
|
|
583
|
+
ALTER SEQUENCE public.table_with_very_long_name_for_formatting_and_wrapping_test_id_seq OWNED BY
|
|
584
|
+
public.table_with_very_long_name_for_formatting_and_wrapping_test.id;
|
|
585
|
+
|
|
586
|
+
-- sequence.alter.set_options
|
|
587
|
+
ALTER SEQUENCE public.table_with_very_long_name_for_formatting_and_wrapping_test_id_seq INCREMENT BY
|
|
588
|
+
10 MINVALUE 1 MAXVALUE 1000000 CACHE 5 CYCLE;
|
|
589
|
+
|
|
590
|
+
-- sequence.comment
|
|
591
|
+
COMMENT ON SEQUENCE public.table_with_very_long_name_for_formatting_and_wrapping_test_id_seq IS
|
|
592
|
+
'sequence for table_with_very_long_name_for_formatting_and_wrapping_test.id';
|
|
593
|
+
|
|
594
|
+
-- sequence.drop_comment
|
|
595
|
+
COMMENT ON SEQUENCE public.table_with_very_long_name_for_formatting_and_wrapping_test_id_seq IS NULL;
|
|
596
|
+
|
|
597
|
+
-- sequence.grant
|
|
598
|
+
GRANT SELECT,
|
|
599
|
+
USAGE
|
|
600
|
+
ON SEQUENCE public.table_with_very_long_name_for_formatting_and_wrapping_test_id_seq TO app_user;
|
|
601
|
+
|
|
602
|
+
-- sequence.revoke
|
|
603
|
+
REVOKE USAGE
|
|
604
|
+
ON SEQUENCE public.table_with_very_long_name_for_formatting_and_wrapping_test_id_seq FROM
|
|
605
|
+
app_user;
|
|
606
|
+
|
|
607
|
+
-- sequence.revoke_grant_option
|
|
608
|
+
REVOKE GRANT OPTION FOR USAGE
|
|
609
|
+
ON SEQUENCE public.table_with_very_long_name_for_formatting_and_wrapping_test_id_seq FROM
|
|
610
|
+
app_user;
|
|
611
|
+
|
|
612
|
+
-- policy.create
|
|
613
|
+
CREATE POLICY allow_select_own ON public.table_with_very_long_name_for_formatting_and_wrapping_test
|
|
614
|
+
FOR SELECT
|
|
615
|
+
TO authenticated
|
|
616
|
+
USING (auth.uid() = user_id);
|
|
617
|
+
|
|
618
|
+
-- policy.create_restrictive
|
|
619
|
+
CREATE POLICY restrict_delete ON public.table_with_very_long_name_for_formatting_and_wrapping_test
|
|
620
|
+
AS RESTRICTIVE
|
|
621
|
+
FOR DELETE
|
|
622
|
+
TO authenticated, service_role
|
|
623
|
+
USING (auth.uid() = owner_id)
|
|
624
|
+
WITH CHECK (status <> 'locked');
|
|
625
|
+
|
|
626
|
+
-- policy.drop
|
|
627
|
+
DROP POLICY allow_select_own ON public.table_with_very_long_name_for_formatting_and_wrapping_test;
|
|
628
|
+
|
|
629
|
+
-- policy.alter.set_roles
|
|
630
|
+
ALTER POLICY allow_select_own
|
|
631
|
+
ON public.table_with_very_long_name_for_formatting_and_wrapping_test TO authenticated, anon;
|
|
632
|
+
|
|
633
|
+
-- policy.alter.set_using
|
|
634
|
+
ALTER POLICY allow_select_own ON public.table_with_very_long_name_for_formatting_and_wrapping_test
|
|
635
|
+
USING (auth.uid() = user_id AND status = 'active');
|
|
636
|
+
|
|
637
|
+
-- policy.alter.set_with_check
|
|
638
|
+
ALTER POLICY allow_select_own ON public.table_with_very_long_name_for_formatting_and_wrapping_test
|
|
639
|
+
WITH CHECK (auth.uid() = user_id);
|
|
640
|
+
|
|
641
|
+
-- policy.comment
|
|
642
|
+
COMMENT ON POLICY allow_select_own
|
|
643
|
+
ON public.table_with_very_long_name_for_formatting_and_wrapping_test IS 'rls policy comment';
|
|
644
|
+
|
|
645
|
+
-- policy.drop_comment
|
|
646
|
+
COMMENT ON POLICY allow_select_own
|
|
647
|
+
ON public.table_with_very_long_name_for_formatting_and_wrapping_test IS NULL;
|
|
648
|
+
|
|
649
|
+
-- index.create
|
|
650
|
+
CREATE UNIQUE INDEX idx_t_fmt_status
|
|
651
|
+
ON public.table_with_very_long_name_for_formatting_and_wrapping_test (status)
|
|
652
|
+
WITH (fillfactor='90')
|
|
653
|
+
WHERE (status <> 'archived'::text);
|
|
654
|
+
|
|
655
|
+
-- index.create_gin
|
|
656
|
+
CREATE INDEX idx_t_fmt_search ON public.table_with_very_long_name_for_formatting_and_wrapping_test
|
|
657
|
+
USING gin (to_tsvector('english'::regconfig, status));
|
|
658
|
+
|
|
659
|
+
-- index.drop
|
|
660
|
+
DROP INDEX public.idx_t_fmt_status;
|
|
661
|
+
|
|
662
|
+
-- index.alter.set_storage_params
|
|
663
|
+
ALTER INDEX public.idx_t_fmt_status RESET (deduplicate_items);
|
|
664
|
+
|
|
665
|
+
ALTER INDEX public.idx_t_fmt_status SET (fillfactor=80);
|
|
666
|
+
|
|
667
|
+
-- index.alter.set_statistics
|
|
668
|
+
ALTER INDEX public.idx_t_fmt_status ALTER COLUMN 1 SET STATISTICS 500;
|
|
669
|
+
|
|
670
|
+
-- index.comment
|
|
671
|
+
COMMENT ON INDEX public.idx_t_fmt_status IS 'index comment';
|
|
672
|
+
|
|
673
|
+
-- index.drop_comment
|
|
674
|
+
COMMENT ON INDEX public.idx_t_fmt_status IS NULL;
|
|
675
|
+
|
|
676
|
+
-- trigger.create
|
|
677
|
+
CREATE TRIGGER trg_audit AFTER INSERT OR UPDATE
|
|
678
|
+
ON public.table_with_very_long_name_for_formatting_and_wrapping_test
|
|
679
|
+
REFERENCING OLD TABLE AS old_rows NEW TABLE AS new_rows FOR EACH ROW WHEN (
|
|
680
|
+
(NEW.status IS DISTINCT FROM OLD.status)
|
|
681
|
+
) EXECUTE FUNCTION public.audit_trigger_fn('arg1', 'arg2');
|
|
682
|
+
|
|
683
|
+
-- trigger.drop
|
|
684
|
+
DROP TRIGGER trg_audit ON public.table_with_very_long_name_for_formatting_and_wrapping_test;
|
|
685
|
+
|
|
686
|
+
-- trigger.replace
|
|
687
|
+
CREATE OR REPLACE TRIGGER trg_audit AFTER INSERT OR UPDATE
|
|
688
|
+
ON public.table_with_very_long_name_for_formatting_and_wrapping_test
|
|
689
|
+
REFERENCING OLD TABLE AS old_rows NEW TABLE AS new_rows FOR EACH ROW WHEN (
|
|
690
|
+
(NEW.status IS DISTINCT FROM OLD.status)
|
|
691
|
+
) EXECUTE FUNCTION public.audit_trigger_fn('arg1', 'arg2');
|
|
692
|
+
|
|
693
|
+
-- trigger.comment
|
|
694
|
+
COMMENT ON TRIGGER trg_audit
|
|
695
|
+
ON public.table_with_very_long_name_for_formatting_and_wrapping_test IS 'trigger comment';
|
|
696
|
+
|
|
697
|
+
-- trigger.drop_comment
|
|
698
|
+
COMMENT ON TRIGGER trg_audit
|
|
699
|
+
ON public.table_with_very_long_name_for_formatting_and_wrapping_test IS NULL;
|
|
700
|
+
|
|
701
|
+
-- matview.create
|
|
702
|
+
CREATE MATERIALIZED VIEW analytics.daily_stats
|
|
703
|
+
WITH (fillfactor=70)
|
|
704
|
+
AS SELECT date_trunc('day', created_at) AS day, count(*) AS total
|
|
705
|
+
FROM public.events
|
|
706
|
+
GROUP BY 1 WITH DATA;
|
|
707
|
+
|
|
708
|
+
-- matview.drop
|
|
709
|
+
DROP MATERIALIZED VIEW analytics.daily_stats;
|
|
710
|
+
|
|
711
|
+
-- matview.alter.change_owner
|
|
712
|
+
ALTER MATERIALIZED VIEW analytics.daily_stats
|
|
713
|
+
OWNER TO new_owner;
|
|
714
|
+
|
|
715
|
+
-- matview.alter.set_storage
|
|
716
|
+
ALTER MATERIALIZED VIEW analytics.daily_stats
|
|
717
|
+
RESET (autovacuum_enabled);
|
|
718
|
+
|
|
719
|
+
ALTER MATERIALIZED VIEW analytics.daily_stats
|
|
720
|
+
SET (fillfactor=80);
|
|
721
|
+
|
|
722
|
+
-- matview.comment
|
|
723
|
+
COMMENT ON MATERIALIZED VIEW analytics.daily_stats IS 'daily aggregation';
|
|
724
|
+
|
|
725
|
+
-- matview.drop_comment
|
|
726
|
+
COMMENT ON MATERIALIZED VIEW analytics.daily_stats IS NULL;
|
|
727
|
+
|
|
728
|
+
-- matview.column_comment
|
|
729
|
+
COMMENT ON COLUMN analytics.daily_stats.day IS 'day bucket';
|
|
730
|
+
|
|
731
|
+
-- matview.drop_column_comment
|
|
732
|
+
COMMENT ON COLUMN analytics.daily_stats.day IS NULL;
|
|
733
|
+
|
|
734
|
+
-- matview.grant
|
|
735
|
+
GRANT SELECT ON analytics.daily_stats TO app_reader;
|
|
736
|
+
|
|
737
|
+
-- matview.revoke
|
|
738
|
+
REVOKE SELECT ON analytics.daily_stats FROM app_reader;
|
|
739
|
+
|
|
740
|
+
-- matview.revoke_grant_option
|
|
741
|
+
REVOKE GRANT OPTION FOR SELECT ON analytics.daily_stats FROM app_reader;
|
|
742
|
+
|
|
743
|
+
-- aggregate.create
|
|
744
|
+
CREATE AGGREGATE public.array_cat_agg(anycompatiblearray) (
|
|
745
|
+
SFUNC = array_cat,
|
|
746
|
+
STYPE = anycompatiblearray,
|
|
747
|
+
COMBINEFUNC = array_cat,
|
|
748
|
+
INITCOND = '{}',
|
|
749
|
+
PARALLEL = SAFE,
|
|
750
|
+
STRICT
|
|
751
|
+
);
|
|
752
|
+
|
|
753
|
+
-- aggregate.drop
|
|
754
|
+
DROP AGGREGATE public.array_cat_agg(anycompatiblearray);
|
|
755
|
+
|
|
756
|
+
-- aggregate.alter.change_owner
|
|
757
|
+
ALTER AGGREGATE public.array_cat_agg(anycompatiblearray) OWNER TO new_owner;
|
|
758
|
+
|
|
759
|
+
-- aggregate.comment
|
|
760
|
+
COMMENT ON AGGREGATE public.array_cat_agg(anycompatiblearray) IS 'concatenate arrays aggregate';
|
|
761
|
+
|
|
762
|
+
-- aggregate.drop_comment
|
|
763
|
+
COMMENT ON AGGREGATE public.array_cat_agg(anycompatiblearray) IS NULL;
|
|
764
|
+
|
|
765
|
+
-- aggregate.grant
|
|
766
|
+
GRANT ALL ON FUNCTION public.array_cat_agg(anycompatiblearray) TO app_user;
|
|
767
|
+
|
|
768
|
+
-- aggregate.revoke
|
|
769
|
+
REVOKE ALL ON FUNCTION public.array_cat_agg(anycompatiblearray) FROM app_user;
|
|
770
|
+
|
|
771
|
+
-- aggregate.revoke_grant_option
|
|
772
|
+
REVOKE GRANT OPTION FOR ALL ON FUNCTION public.array_cat_agg(anycompatiblearray) FROM app_user;
|
|
773
|
+
|
|
774
|
+
-- event_trigger.create
|
|
775
|
+
CREATE EVENT TRIGGER prevent_drop
|
|
776
|
+
ON sql_drop
|
|
777
|
+
WHEN TAG IN ('DROP TABLE', 'DROP SCHEMA')
|
|
778
|
+
EXECUTE FUNCTION public.prevent_drop_fn();
|
|
779
|
+
|
|
780
|
+
-- event_trigger.drop
|
|
781
|
+
DROP EVENT TRIGGER prevent_drop;
|
|
782
|
+
|
|
783
|
+
-- event_trigger.alter.change_owner
|
|
784
|
+
ALTER EVENT TRIGGER prevent_drop
|
|
785
|
+
OWNER TO new_owner;
|
|
786
|
+
|
|
787
|
+
-- event_trigger.alter.set_enabled
|
|
788
|
+
ALTER EVENT TRIGGER prevent_drop
|
|
789
|
+
DISABLE;
|
|
790
|
+
|
|
791
|
+
-- event_trigger.comment
|
|
792
|
+
COMMENT ON EVENT TRIGGER prevent_drop IS 'prevent accidental drops';
|
|
793
|
+
|
|
794
|
+
-- event_trigger.drop_comment
|
|
795
|
+
COMMENT ON EVENT TRIGGER prevent_drop IS NULL;
|
|
796
|
+
|
|
797
|
+
-- language.create
|
|
798
|
+
CREATE TRUSTED LANGUAGE plv8
|
|
799
|
+
HANDLER plv8_call_handler
|
|
800
|
+
INLINE plv8_inline_handler
|
|
801
|
+
VALIDATOR plv8_call_validator;
|
|
802
|
+
|
|
803
|
+
-- language.drop
|
|
804
|
+
DROP LANGUAGE plv8;
|
|
805
|
+
|
|
806
|
+
-- language.alter.change_owner
|
|
807
|
+
ALTER LANGUAGE plv8 OWNER TO new_owner;
|
|
808
|
+
|
|
809
|
+
-- language.comment
|
|
810
|
+
COMMENT ON LANGUAGE plv8 IS 'PL/V8 trusted procedural language';
|
|
811
|
+
|
|
812
|
+
-- language.drop_comment
|
|
813
|
+
COMMENT ON LANGUAGE plv8 IS NULL;
|
|
814
|
+
|
|
815
|
+
-- language.grant
|
|
816
|
+
GRANT ALL ON LANGUAGE plv8 TO app_user WITH GRANT OPTION;
|
|
817
|
+
|
|
818
|
+
-- language.revoke
|
|
819
|
+
REVOKE ALL ON LANGUAGE plv8 FROM app_user;
|
|
820
|
+
|
|
821
|
+
-- language.revoke_grant_option
|
|
822
|
+
REVOKE GRANT OPTION FOR ALL ON LANGUAGE plv8 FROM app_user;
|
|
823
|
+
|
|
824
|
+
-- role.create
|
|
825
|
+
CREATE ROLE app_user WITH LOGIN CONNECTION LIMIT 100;
|
|
826
|
+
|
|
827
|
+
-- role.drop
|
|
828
|
+
DROP ROLE app_user;
|
|
829
|
+
|
|
830
|
+
-- role.alter.set_options
|
|
831
|
+
ALTER ROLE app_user WITH NOSUPERUSER CREATEDB;
|
|
832
|
+
|
|
833
|
+
-- role.alter.set_config
|
|
834
|
+
ALTER ROLE app_user SET statement_timeout TO '60000';
|
|
835
|
+
|
|
836
|
+
-- role.comment
|
|
837
|
+
COMMENT ON ROLE app_user IS 'application user role';
|
|
838
|
+
|
|
839
|
+
-- role.drop_comment
|
|
840
|
+
COMMENT ON ROLE app_user IS NULL;
|
|
841
|
+
|
|
842
|
+
-- role.grant_membership
|
|
843
|
+
GRANT app_user TO dev_user WITH ADMIN OPTION;
|
|
844
|
+
|
|
845
|
+
-- role.revoke_membership
|
|
846
|
+
REVOKE app_user FROM dev_user;
|
|
847
|
+
|
|
848
|
+
-- role.revoke_membership_options
|
|
849
|
+
REVOKE ADMIN OPTION FOR app_user FROM dev_user;
|
|
850
|
+
|
|
851
|
+
-- role.grant_default_privileges
|
|
852
|
+
ALTER DEFAULT PRIVILEGES FOR ROLE app_user IN SCHEMA public GRANT SELECT ON TABLES TO app_reader;
|
|
853
|
+
|
|
854
|
+
-- role.revoke_default_privileges
|
|
855
|
+
ALTER DEFAULT PRIVILEGES FOR ROLE app_user IN SCHEMA public REVOKE SELECT ON TABLES FROM app_reader;
|
|
856
|
+
|
|
857
|
+
-- subscription.create
|
|
858
|
+
CREATE SUBSCRIPTION sub_replica
|
|
859
|
+
CONNECTION 'host=primary.db port=5432 dbname=mydb'
|
|
860
|
+
PUBLICATION pub_custom
|
|
861
|
+
WITH (
|
|
862
|
+
slot_name = 'sub_replica_slot',
|
|
863
|
+
binary = true,
|
|
864
|
+
streaming = 'parallel',
|
|
865
|
+
synchronous_commit = 'remote_apply',
|
|
866
|
+
disable_on_error = true,
|
|
867
|
+
failover = true
|
|
868
|
+
);
|
|
869
|
+
|
|
870
|
+
-- subscription.drop
|
|
871
|
+
DROP SUBSCRIPTION sub_replica;
|
|
872
|
+
|
|
873
|
+
-- subscription.alter.set_connection
|
|
874
|
+
ALTER SUBSCRIPTION sub_replica
|
|
875
|
+
CONNECTION 'host=primary.db port=5432 dbname=mydb';
|
|
876
|
+
|
|
877
|
+
-- subscription.alter.set_publication
|
|
878
|
+
ALTER SUBSCRIPTION sub_replica
|
|
879
|
+
SET PUBLICATION pub_custom;
|
|
880
|
+
|
|
881
|
+
-- subscription.alter.enable
|
|
882
|
+
ALTER SUBSCRIPTION sub_replica
|
|
883
|
+
ENABLE;
|
|
884
|
+
|
|
885
|
+
-- subscription.alter.disable
|
|
886
|
+
ALTER SUBSCRIPTION sub_replica
|
|
887
|
+
DISABLE;
|
|
888
|
+
|
|
889
|
+
-- subscription.alter.set_options
|
|
890
|
+
ALTER SUBSCRIPTION sub_replica
|
|
891
|
+
SET (
|
|
892
|
+
binary = true,
|
|
893
|
+
streaming = 'parallel',
|
|
894
|
+
synchronous_commit = 'remote_apply'
|
|
895
|
+
);
|
|
896
|
+
|
|
897
|
+
-- subscription.alter.set_owner
|
|
898
|
+
ALTER SUBSCRIPTION sub_replica
|
|
899
|
+
OWNER TO new_owner;
|
|
900
|
+
|
|
901
|
+
-- subscription.comment
|
|
902
|
+
COMMENT ON SUBSCRIPTION sub_replica IS 'replication subscription';
|
|
903
|
+
|
|
904
|
+
-- subscription.drop_comment
|
|
905
|
+
COMMENT ON SUBSCRIPTION sub_replica IS NULL;
|
|
906
|
+
|
|
907
|
+
-- fdw.create
|
|
908
|
+
CREATE FOREIGN DATA WRAPPER postgres_fdw
|
|
909
|
+
HANDLER postgres_fdw_handler
|
|
910
|
+
VALIDATOR postgres_fdw_validator
|
|
911
|
+
OPTIONS (debug 'true');
|
|
912
|
+
|
|
913
|
+
-- fdw.drop
|
|
914
|
+
DROP FOREIGN DATA WRAPPER postgres_fdw;
|
|
915
|
+
|
|
916
|
+
-- fdw.alter.change_owner
|
|
917
|
+
ALTER FOREIGN DATA WRAPPER postgres_fdw
|
|
918
|
+
OWNER TO new_owner;
|
|
919
|
+
|
|
920
|
+
-- fdw.alter.set_options
|
|
921
|
+
ALTER FOREIGN DATA WRAPPER postgres_fdw
|
|
922
|
+
OPTIONS (
|
|
923
|
+
SET debug 'false',
|
|
924
|
+
ADD use_remote_estimate ''
|
|
925
|
+
);
|
|
926
|
+
|
|
927
|
+
-- fdw.comment
|
|
928
|
+
COMMENT ON FOREIGN DATA WRAPPER postgres_fdw IS 'PostgreSQL foreign data wrapper';
|
|
929
|
+
|
|
930
|
+
-- fdw.drop_comment
|
|
931
|
+
COMMENT ON FOREIGN DATA WRAPPER postgres_fdw IS NULL;
|
|
932
|
+
|
|
933
|
+
-- fdw.grant
|
|
934
|
+
GRANT ALL ON FOREIGN DATA WRAPPER postgres_fdw TO app_user;
|
|
935
|
+
|
|
936
|
+
-- fdw.revoke
|
|
937
|
+
REVOKE ALL ON FOREIGN DATA WRAPPER postgres_fdw FROM app_user;
|
|
938
|
+
|
|
939
|
+
-- fdw.revoke_grant_option
|
|
940
|
+
REVOKE GRANT OPTION FOR ALL ON FOREIGN DATA WRAPPER postgres_fdw FROM app_user;
|
|
941
|
+
|
|
942
|
+
-- foreign_table.create
|
|
943
|
+
CREATE FOREIGN TABLE public.remote_users (
|
|
944
|
+
id integer,
|
|
945
|
+
email text
|
|
946
|
+
) SERVER remote_server OPTIONS (schema_name 'public', table_name 'users');
|
|
947
|
+
|
|
948
|
+
-- foreign_table.drop
|
|
949
|
+
DROP FOREIGN TABLE public.remote_users;
|
|
950
|
+
|
|
951
|
+
-- foreign_table.alter.change_owner
|
|
952
|
+
ALTER FOREIGN TABLE public.remote_users
|
|
953
|
+
OWNER TO new_owner;
|
|
954
|
+
|
|
955
|
+
-- foreign_table.alter.add_column
|
|
956
|
+
ALTER FOREIGN TABLE public.remote_users
|
|
957
|
+
ADD COLUMN name text NOT NULL DEFAULT 'unknown';
|
|
958
|
+
|
|
959
|
+
-- foreign_table.alter.drop_column
|
|
960
|
+
ALTER FOREIGN TABLE public.remote_users
|
|
961
|
+
DROP COLUMN email;
|
|
962
|
+
|
|
963
|
+
-- foreign_table.alter.column_type
|
|
964
|
+
ALTER FOREIGN TABLE public.remote_users
|
|
965
|
+
ALTER COLUMN id TYPE bigint;
|
|
966
|
+
|
|
967
|
+
-- foreign_table.alter.column_set_default
|
|
968
|
+
ALTER FOREIGN TABLE public.remote_users
|
|
969
|
+
ALTER COLUMN email SET DEFAULT 'nobody@example.com';
|
|
970
|
+
|
|
971
|
+
-- foreign_table.alter.column_drop_default
|
|
972
|
+
ALTER FOREIGN TABLE public.remote_users
|
|
973
|
+
ALTER COLUMN email DROP DEFAULT;
|
|
974
|
+
|
|
975
|
+
-- foreign_table.alter.column_set_not_null
|
|
976
|
+
ALTER FOREIGN TABLE public.remote_users
|
|
977
|
+
ALTER COLUMN email SET NOT NULL;
|
|
978
|
+
|
|
979
|
+
-- foreign_table.alter.column_drop_not_null
|
|
980
|
+
ALTER FOREIGN TABLE public.remote_users
|
|
981
|
+
ALTER COLUMN email DROP NOT NULL;
|
|
982
|
+
|
|
983
|
+
-- foreign_table.alter.set_options
|
|
984
|
+
ALTER FOREIGN TABLE public.remote_users
|
|
985
|
+
OPTIONS (SET fetch_size '1000');
|
|
986
|
+
|
|
987
|
+
-- foreign_table.comment
|
|
988
|
+
COMMENT ON FOREIGN TABLE public.remote_users IS 'remote users table';
|
|
989
|
+
|
|
990
|
+
-- foreign_table.drop_comment
|
|
991
|
+
COMMENT ON FOREIGN TABLE public.remote_users IS NULL;
|
|
992
|
+
|
|
993
|
+
-- foreign_table.grant
|
|
994
|
+
GRANT SELECT ON TABLE public.remote_users TO app_reader;
|
|
995
|
+
|
|
996
|
+
-- foreign_table.revoke
|
|
997
|
+
REVOKE SELECT ON TABLE public.remote_users FROM app_reader;
|
|
998
|
+
|
|
999
|
+
-- foreign_table.revoke_grant_option
|
|
1000
|
+
REVOKE GRANT OPTION FOR SELECT ON TABLE public.remote_users FROM app_reader;
|
|
1001
|
+
|
|
1002
|
+
-- server.create
|
|
1003
|
+
CREATE SERVER remote_server
|
|
1004
|
+
TYPE 'postgresql'
|
|
1005
|
+
VERSION '16.0'
|
|
1006
|
+
FOREIGN DATA WRAPPER postgres_fdw
|
|
1007
|
+
OPTIONS (
|
|
1008
|
+
host 'remote.host',
|
|
1009
|
+
port '5432',
|
|
1010
|
+
dbname 'remote_db'
|
|
1011
|
+
);
|
|
1012
|
+
|
|
1013
|
+
-- server.drop
|
|
1014
|
+
DROP SERVER remote_server;
|
|
1015
|
+
|
|
1016
|
+
-- server.alter.change_owner
|
|
1017
|
+
ALTER SERVER remote_server
|
|
1018
|
+
OWNER TO new_owner;
|
|
1019
|
+
|
|
1020
|
+
-- server.alter.set_version
|
|
1021
|
+
ALTER SERVER remote_server
|
|
1022
|
+
VERSION '17.0';
|
|
1023
|
+
|
|
1024
|
+
-- server.alter.set_options
|
|
1025
|
+
ALTER SERVER remote_server
|
|
1026
|
+
OPTIONS (
|
|
1027
|
+
SET host 'new.host',
|
|
1028
|
+
DROP port
|
|
1029
|
+
);
|
|
1030
|
+
|
|
1031
|
+
-- server.comment
|
|
1032
|
+
COMMENT ON SERVER remote_server IS 'remote PostgreSQL server';
|
|
1033
|
+
|
|
1034
|
+
-- server.drop_comment
|
|
1035
|
+
COMMENT ON SERVER remote_server IS NULL;
|
|
1036
|
+
|
|
1037
|
+
-- server.grant
|
|
1038
|
+
GRANT ALL ON SERVER remote_server TO app_user;
|
|
1039
|
+
|
|
1040
|
+
-- server.revoke
|
|
1041
|
+
REVOKE ALL ON SERVER remote_server FROM app_user;
|
|
1042
|
+
|
|
1043
|
+
-- server.revoke_grant_option
|
|
1044
|
+
REVOKE GRANT OPTION FOR ALL ON SERVER remote_server FROM app_user;
|
|
1045
|
+
|
|
1046
|
+
-- user_mapping.create
|
|
1047
|
+
CREATE USER MAPPING FOR app_user SERVER remote_server
|
|
1048
|
+
OPTIONS (user 'remote_app', password 'secret123');
|
|
1049
|
+
|
|
1050
|
+
-- user_mapping.drop
|
|
1051
|
+
DROP USER MAPPING FOR app_user SERVER remote_server;
|
|
1052
|
+
|
|
1053
|
+
-- user_mapping.alter.set_options
|
|
1054
|
+
ALTER USER MAPPING FOR app_user SERVER remote_server OPTIONS (SET password 'new_secret');"
|
|
1055
|
+
`);
|
|
1056
|
+
});
|
|
1057
|
+
});
|