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.

PG_MODULE_MAGIC