Re: found xmin from before relfrozenxid on pg_catalog.pg_authid - Mailing list pgsql-general

From Andres Freund
Subject Re: found xmin from before relfrozenxid on pg_catalog.pg_authid
Date
Msg-id 20180525203817.h66p72tmmmo53t6h@alap3.anarazel.de
Whole thread Raw
In response to Re: found xmin from before relfrozenxid on pg_catalog.pg_authid  (Alvaro Herrera <alvherre@2ndquadrant.com>)
Responses Re: found xmin from before relfrozenxid on pg_catalog.pg_authid  (Peter Geoghegan <pg@bowt.ie>)
List pgsql-general
On 2018-05-24 16:46:24 -0400, Alvaro Herrera wrote:
> On 2018-May-24, Andres Freund wrote:
> 
> > On 2018-05-24 13:08:53 -0400, Alvaro Herrera wrote:
> > > Hmm .. surely
> 
> > >      xid = HeapTupleHeaderGetXmin(tuple);
> > >      xmin_frozen = ((xid == FrozenTransactionId) ||
> > >                     HeapTupleHeaderXminFrozen(tuple));
> > > -    if (TransactionIdIsNormal(xid))
> > > +    if (!xmin_frozen && TransactionIdIsNormal(xid))
> 
> > I don't think that's necesary - HeapTupleHeaderGetXmin() returns
> > FrozenTransactionId if the tuple is frozen (note the
> > HeapTupleHeaderXminFrozen() within).
> 
> Ah, yeah ... I probably thought about this when writing it and removed
> it for that reason.
> 
> BTW I think the definition of HeapTupleHeaderXminFrozen is seriously
> confusing, by failing to return true if the xmin is numerically
> FrozenXid (which it'll be if the database was pg_upgraded).  I wonder
> about this one in HeapTupleSatisfiesMVCC:

I suggest raising this on -hackers. I agree that it's unfortunate.

Greetings,

Andres Freund


pgsql-general by date:

Previous
From: Erlend Sogge Heggen
Date:
Subject: Syndicating PostgreSQL mailing list to Discourse
Next
From: Peter Geoghegan
Date:
Subject: Re: found xmin from before relfrozenxid on pg_catalog.pg_authid