summaryrefslogtreecommitdiff
path: root/src/server
diff options
context:
space:
mode:
Diffstat (limited to 'src/server')
-rw-r--r--src/server/db_controller.py2
-rw-r--r--src/server/db_op.py23
2 files changed, 15 insertions, 10 deletions
diff --git a/src/server/db_controller.py b/src/server/db_controller.py
index b627699d..5d3618ff 100644
--- a/src/server/db_controller.py
+++ b/src/server/db_controller.py
@@ -29,8 +29,10 @@ class DB_Controller:
"""
if isinstance(op, DB_composed_op): # composed DB op
log.debug('exec_composed-op:' + op.name)
+
for sub_op in op.iter__sub_op():
sub_op_ret = self.exec_op(sub_op) # recursive call
+ op.inter_op_exec_hook(sub_op_ret)
op_ret = op.process_result_set()
return op_ret
diff --git a/src/server/db_op.py b/src/server/db_op.py
index 3f6e5901..2fc7cefc 100644
--- a/src/server/db_op.py
+++ b/src/server/db_op.py
@@ -153,29 +153,32 @@ class DB_composed_op(DB_op):
def __assert_false_statement_access(self):
assert False, "composed_op may not contain statements, only sub-ops"
- def add_statement(self, query, query_params={}):
- self.__assert_false_statement_access()
+ def __getattribute__(self, attr):
+ """
+ intercept 'query_set' attr get
+ """
+ if attr == 'query_set':
+ self.__assert_false_statement_access()
- def add_sub_op(self, op):
- self.sub_op_set.append(op)
+ return object.__getattribute__(self, attr)
def __iter__(self):
for s_op in self.sub_op_set:
for dbq in s_op:
yield dbq
+ def add_statement(self, query, query_params={}):
+ self.__assert_false_statement_access()
+
+ def add_sub_op(self, op):
+ self.sub_op_set.append(op)
+
def iter__sub_op(self):
for s_op in self.sub_op_set:
yield s_op
- def __getattribute__(self, attr):
"""
- intercept 'query_set' attr get
"""
- if attr == 'query_set':
- self.__assert_false_statement_access()
-
- return object.__getattribute__(self, attr)
def process_result_set(self):
ret = []