This commit is contained in:
2023-02-20 20:12:42 +08:00
parent d71fc77006
commit 64d4e3dd9a
15 changed files with 1068 additions and 1016 deletions
+7 -6
View File
@@ -281,11 +281,11 @@ class projection(ast_node):
# self.into_stub = f'{{INTOSTUB{base62uuid(20)}}}'
# self.add(self.into_stub, '')
def finialize(astnode:ast_node):
def finalize(astnode:ast_node):
if(astnode is not None):
self.add(astnode.sql)
finialize(self.datasource)
finialize(self.where)
finalize(self.datasource)
finalize(self.where)
if self.group_node and not self.group_node.use_sp_gb:
self.add(self.group_node.sql)
@@ -1103,7 +1103,7 @@ class create_trigger(ast_node):
if 'interval' in node: # executed periodically from server
self.type = self.Type.Interval
self.interval = node['interval']
send_to_server(f'TI{self.trigger_name}{self.action_name}{self.interval}')
send_to_server(f'TI{self.trigger_name}\0{self.action_name}\0{self.interval}')
else: # executed from sql backend
self.type = self.Type.Callback
self.query_name = node['query']
@@ -1125,14 +1125,15 @@ class create_trigger(ast_node):
def execute(self):
from engine.utils import send_to_server
send_to_server(f'TC{self.query_name}{self.action_name}')
send_to_server(f'TC{self.query_name}\0{self.action_name}')
def remove(self):
from engine.utils import send_to_server
send_to_server(f'TR{self.trigger_name}')
class drop_trigger(ast_node):
name = 'create_trigger'
name = 'drop_trigger'
first_order = name
def produce(self, node):
...
+5
View File
@@ -271,6 +271,11 @@ class Context:
val.table.triggers.remove(val)
val.remove()
def post_exec_triggers(self):
for t in self.triggers_active:
t.execute()
self.triggers_active.clear()
def abandon_postproc(self):
self.ccode = ''
self.finalize_query()