103 ucx_list_size(stmt->fields) == ucx_list_size(stmt->setvalues) |
103 ucx_list_size(stmt->fields) == ucx_list_size(stmt->setvalues) |
104 ? "yes" : "no"); |
104 ? "yes" : "no"); |
105 } |
105 } |
106 |
106 |
107 // WITH attributes |
107 // WITH attributes |
108 if (stmt->depth == SIZE_MAX) { |
108 if (stmt->depth < 0) { |
109 printf("Depth: unbound\n"); |
109 printf("Depth: infinity\n"); |
110 } else { |
110 } else { |
111 printf("Depth: %zu\n", stmt->depth); |
111 printf("Depth: %d\n", stmt->depth); |
112 } |
112 } |
113 } |
113 } |
114 |
114 |
115 static int dav_debug_ql_expr_selected(DavQLExpression *expr) { |
115 static int dav_debug_ql_expr_selected(DavQLExpression *expr) { |
116 if (!expr) { |
116 if (!expr) { |
424 DavQLStatement* dav_parse_statement(sstr_t srctext) { |
424 DavQLStatement* dav_parse_statement(sstr_t srctext) { |
425 DavQLStatement *stmt = calloc(1, sizeof(DavQLStatement)); |
425 DavQLStatement *stmt = calloc(1, sizeof(DavQLStatement)); |
426 |
426 |
427 // default values |
427 // default values |
428 stmt->type = -1; |
428 stmt->type = -1; |
429 stmt->depth = SIZE_MAX; |
429 stmt->depth = 1; |
430 |
430 |
431 // save trimmed source text |
431 // save trimmed source text |
432 stmt->srctext = sstrtrim(srctext); |
432 stmt->srctext = sstrtrim(srctext); |
433 |
433 |
434 // tokenization |
434 // tokenization |