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: