Go to the documentation of this file.
18 #pragma GCC diagnostic ignored "-Waddress"
46 #define as_string_equals(__val) AS_PREDICATE_EQUAL, AS_INDEX_TYPE_DEFAULT, AS_INDEX_STRING, __val
57 #define as_integer_equals(__val) AS_PREDICATE_EQUAL, AS_INDEX_TYPE_DEFAULT, AS_INDEX_NUMERIC, (int64_t)__val
69 #define as_integer_range(__min, __max) AS_PREDICATE_RANGE, AS_INDEX_TYPE_DEFAULT, AS_INDEX_NUMERIC, (int64_t)__min, (int64_t)__max
81 #define as_range(indextype, datatype, __min, __max) AS_PREDICATE_RANGE, AS_INDEX_TYPE_ ##indextype, AS_INDEX_ ##datatype, __min, __max
93 #define as_contains(indextype, datatype, __val) AS_PREDICATE_EQUAL, AS_INDEX_TYPE_ ##indextype, AS_INDEX_ ##datatype, __val
105 #define as_equals(datatype, __val) AS_PREDICATE_EQUAL, AS_INDEX_TYPE_DEFAULT, AS_INDEX_ ##datatype, __val
107 #define as_geo_within(__val) AS_PREDICATE_RANGE, AS_INDEX_TYPE_DEFAULT, AS_INDEX_GEO2DSPHERE, __val
109 #define as_geo_contains(__val) AS_PREDICATE_RANGE, AS_INDEX_TYPE_DEFAULT, AS_INDEX_GEO2DSPHERE, __val
119 typedef union as_predicate_value_u {
153 typedef enum as_predicate_type_e {
168 typedef struct as_predicate_s {
200 typedef enum as_order_e {
218 typedef struct as_ordering_s {
241 typedef struct as_query_bins_s {
275 typedef struct as_query_predicates_s {
309 typedef struct as_query_predexp_s {
343 typedef struct as_query_sort_s {
505 typedef struct as_query_s {
653 #define as_query_select_inita(__query, __n) \
655 if ( (__query) != NULL && (__query)->select.entries == NULL ) {\
656 (__query)->select.entries = (as_bin_name*) alloca(sizeof(as_bin_name) * (__n));\
657 if ( (__query)->select.entries ) { \
658 (__query)->select._free = false;\
659 (__query)->select.capacity = (__n);\
660 (__query)->select.size = 0;\
731 #define as_query_where_inita(__query, __n) \
733 if ( (__query) != NULL && (__query)->where.entries == NULL ) {\
734 (__query)->where.entries = (as_predicate*) alloca(sizeof(as_predicate) * (__n));\
735 if ( (__query)->where.entries ) { \
736 (__query)->where._free = false;\
737 (__query)->where.capacity = (__n);\
738 (__query)->where.size = 0;\
816 #define as_query_predexp_inita(__query, __n) \
817 if ( (__query) != NULL && (__query)->predexp.entries == NULL ) { \
818 (__query)->predexp.entries = \
819 (as_predexp_base **) \
820 alloca(__n * sizeof(as_predexp_base *)); \
821 if ( (__query)->predexp.entries ) { \
822 (__query)->predexp._free = false; \
823 (__query)->predexp.capacity = __n; \
824 (__query)->predexp.size = 0; \