diff options
| author | LV-426 <lv-426@taproot.org.il> | 2015-01-02 17:12:07 +0200 |
|---|---|---|
| committer | LV-426 <lv-426@taproot.org.il> | 2015-01-02 17:12:07 +0200 |
| commit | b030337d6634e5dbbc51cd96dc6b24b9e70fae88 (patch) | |
| tree | 089bbae3674bef64a052fc101a66e1ccd00e3cc2 /src/server/db_controller.py | |
| parent | 66ff563243ac7c52bb3de94e7c75186a12eb7a99 (diff) | |
DBO_attr_diff_commit: echo Attr_Diff on success, skip neo4j return data parsing
Diffstat (limited to 'src/server/db_controller.py')
| -rw-r--r-- | src/server/db_controller.py | 25 |
1 files changed, 16 insertions, 9 deletions
diff --git a/src/server/db_controller.py b/src/server/db_controller.py index 6a85c407..9b33ee8a 100644 --- a/src/server/db_controller.py +++ b/src/server/db_controller.py @@ -207,6 +207,8 @@ class DBO_attr_diff_commit(DB_op): def __init__(self, attr_diff): super(DBO_attr_diff_commit, self).__init__() + self.op_return_value__attr_diff = attr_diff # cache attr_diff as return value on success + for id_attr, n_attr_diff in attr_diff.type__node.items(): # TODO parameterize multiple attr removal r_attr_set = n_attr_diff['__attr_remove'] @@ -215,7 +217,7 @@ class DBO_attr_diff_commit(DB_op): assert len(r_attr_set) > 0 or len(w_attr_set) > 0 q_arr = ["match (n {id: {id}}) ", - "return n.id, n"] + "return n.id, n"] # currently unused q_param_set = {'id': id_attr} if len(r_attr_set) > 0: @@ -245,7 +247,7 @@ class DBO_attr_diff_commit(DB_op): continue q_arr = ["match ()-[l {id: {id}}]-()", - "return l.id, l"] + "return l.id, l"] # currently unused q_param_set = {'id': id_attr} if len(r_attr_set) > 0: @@ -272,7 +274,7 @@ class DBO_attr_diff_commit(DB_op): q_create_new = ["match n-[l_old {id: {id}}]->m", "create n-[l_new:%s]->m set l_new=l_old" % db_util.quote__backtick(new_label), - "return l_new.id, {id: l_new.id, name: type(l_new)}", + "return l_new.id, {id: l_new.id, name: type(l_new)}", # currently unused ] q_delete_old = ["match n-[l_old {id: {id}}]->m", "where type(l_old)<>'%s' delete l_old" % new_label, @@ -285,12 +287,17 @@ class DBO_attr_diff_commit(DB_op): self.add_statement(q_delete_old, q_param_set) def process_result_set(self): - ret = {} - for _, _, r_set in self: - for row in r_set: - n_id, n = [v for v in row] # we expect a [n_id, n] array - ret[n_id] = n - return ret + # currently we have not straightforward way to discern which attributes were + # actually written from the neo4j return value, so we simply echo the attr_diff + # back to the client + + # ret = {} + # for _, _, r_set in self: + # for row in r_set: + # n_id, n = [v for v in row] # we expect a [n_id, n] array + # ret[n_id] = n + + return self.op_return_value__attr_diff class DBO_add_node_set(DB_op): def __init__(self, node_map): |
