On 2014-03-17 14:52:25 -0400, Tom Lane wrote:
> Andres Freund <andres@2ndquadrant.com> writes:
> > On 2014-03-17 14:29:56 -0400, Tom Lane wrote:
> >> [ scratches head ... ] If that's what's happening, isn't it a bug in
> >> itself? Surely the WAL record ought to point at the tuple that was
> >> locked.
>
> > There's a separate XLOG_HEAP2_LOCK_UPDATED record, for every later tuple
> > version, emitted by heap_lock_updated_tuple_rec(). This really is mind
> > bendingly complex :(.
>
> Ah, I see; so only the original tuple in the chain is at risk?
Depending on what you define the "original tuple in the chain" to
be. No, if you happen to mean the root tuple of a ctid chain or similar;
which I guess you didn't. Yes, if you mean the tuplepassed to
heap_lock_tuple(). heap_xlog_lock_updated() looks (and has looked)
correct.
> How about this:
Sounds good to me.
Greetings,
Andres Freund
-- Andres Freund http://www.2ndQuadrant.com/PostgreSQL Development, 24x7 Support, Training &
Services