From d1fcb88fdacd3adf3428f5409f93724f57df92ad Mon Sep 17 00:00:00 2001 From: Andrey Borodin Date: Fri, 29 Jan 2021 12:35:50 +0500 Subject: [PATCH] Return ErrorResponse from backend if it preceed transport error --- errors.go | 1 + pgconn.go | 6 +++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/errors.go b/errors.go index 7a21af9..c6d7b35 100644 --- a/errors.go +++ b/errors.go @@ -49,6 +49,7 @@ type PgError struct { File string Line int32 Routine string + NetworkError error } func (pe *PgError) Error() string { diff --git a/pgconn.go b/pgconn.go index 751d8fc..6a25edb 100644 --- a/pgconn.go +++ b/pgconn.go @@ -1204,7 +1204,11 @@ func (mrr *MultiResultReader) receiveMessage() (pgproto3.BackendMessage, error) if err != nil { mrr.pgConn.contextWatcher.Unwatch() - mrr.err = err + if x, ok := mrr.err.(*PgError); ok { + x.NetworkError = err + } else { + mrr.err = err + } mrr.closed = true mrr.pgConn.asyncClose() return nil, mrr.err