On Thu, Jun 17, 2021 at 7:40 PM Ajin Cherian <itsa...@gmail.com> wrote: > > On Wed, Jun 16, 2021 at 9:08 AM Peter Smith <smithpb2...@gmail.com> wrote: > > > > On Fri, Jun 11, 2021 at 6:34 PM Peter Smith <smithpb2...@gmail.com> wrote: > > > > > KNOWN ISSUES: This v85 patch was built and tested using yesterday's > > > master, but due to lots of recent activity in the replication area I > > > expect it will be broken for HEAD very soon (if not already). I'll > > > rebase it again ASAP to try to keep it in working order. > > > > > > > Please find attached the latest patch set v86* > > > I've modified the patchset based on comments received on thread [1] > for the CREATE_REPLICATION_SLOT > changes. Based on the request from that thread, I've taken out those > changes as two new patches (patch-1 and patch-2) > and made this into 5 patches. I've also changed the logic to align > with the changes in the command syntax.
Few comments: 1) This content is present in v87-0001-Add-option-to-set-two-phase-in-CREATE_REPLICATIO.patch and v87-0003-Add-support-for-prepared-transactions-to-built-i.patch, it can be removed from one of them <varlistentry> + <term><literal>TWO_PHASE</literal></term> + <listitem> + <para> + Specify that this logical replication slot supports decoding of two-phase + transactions. With this option, two-phase commands like + <literal>PREPARE TRANSACTION</literal>, <literal>COMMIT PREPARED</literal> + and <literal>ROLLBACK PREPARED</literal> are decoded and transmitted. + The transaction will be decoded and transmitted at + <literal>PREPARE TRANSACTION</literal> time. + </para> + </listitem> + </varlistentry> + + <varlistentry> 2) This change is not required, it can be removed: <sect1 id="logicaldecoding-example"> <title>Logical Decoding Examples</title> - <para> The following example demonstrates controlling logical decoding using the SQL interface. 3) We could add comment mentioning example 1 at the beginning of example 1 and example 2 for the newly added example with description, that will clearly mark the examples. COMMIT 693 <keycombo action="simul"><keycap>Control</keycap><keycap>C</keycap></keycombo> $ pg_recvlogical -d postgres --slot=test --drop-slot + +$ pg_recvlogical -d postgres --slot=test --create-slot --two-phase +$ pg_recvlogical -d postgres --slot=test --start -f - 4) You could mention "Before you use two-phase commit commands, you must set max_prepared_transactions to at least 1" for example 2. $ pg_recvlogical -d postgres --slot=test --drop-slot + +$ pg_recvlogical -d postgres --slot=test --create-slot --two-phase +$ pg_recvlogical -d postgres --slot=test --start -f - 5) This should be before verbose, the options are documented alphabetically + <varlistentry> + <term><option>-t</option></term> + <term><option>--two-phase</option></term> + <listitem> + <para> + Enables two-phase decoding. This option should only be used with + <option>--create-slot</option> + </para> + </listitem> + </varlistentry> 6) This should be before verbose, the options are printed alphabetically printf(_(" -v, --verbose output verbose messages\n")); + printf(_(" -t, --two-phase enable two-phase decoding when creating a slot\n")); printf(_(" -V, --version output version information, then exit\n")); Regards, Vignesh