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");
====

Another point is if the xid/subxid lists get long, I see it annoying
that the "overflowed" messages goes far away to the end of the long
line. Couldn't we rearrange the item order of the line as the follows?

nextXid %u latestCompletedXid %u oldestRunningXid %u;[ subxid overflowed;][ %d 
xacts: %u %u ...;][ subxacts: %u %u ..]

regards.

-- 
Kyotaro Horiguchi
NTT Open Source Software Center


Reply via email to