summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/server/db_controller.py20
1 files changed, 11 insertions, 9 deletions
diff --git a/src/server/db_controller.py b/src/server/db_controller.py
index 1dbdc27b..0f056398 100644
--- a/src/server/db_controller.py
+++ b/src/server/db_controller.py
@@ -27,21 +27,23 @@ class DB_Controller:
"""
execute operation within a DB transaction
"""
- if isinstance(op, DB_composed_op):
- # construct a list comprehension composed of all sup_op statements
- for s_op in op:
- self.exec_op(s_op)
- return op.process_result_set()
+ if isinstance(op, DB_composed_op): # composed DB op
+ log.debug('exec_composed-op:' + op.name)
+ for sub_op in op:
+ sub_op_ret = self.exec_op(sub_op) # recursive call
- try:
+ op_ret = op.process_result_set()
+ return op_ret
+
+ try: # non-composed DB op
self.db_driver.begin_tx(op)
self.db_driver.exec_statement_set(op)
self.db_driver.commit_tx(op)
- ret = op.process_result_set()
+ op_ret = op.process_result_set()
+ log.debug('exec_op:' + op.name + ': return value: ' + str(op_ret))
+ return op_ret
- log.debug('exec_op:' + op.name + ': return value: ' + str(ret))
- return ret
except Neo4JException as e:
log.exception(e) # Neo4JException may be composed of several sub errors, defer to class __str__
raise e