X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=src%2Ffrontend%2Fanalyzer.c;fp=src%2Ffrontend%2Fanalyzer.c;h=4e29fdf85fb956312466d50b514e3bae984fb135;hb=5250cae0891d89b863400d6aa79a3640bce975a6;hp=e9e1d138c80c9bd5177caa7f4d38b02f30a173b3;hpb=26717c04224fb613f8dfe28f484b8a6f28f3739b;p=sysdb.git diff --git a/src/frontend/analyzer.c b/src/frontend/analyzer.c index e9e1d13..4e29fdf 100644 --- a/src/frontend/analyzer.c +++ b/src/frontend/analyzer.c @@ -256,19 +256,14 @@ analyze_matcher(int context, sdb_store_matcher_t *m, sdb_strbuf_t *errbuf) if (analyze_expr(context, CMP_M(m)->right, errbuf)) return -1; - if ((CMP_M(m)->left->data_type > 0) - && (CMP_M(m)->left->data_type & SDB_TYPE_ARRAY)) { - cmp_error(errbuf, m->type, CMP_M(m)->left->data_type, - CMP_M(m)->right->data_type); - return -1; - } + /* the left operand may be a scalar or an array but the element + * type has to match */ if ((CMP_M(m)->right->data_type > 0) && (! (CMP_M(m)->right->data_type & SDB_TYPE_ARRAY))) { cmp_error(errbuf, m->type, CMP_M(m)->left->data_type, CMP_M(m)->right->data_type); return -1; } - if ((CMP_M(m)->left->data_type > 0) && (CMP_M(m)->right->data_type > 0)) { if ((CMP_M(m)->left->data_type & 0xff)