RE: Adding a '--clean-publisher-objects' option to 'pg_createsubscriber' utility.
От | Hayato Kuroda (Fujitsu) |
---|---|
Тема | RE: Adding a '--clean-publisher-objects' option to 'pg_createsubscriber' utility. |
Дата | |
Msg-id | OSCPR01MB14966D845AC77FC46ECEECCE4F5C72@OSCPR01MB14966.jpnprd01.prod.outlook.com обсуждение исходный текст |
Ответ на | Re: Adding a '--clean-publisher-objects' option to 'pg_createsubscriber' utility. (Shubham Khanna <khannashubham1197@gmail.com>) |
Ответы |
Re: Adding a '--clean-publisher-objects' option to 'pg_createsubscriber' utility.
|
Список | pgsql-hackers |
Dear Shubham, Thanks for updating the patch. Here are comments. 01. ``` /* * Create the subscriptions, adjust the initial location for logical * replication and enable the subscriptions. That's the last step for logical * replication setup. If 'drop_publications' is true, existing publications on * the subscriber will be dropped before creating new subscriptions. */ static void setup_subscriber(struct LogicalRepInfo *dbinfo, const char *consistent_lsn, bool drop_publications) ``` Even drop_publications is false, at least one publication would be dropped. The argument is not correct. I prefer previous name. 02. ``` /* Drop all existing publications if requested */ if (drop_publications) { pg_log_info("Dropping all existing publications in database \"%s\"", dbinfo[i].dbname); drop_all_publications(conn, dbinfo[i].dbname); } /* * Since the publication was created before the consistent LSN, it is * available on the subscriber when the physical replica is promoted. * Remove publications from the subscriber because it has no use. * Additionally, drop publications existed before this command if * requested. */ drop_publication(conn, &dbinfo[i]); ``` It is quite strange that drop_publication() is called even when drop_all_publications() is called. 03. Also, I'm not sure pg_log_info() is needed here. _drop_one_publication() outputs dropping publications. 04. ``` /* Helper function to drop a single publication by name. */ static void _drop_one_publication(PGconn *conn, const char *pubname, const char *dbname) ``` Functions recently added do not have prefix "_". I think it can be removed. 05. ``` pg_log_debug("Executing: %s", query->data); pg_log_info("Dropping publication %s in database \"%s\"", pubname, dbinfo->dbname); ``` In _drop_one_publication(), dbname is used only for the message. Can we move to pg_log_info() outside the function and reduce the argument? 06. Also, please start with lower case. 07. Also, please preserve the message as much as possible. Previously they are: ``` pg_log_info("dropping publication \"%s\" in database \"%s\"", dbinfo->pubname, dbinfo->dbname); pg_log_debug("command is: %s", str->data); ``` 08. I feel we must update made_publication. Best regards, Hayato Kuroda FUJITSU LIMITED
В списке pgsql-hackers по дате отправления: