1 /*------------------------------------------------------------------------- 2 * 3 * bloomfilter.h 4 * Space-efficient set membership testing 5 * 6 * Copyright (c) 2018-2021, PostgreSQL Global Development Group 7 * 8 * IDENTIFICATION 9 * src/include/lib/bloomfilter.h 10 * 11 *------------------------------------------------------------------------- 12 */ 13 #ifndef BLOOMFILTER_H 14 #define BLOOMFILTER_H 15 16 typedef struct bloom_filter bloom_filter; 17 18 extern bloom_filter *bloom_create(int64 total_elems, int bloom_work_mem, 19 uint64 seed); 20 extern void bloom_free(bloom_filter *filter); 21 extern void bloom_add_element(bloom_filter *filter, unsigned char *elem, 22 size_t len); 23 extern bool bloom_lacks_element(bloom_filter *filter, unsigned char *elem, 24 size_t len); 25 extern double bloom_prop_bits_set(bloom_filter *filter); 26 27 #endif /* BLOOMFILTER_H */ 28