aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlvaro Herrera <alvherre@alvh.no-ip.org>2014-08-25 15:33:17 -0400
committerAlvaro Herrera <alvherre@alvh.no-ip.org>2014-08-25 15:33:17 -0400
commit3adba736620c85112e0f9f6d043d3574e1c5830f (patch)
tree1a160bac945c77be64ac70d9aadb9133e66d0a9f
parent6f822952eea112d3e19a0ddaad32e99d1943f29d (diff)
downloadpostgresql-3adba736620c85112e0f9f6d043d3574e1c5830f.tar.gz
postgresql-3adba736620c85112e0f9f6d043d3574e1c5830f.zip
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.
-rw-r--r--src/backend/access/heap/heapam.c11
1 files changed, 4 insertions, 7 deletions
diff --git a/src/backend/access/heap/heapam.c b/src/backend/access/heap/heapam.c
index 5141fcab7af..4d7575bc062 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);
@@ -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);
}
/*