MCPcopy
hub / github.com/apache/superset / handle_query_error

Function handle_query_error

superset/sql_lab.py:74–105  ·  view source on GitHub ↗

Local method handling error while processing the SQL

(
    ex: Exception,
    query: Query,
    session: Session,
    payload: Optional[Dict[str, Any]] = None,
    prefix_message: str = "",
)

Source from the content-addressed store, hash-verified

72
73
74def handle_query_error(
75 ex: Exception,
76 query: Query,
77 session: Session,
78 payload: Optional[Dict[str, Any]] = None,
79 prefix_message: str = "",
80) -> Dict[str, Any]:
81 """Local method handling error while processing the SQL"""
82 payload = payload or {}
83 msg = f"{prefix_message} {str(ex)}".strip()
84 troubleshooting_link = config["TROUBLESHOOTING_LINK"]
85 query.error_message = msg
86 query.status = QueryStatus.FAILED
87 query.tmp_table_name = None
88
89 # extract DB-specific errors (invalid column, eg)
90 if isinstance(ex, SupersetErrorException):
91 errors = [ex.error]
92 elif isinstance(ex, SupersetErrorsException):
93 errors = ex.errors
94 else:
95 errors = query.database.db_engine_spec.extract_errors(str(ex))
96
97 errors_payload = [dataclasses.asdict(error) for error in errors]
98 if errors:
99 query.set_extra_json_key("errors", errors_payload)
100
101 session.commit()
102 payload.update({"status": query.status, "error": msg, "errors": errors_payload})
103 if troubleshooting_link:
104 payload["link"] = troubleshooting_link
105 return payload
106
107
108def get_query_backoff_handler(details: Dict[Any, Any]) -> None:

Callers 2

get_sql_resultsFunction · 0.85
execute_sql_statementsFunction · 0.85

Calls 3

extract_errorsMethod · 0.80
set_extra_json_keyMethod · 0.80
updateMethod · 0.45

Tested by

no test coverage detected