Fix compiler warning
authorDavid Rowley <[email protected]>
Tue, 15 Sep 2020 03:07:57 +0000 (15:07 +1200)
committerDavid Rowley <[email protected]>
Tue, 15 Sep 2020 03:07:57 +0000 (15:07 +1200)
Introduced in 0aa8f7640.

MSVC warned about performing 32-bit bit shifting when it appeared like we
might like a 64-bit result.  We did, but it just so happened that none of
the calls to this function could have caused the 32-bit shift to overflow.

Here we just cast the constant to int64 to make the compiler happy.

Discussion: https://postgr.es/m/CAApHDvofA_vsrpC13mq_hZyuye5B-ssKEaer04OouXYCO5-uXQ@mail.gmail.com

src/backend/utils/adt/dbsize.c

index 7def7392b9552a20d31e5c7e5cce5a3fbf436e6a..3319e9761e4c0312857b051eecae87934e5c9be4 100644 (file)
@@ -627,7 +627,7 @@ numeric_shift_right(Numeric n, unsigned count)
    Datum       divisor_numeric;
    Datum       result;
 
-   divisor_numeric = NumericGetDatum(int64_to_numeric(1 << count));
+   divisor_numeric = NumericGetDatum(int64_to_numeric(((int64) 1) << count));
    result = DirectFunctionCall2(numeric_div_trunc, d, divisor_numeric);
    return DatumGetNumeric(result);
 }