From 6f2e76bc092a7c03cf3d0d47b7849ed124a75d54 Mon Sep 17 00:00:00 2001 From: "Hugh A. Miles II" Date: Sat, 15 Oct 2022 11:31:31 -0400 Subject: [PATCH] chore: Add `USER_CLIENT_ERRORS` to stop logging exceptions that are user driven (#21818) --- 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(