Repair two related errors in heap_lock_tuple: it was failing to recognize

Tom Lane <tgl@sss.pgh.pa.us>

Commit: 4f335a3d7fda4b4a0efd4568ac61d036098d951a
Author: Tom Lane <tgl@sss.pgh.pa.us>
Date: 2006-11-17T18:00:15Z
Releases: 8.2.0
Repair two related errors in heap_lock_tuple: it was failing to recognize
cases where we already hold the desired lock "indirectly", either via
membership in a MultiXact or because the lock was originally taken by a
different subtransaction of the current transaction.  These cases must be
accounted for to avoid needless deadlocks and/or inappropriate replacement of
an exclusive lock with a shared lock.  Per report from Clarence Gardner and
subsequent investigation.

Files