On 2014-02-26 18:18:05 -0300, Alvaro Herrera wrote:
> Andres Freund wrote:
>
> > static void
> > heap_xlog_lock(XLogRecPtr lsn, XLogRecord *record)
> > {
> > ...
> > HeapTupleHeaderClearHotUpdated(htup);
> > HeapTupleHeaderSetXmax(htup, xlrec->locking_xid);
> > HeapTupleHeaderSetCmax(htup, FirstCommandId, false);
> > /* Make sure there is no forward chain link in t_ctid */
> > htup->t_ctid = xlrec->target.tid;
> > ...
> > }
>
> I think the fix is to reset HOT_UPDATED and t_ctid only if the infomask
> says the tuple is LOCKED_ONLY, per the attached patch.
Looks good to me.
Greetings,
Andres Freund
-- Andres Freund http://www.2ndQuadrant.com/PostgreSQL Development, 24x7 Support, Training &
Services