PostgreSQL Source Code: src/test/modules/test_bloomfilter/test_bloomfilter.c File Reference (original) (raw)
Go to the source code of this file.
Functions | |
---|---|
static void | populate_with_dummy_strings (bloom_filter *filter, int64 nelements) |
static int64 | nfalsepos_for_missing_strings (bloom_filter *filter, int64 nelements) |
static void | create_and_test_bloom (int power, int64 nelements, int callerseed) |
PG_FUNCTION_INFO_V1 (test_bloomfilter) | |
Datum | test_bloomfilter (PG_FUNCTION_ARGS) |
◆ FPOSITIVE_THRESHOLD
#define FPOSITIVE_THRESHOLD 0.01
◆ MAX_ELEMENT_BYTES
#define MAX_ELEMENT_BYTES 21
◆ create_and_test_bloom()
static void create_and_test_bloom ( int power, int64 nelements, int callerseed ) | static |
---|
Definition at line 72 of file test_bloomfilter.c.
73{
74 int bloom_work_mem;
78
79 bloom_work_mem = ((int64) 1 << power) / (8 * 1024);
80
81 elog(DEBUG1, "bloom_work_mem (KB): %d", bloom_work_mem);
82
83
84
85
86
87
89
90
91 filter = bloom_create(nelements, bloom_work_mem, seed);
94
97 seed, nfalsepos, (double) nfalsepos / nelements,
99
101}
void bloom_free(bloom_filter *filter)
bloom_filter * bloom_create(int64 total_elems, int bloom_work_mem, uint64 seed)
double bloom_prop_bits_set(bloom_filter *filter)
int errmsg_internal(const char *fmt,...)
#define ereport(elevel,...)
int32 pg_prng_int32p(pg_prng_state *state)
pg_prng_state pg_global_prng_state
static void populate_with_dummy_strings(bloom_filter *filter, int64 nelements)
static int64 nfalsepos_for_missing_strings(bloom_filter *filter, int64 nelements)
#define FPOSITIVE_THRESHOLD
References bloom_create(), bloom_free(), bloom_prop_bits_set(), DEBUG1, elog, ereport, errmsg_internal(), FPOSITIVE_THRESHOLD, INT64_FORMAT, nfalsepos_for_missing_strings(), pg_global_prng_state, pg_prng_int32p(), populate_with_dummy_strings(), UINT64_FORMAT, and WARNING.
Referenced by test_bloomfilter().
◆ nfalsepos_for_missing_strings()
Definition at line 52 of file test_bloomfilter.c.
53{
55 int64 nfalsepos = 0;
57
58 for (i = 0; i < nelements; i++)
59 {
61
65 nfalsepos++;
66 }
67
68 return nfalsepos;
69}
bool bloom_lacks_element(bloom_filter *filter, unsigned char *elem, size_t len)
#define CHECK_FOR_INTERRUPTS()
static chr element(struct vars *v, const chr *startp, const chr *endp)
#define MAX_ELEMENT_BYTES
References bloom_lacks_element(), CHECK_FOR_INTERRUPTS, element(), i, INT64_FORMAT, MAX_ELEMENT_BYTES, and snprintf.
Referenced by create_and_test_bloom().
◆ PG_FUNCTION_INFO_V1()
◆ populate_with_dummy_strings()
static void populate_with_dummy_strings ( bloom_filter * filter, int64 nelements ) | static |
---|
Definition at line 113 of file test_bloomfilter.c.
114{
119 int i;
120
121 if (power < 23 || power > 32)
122 elog(ERROR, "power argument must be between 23 and 32 inclusive");
123
124 if (tests <= 0)
125 elog(ERROR, "invalid number of tests: %d", tests);
126
127 if (nelements < 0)
128 elog(ERROR, "invalid number of elements: %d", tests);
129
130 for (i = 0; i < tests; i++)
131 {
132 elog(DEBUG1, "beginning test #%d...", i + 1);
133
135 }
136
138}
#define PG_GETARG_INT64(n)
#define PG_GETARG_INT32(n)
static void create_and_test_bloom(int power, int64 nelements, int callerseed)
References create_and_test_bloom(), DEBUG1, elog, ERROR, i, PG_GETARG_INT32, PG_GETARG_INT64, and PG_RETURN_VOID.