From f626856d6c30c24fe28ab5a624d3b6b5894383f2 Mon Sep 17 00:00:00 2001 From: hughhhh Date: Fri, 14 Oct 2022 13:03:47 -0400 Subject: [PATCH] add check inside exception --- superset/sqllab/command.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/superset/sqllab/command.py b/superset/sqllab/command.py index 613edf8d69859..a8ee3c0934734 100644 --- a/superset/sqllab/command.py +++ b/superset/sqllab/command.py @@ -18,7 +18,7 @@ from __future__ import annotations import logging -from typing import Any, Dict, Optional, TYPE_CHECKING +from typing import Any, Dict, Optional, Set, TYPE_CHECKING from flask_babel import gettext as __ @@ -53,6 +53,13 @@ CommandResult = Dict[str, Any] +# Define set of users client errors these definitions won't +# be logged as exception vs. warning +USER_CLIENT_ERRORS: Set[SupersetErrorType] = { + SupersetErrorType.SYNTAX_ERROR, + SupersetErrorType.COLUMN_DOES_NOT_EXIST_ERROR, +} + class ExecuteSqlCommand(BaseCommand): _execution_context: SqlJsonExecutionContext @@ -116,11 +123,11 @@ def run( # pylint: disable=too-many-statements,useless-suppression "payload": self._execution_context_convertor.serialize_payload(), } except SupersetErrorsException as ex: - if all(ex.error_type == SupersetErrorType.SYNTAX_ERROR for ex in ex.errors): + if all(ex.error_type in USER_CLIENT_ERRORS for ex in ex.errors): raise SupersetSyntaxErrorException(ex.errors) from ex raise ex except SupersetException as ex: - if ex.error_type == SupersetErrorType.SYNTAX_ERROR: + if ex.error_type in USER_CLIENT_ERRORS: raise SupersetSyntaxErrorException( [ SupersetError(