Bruce Momjian <bruce@momjian.us> writes:
> Pavan Deolasee wrote:
>> When following a HOT-update chain from the index fetch, if we notice that
>> the root tuple is dead and it is HOT-updated, we try to prune the chain to
>> the smallest possible length. To do that, the share lock is upgraded to an
>> exclusive lock and the tuple chain is followed till we find a
>> live/recently-dead
>> tuple. At that point, the root t_ctid is made point to that tuple. In order
> I assume you meant recently-dead here, rather than live/recently-dead,
> because we aren't going to change live ctids, right?
"Recently dead" means "still live to somebody", so those tids better not
change either. But I don't think that's what he meant. I'm more
worried about the deadlock possibilities inherent in trying to upgrade a
buffer lock. We do not have deadlock detection for LWLocks.
regards, tom lane