X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=src%2Fcore%2Fstore_lookup.c;h=06151a81d4fdb04bb49143dd794ee60c30a00618;hb=894ed7e3743e1cd4913454b2bc086ff5d18c04b4;hp=c840b0e0a56636ec5b2712d49d22fff155f546b2;hpb=1426e3fcf927d6321fd2cf8595394f817bb1a0e2;p=sysdb.git diff --git a/src/core/store_lookup.c b/src/core/store_lookup.c index c840b0e..06151a8 100644 --- a/src/core/store_lookup.c +++ b/src/core/store_lookup.c @@ -196,8 +196,10 @@ match_iter(sdb_store_matcher_t *m, sdb_store_obj_t *obj, assert((! CMP_M(ITER_M(m)->m)->left) && CMP_M(ITER_M(m)->m)->right); iter = sdb_store_expr_iter(ITER_M(m)->iter, obj, filter); - if (! iter) + if (! iter) { + sdb_log(SDB_LOG_WARNING, "store: Invalid iterator"); return 0; + } status = all; while (sdb_store_expr_iter_has_next(iter)) { @@ -258,7 +260,7 @@ match_in(sdb_store_matcher_t *m, sdb_store_obj_t *obj, sdb_data_t value = SDB_DATA_INIT, array = SDB_DATA_INIT; int status = 1; - assert((m->type == MATCHER_IN) || (m->type == MATCHER_NIN)); + assert(m->type == MATCHER_IN); assert(CMP_M(m)->left && CMP_M(m)->right); if (expr_eval2(CMP_M(m)->left, &value, @@ -269,8 +271,6 @@ match_in(sdb_store_matcher_t *m, sdb_store_obj_t *obj, status = sdb_data_inarray(&value, &array); expr_free_datum2(CMP_M(m)->left, &value, CMP_M(m)->right, &array); - if (m->type == MATCHER_NIN) - return !status; return status; } /* match_in */ @@ -342,7 +342,6 @@ matchers[] = { match_iter, match_iter, match_in, - match_in, /* unary operators */ match_unary, @@ -602,13 +601,6 @@ sdb_store_in_matcher(sdb_store_expr_t *left, sdb_store_expr_t *right) MATCHER_IN, left, right)); } /* sdb_store_in_matcher */ -sdb_store_matcher_t * -sdb_store_nin_matcher(sdb_store_expr_t *left, sdb_store_expr_t *right) -{ - return M(sdb_object_create("not-in-matcher", cmp_type, - MATCHER_NIN, left, right)); -} /* sdb_store_in_matcher */ - sdb_store_matcher_t * sdb_store_regex_matcher(sdb_store_expr_t *left, sdb_store_expr_t *right) { @@ -659,74 +651,6 @@ sdb_store_isfalse_matcher(sdb_store_expr_t *expr) MATCHER_ISFALSE, expr)); } /* sdb_store_isfalse_matcher */ -sdb_store_matcher_op_cb -sdb_store_parse_matcher_op(const char *op) -{ - if (! strcasecmp(op, "<")) - return sdb_store_lt_matcher; - else if (! strcasecmp(op, "<=")) - return sdb_store_le_matcher; - else if (! strcasecmp(op, "=")) - return sdb_store_eq_matcher; - else if (! strcasecmp(op, "!=")) - return sdb_store_ne_matcher; - else if (! strcasecmp(op, ">=")) - return sdb_store_ge_matcher; - else if (! strcasecmp(op, ">")) - return sdb_store_gt_matcher; - else if (! strcasecmp(op, "=~")) - return sdb_store_regex_matcher; - else if (! strcasecmp(op, "!~")) - return sdb_store_nregex_matcher; - return NULL; -} /* sdb_store_parse_matcher_op */ - -int -sdb_store_parse_object_type(const char *name) -{ - if (! strcasecmp(name, "host")) - return SDB_HOST; - else if (! strcasecmp(name, "service")) - return SDB_SERVICE; - else if (! strcasecmp(name, "metric")) - return SDB_METRIC; - else if (! strcasecmp(name, "attribute")) - return SDB_ATTRIBUTE; - return -1; -} /* sdb_store_parse_object_type */ - -int -sdb_store_parse_object_type_plural(const char *name) -{ - if (! strcasecmp(name, "hosts")) - return SDB_HOST; - else if (! strcasecmp(name, "services")) - return SDB_SERVICE; - else if (! strcasecmp(name, "metrics")) - return SDB_METRIC; - else if (! strcasecmp(name, "attributes")) - return SDB_ATTRIBUTE; - return -1; -} /* sdb_store_parse_object_type_plural */ - -int -sdb_store_parse_field_name(const char *name) -{ - if (! strcasecmp(name, "name")) - return SDB_FIELD_NAME; - else if (! strcasecmp(name, "last_update")) - return SDB_FIELD_LAST_UPDATE; - else if (! strcasecmp(name, "age")) - return SDB_FIELD_AGE; - else if (! strcasecmp(name, "interval")) - return SDB_FIELD_INTERVAL; - else if (! strcasecmp(name, "backend")) - return SDB_FIELD_BACKEND; - else if (! strcasecmp(name, "value")) - return SDB_FIELD_VALUE; - return -1; -} /* sdb_store_parse_field_name */ - sdb_store_matcher_t * sdb_store_dis_matcher(sdb_store_matcher_t *left, sdb_store_matcher_t *right) {