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
106 #define as_geo_within(__val) AS_PREDICATE_RANGE, AS_INDEX_TYPE_DEFAULT, AS_INDEX_GEO2DSPHERE, __val
108 #define as_geo_contains(__val) AS_PREDICATE_RANGE, AS_INDEX_TYPE_DEFAULT, AS_INDEX_GEO2DSPHERE, __val
118 typedef union as_predicate_value_u {
152 typedef enum as_predicate_type_e {
167 typedef struct as_predicate_s {
199 typedef enum as_order_e {
217 typedef struct as_ordering_s {
240 typedef struct as_query_bins_s {
274 typedef struct as_query_predicates_s {
308 typedef struct as_query_sort_s {
470 typedef struct as_query_s {
611 #define as_query_select_inita(__query, __n) \
613 if ( (__query) != NULL && (__query)->select.entries == NULL ) {\
614 (__query)->select.entries = (as_bin_name *) alloca(__n * sizeof(as_bin_name));\
615 if ( (__query)->select.entries ) { \
616 (__query)->select._free = false;\
617 (__query)->select.capacity = __n;\
618 (__query)->select.size = 0;\
689 #define as_query_where_inita(__query, __n) \
691 if ( (__query) != NULL && (__query)->where.entries == NULL ) {\
692 (__query)->where.entries = (as_predicate *) alloca(__n * sizeof(as_predicate));\
693 if ( (__query)->where.entries ) { \
694 (__query)->where._free = false;\
695 (__query)->where.capacity = __n;\
696 (__query)->where.size = 0;\
773 #define as_query_orderby_inita(__query, __n) \
775 if ( (__query) != NULL && (__query)->orderby.entries == NULL ) {\
776 (__query)->orderby.entries = (as_ordering *) alloca(__n * sizeof(as_ordering));\
777 if ( (__query)->orderby.entries ) { \
778 (__query)->orderby._free = false;\
779 (__query)->orderby.capacity = __n;\
780 (__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