aboutsummaryrefslogtreecommitdiff
path: root/src/backend/lib/bloomfilter.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/lib/bloomfilter.c')
-rw-r--r--src/backend/lib/bloomfilter.c15
1 files changed, 13 insertions, 2 deletions
diff --git a/src/backend/lib/bloomfilter.c b/src/backend/lib/bloomfilter.c
index e2c1276f219..1e907cabc6e 100644
--- a/src/backend/lib/bloomfilter.c
+++ b/src/backend/lib/bloomfilter.c
@@ -37,7 +37,6 @@
#include "access/hash.h"
#include "lib/bloomfilter.h"
-#include "port/pg_bitutils.h"
#define MAX_HASH_FUNCS 10
@@ -188,7 +187,19 @@ double
bloom_prop_bits_set(bloom_filter *filter)
{
int bitset_bytes = filter->m / BITS_PER_BYTE;
- uint64 bits_set = pg_popcount((char *) filter->bitset, bitset_bytes);
+ uint64 bits_set = 0;
+ int i;
+
+ for (i = 0; i < bitset_bytes; i++)
+ {
+ unsigned char byte = filter->bitset[i];
+
+ while (byte)
+ {
+ bits_set++;
+ byte &= (byte - 1);
+ }
+ }
return bits_set / (double) filter->m;
}