Re: Add support for specifying tables in pg_createsubscriber.
От | Peter Smith |
---|---|
Тема | Re: Add support for specifying tables in pg_createsubscriber. |
Дата | |
Msg-id | CAHut+PuJ21hY8LMsjQ0Gr9OLbg5KoK00799+JAcDyQr+s8O1uw@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: Add support for specifying tables in pg_createsubscriber. (Shubham Khanna <khannashubham1197@gmail.com>) |
Ответы |
Re: Add support for specifying tables in pg_createsubscriber.
|
Список | pgsql-hackers |
Hi Shubham, IIUC the v6 will be rewritten to remove the new option, in favour of just redefining the --publication option behaviour. So, much of the current v6 will become obsolete. The below comment is just for one piece of code that I thought will survive the rewrite. ====== src/bin/pg_basebackup/pg_createsubscriber.c setup_publisher: 1. + /* + * Check if publication already exists when + * --reuse-existing-publications is specified + */ + if (opt->reuse_existing_pubs && check_publication_exists(conn, dbinfo[i].pubname, dbinfo[i].dbname)) + { + pg_log_info("using existing publication \"%s\" in database \"%s\"", + dbinfo[i].pubname, dbinfo[i].dbname); + make_pub = false; + } + /* * Create publication on publisher. This step should be executed * *before* promoting the subscriber to avoid any transactions between * consistent LSN and the new publication rows (such transactions * wouldn't see the new publication rows resulting in an error). */ - create_publication(conn, &dbinfo[i]); + if (make_pub) + { + create_publication(conn, &dbinfo[i]); + dbinfo[i].made_publication = true; + if (opt->reuse_existing_pubs) + pg_log_info("created publication \"%s\" in database \"%s\"", + dbinfo[i].pubname, dbinfo[i].dbname); + } + else + dbinfo[i].made_publication = false; I think there are still too many if/else here. This logic can be simplified like below: if (check_publication_exists(...)) { pg_log_info("using existing publication..."); dbinfo[i].made_publication = false; } else { create_publication(conn, &dbinfo[i]); pg_log_info("created publication ..."); dbinfo[i].made_publication = true; } ====== Kind Regards, Peter Smith Fujitsu Australia
В списке pgsql-hackers по дате отправления: