On Thu, Jul 28, 2022 at 3:24 PM Kyotaro Horiguchi <horikyota....@gmail.com> wrote: > > At Thu, 28 Jul 2022 09:56:33 +0530, Ashutosh Bapat > <ashutosh.ba...@enterprisedb.com> wrote in > > Thanks Masahiko for the updated patch. It looks good to me. > > > > I wonder whether the logic should be, similar > > to ProcArrayApplyRecoveryInfo() > > if (xlrec->subxid_overflow) > > ... > > else if (xlrec->subxcnt > 0) > > ... > > > > But you may ignore it. > > Either is fine if we asuume the record is sound, but since it is > debugging output, I think we should always output the information *for > both* . The following change doesn't change the output for a sound > record. > > ==== > if (xlrec->subxcnt > 0) > { > appendStringInfo(buf, "; %d subxacts:", xlrec->subxcnt); > for (i = 0; i < xlrec->subxcnt; i++) > appendStringInfo(buf, " %u", xlrec->xids[xlrec->xcnt > + i]); > } > - else if (xlrec->subxid_overflow) > + if (xlrec->subxid_overflow) > appendStringInfoString(buf, "; subxid overflowed"); > ====
Do you mean that both could be true at the same time? If I read GetRunningTransactionData() correctly, that doesn't happen. Regards, -- Masahiko Sawada EDB: https://www.enterprisedb.com/