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
This commit is contained in:
Alvaro Herrera 2013-06-25 16:36:29 -04:00
parent a20d7c3bc3
commit cb687c751c

View File

@ -116,12 +116,15 @@ static bool ConditionalMultiXactIdWait(MultiXactId multi,
* update them). This table (and the macros below) helps us determine the * update them). This table (and the macros below) helps us determine the
* heavyweight lock mode and MultiXactStatus values to use for any particular * heavyweight lock mode and MultiXactStatus values to use for any particular
* tuple lock strength. * tuple lock strength.
*
* Don't look at lockstatus/updstatus directly! Use get_mxact_status_for_lock
* instead.
*/ */
static const struct static const struct
{ {
LOCKMODE hwlock; LOCKMODE hwlock;
MultiXactStatus lockstatus; int lockstatus;
MultiXactStatus updstatus; int updstatus;
} }
tupleLockExtraInfo[MaxLockTupleMode + 1] = tupleLockExtraInfo[MaxLockTupleMode + 1] =
@ -3847,7 +3850,7 @@ simple_heap_update(Relation relation, ItemPointer otid, HeapTuple tup)
static MultiXactStatus static MultiXactStatus
get_mxact_status_for_lock(LockTupleMode mode, bool is_update) get_mxact_status_for_lock(LockTupleMode mode, bool is_update)
{ {
MultiXactStatus retval; int retval;
if (is_update) if (is_update)
retval = tupleLockExtraInfo[mode].updstatus; 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, elog(ERROR, "invalid lock tuple mode %d/%s", mode,
is_update ? "true" : "false"); is_update ? "true" : "false");
return retval; return (MultiXactStatus) retval;
} }