Re: pg_upgrade and logical replication
От | vignesh C |
---|---|
Тема | Re: pg_upgrade and logical replication |
Дата | |
Msg-id | CALDaNm20=Bk_w9jDZXEqkJ3_NUAxOBswCn4jR-tmh-MqNpPZYw@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: pg_upgrade and logical replication (Peter Smith <smithpb2250@gmail.com>) |
Ответы |
Re: pg_upgrade and logical replication
RE: pg_upgrade and logical replication |
Список | pgsql-hackers |
On Mon, 13 Nov 2023 at 13:52, Peter Smith <smithpb2250@gmail.com> wrote: > > Here are some review comments for patch v13-0001 > > ====== > src/bin/pg_dump/pg_dump.c > > 1. getSubscriptionTables > > + int i_srsublsn; > + int i; > + int cur_rel = 0; > + int ntups; > > What is the difference between 'i' and 'cur_rel'? > > AFAICT these represent the same tuple index, in which case you might > as well throw away 'cur_rel' and only keep 'i'. Modified > ~~~ > > 2. getSubscriptionTables > > + for (i = 0; i < ntups; i++) > + { > + Oid cur_srsubid = atooid(PQgetvalue(res, i, i_srsubid)); > + Oid relid = atooid(PQgetvalue(res, i, i_srrelid)); > + TableInfo *tblinfo; > > Since this is all new code, using C99 style for loop variable > declaration of 'i' will be better. Modified > ====== > src/bin/pg_upgrade/check.c > > 3. check_for_subscription_state > > +check_for_subscription_state(ClusterInfo *cluster) > +{ > + int dbnum; > + FILE *script = NULL; > + char output_path[MAXPGPATH]; > + int ntup; > + > + /* Subscription relations state can be migrated since PG17. */ > + if (GET_MAJOR_VERSION(old_cluster.major_version) < 1700) > + return; > + > + prep_status("Checking for subscription state"); > + > + snprintf(output_path, sizeof(output_path), "%s/%s", > + log_opts.basedir, > + "subscription_state.txt"); > > I felt this filename ought to be more like > 'subscriptions_with_bad_state.txt' because the current name looks like > a normal logfile with nothing to indicate that it is only for the > states of the "bad" subscriptions. I have kept the file name intentionally shorted as we noticed that when the upgrade of the publisher patch used a longer name there were some buildfarm failures because of longer names. > ~~~ > > 4. > + for (dbnum = 0; dbnum < cluster->dbarr.ndbs; dbnum++) > + { > > Since this is all new code, using C99 style for loop variable > declaration of 'dbnum' will be better. Modified > ~~~ > > 5. > + * a) SUBREL_STATE_DATASYNC:A relation upgraded while in this state > + * would retain a replication slot, which could not be dropped by the > + * sync worker spawned after the upgrade because the subscription ID > + * tracked by the publisher does not match anymore. > > missing whitespace > > /SUBREL_STATE_DATASYNC:A relation/SUBREL_STATE_DATASYNC: A relation/ Modified Also added a couple of missing test cases. The attached v14 version patch has the changes for the same. Regards, Vignesh
Вложения
В списке pgsql-hackers по дате отправления: