On Fri, 2009-01-16 at 16:33 +0200, Heikki Linnakangas wrote:
> I don't think RecentGlobalXmin is good enough here:
>
> > ! /*
> > ! * We would like to set an accurate latestRemovedXid, but there
> > ! * is no easy way of obtaining a useful value. So we use the
> > ! * probably far too conservative value of RecentGlobalXmin instead.
> > ! */
> > ! xlrec_delete.latestRemovedXid = RecentGlobalXmin;
> > ! rdata[0].data = (char *) &xlrec_delete;
> > ! rdata[0].len = SizeOfBtreeDelete;
>
> RecentGlobalXmin is just a hint, it lags behind the real oldest xmin
> that GetOldestXmin() would return. If another backend has a more recent
> RecentGlobalXmin value, and has killed more recent tuples on the page,
> the latestRemovedXid written here is too old.
What do you think we should do instead?
-- Simon Riggs www.2ndQuadrant.comPostgreSQL Training, Services and Support