On 2 September 2016 at 21:01, Craig Ringer <cr...@2ndquadrant.com> wrote: > On 2 September 2016 at 20:38, Craig Ringer <cr...@2ndquadrant.com> wrote: >> On 2 Sep. 2016 8:30 pm, "Simon Riggs" <si...@2ndquadrant.com> wrote: >>> >>> On 2 September 2016 at 13:16, Craig Ringer <cr...@2ndquadrant.com> wrote: >>> >>> > So I've moved it to xlog.c... >>> >>> I'm pretty sure it shouldn't live in xlog.c, but there may be some >>> good reason I can't see yet. >> >> Ugh. Yes. transam.c would be rather saner. >> >> Only for the helper to determine if an xid is recent though; txid_ status >> stays in adt/xact.c where it belongs along with txid_current() etc. > > Fixed, moved to transam.c.
Missed that this causes an undefined reference to GetNextXidAndEpoch() which is in xlog.c. I knew there was a reason I put it there. So most recent patch is wrong, use the prior one. GetNextXidAndEpoch() needs to be in xlog.c because it uses XLogCtl's shmem copy of checkPoint.nextXidEpoch. So either transam.c needs to #include xlog.h (which seems a bit backwards) or TransactionIdInRecentPast() should go in xlog.c. I don't like either really. Opinion? I'm sure we'll want this functionality in other places as part of dealing with the problems discussed upthread with 'xid' exposed to users. -- Craig Ringer http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Training & Services -- Sent via pgsql-hackers mailing list (firstname.lastname@example.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers