aboutsummaryrefslogtreecommitdiff
path: root/src/backend/utils/adt/xml.c
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2016-04-28 11:50:58 -0400
committerTom Lane <tgl@sss.pgh.pa.us>2016-04-28 11:51:13 -0400
commit65c2eeb003bfc4e37f504e429bded6f0c0b40d43 (patch)
tree54839fe0eb969c0b34042c7848d23874567dd00f /src/backend/utils/adt/xml.c
parent3be77da179a187dc7eacd2b2104b53ec62ab9fa7 (diff)
downloadpostgresql-65c2eeb003bfc4e37f504e429bded6f0c0b40d43.tar.gz
postgresql-65c2eeb003bfc4e37f504e429bded6f0c0b40d43.zip
Adjust DatumGetBool macro, this time for sure.
Commit 23a41573c 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.
Diffstat (limited to 'src/backend/utils/adt/xml.c')
0 files changed, 0 insertions, 0 deletions