You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@phoenix.apache.org by st...@apache.org on 2020/07/15 03:51:41 UTC
[phoenix-queryserver] branch master updated: PHOENIX-6007 PhoenixDB
error handling improvements
This is an automated email from the ASF dual-hosted git repository.
stoty pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/phoenix-queryserver.git
The following commit(s) were added to refs/heads/master by this push:
new 9980d41 PHOENIX-6007 PhoenixDB error handling improvements
9980d41 is described below
commit 9980d415f07879511d560e0999f08cda8c96759f
Author: Istvan Toth <st...@apache.org>
AuthorDate: Tue Jul 14 08:08:46 2020 +0200
PHOENIX-6007 PhoenixDB error handling improvements
---
python-phoenixdb/phoenixdb/avatica/client.py | 16 +++++++++++-----
1 file changed, 11 insertions(+), 5 deletions(-)
diff --git a/python-phoenixdb/phoenixdb/avatica/client.py b/python-phoenixdb/phoenixdb/avatica/client.py
index 16885bb..9b28e65 100644
--- a/python-phoenixdb/phoenixdb/avatica/client.py
+++ b/python-phoenixdb/phoenixdb/avatica/client.py
@@ -93,6 +93,7 @@ def raise_sql_error(code, sqlstate, message):
for prefix, error_class in SQLSTATE_ERROR_CLASSES:
if sqlstate.startswith(prefix):
raise error_class(message, code, sqlstate)
+ raise errors.InternalError(message, code, sqlstate)
def parse_and_raise_sql_error(message):
@@ -112,15 +113,20 @@ def parse_error_page(html):
def parse_error_protobuf(text):
- message = common_pb2.WireMessage()
- message.ParseFromString(text)
+ try:
+ message = common_pb2.WireMessage()
+ message.ParseFromString(text)
- err = responses_pb2.ErrorResponse()
- err.ParseFromString(message.wrapped_message)
+ err = responses_pb2.ErrorResponse()
+ if not err.ParseFromString(message.wrapped_message):
+ raise Exception('No error message found')
+ except Exception:
+ # Not a protobuf error, fall through
+ return
parse_and_raise_sql_error(err.error_message)
raise_sql_error(err.error_code, err.sql_state, err.error_message)
- raise errors.InternalError(err.error_message)
+ # Not a protobuf error, fall through
class AvaticaClient(object):