diff options
| author | LV-426 <lv-426@taproot.org.il> | 2015-03-31 23:04:56 +0300 |
|---|---|---|
| committer | LV-426 <lv-426@taproot.org.il> | 2015-04-01 22:25:56 +0300 |
| commit | 7efddc7070e8b5a902d04e64c612f40c03eb8895 (patch) | |
| tree | 47a17f6374112009385f513e3d41c4561c37eb2b /src/server/db_op.py | |
| parent | 5dc6d588eceb383455abfd53df0323e3093f7744 (diff) | |
DBO_rzdoc__clone: rm filter_label, add process_q_ret__n_label_set(), process_q_ret__l_type() hooks
Diffstat (limited to 'src/server/db_op.py')
| -rw-r--r-- | src/server/db_op.py | 23 |
1 files changed, 15 insertions, 8 deletions
diff --git a/src/server/db_op.py b/src/server/db_op.py index 02c7ed04..712123e0 100644 --- a/src/server/db_op.py +++ b/src/server/db_op.py @@ -703,25 +703,25 @@ class DBO_rm_link_set(DB_op): class DBO_rzdoc__clone(DB_op): - def __init__(self, filter_label=None, limit=16384): + def __init__(self, limit=16384): """ clone rhizi @return: a Topo_Diff with the appropriate node_set_add, link_set_add fields filled """ - super(DBO_rz_clone, self).__init__() + super(DBO_rzdoc__clone, self).__init__() self.limit = limit self.skip = 0 - q_arr = ['match (n)' if not filter_label else 'match (n:%s)' % (filter_label), + q_arr = ['match (n)', 'with n', 'order by n.id', 'skip %d' % (self.skip), 'limit %d' % (self.limit), 'optional match (n)-[r]->(m)', - 'return n,labels(n),collect([m.id, r, type(r)])'] + 'return n,labels(n),collect([r, type(r), m.id])'] db_q = DB_Query(q_arr) self.add_db_query(db_q) @@ -736,7 +736,7 @@ class DBO_rzdoc__clone(DB_op): # reconstruct nodes assert None != n.get('id'), "db contains nodes with no id" - n['__label_set'] = n_lbl_set + n['__label_set'] = self.process_q_ret__n_label_set(n_lbl_set) ret_n_set.append(n) @@ -748,9 +748,10 @@ class DBO_rzdoc__clone(DB_op): # as link matching is optional, collect may yield empty sets continue - l = Link.Link_Ptr(src_id=n['id'], dst_id=l_tuple[0]) - l['id'] = l_tuple[1]['id'] - l['__type'] = [l_tuple[2]] + ret_l, ret_l_type, ret_l_dst_id = l_tuple + l = Link.Link_Ptr(src_id=n['id'], dst_id=ret_l_dst_id) + l['id'] = ret_l['id'] + l['__type'] = self.process_q_ret__l_type(ret_l_type) ret_l_set.append(l) @@ -761,6 +762,12 @@ class DBO_rzdoc__clone(DB_op): link_set_add=ret_l_set) return topo_diff + def process_q_ret__n_label_set(self, label_set): + return label_set + + def process_q_ret__l_type(self, l_type): + return [l_type] # return as list + class DBO_rzdoc__create(DB_op): def __init__(self, rzdoc): |
