]> granicus.if.org Git - postgresql/commit
Repair two related errors in heap_lock_tuple: it was failing to recognize
authorTom Lane <tgl@sss.pgh.pa.us>
Fri, 17 Nov 2006 18:00:25 +0000 (18:00 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Fri, 17 Nov 2006 18:00:25 +0000 (18:00 +0000)
commit91eb4895bb6c57face2edf30e20e16e6ab942ef1
treecfbd90e4ac556bc7e16c46b542f3e733de323375
parenta2281c8e6f5ffe4fa67584f850bfa077e526115e
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.
src/backend/access/heap/heapam.c
src/backend/access/transam/multixact.c
src/backend/utils/time/tqual.c
src/include/access/multixact.h