]> granicus.if.org Git - postgresql/commit - contrib/bloom/blinsert.c
Clean up some stuff in new contrib/bloom module.
authorTom Lane <tgl@sss.pgh.pa.us>
Sun, 3 Apr 2016 18:17:20 +0000 (14:17 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Sun, 3 Apr 2016 18:17:23 +0000 (14:17 -0400)
commita9284849b48b04fa2836aaf704659974c13e610d
tree8e3f1667e6b73a8fe636ed74ae847c23565216b7
parent3e4b7d87988f0835f137f15f5c1a40598dd21f3d
Clean up some stuff in new contrib/bloom module.

Coverity complained about implicit sign-extension in the
BloomPageGetFreeSpace macro, probably because sizeOfBloomTuple isn't wide
enough for size calculations.  No overflow is really possible as long as
maxoff and sizeOfBloomTuple are small enough to represent a realistic
situation, but it seems like a good idea to declare sizeOfBloomTuple as
Size not int32.

Add missing check on BloomPageAddItem() result, again from Coverity.

Avoid core dump due to not allocating so->sign array when
scan->numberOfKeys is zero.  Also thanks to Coverity.

Use FLEXIBLE_ARRAY_MEMBER rather than declaring an array as size 1
when it isn't necessarily.

Very minor beautification of related code.

Unfortunately, none of the Coverity-detected mistakes look like they
could account for the remaining buildfarm unhappiness with this
module.  It's barely possible that the FLEXIBLE_ARRAY_MEMBER mistake
does account for that, if it's enabling bogus compiler optimizations;
but I'm not terribly optimistic.  We probably still have bugs to
find here.
contrib/bloom/blinsert.c
contrib/bloom/bloom.h
contrib/bloom/blscan.c