From f821ead8d1697702917817ce916e50f1c9e0cc3c Mon Sep 17 00:00:00 2001 From: LV-426 Date: Mon, 20 Oct 2014 19:30:34 +0200 Subject: DBO_match_node_id_set query generation --- src-py/db_controller.py | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) (limited to 'src-py/db_controller.py') diff --git a/src-py/db_controller.py b/src-py/db_controller.py index 0ef70f3b..875eb0bc 100644 --- a/src-py/db_controller.py +++ b/src-py/db_controller.py @@ -234,22 +234,23 @@ class DBO_load_node_set_by_DB_id(DB_op): class DBO_match_node_id_set(DB_op): - def __init__(self, filter_type=None, filter_attr_map=None): + def __init__(self, filter_type=None, filter_attr_map={}): """ - load a set of nodes according to filter_attr_map + match a set of nodes by type / attr_map + @param filter_type: node type filter @param filter_attr_map: is a filter_key to filter_value_set map of - attributes to match against, eg.: + possible attributes to match against, eg.: { 'id':[0,1], 'color: ['red','blue'] } - @param filter_type: node type filter - @return: loaded node set or an empty set if no match was found + @return: a set of node DB id's """ + super(DBO_match_node_id_set, self).__init__() - filter_str = dbu.where_clause_from_filter_attr_map() + q = "match (n{filter_type}) {where_clause} return id(n)" + q = cfmt(q, filter_type="" if not filter_type else ":" + filter_type) + q = cfmt(q, where_clause=db_util.gen_clause_where_from_filter_attr_map(filter_attr_map)) - super(DBO_load_node_set, self).__init__() - q = "match (n) {0} return n".format(filter_str) - self.add_statement(q, params=filter_attr_map) + q_params = filter_attr_map self.add_statement(q, q_params) -- cgit v1.3.1