140 }; |
141 }; |
141 |
142 |
142 typedef struct DavCompiledField { |
143 typedef struct DavCompiledField { |
143 char *ns; |
144 char *ns; |
144 char *name; |
145 char *name; |
145 UcxBuffer *code; |
146 CxBuffer *code; |
146 } DavCompiledField; |
147 } DavCompiledField; |
147 |
148 |
148 typedef struct DavOrderCriterion { |
149 typedef struct DavOrderCriterion { |
149 int type; // 0: resprop, 1: property |
150 int type; // 0: resprop, 1: property |
150 union DavQLColumn { |
151 union DavQLColumn { |
151 davqlresprop_t resprop; |
152 davqlresprop_t resprop; |
152 UcxKey property; |
153 CxHashKey property; |
153 } column; |
154 } column; |
154 _Bool descending; |
155 _Bool descending; |
155 } DavOrderCriterion; |
156 } DavOrderCriterion; |
156 |
157 |
157 DavQLArgList* dav_ql_get_args(DavQLStatement *st, va_list ap); |
158 DavQLArgList* dav_ql_get_args(DavQLStatement *st, va_list ap); |
163 time_t dav_ql_getarg_time(DavQLArgList *args); |
164 time_t dav_ql_getarg_time(DavQLArgList *args); |
164 |
165 |
165 DavResult dav_statement_exec(DavSession *sn, DavQLStatement *st, ...); |
166 DavResult dav_statement_exec(DavSession *sn, DavQLStatement *st, ...); |
166 DavResult dav_statement_execv(DavSession *sn, DavQLStatement *st, va_list ap); |
167 DavResult dav_statement_execv(DavSession *sn, DavQLStatement *st, va_list ap); |
167 |
168 |
168 UcxBuffer* dav_path_string(sstr_t src, DavQLArgList *args, davqlerror_t *error); |
169 CxBuffer* dav_path_string(cxmutstr src, DavQLArgList *args, davqlerror_t *error); |
169 sstr_t dav_format_string(UcxAllocator *a, sstr_t fstr, DavQLArgList *ap, davqlerror_t *error); |
170 cxmutstr dav_format_string(const CxAllocator *a, cxstring fstr, DavQLArgList *ap, davqlerror_t *error); |
170 |
171 |
171 DavResult dav_exec_select(DavSession *sn, DavQLStatement *st, va_list ap); |
172 DavResult dav_exec_select(DavSession *sn, DavQLStatement *st, va_list ap); |
172 |
173 |
173 int dav_identifier2resprop(sstr_t src, davqlresprop_t *prop); |
174 int dav_identifier2resprop(cxstring src, davqlresprop_t *prop); |
174 |
175 |
175 UcxBuffer* dav_compile_expr(DavContext *ctx, UcxAllocator *a, DavQLExpression *lexpr, DavQLArgList *ap); |
176 CxBuffer* dav_compile_expr(DavContext *ctx, const CxAllocator *a, DavQLExpression *lexpr, DavQLArgList *ap); |
176 |
177 |
177 int dav_exec_expr(UcxBuffer *bcode, DavResource *res, DavQLStackObj *result); |
178 int dav_exec_expr(CxBuffer *bcode, DavResource *res, DavQLStackObj *result); |
178 |
179 |
179 |
180 |
180 |
181 |
181 #ifdef __cplusplus |
182 #ifdef __cplusplus |
182 } |
183 } |