Re: obtaining row locking information

Tatsuo Ishii <t-ishii@sra.co.jp>

From: Tatsuo Ishii <t-ishii@sra.co.jp>
To: tgl@sss.pgh.pa.us
Cc: pgsql-hackers@postgresql.org
Date: 2005-08-08T14:36:57Z
Lists: pgsql-hackers
> Tatsuo Ishii <t-ishii@sra.co.jp> writes:
> > If I understand correctly, it seems the above method does show a
> > locked row's TID which does not block someone else. That is a little
> > bit different from what I expcted.
> 
> Well, it *could* be blocking someone else.  If there were more than one
> waiter for the same tuple, one of them would be holding the tuple lock
> (and blocked on the transaction ID of the actual holder of the tuple),
> and the other ones would be blocked on the first waiter's tuple lock.
> We put this in so that the full lock manager rules would be used to
> arbitrate conflicts between shared and exclusive lockers of a tuple.
> The tuple lock is being used to manage the grant order and ensure that
> a would-be exclusive locker doesn't get "starved out" indefinitely if
> there is a continuous chain of shared-lock requests.  See the notes in
> heap_lock_tuple().
> 
> 			regards, tom lane

Sorry, I meant:

If I understand correctly, it seems the above method does *not* show a
locked row's TID which does not block someone else. That is a little
bit different from what I expcted.
--
Tatsuo Ishii