From: Alvaro Herrera Date: Mon, 25 Aug 2014 19:33:19 +0000 (-0400) Subject: Revert XactLockTableWait context setup in conditional multixact wait X-Git-Tag: REL9_4_BETA3~80 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=34356933f044d5e3fa02a30ef1fe859eca20d605;p=postgresql 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. --- diff --git a/src/backend/access/heap/heapam.c b/src/backend/access/heap/heapam.c index f710cdc364..fa608cf8fd 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); } /*