On Tue, Jul 10, 2018 at 2:15 PM, Thomas Munro
<thomas.mu...@enterprisedb.com> wrote:
> On Tue, Jul 10, 2018 at 1:30 PM, Andres Freund <and...@anarazel.de> wrote:,
>>>                       (errmsg_internal("next transaction ID: %u:%u; next 
>>> OID: %u",
>>> -                                                      
>>> checkPoint.nextXidEpoch, checkPoint.nextXid,
>>> +                                                      
>>> EpochFromFullTransactionId(checkPoint.nextFullXid),
>>> +                                                      
>>> XidFromFullTransactionId(checkPoint.nextFullXid),
>>>                                                        
>>> checkPoint.nextOid)));
>>
>> I don't think we should continue to expose epochs, but rather go to full
>> xids where appropriate.
>
> OK, done.

Ugh.  When I changed pg_resetwal.c to print out the 64 bit value, I
broke controldata.c's code that reads those strings back in, as
revealed by a failing pg_upgrade test in check-world that I should
have waited for.  Perhaps we shouldn't change that output format...
though I think it does make sense to move forwards here (and probably
eventually for the other values too).  So here is a version that fixes
the parsing problem.  Unfortunately pg_upgrade is not allowed to use
pg_strtouint64() so for now I jammed the same macrology into
controldata.c, but I assume that could be sorted out.

-- 
Thomas Munro
http://www.enterprisedb.com

Attachment: 0001-Track-the-next-xid-using-64-bits-v4.patch
Description: Binary data

Reply via email to