libidav/davqlexec.h

changeset 139
c6424aebcf5e
parent 135
664aeaec8d25
child 185
cd42cccee550
--- 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);

mercurial