• Tom Lane's avatar
    Adjust DatumGetBool macro, this time for sure. · 23b09e15
    Tom Lane authored
    Commit 23a41573 attempted to fix the DatumGetBool macro to ignore bits
    in a Datum that are to the left of the actual bool value.  But it did that
    by casting the Datum to bool; and on compilers that use C99 semantics for
    bool, that ends up being a whole-word test, not a 1-byte test.  This seems
    to be the true explanation for contrib/seg failing in VS2015.  To fix, use
    GET_1_BYTE() explicitly.  I think in the previous patch, I'd had some idea
    of not having to commit to bool being exactly 1 byte wide, but regardless
    of what the compiler's bool is, boolean columns and Datums are certainly
    1 byte wide.
    
    The previous fix was (eventually) back-patched into all active versions,
    so do likewise with this one.
    23b09e15
postgres.h 22.6 KB