postgres.git / summary / log / commit / refs

commit    34356933f044d5e3fa02a30ef1fe859eca20d605
Author:   Alvaro Herrera <alvherre@alvh.no-ip.org>
Date:     Mon Aug 25 19:33:19 2014 +0000

    Revert XactLockTableWait context setup in conditional multixact wait
    
    There's no point in setting up a context error callback when doing
    conditional lock acquisition, because we never actually wait and so the
    able wouldn't be able to see it.
    
    Backpatch to 9.4, where this was added.


src/backend/access/heap/heapam.c | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/src/backend/access/heap/heapam.c b/src/backend/access/heap/heapam.c index f710cdc3645..fa608cf8fd3 100644 --- a/src/backend/access/heap/heapam.c +++ b/src/backend/access/heap/heapam.c @@ -109,8 +109,7 @@ static void MultiXactIdWait(MultiXactId multi, MultiXactStatus status, uint16 in Relation rel, ItemPointer ctid, XLTW_Oper oper, int *remaining); static bool ConditionalMultiXactIdWait(MultiXactId multi, MultiXactStatus status, - uint16 infomask, Relation rel, ItemPointer ctid, - XLTW_Oper oper, int *remaining); + uint16 infomask, Relation rel, int *remaining); static XLogRecPtr log_heap_new_cid(Relation relation, HeapTuple tup); static HeapTuple ExtractReplicaIdentity(Relation rel, HeapTuple tup, bool key_modified, bool *copy); @@ -4431,8 +4430,7 @@ l3: { if (!ConditionalMultiXactIdWait((MultiXactId) xwait, status, infomask, relation, - &tuple->t_data->t_ctid, - XLTW_Lock, NULL)) + NULL)) ereport(ERROR, (errcode(ERRCODE_LOCK_NOT_AVAILABLE), errmsg("could not obtain lock on row in relation \"%s\"", @@ -6244,11 +6242,10 @@ MultiXactIdWait(MultiXactId multi, MultiXactStatus status, uint16 infomask, */ static bool ConditionalMultiXactIdWait(MultiXactId multi, MultiXactStatus status, - uint16 infomask, Relation rel, ItemPointer ctid, - XLTW_Oper oper, int *remaining) + uint16 infomask, Relation rel, int *remaining) { return Do_MultiXactIdWait(multi, status, infomask, true, - rel, ctid, oper, remaining); + rel, NULL, XLTW_None, remaining); } /* [parent: 0bfce7618420]