On 2013-12-18 21:42:25 -0500, Robert Haas wrote:
> On Wed, Dec 18, 2013 at 5:54 PM, Andres Freund <andres@2ndquadrant.com> wrote:
> >> if (frz->frzflags & XLH_FREEZE_XVAC)
> >> + {
> >> HeapTupleHeaderSetXvac(tuple, FrozenTransactionId);
> >> + /* If we somehow haven't hinted the tuple previously, do it now. */
> >> + HeapTupleHeaderSetXminCommitted(tuple);
> >> + }
> >
> > What's the reasoning behind adding HeapTupleHeaderSetXminCommitted()
> > here?
>
> I'm just copying the existing logic. See the final stanza of
> heap_prepare_freeze_tuple.
Yes, but why don't you keep that in heap_prepare_freeze_tuple()? Just
because of HeapTupleHeaderSetXminCommitted()? I dislike transporting the
infomask in the wal record and then changing it away from that again afterwards.
Greetings,
Andres Freund
-- Andres Freund http://www.2ndQuadrant.com/PostgreSQL Development, 24x7 Support, Training &
Services