Skip to content

Commit 96998ec

Browse files
committed
Small fix in trino.exceptions.TrinoQueryError
1 parent dbe3b28 commit 96998ec

File tree

1 file changed

+17
-11
lines changed

1 file changed

+17
-11
lines changed

trino/exceptions.py

+17-11
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
This module defines exceptions for Trino operations. It follows the structure
1515
defined in pep-0249.
1616
"""
17-
from typing import Any, Dict, Optional, Tuple
17+
from typing import Any, Dict, Optional, Tuple, Union
1818

1919
import trino.logging
2020

@@ -72,38 +72,44 @@ class TrinoDataError(NotSupportedError):
7272

7373

7474
class TrinoQueryError(Error):
75-
def __init__(self, error: Any, query_id: Optional[str] = None) -> None:
76-
self._error = error
75+
def __init__(self, error: Union[Dict[str, Any], str], query_id: Optional[str] = None) -> None:
76+
if isinstance(error, dict):
77+
self._error = error
78+
elif isinstance(error, str):
79+
self._error = {"message": error}
7780
self._query_id = query_id
7881

7982
@property
8083
def error_code(self) -> Optional[int]:
81-
return self._error.get("errorCode", None)
84+
return self._error.get("errorCode")
8285

8386
@property
8487
def error_name(self) -> Optional[str]:
85-
return self._error.get("errorName", None)
88+
return self._error.get("errorName")
8689

8790
@property
8891
def error_type(self) -> Optional[str]:
89-
return self._error.get("errorType", None)
92+
return self._error.get("errorType")
9093

9194
@property
9295
def error_exception(self) -> Optional[str]:
93-
return self.failure_info.get("type", None) if self.failure_info else None
96+
return self.failure_info.get("type") if self.failure_info else None
9497

9598
@property
9699
def failure_info(self) -> Optional[Dict[str, Any]]:
97-
return self._error.get("failureInfo", None)
100+
return self._error.get("failureInfo")
98101

99102
@property
100103
def message(self) -> str:
101104
return self._error.get("message", "Trino did not return an error message")
102105

103106
@property
104-
def error_location(self) -> Tuple[int, int]:
105-
location = self._error["errorLocation"]
106-
return (location["lineNumber"], location["columnNumber"])
107+
def error_location(self) -> Optional[Tuple[int, int]]:
108+
location = self._error.get("errorLocation")
109+
if location:
110+
return (location["lineNumber"], location["columnNumber"])
111+
else:
112+
return None
107113

108114
@property
109115
def query_id(self) -> Optional[str]:

0 commit comments

Comments
 (0)