Dear Peter, Thanks for reviewing! The patch will be posted in the upcoming post.
> ====== > src/backend/access/transam/twophase.c > > 1. IsTwoPhaseTransactionGidForSubid > > +/* > + * IsTwoPhaseTransactionGidForSubid > + * Check whether the given GID is formed by TwoPhaseTransactionGid. > + */ > +static bool > +IsTwoPhaseTransactionGidForSubid(Oid subid, char *gid) > > I think the function comment should mention something about 'subid'. > > SUGGESTION > Check whether the given GID (as formed by TwoPhaseTransactionGid) is > for the specified 'subid'. Fixed. > src/backend/commands/subscriptioncmds.c > > 2. AlterSubscription > > + if (!opts.twophase && > + form->subtwophasestate == LOGICALREP_TWOPHASE_STATE_ENABLED > && > + LookupGXactBySubid(subid)) > + /* Add error message */ > + ereport(ERROR, > + (errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), > + errmsg("cannot disable two_phase when uncommitted prepared > transactions present"), > + errhint("Resolve these transactions and try again"))); > > The comment "/* Add error message */" seems unnecessary. Yeah, this was an internal flag. Removed. Best Regards, Hayato Kuroda FUJITSU LIMITED https://www.fujitsu.com/