On Thu, 18 Jul 2024 at 07:41, Hayato Kuroda (Fujitsu) <kuroda.hay...@fujitsu.com> wrote: > > Dear Peter, > > Thanks for giving comments! PSA new version.
Couple of suggestions: 1) How will user know which all transactions should be rolled back since the prepared transaction name will be different in subscriber like pg_gid_16398_750, can we mention some info on how user can identify these prepared transactions that should be rolled back in the subscriber or if this information is already available can we point it from here: + When altering <link linkend="sql-createsubscription-params-with-two-phase"><literal>two_phase</literal></link> + from <literal>true</literal> to <literal>false</literal>, the backend + process reports and an error if any prepared transactions done by the + logical replication worker (from when <literal>two_phase</literal> + parameter was still <literal>true</literal>) are found. You can resolve + prepared transactions on the publisher node, or manually roll back them + on the subscriber, and then try again. 2) I'm not sure if InvalidRepOriginId is correct here, how about using OidIsValid in the below: +void +TwoPhaseTransactionGid(Oid subid, TransactionId xid, char *gid, int szgid) +{ + Assert(subid != InvalidRepOriginId); Regards, Vignesh