RE: Added schema level support for publication.
От | tanghy.fnst@fujitsu.com |
---|---|
Тема | RE: Added schema level support for publication. |
Дата | |
Msg-id | OS0PR01MB61137F0B8498E9241F2D960EFB149@OS0PR01MB6113.jpnprd01.prod.outlook.com обсуждение исходный текст |
Ответ на | Re: Added schema level support for publication. (vignesh C <vignesh21@gmail.com>) |
Ответы |
Re: Added schema level support for publication.
|
Список | pgsql-hackers |
On Monday, July 12, 2021 5:36 PM vignesh C <vignesh21@gmail.com> wrote: > > Thanks for reporting this issue, this issue is fixed in the v10 patch > attached at [1]. > [1] - https://www.postgresql.org/message-id/CALDaNm2%2BtR%2B8R- > sD1CSyMbZcZbkintZE-avefjsp7LCkm6HMmw%40mail.gmail.com Thanks for fixing it. By applying your V10 patch, I saw three problems, please have a look. 1. An issue about pg_dump. When public schema was published, the publication was created in the output file, but public schema was not added to it.(Other schemas could be added as expected.) I looked into it and found that selectDumpableNamespace function marks DUMP_COMPONENT_DEFINITION as needless when the schemais public, leading to schema public is ignored in getPublicationSchemas. So we'd better check whether schemas shouldbe dumped in another way. I tried to fix it with the following change, please have a look. (Maybe we also need to add some comments for it.) diff --git a/src/bin/pg_dump/pg_dump.c b/src/bin/pg_dump/pg_dump.c index f6b4f12648..a327d2568b 100644 --- a/src/bin/pg_dump/pg_dump.c +++ b/src/bin/pg_dump/pg_dump.c @@ -4206,7 +4206,8 @@ getPublicationSchemas(Archive *fout, NamespaceInfo nspinfo[], int numSchemas) * Ignore publication membership of schemas whose definitions are not * to be dumped. */ - if (!(nsinfo->dobj.dump & DUMP_COMPONENT_DEFINITION)) + if (!((nsinfo->dobj.dump & DUMP_COMPONENT_DEFINITION) + || (strcmp(nsinfo->dobj.name, "public") == 0 && nsinfo->dobj.dump != DUMP_COMPONENT_NONE))) continue; pg_log_info("reading publication membership for schema \"%s\"", 2. improper behavior for system schema I found I could create publication for system schema, such as pg_catalog. I think it's better to report an error messagehere, just like creating publication for system table is unallowed. 3. fix for dumpPublicationSchema Should we add a declaration for it and add const decorations to the it's second parameter? Like other similar functions. Regards Tang
В списке pgsql-hackers по дате отправления: