Re: pgsql: Fix traversal of half-frozen update chains

From: Peter Geoghegan <pg(at)bowt(dot)ie>
To: Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>
Cc: pgsql-committers <pgsql-committers(at)postgresql(dot)org>
Subject: Re: pgsql: Fix traversal of half-frozen update chains
Date: 2017-10-17 19:23:19
Message-ID: CAH2-Wz=wQKZ9q9XV5FufSrObHgv1Ld18vPBx0_Jw73VZvY4Rag@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers pgsql-hackers

On Tue, Oct 17, 2017 at 3:40 AM, Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org> wrote:
> Peter Geoghegan wrote:
>
>> Wouldn't this last "if" test, to cover the pg_upgrade case, be better
>> targeted by comparing *raw* xmin to FrozenTransactionId? You're using
>> the potentially distinct xmin value returned by
>> HeapTupleHeaderGetXmin() for the test here. I think we should be
>> directly targeting tuples frozen on or before 9.4 (prior to
>> pg_upgrade) instead.
>
> I also realized we can stop checking (i.e. don't compare xmin to
> frozenxid) if the XMIN_FROZEN bits are set -- because in that case the
> tuple cannot possibly come from 9.3 frozen. So I think this should do
> it.
>
> (New HeapTupleUpdateXmaxMatchesXmin() implementation)

Yeah, this is what I had in mind, too.

--
Peter Geoghegan

In response to

Responses

Browse pgsql-committers by date

  From Date Subject
Next Message Peter Geoghegan 2017-10-17 19:24:58 Re: pgsql: Fix traversal of half-frozen update chains
Previous Message Alvaro Herrera 2017-10-17 16:52:11 Re: [COMMITTERS] pgsql: Implement table partitioning.

Browse pgsql-hackers by date

  From Date Subject
Next Message Peter Geoghegan 2017-10-17 19:24:58 Re: pgsql: Fix traversal of half-frozen update chains
Previous Message Joshua D. Drake 2017-10-17 18:40:09 Re: Determine state of cluster (HA)