index f363dc2b6d3e9f51ca87780026b8ec051bd918e7..4dcf684de06cc6c3b508fff98401883913bf7e6d 100644 (file)
"ANY service.service.name = 's'",
-1, 1, SDB_AST_TYPE_LOOKUP, SDB_HOST },
- /* NULL */
+ /* NULL / TRUE / FALSE */
{ "LOOKUP hosts MATCHING "
"attribute['foo'] "
"IS NULL", -1, 1, SDB_AST_TYPE_LOOKUP, SDB_HOST },
"IS NULL", -1, 1, SDB_AST_TYPE_LOOKUP, SDB_HOST },
{ "LOOKUP hosts MATCHING "
"ANY service.name IS NULL", -1, -1, 0, 0 },
+ { "LOOKUP hosts MATCHING "
+ "attribute['foo'] "
+ "IS TRUE", -1, 1, SDB_AST_TYPE_LOOKUP, SDB_HOST },
+ { "LOOKUP hosts MATCHING "
+ "attribute['foo'] "
+ "IS NOT TRUE", -1, 1, SDB_AST_TYPE_LOOKUP, SDB_HOST },
+ { "LOOKUP hosts MATCHING "
+ "NOT attribute['foo'] "
+ "IS TRUE", -1, 1, SDB_AST_TYPE_LOOKUP, SDB_HOST },
+ { "LOOKUP hosts MATCHING "
+ "attribute['foo'] "
+ "IS FALSE", -1, 1, SDB_AST_TYPE_LOOKUP, SDB_HOST },
+ { "LOOKUP hosts MATCHING "
+ "attribute['foo'] "
+ "IS NOT FALSE", -1, 1, SDB_AST_TYPE_LOOKUP, SDB_HOST },
+ { "LOOKUP hosts MATCHING "
+ "NOT attribute['foo'] "
+ "IS FALSE", -1, 1, SDB_AST_TYPE_LOOKUP, SDB_HOST },
/* invalid numeric constants */
{ "LOOKUP hosts MATCHING "
"name + 1 IS NULL", -1, -1, 0, 0 },
{ "LOOKUP hosts FILTER "
"name + 1 IS NULL", -1, -1, 0, 0 },
+ { "LOOKUP hosts MATCHING "
+ "name + 1 IS TRUE", -1, -1, 0, 0 },
+ { "LOOKUP hosts FILTER "
+ "name + 1 IS TRUE", -1, -1, 0, 0 },
+ { "LOOKUP hosts MATCHING "
+ "name + 1 IS FALSE", -1, -1, 0, 0 },
+ { "LOOKUP hosts FILTER "
+ "name + 1 IS FALSE", -1, -1, 0, 0 },
/* invalid iterators */
{ "LOOKUP hosts MATCHING "
sdb_strbuf_t *errbuf = sdb_strbuf_create(64);
sdb_llist_t *check;
sdb_ast_node_t *node;
- sdb_store_matcher_t *m;
+ sdb_store_query_t *q;
_Bool ok;
check = sdb_parser_parse(parse_data[_i].query,
}
/* TODO: this should move into front-end specific tests */
- m = sdb_store_query_prepare(node);
- fail_unless(m != NULL,
- "sdb_store_query_prepare(AST<%s>) = NULL; expected: <m>",
+ q = sdb_store_query_prepare(node);
+ fail_unless(q != NULL,
+ "sdb_store_query_prepare(AST<%s>) = NULL; expected: <query>",
parse_data[_i].query);
sdb_object_deref(SDB_OBJ(node));
- sdb_object_deref(SDB_OBJ(m));
+ sdb_object_deref(SDB_OBJ(q));
sdb_llist_destroy(check);
sdb_strbuf_destroy(errbuf);
}
"2014-08-16 17:23", -1, SDB_AST_EQ },
{ "attribute['foo'] = "
"2014-08-16 17:23:53", -1, SDB_AST_EQ },
- /* NULL */
+ /* NULL / TRUE / FALSE */
{ "attribute['foo'] IS NULL", -1, SDB_AST_ISNULL },
{ "attribute['foo'] IS NOT NULL", -1, SDB_AST_NOT },
+ { "attribute['foo'] IS TRUE", -1, SDB_AST_ISTRUE },
+ { "attribute['foo'] IS NOT TRUE", -1, SDB_AST_NOT },
+ { "attribute['foo'] IS FALSE", -1, SDB_AST_ISFALSE },
+ { "attribute['foo'] IS NOT FALSE", -1, SDB_AST_NOT },
/* array expressions */
{ "backend < ['a']", -1, SDB_AST_LT },
{ "backend <= ['a']", -1, SDB_AST_LE },