diff options
| author | LV-426 <lv-426@taproot.org.il> | 2014-10-08 01:35:28 +0200 |
|---|---|---|
| committer | LV-426 <lv-426@taproot.org.il> | 2014-10-08 01:35:28 +0200 |
| commit | 3f580af48a7738fe3ff539a63918f4a22da6e91f (patch) | |
| tree | b8f894ce828ca152bc6281e9b9acde95fd22d14d | |
| parent | 46063f7257ae06cb4a8c74f6069292aca2db2cea (diff) | |
gen_query_create_from_node_map: reuse single query with a multiple parameter sets
| -rw-r--r-- | src-py/neo4j_util.py | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/src-py/neo4j_util.py b/src-py/neo4j_util.py index 78602fe1..61b40c06 100644 --- a/src-py/neo4j_util.py +++ b/src-py/neo4j_util.py @@ -103,13 +103,15 @@ def gen_query_create_from_node_map(node_map, input_to_DB_property_map=lambda _: @return: a (query, query_parameteres) set of create queries """ __type_check_link_or_node_map(node_map) - + ret = [] for n_type, n_set in node_map.items(): q = cfmt("create (n:{n_type} {node_attr}) return id(n)", n_type=n_type) + q_params_set = [] for n_prop_set in n_set: - q_params = {'node_attr': input_to_DB_property_map(n_prop_set)} - ret.append((q, q_params)) + q_params = input_to_DB_property_map(n_prop_set) + q_params_set.append(q_params) + ret.append((q, {'node_attr': q_params_set})) return ret def gen_query_create_from_link_map(link_map, input_to_DB_property_map=lambda _: _): @@ -118,7 +120,7 @@ def gen_query_create_from_link_map(link_map, input_to_DB_property_map=lambda _: @param link_map: is a link-type to link map - see model.link """ - ret = [] + q_params_set = [] for l_type, l_set in link_map.items(): for link in l_set: @@ -132,13 +134,13 @@ def gen_query_create_from_link_map(link_map, input_to_DB_property_map=lambda _: del prop_dict['__dst'] del prop_dict['__src'] - q = cfmt("match (src {src_attr}),(dst {dst_attr}) create (src)-[:{l_type} {link_attr}]-(dst)", l_type=l_type) - q_params = {'src_attr': { 'id': n_src} , - 'dst_attr': { 'id': n_dst} , + q_params = {'src': { 'id': n_src} , + 'dst': { 'id': n_dst} , 'link_attr' : input_to_DB_property_map(prop_dict)} - ret.append((q, q_params)) + q_params_set.append(q_params) - return ret + q = "match (src {id: {src}.id}),(dst {id: {dst}.id}) create (src)-[:%(l_type)s {link_attr}]->(dst)" % {'l_type':l_type} + return (q, q_params_set) def __type_check_link(link): assert link.has_key('__src') |
