pgsql: Clean up some stuff in new contrib/bloom module.

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: pgsql-committers(at)postgresql(dot)org
Subject: pgsql: Clean up some stuff in new contrib/bloom module.
Date: 2016-04-03 18:17:33
Message-ID: E1ammab-00078R-GF@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

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.

Branch
------
master

Details
-------
http://git.postgresql.org/pg/commitdiff/a9284849b48b04fa2836aaf704659974c13e610d

Modified Files
--------------
contrib/bloom/blinsert.c | 11 ++++++++---
contrib/bloom/bloom.h | 4 ++--
contrib/bloom/blscan.c | 7 +++++--
3 files changed, 15 insertions(+), 7 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Tom Lane 2016-04-03 19:16:14 pgsql: Fix contrib/bloom to not fail under CLOBBER_CACHE_ALWAYS.
Previous Message Simon Riggs 2016-04-03 16:47:50 pgsql: Avoid pin scan for replay of XLOG_BTREE_VACUUM in all cases