71#define EXPECT_TRUE(expr) \
75 "%s was unexpectedly false in file \"%s\" line %u", \
76 #expr, __FILE__, __LINE__); \
79#define EXPECT_NOT_NULL(expr) \
83 "%s was unexpectedly true in file \"%s\" line %u", \
84 #expr, __FILE__, __LINE__); \
88#define BITMAPSET_TO_TEXT(bms) cstring_to_text(nodeToString(bms))
89#define TEXT_TO_BITMAPSET(str) ((Bitmapset *) stringToNode(text_to_cstring(str)))
95#define PG_ARG_GETBITMAPSET(n) \
96 (PG_ARGISNULL(n) ? NULL : TEXT_TO_BITMAPSET(PG_GETARG_TEXT_PP(n)))
102#define PG_RETURN_BITMAPSET_AS_TEXT(bms) \
103 PG_RETURN_TEXT_P(BITMAPSET_TO_TEXT(bms))
411 bool *elem_nulls =
NULL;
620 elog(
ERROR,
"invalid number of operations");
720 for (
int op = 0; op <
num_ops; op++)
737 member = members[pos];
#define PG_GETARG_ARRAYTYPE_P(n)
void deconstruct_array(const ArrayType *array, Oid elmtype, int elmlen, bool elmbyval, char elmalign, Datum **elemsp, bool **nullsp, int *nelemsp)
TimestampTz GetCurrentTimestamp(void)
Bitmapset * bms_replace_members(Bitmapset *a, const Bitmapset *b)
Bitmapset * bms_difference(const Bitmapset *a, const Bitmapset *b)
int bms_prev_member(const Bitmapset *a, int prevbit)
Bitmapset * bms_make_singleton(int x)
Bitmapset * bms_int_members(Bitmapset *a, const Bitmapset *b)
Bitmapset * bms_intersect(const Bitmapset *a, const Bitmapset *b)
uint32 bitmap_hash(const void *key, Size keysize)
bool bms_equal(const Bitmapset *a, const Bitmapset *b)
BMS_Comparison bms_subset_compare(const Bitmapset *a, const Bitmapset *b)
int bms_next_member(const Bitmapset *a, int prevbit)
uint32 bms_hash_value(const Bitmapset *a)
Bitmapset * bms_del_members(Bitmapset *a, const Bitmapset *b)
Bitmapset * bms_add_range(Bitmapset *a, int lower, int upper)
Bitmapset * bms_del_member(Bitmapset *a, int x)
bool bms_is_subset(const Bitmapset *a, const Bitmapset *b)
int bms_singleton_member(const Bitmapset *a)
void bms_free(Bitmapset *a)
int bms_num_members(const Bitmapset *a)
bool bms_is_member(int x, const Bitmapset *a)
Bitmapset * bms_add_member(Bitmapset *a, int x)
Bitmapset * bms_add_members(Bitmapset *a, const Bitmapset *b)
Bitmapset * bms_union(const Bitmapset *a, const Bitmapset *b)
int bitmap_match(const void *key1, const void *key2, Size keysize)
BMS_Membership bms_membership(const Bitmapset *a)
int bms_member_index(Bitmapset *a, int x)
bool bms_overlap(const Bitmapset *a, const Bitmapset *b)
int bms_compare(const Bitmapset *a, const Bitmapset *b)
bool bms_get_singleton_member(const Bitmapset *a, int *member)
Bitmapset * bms_join(Bitmapset *a, Bitmapset *b)
bool bms_nonempty_difference(const Bitmapset *a, const Bitmapset *b)
Bitmapset * bms_copy(const Bitmapset *a)
bool bms_overlap_list(const Bitmapset *a, const List *b)
#define palloc_array(type, count)
#define PG_GETARG_INT64(n)
#define PG_FUNCTION_INFO_V1(funcname)
#define PG_RETURN_INT32(x)
#define PG_GETARG_INT32(n)
#define PG_RETURN_BOOL(x)
List * lappend_int(List *list, int datum)
void list_free(List *list)
void pfree(void *pointer)
#define CHECK_FOR_INTERRUPTS()
Datum lower(PG_FUNCTION_ARGS)
Datum upper(PG_FUNCTION_ARGS)
uint32 pg_prng_uint32(pg_prng_state *state)
void pg_prng_seed(pg_prng_state *state, uint64 seed)
static int32 DatumGetInt32(Datum X)
Datum test_bms_compare(PG_FUNCTION_ARGS)
Datum test_bms_difference(PG_FUNCTION_ARGS)
Datum test_random_operations(PG_FUNCTION_ARGS)
#define PG_RETURN_BITMAPSET_AS_TEXT(bms)
Datum test_bms_hash_value(PG_FUNCTION_ARGS)
#define EXPECT_TRUE(expr)
Datum test_bms_del_member(PG_FUNCTION_ARGS)
Datum test_bitmap_match(PG_FUNCTION_ARGS)
Datum test_bms_is_member(PG_FUNCTION_ARGS)
#define PG_ARG_GETBITMAPSET(n)
Datum test_bms_is_empty(PG_FUNCTION_ARGS)
Datum test_bms_add_member(PG_FUNCTION_ARGS)
Datum test_bms_int_members(PG_FUNCTION_ARGS)
Datum test_bms_add_members(PG_FUNCTION_ARGS)
Datum test_bitmap_hash(PG_FUNCTION_ARGS)
Datum test_bms_member_index(PG_FUNCTION_ARGS)
Datum test_bms_singleton_member(PG_FUNCTION_ARGS)
Datum test_bms_overlap_list(PG_FUNCTION_ARGS)
Datum test_bms_subset_compare(PG_FUNCTION_ARGS)
Datum test_bms_overlap(PG_FUNCTION_ARGS)
Datum test_bms_join(PG_FUNCTION_ARGS)
#define EXPECT_NOT_NULL(expr)
Datum test_bms_prev_member(PG_FUNCTION_ARGS)
Datum test_bms_equal(PG_FUNCTION_ARGS)
Datum test_bms_add_range(PG_FUNCTION_ARGS)
Datum test_bms_copy(PG_FUNCTION_ARGS)
Datum test_bms_make_singleton(PG_FUNCTION_ARGS)
Datum test_bms_replace_members(PG_FUNCTION_ARGS)
Datum test_bms_get_singleton_member(PG_FUNCTION_ARGS)
Datum test_bms_num_members(PG_FUNCTION_ARGS)
Datum test_bms_next_member(PG_FUNCTION_ARGS)
Datum test_bms_membership(PG_FUNCTION_ARGS)
Datum test_bms_union(PG_FUNCTION_ARGS)
Datum test_bms_intersect(PG_FUNCTION_ARGS)
Datum test_bms_del_members(PG_FUNCTION_ARGS)
Datum test_bms_is_subset(PG_FUNCTION_ARGS)
Datum test_bms_nonempty_difference(PG_FUNCTION_ARGS)