You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@superset.apache.org by be...@apache.org on 2024/10/01 17:02:50 UTC

(superset) 01/01: WIP

This is an automated email from the ASF dual-hosted git repository.

beto pushed a commit to branch sql-parse-error
in repository https://gitbox.apache.org/repos/asf/superset.git

commit e8aba862515decbece981e505867ac94afaa68f1
Author: Beto Dealmeida <ro...@dealmeida.net>
AuthorDate: Tue Oct 1 13:02:36 2024 -0400

    WIP
---
 superset/sql_lab.py | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/superset/sql_lab.py b/superset/sql_lab.py
index 65a093610d..7685b4419c 100644
--- a/superset/sql_lab.py
+++ b/superset/sql_lab.py
@@ -238,15 +238,17 @@ def execute_sql_statement(  # pylint: disable=too-many-statements, too-many-loca
     increased_limit = None if query.limit is None else query.limit + 1
 
     if not database.allow_dml:
+        errors = []
         try:
             parsed_statement = SQLStatement(sql_statement, engine=db_engine_spec.engine)
             disallowed = parsed_statement.is_mutating()
-        except SupersetParseError:
-            # if we fail to parse teh query, disallow by default
+        except SupersetParseError as ex:
+            # if we fail to parse the query, disallow by default
             disallowed = True
+            errors.append(ex.error)
 
         if disallowed:
-            raise SupersetErrorException(
+            errors.append(
                 SupersetError(
                     message=__(
                         "This database does not allow for DDL/DML, and the query "
@@ -257,6 +259,7 @@ def execute_sql_statement(  # pylint: disable=too-many-statements, too-many-loca
                     level=ErrorLevel.ERROR,
                 )
             )
+            raise SupersetErrorsException(errors)
 
     if apply_ctas:
         if not query.tmp_table_name: