blob: 05b736f566e36778b6bc03d65a7ee93aedf57bfc [file]
/*-------------------------------------------------------------------------
*
* bloomfilter.h
* Space-efficient set membership testing
*
* Copyright (c) 2018-2023, 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 */