From 686d399f2be6eea4b74d59cdadd427d09cb0e246 Mon Sep 17 00:00:00 2001 From: Andres Freund Date: Sat, 31 Mar 2018 20:26:47 -0700 Subject: [PATCH] Fix non-portable use of round(). round() is from C99. Use rint() instead. There are behavioral differences between round() and rint(), but they should not matter to the Bloom filter optimal_k() function. We already assume POSIX behavior for rint(), so there is no question of rint() not using "rounds towards nearest" as its rounding mode. Cleanup from commit 51bc271790eb234a1ba4d14d3e6530f70de92ab5. Per buildfarm member thrips. Author: Peter Geoghegan Discussion: https://postgr.es/m/CAH2-Wzn76eCGUonARy-wrVtMHsf+4cvbK_oJAWTLfORTU5ki0w@mail.gmail.com --- src/backend/lib/bloomfilter.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/backend/lib/bloomfilter.c b/src/backend/lib/bloomfilter.c index eb08f4a7b86..3565480d13e 100644 --- a/src/backend/lib/bloomfilter.c +++ b/src/backend/lib/bloomfilter.c @@ -240,7 +240,7 @@ my_bloom_power(uint64 target_bitset_bits) static int optimal_k(uint64 bitset_bits, int64 total_elems) { - int k = round(log(2.0) * bitset_bits / total_elems); + int k = rint(log(2.0) * bitset_bits / total_elems); return Max(1, Min(k, MAX_HASH_FUNCS)); }