18 #pragma GCC diagnostic ignored "-Waddress"
45 #define as_string_equals(__val) AS_PREDICATE_EQUAL, AS_INDEX_TYPE_DEFAULT, AS_INDEX_STRING, __val
56 #define as_integer_equals(__val) AS_PREDICATE_EQUAL, AS_INDEX_TYPE_DEFAULT, AS_INDEX_NUMERIC, (int64_t)__val
68 #define as_integer_range(__min, __max) AS_PREDICATE_RANGE, AS_INDEX_TYPE_DEFAULT, AS_INDEX_NUMERIC, (int64_t)__min, (int64_t)__max
80 #define as_range(indextype, datatype, __min, __max) AS_PREDICATE_RANGE, AS_INDEX_TYPE_ ##indextype, AS_INDEX_ ##datatype, __min, __max
92 #define as_contains(indextype, datatype, __val) AS_PREDICATE_EQUAL, AS_INDEX_TYPE_ ##indextype, AS_INDEX_ ##datatype, __val
104 #define as_equals(datatype, __val) AS_PREDICATE_EQUAL, AS_INDEX_TYPE_DEFAULT, AS_INDEX_ ##datatype, __val
114 typedef union as_predicate_value_u {
148 typedef enum as_predicate_type_e {
163 typedef struct as_predicate_s {
195 typedef enum as_order_e {
213 typedef struct as_ordering_s {
236 typedef struct as_query_bins_s {
270 typedef struct as_query_predicates_s {
304 typedef struct as_query_sort_s {
466 typedef struct as_query_s {
607 #define as_query_select_inita(__query, __n) \
608 if ( (__query) != NULL && (__query)->select.entries == NULL ) {\
609 (__query)->select.entries = (as_bin_name *) alloca(__n * sizeof(as_bin_name));\
610 if ( (__query)->select.entries ) { \
611 (__query)->select._free = false;\
612 (__query)->select.capacity = __n;\
613 (__query)->select.size = 0;\
683 #define as_query_where_inita(__query, __n) \
684 if ( (__query) != NULL && (__query)->where.entries == NULL ) {\
685 (__query)->where.entries = (as_predicate *) alloca(__n * sizeof(as_predicate));\
686 if ( (__query)->where.entries ) { \
687 (__query)->where._free = false;\
688 (__query)->where.capacity = __n;\
689 (__query)->where.size = 0;\
765 #define as_query_orderby_inita(__query, __n) \
766 if ( (__query) != NULL && (__query)->orderby.entries == NULL ) {\
767 (__query)->orderby.entries = (as_ordering *) alloca(__n * sizeof(as_ordering));\
768 if ( (__query)->orderby.entries ) { \
769 (__query)->orderby._free = false;\
770 (__query)->orderby.capacity = __n;\
771 (__query)->orderby.size = 0;\
bool as_query_where(as_query *query, const char *bin, as_predicate_type type, as_index_type itype, as_index_datatype dtype,...)
as_query * as_query_init(as_query *query, const as_namespace ns, const as_set set)
as_query * as_query_new(const as_namespace ns, const as_set set)
bool as_query_orderby(as_query *query, const char *bin, as_order order)
bool as_query_select(as_query *query, const char *bin)
bool as_query_where_init(as_query *query, uint16_t n)
char as_namespace[AS_NAMESPACE_MAX_SIZE]
void as_query_destroy(as_query *query)
bool as_query_select_init(as_query *query, uint16_t n)
bool as_query_orderby_init(as_query *query, uint16_t n)
char as_bin_name[AS_BIN_NAME_MAX_SIZE]
bool as_query_apply(as_query *query, const char *module, const char *function, const as_list *arglist)
as_query_predicates where
char as_set[AS_SET_MAX_SIZE]
as_query_ordering orderby