You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@calcite.apache.org by jh...@apache.org on 2017/08/11 01:50:04 UTC
[07/50] calcite-avatica-go git commit: Make parsing the error code
and sql state from the error message more robust.
Make parsing the error code and sql state from the error message more robust.
Project: http://git-wip-us.apache.org/repos/asf/calcite-avatica-go/repo
Commit: http://git-wip-us.apache.org/repos/asf/calcite-avatica-go/commit/f5d6dfb3
Tree: http://git-wip-us.apache.org/repos/asf/calcite-avatica-go/tree/f5d6dfb3
Diff: http://git-wip-us.apache.org/repos/asf/calcite-avatica-go/diff/f5d6dfb3
Branch: refs/heads/master
Commit: f5d6dfb3da421af3f966229a06ca96f46fe5353a
Parents: d761d38
Author: Francis Chuang <fr...@gmail.com>
Authored: Tue May 31 20:06:13 2016 +1000
Committer: Julian Hyde <jh...@apache.org>
Committed: Thu Aug 10 18:47:08 2017 -0700
----------------------------------------------------------------------
errors.go | 18 +++++++++++++++---
1 file changed, 15 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/calcite-avatica-go/blob/f5d6dfb3/errors.go
----------------------------------------------------------------------
diff --git a/errors.go b/errors.go
index d704375..abef290 100644
--- a/errors.go
+++ b/errors.go
@@ -55,10 +55,22 @@ func (r ResponseError) Name() string {
// errorResponseToReponseError converts an error protocol buffer response
// to a native golang error.
func errorResponseToResponseError(message *message.ErrorResponse) ResponseError {
- re := regexp.MustCompile(`java.sql.SQLException: ERROR (\d+) \((\d+)\)`)
+
+ var (
+ errorCode int
+ sqlState string
+ )
+
+ re := regexp.MustCompile(`ERROR (\d+) \((\d+)\)`)
codes := re.FindStringSubmatch(message.ErrorMessage)
- errorCode, _ := strconv.Atoi(codes[1])
- sqlState := codes[2]
+
+ if len(codes) > 1 {
+ errorCode, _ = strconv.Atoi(codes[1])
+ }
+
+ if len(codes) > 2 {
+ sqlState = codes[2]
+ }
err := ResponseError{
Exceptions: message.Exceptions,