postgres.git / summary / log / commit / refs
commit cb687c751c8d2e9eb097339f8920ca8fcf29fc47
Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
Date: Tue Jun 25 20:36:29 2013 +0000
First released in: 9.4.0, 9.3.0
Avoid inconsistent type declaration
Clang 3.3 correctly complains that a variable of type enum
MultiXactStatus cannot hold a value of -1, which makes sense. Change
the declared type of the variable to int instead, and apply casting as
necessary to avoid the warning.
Per notice from Andres Freund
src/backend/access/heap/heapam.c | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)
diff --git a/src/backend/access/heap/heapam.c b/src/backend/access/heap/heapam.c
index e88dd30c648..1531f3b479a 100644
--- a/src/backend/access/heap/heapam.c
+++ b/src/backend/access/heap/heapam.c
@@ -116,12 +116,15 @@ static bool ConditionalMultiXactIdWait(MultiXactId multi,
* update them). This table (and the macros below) helps us determine the
* heavyweight lock mode and MultiXactStatus values to use for any particular
* tuple lock strength.
+ *
+ * Don't look at lockstatus/updstatus directly! Use get_mxact_status_for_lock
+ * instead.
*/
static const struct
{
LOCKMODE hwlock;
- MultiXactStatus lockstatus;
- MultiXactStatus updstatus;
+ int lockstatus;
+ int updstatus;
}
tupleLockExtraInfo[MaxLockTupleMode + 1] =
@@ -3847,7 +3850,7 @@ simple_heap_update(Relation relation, ItemPointer otid, HeapTuple tup)
static MultiXactStatus
get_mxact_status_for_lock(LockTupleMode mode, bool is_update)
{
- MultiXactStatus retval;
+ int retval;
if (is_update)
retval = tupleLockExtraInfo[mode].updstatus;
@@ -3858,7 +3861,7 @@ get_mxact_status_for_lock(LockTupleMode mode, bool is_update)
elog(ERROR, "invalid lock tuple mode %d/%s", mode,
is_update ? "true" : "false");
- return retval;
+ return (MultiXactStatus) retval;
}
[parent: a20d7c3bc351]