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
user wouldn't be able to see the context message anywhere.  In fact,
this is more in line with what ConditionalXactLockTableWait is doing.

Backpatch to 9.4, where this was added.
This commit is contained in:
Alvaro Herrera 2014-08-25 15:33:17 -04:00
parent 6f822952ee
commit 3adba73662
1 changed files with 4 additions and 7 deletions

View File

@ -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);
@ -4438,8 +4437,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\"",
@ -6246,11 +6244,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);
}
/*