libidav/davqlexec.h

changeset 139
c6424aebcf5e
parent 135
664aeaec8d25
child 185
cd42cccee550
equal deleted inserted replaced
138:6a3248e22d58 139:c6424aebcf5e
54 DAVQL_CMD_INT = 0, 54 DAVQL_CMD_INT = 0,
55 DAVQL_CMD_STRING, 55 DAVQL_CMD_STRING,
56 DAVQL_CMD_TIMESTAMP, 56 DAVQL_CMD_TIMESTAMP,
57 DAVQL_CMD_RES_IDENTIFIER, 57 DAVQL_CMD_RES_IDENTIFIER,
58 DAVQL_CMD_PROP_IDENTIFIER, 58 DAVQL_CMD_PROP_IDENTIFIER,
59 DAVQL_CMD_OP_UNARY_ADD, 59 //DAVQL_CMD_OP_UNARY_ADD,
60 DAVQL_CMD_OP_UNARY_SUB, 60 DAVQL_CMD_OP_UNARY_SUB,
61 DAVQL_CMD_OP_UNARY_NEG, 61 DAVQL_CMD_OP_UNARY_NEG,
62 DAVQL_CMD_OP_BINARY_ADD, 62 DAVQL_CMD_OP_BINARY_ADD,
63 DAVQL_CMD_OP_BINARY_SUB, 63 DAVQL_CMD_OP_BINARY_SUB,
64 DAVQL_CMD_OP_BINARY_MUL, 64 DAVQL_CMD_OP_BINARY_MUL,
122 typedef struct DavCompiledField { 122 typedef struct DavCompiledField {
123 char *ns; 123 char *ns;
124 char *name; 124 char *name;
125 UcxBuffer *code; 125 UcxBuffer *code;
126 } DavCompiledField; 126 } DavCompiledField;
127
128 typedef struct DavOrderCriterion {
129 int type; // 0: resprop, 1: property
130 union DavQLColumn {
131 davqlresprop_t resprop;
132 UcxKey property;
133 } column;
134 _Bool descending;
135 } DavOrderCriterion;
127 136
128 DavResult dav_statement_exec(DavSession *sn, DavQLStatement *st, ...); 137 DavResult dav_statement_exec(DavSession *sn, DavQLStatement *st, ...);
129 DavResult dav_statement_execv(DavSession *sn, DavQLStatement *st, va_list ap); 138 DavResult dav_statement_execv(DavSession *sn, DavQLStatement *st, va_list ap);
130 139
131 UcxBuffer* dav_path_string(sstr_t src, va_list ap, davqlerror_t *error); 140 UcxBuffer* dav_path_string(sstr_t src, va_list ap, davqlerror_t *error);
132 sstr_t dav_format_string(UcxAllocator *a, sstr_t fstr, va_list ap, davqlerror_t *error); 141 sstr_t dav_format_string(UcxAllocator *a, sstr_t fstr, va_list ap, davqlerror_t *error);
133 142
134 DavResult dav_exec_select(DavSession *sn, DavQLStatement *st, va_list ap); 143 DavResult dav_exec_select(DavSession *sn, DavQLStatement *st, va_list ap);
144
145 int dav_identifier2resprop(sstr_t src, davqlresprop_t *prop);
135 146
136 UcxBuffer* dav_compile_expr(DavContext *ctx, UcxAllocator *a, DavQLExpression *lexpr, va_list ap); 147 UcxBuffer* dav_compile_expr(DavContext *ctx, UcxAllocator *a, DavQLExpression *lexpr, va_list ap);
137 148
138 int dav_exec_expr(UcxBuffer *bcode, DavResource *res, DavQLStackObj *result); 149 int dav_exec_expr(UcxBuffer *bcode, DavResource *res, DavQLStackObj *result);
139 150

mercurial