Code

store: Add sdb_store_query_prepare_matcher().
[sysdb.git] / src / frontend / parser.c
index 936f31e6c2e12ecc4658c94d07b69e1d2cc03d94..8d608d6dfd53726ce7f833f1d7bc20a6f8cb984e 100644 (file)
@@ -98,10 +98,7 @@ sdb_fe_parse(const char *query, int len, sdb_strbuf_t *errbuf)
        while (sdb_llist_iter_has_next(iter)) {
                sdb_conn_node_t *node;
                node = SDB_CONN_NODE(sdb_llist_iter_get_next(iter));
-               if (sdb_fe_analyze(node)) {
-                       /* TODO: pass on errbuf to the analyzer */
-                       sdb_strbuf_sprintf(errbuf, "Failed to verify "
-                                       "query '%s'", query);
+               if (sdb_fe_analyze(node, errbuf)) {
                        sdb_llist_iter_destroy(iter);
                        sdb_llist_destroy(yyextra.parsetree);
                        return NULL;
@@ -142,7 +139,7 @@ sdb_fe_parse_matcher(const char *cond, int len, sdb_strbuf_t *errbuf)
                return NULL;
        }
 
-       assert(node->cmd == CONNECTION_MATCHER);
+       assert(node->cmd == SDB_CONNECTION_MATCHER);
        m = CONN_MATCHER(node)->matcher;
        CONN_MATCHER(node)->matcher = NULL;
 
@@ -165,7 +162,7 @@ sdb_fe_parse_expr(const char *expr, int len, sdb_strbuf_t *errbuf)
        if (scanner_init(expr, len, &scanner, &yyextra, errbuf))
                return NULL;
 
-       yyextra.mode = SDB_PARSE_EXPR;
+       yyextra.mode = SDB_PARSE_ARITH;
 
        yyres = sdb_fe_yyparse(scanner);
        sdb_fe_scanner_destroy(scanner);
@@ -182,7 +179,7 @@ sdb_fe_parse_expr(const char *expr, int len, sdb_strbuf_t *errbuf)
                return NULL;
        }
 
-       assert(node->cmd == CONNECTION_EXPR);
+       assert(node->cmd == SDB_CONNECTION_EXPR);
        e = CONN_EXPR(node)->expr;
        CONN_EXPR(node)->expr = NULL;