index 0ef5f462a4ea4e759b99a5807de4507d45d4046e..98417830f19a52bbf985905d4acfaa2464ca6b7c 100644 (file)
--- a/src/core/store_lookup.c
+++ b/src/core/store_lookup.c
MATCHER_ISNULL, attr_name));
} /* sdb_store_isnull_matcher */
+int
+sdb_store_parse_field_name(const char *name)
+{
+ 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;
+ return -1;
+} /* sdb_store_parse_field_name */
+
static sdb_store_matcher_t *
maybe_inv_matcher(sdb_store_matcher_t *m, _Bool inv)
{
if (! expr)
return NULL;
- if (! strcasecmp(name, "last_update"))
- field = SDB_FIELD_LAST_UPDATE;
- else if (! strcasecmp(name, "age"))
- field = SDB_FIELD_AGE;
- else if (! strcasecmp(name, "interval"))
- field = SDB_FIELD_INTERVAL;
- else if (! strcasecmp(name, "backend"))
- field = SDB_FIELD_BACKEND;
- else
+ field = sdb_store_parse_field_name(name);
+ if (field < 0)
return NULL;
if (parse_cond_op(op, &matcher, &inv))
return NULL;
-
cond = sdb_store_obj_cond(field, expr);
if (! cond)
return NULL;