summaryrefslogtreecommitdiff
path: root/contrib/pgrowlocks/pgrowlocks.c
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/pgrowlocks/pgrowlocks.c')
-rw-r--r--contrib/pgrowlocks/pgrowlocks.c13
1 files changed, 4 insertions, 9 deletions
diff --git a/contrib/pgrowlocks/pgrowlocks.c b/contrib/pgrowlocks/pgrowlocks.c
index 15d9704752..88f7137a17 100644
--- a/contrib/pgrowlocks/pgrowlocks.c
+++ b/contrib/pgrowlocks/pgrowlocks.c
@@ -38,7 +38,6 @@
#include "utils/snapmgr.h"
#include "utils/tqual.h"
-
PG_MODULE_MAGIC;
PG_FUNCTION_INFO_V1(pgrowlocks);
@@ -137,14 +136,9 @@ pgrowlocks(PG_FUNCTION_ARGS)
infomask = tuple->t_data->t_infomask;
/*
- * a tuple is locked if HTSU returns BeingUpdated, and if it returns
- * MayBeUpdated but the Xmax is valid and pointing at us.
+ * A tuple is locked if HTSU returns BeingUpdated.
*/
- if (htsu == HeapTupleBeingUpdated ||
- (htsu == HeapTupleMayBeUpdated &&
- !(infomask & HEAP_XMAX_INVALID) &&
- !(infomask & HEAP_XMAX_IS_MULTI) &&
- (xmax == GetCurrentTransactionIdIfAny())))
+ if (htsu == HeapTupleBeingUpdated)
{
char **values;
@@ -166,7 +160,8 @@ pgrowlocks(PG_FUNCTION_ARGS)
allow_old = !(infomask & HEAP_LOCK_MASK) &&
(infomask & HEAP_XMAX_LOCK_ONLY);
- nmembers = GetMultiXactIdMembers(xmax, &members, allow_old);
+ nmembers = GetMultiXactIdMembers(xmax, &members, allow_old,
+ false);
if (nmembers == -1)
{
values[Atnum_xids] = "{0}";