Tom Lane wrote:
> 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.
I am guessing he is going to have to release the lock, then ask for an
exclusive one.
--
Bruce Momjian <bruce@momjian.us> http://momjian.us
EnterpriseDB http://www.enterprisedb.com
+ If your life is a hard drive, Christ can be your backup. +