On Wed, Jun 9, 2021 at 4:50 PM Amit Kapila <amit.kapil...@gmail.com> wrote: > > On Wed, Jun 9, 2021 at 1:53 AM Jeff Davis <pg...@j-davis.com> wrote: > > > > On Tue, 2021-06-08 at 17:41 +1000, Ajin Cherian wrote: > > > Here's an updated patchset that adds back in the option for two-phase > > > in CREATE_REPLICATION_SLOT command and a second patch that adds > > > support for > > > two-phase decoding in pg_recvlogical. > > > > A few things: > > > > * I suggest putting the TWO_PHASE keyword after the LOGICAL keyword > > > > Isn't it better to add it after LOGICAL IDENT? In docs [1], we expect > that way. Also, see code in libpqrcv_create_slot where we expect them > to be together but we can change that if you still prefer to add it > after LOGICAL. BTW, can't we consider it to be part of > create_slot_opt_list? > > Also, it might be good if we can add a test in > src/bin/pg_basebackup/t/030_pg_recvlogical >
Some more points: 1. pg_recvlogical can only send two_phase option if (PQserverVersion(conn) >= 140000), otherwise, it won't work for older versions of the server. 2. In the main patch [1], we do send two_phase option even during START_REPLICATION for the very first time when the two_phase can be enabled. There are reasons as described in the worker.c why we can't enable it during CREATE_REPLICATION_SLOT. Now, if we want to do protocol changes, I wonder why only do some changes and leave the rest for the next version? [1] - https://www.postgresql.org/message-id/CAHut%2BPt7wnctZpfhaLyuPA0mXDAtuw7DsMUfw3TePJLxqTArjA%40mail.gmail.com -- With Regards, Amit Kapila.