blob: cb71e16864f6f7d9762d206ba9e64464087950c4 [file] [log] [blame]
/*-------------------------------------------------------------------------
*
* bloomfilter.h
* Space-efficient set membership testing
*
* Copyright (c) 2018-2021, PostgreSQL Global Development Group
*
* IDENTIFICATION
* src/include/lib/bloomfilter.h
*
*-------------------------------------------------------------------------
*/
#ifndef BLOOMFILTER_H
#define BLOOMFILTER_H
typedef struct bloom_filter bloom_filter;
extern bloom_filter *bloom_create(int64 total_elems, int bloom_work_mem,
uint64 seed);
extern void bloom_free(bloom_filter *filter);
extern void bloom_add_element(bloom_filter *filter, unsigned char *elem,
size_t len);
extern bool bloom_lacks_element(bloom_filter *filter, unsigned char *elem,
size_t len);
extern double bloom_prop_bits_set(bloom_filter *filter);
extern double bloom_false_positive_rate(bloom_filter *filter);
extern uint64 bloom_total_bits(bloom_filter *filter);
extern bloom_filter *bloom_create_aggresive(int64 total_elems,
int work_mem, uint64 seed);
#endif /* BLOOMFILTER_H */