index a0826070ed958a6e864998af1eecf3890e944906..bca86452dffc44afe22f2fb5b3418eaa7e6f42f3 100644 (file)
/* valid commands */
{ "FETCH 'host'", -1, 1, CONNECTION_FETCH },
+ { "FETCH 'host' FILTER "
+ "host = 'host'", -1, 1, CONNECTION_FETCH },
+
{ "LIST", -1, 1, CONNECTION_LIST },
{ "LIST -- comment", -1, 1, CONNECTION_LIST },
{ "LIST;", -1, 1, CONNECTION_LIST },
{ "LIST; INVALID", 5, 1, CONNECTION_LIST },
+ { "LIST FILTER "
+ "host = 'host'", -1, 1, CONNECTION_LIST },
+ { "LOOKUP hosts", -1, 1, CONNECTION_LOOKUP },
{ "LOOKUP hosts MATCHING "
"host = 'host'", -1, 1, CONNECTION_LOOKUP },
{ "LOOKUP hosts MATCHING NOT "
"host =~ 'p' AND "
"service =~ 'p' OR "
"service =~ 'r'", -1, 1, CONNECTION_LOOKUP },
+ { "LOOKUP hosts MATCHING "
+ "host =~ 'p' "
+ "FILTER :age > 1D", -1, 1, CONNECTION_LOOKUP },
+ { "LOOKUP hosts MATCHING "
+ "host =~ 'p' "
+ "FILTER :age > 1D AND "
+ ":interval < 240s" , -1, 1, CONNECTION_LOOKUP },
+ { "LOOKUP hosts MATCHING "
+ "host =~ 'p' "
+ "FILTER NOT :age>1D", -1, 1, CONNECTION_LOOKUP },
+ { "LOOKUP hosts MATCHING "
+ "host =~ 'p' "
+ "FILTER :age>"
+ ":interval", -1, 1, CONNECTION_LOOKUP },
/* numeric constants */
{ "LOOKUP hosts MATCHING "
{ "LIST; INVALID", 8, -1, 0 },
{ "/* some incomplete", -1, -1, 0 },
- { "LOOKUP hosts", -1, -1, 0 },
+ { "LIST MATCHING "
+ "host = 'host'", -1, -1, 0 },
+ { "FETCH 'host' MATCHING "
+ "host = 'host'", -1, -1, 0 },
+
+ { "LOOKUP foo", -1, -1, 0 },
+ { "LOOKUP foo MATCHING "
+ "host = 'host'", -1, -1, 0 },
+ { "LOOKUP foo FILTER "
+ "host = 'host'", -1, -1, 0 },
{ "LOOKUP foo MATCHING "
+ "host = 'host' FILTER "
"host = 'host'", -1, -1, 0 },
};
{ "attribute.foo IS NULL", -1, MATCHER_ISNULL },
{ "attribute.foo IS NOT NULL", -1, MATCHER_NOT },
+ /* object field matchers */
+ { ":last_update < 10s", -1, MATCHER_LT },
+ { ":AGE <= 1m", -1, MATCHER_LE },
+ { ":interval = 10h", -1, MATCHER_EQ },
+ { ":Last_Update >= 24D", -1, MATCHER_GE },
+ { ":age > 1M", -1, MATCHER_GT },
+ { ":age != 20Y", -1, MATCHER_NOT },
+ { ":backend != 'be'", -1, MATCHER_NOT },
+ { ":age <= 2 * :interval", -1, MATCHER_LE },
+
/* check operator precedence */
{ "host = 'name' OR "
"service = 'name' AND "