@@ -625,7 +625,7 @@ def generate_assistant_dynamic_sql(self, sql, tables: List):
625625 result_dict = {}
626626 for table in ds .tables :
627627 if table .name in tables and table .sql :
628- #sub_query.append({"table": table.name, "query": table.sql})
628+ # sub_query.append({"table": table.name, "query": table.sql})
629629 result_dict [table .name ] = table .sql
630630 sub_query .append ({"table" : table .name , "query" : f'{ dynamic_subsql_prefix } { table .name } ' })
631631 if not sub_query :
@@ -881,7 +881,7 @@ def save_sql_data(self, data_obj: Dict[str, Any]):
881881 def finish (self ):
882882 return finish_record (session = self .session , record_id = self .record .id )
883883
884- def execute_sql (self , sql : str ):
884+ def execute_sql (self , sql : str , tables ):
885885 """Execute SQL query
886886
887887 Args:
@@ -893,7 +893,7 @@ def execute_sql(self, sql: str):
893893 """
894894 SQLBotLogUtil .info (f"Executing SQL on ds_id { self .ds .id } : { sql } " )
895895 try :
896- return exec_sql (self .ds , sql )
896+ return exec_sql (ds = self .ds , sql = sql , origin_column = False , table_name = tables )
897897 except Exception as e :
898898 if isinstance (e , ParseSQLResultError ):
899899 raise e
@@ -1000,14 +1000,16 @@ def run_task(self, in_chat: bool = True):
10001000 sqlbot_temp_sql_text = None
10011001 assistant_dynamic_sql = None
10021002 # todo row permission
1003- if ((not self .current_assistant or is_page_embedded ) and is_normal_user (self .current_user )) or use_dynamic_ds :
1003+ if ((not self .current_assistant or is_page_embedded ) and is_normal_user (
1004+ self .current_user )) or use_dynamic_ds :
10041005 sql , tables = self .check_sql (res = full_sql_text )
10051006 sql_result = None
1006-
1007+
10071008 if use_dynamic_ds :
10081009 dynamic_sql_result = self .generate_assistant_dynamic_sql (sql , tables )
1009- sqlbot_temp_sql_text = dynamic_sql_result .get ('sqlbot_temp_sql_text' ) if dynamic_sql_result else None
1010- #sql_result = self.generate_assistant_filter(sql, tables)
1010+ sqlbot_temp_sql_text = dynamic_sql_result .get (
1011+ 'sqlbot_temp_sql_text' ) if dynamic_sql_result else None
1012+ # sql_result = self.generate_assistant_filter(sql, tables)
10111013 else :
10121014 sql_result = self .generate_filter (sql , tables ) # maybe no sql and tables
10131015
@@ -1020,6 +1022,7 @@ def run_task(self, in_chat: bool = True):
10201022 sql = self .check_save_sql (res = full_sql_text )
10211023 else :
10221024 sql = self .check_save_sql (res = full_sql_text )
1025+ tables = []
10231026
10241027 SQLBotLogUtil .info (sql )
10251028 format_sql = sqlparse .format (sql , reindent = True )
@@ -1033,10 +1036,11 @@ def run_task(self, in_chat: bool = True):
10331036 if sqlbot_temp_sql_text and assistant_dynamic_sql :
10341037 dynamic_sql_result .pop ('sqlbot_temp_sql_text' )
10351038 for origin_table , subsql in dynamic_sql_result .items ():
1036- assistant_dynamic_sql = assistant_dynamic_sql .replace (f'{ dynamic_subsql_prefix } { origin_table } ' , subsql )
1039+ assistant_dynamic_sql = assistant_dynamic_sql .replace (f'{ dynamic_subsql_prefix } { origin_table } ' ,
1040+ subsql )
10371041 real_execute_sql = assistant_dynamic_sql
1038-
1039- result = self .execute_sql (sql = real_execute_sql )
1042+
1043+ result = self .execute_sql (sql = real_execute_sql , tables = tables )
10401044 self .save_sql_data (data_obj = result )
10411045 if in_chat :
10421046 yield 'data:' + orjson .dumps ({'content' : 'execute-success' , 'type' : 'sql-data' }).decode () + '\n \n '
0 commit comments