Robert Haas <robertmhaas@gmail.com> writes:
> Interesting idea. I think in general we insist that you must have a
> buffer content lock to inspect the tuple visibility info, in which
> case that would be safe. But I'm not sure we do that absolutely
> everywhere. For instance, just last night I noticed this:
> /*
> * If xmin isn't what we're expecting, the
> slot must have been
> * recycled and reused for an unrelated tuple.
> This implies that
> * the latest version of the row was deleted,
> so we need do
> * nothing. (Should be safe to examine xmin
> without getting
> * buffer's content lock, since xmin never
> changes in an existing
> * tuple.)
> */
> if
Hmm ... I think that code is OK but the comment needs work. Here we are
necessarily looking for a pretty recent value of xmin (it has to be
later than GlobalXmin), so there's no need to worry that it might get
changed to FrozenXID.
regards, tom lane