diff -r 6a3248e22d58 -r c6424aebcf5e libidav/davqlexec.h --- a/libidav/davqlexec.h Thu Jul 09 17:22:55 2015 +0200 +++ b/libidav/davqlexec.h Fri Oct 02 13:18:17 2015 +0200 @@ -56,7 +56,7 @@ DAVQL_CMD_TIMESTAMP, DAVQL_CMD_RES_IDENTIFIER, DAVQL_CMD_PROP_IDENTIFIER, - DAVQL_CMD_OP_UNARY_ADD, + //DAVQL_CMD_OP_UNARY_ADD, DAVQL_CMD_OP_UNARY_SUB, DAVQL_CMD_OP_UNARY_NEG, DAVQL_CMD_OP_BINARY_ADD, @@ -124,6 +124,15 @@ char *name; UcxBuffer *code; } DavCompiledField; + +typedef struct DavOrderCriterion { + int type; // 0: resprop, 1: property + union DavQLColumn { + davqlresprop_t resprop; + UcxKey property; + } column; + _Bool descending; +} DavOrderCriterion; DavResult dav_statement_exec(DavSession *sn, DavQLStatement *st, ...); DavResult dav_statement_execv(DavSession *sn, DavQLStatement *st, va_list ap); @@ -133,6 +142,8 @@ DavResult dav_exec_select(DavSession *sn, DavQLStatement *st, va_list ap); +int dav_identifier2resprop(sstr_t src, davqlresprop_t *prop); + UcxBuffer* dav_compile_expr(DavContext *ctx, UcxAllocator *a, DavQLExpression *lexpr, va_list ap); int dav_exec_expr(UcxBuffer *bcode, DavResource *res, DavQLStackObj *result);