2018-04-01 02:49:41 +02:00
|
|
|
/*-------------------------------------------------------------------------
|
|
|
|
*
|
|
|
|
* bloomfilter.h
|
|
|
|
* Space-efficient set membership testing
|
|
|
|
*
|
2022-01-08 01:04:57 +01:00
|
|
|
* Copyright (c) 2018-2022, PostgreSQL Global Development Group
|
2018-04-01 02:49:41 +02:00
|
|
|
*
|
|
|
|
* 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);
|
|
|
|
|
|
|
|
#endif /* BLOOMFILTER_H */
|