From ab6e1dcb3f139e93ac5c19a020ba3df1e17de407 Mon Sep 17 00:00:00 2001 From: junjun Date: Thu, 29 Jan 2026 14:21:19 +0800 Subject: [PATCH] fix: check sql only contain read operation #814 --- backend/apps/db/db.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/backend/apps/db/db.py b/backend/apps/db/db.py index 7a9973b3..2002ee62 100644 --- a/backend/apps/db/db.py +++ b/backend/apps/db/db.py @@ -577,10 +577,11 @@ def exec_sql(ds: CoreDatasource | AssistantOutDsSchema, sql: str, origin_column= raise Exception(str(ex)) -def check_sql_read(sql: str, dialect=None): +def check_sql_read(sql: str, ds: CoreDatasource | AssistantOutDsSchema): try: - ansi_escape = re.compile(r'\x1b\[[0-9;]*m') - sql = ansi_escape.sub('', sql) + dialect = None + if ds.type == "mysql" or ds.type == "doris" or ds.type == "starrocks": + dialect = 'mysql' statements = sqlglot.parse(sql, dialect=dialect)