From 49c9674102c3c151a004f2ef1d54072c9cb8244d Mon Sep 17 00:00:00 2001 From: Jack Christensen Date: Mon, 31 Dec 2018 17:46:56 -0600 Subject: [PATCH] PG error type is *pgconn.PgError --- pgconn.go | 10 +++++----- pgconn_test.go | 4 ++-- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/pgconn.go b/pgconn.go index a7c4eea3..fef113e0 100644 --- a/pgconn.go +++ b/pgconn.go @@ -45,7 +45,7 @@ type PgError struct { Routine string } -func (pe PgError) Error() string { +func (pe *PgError) Error() string { return pe.Severity + ": " + pe.Message + " (SQLSTATE " + pe.Code + ")" } @@ -118,7 +118,7 @@ func ConnectConfig(ctx context.Context, config *Config) (pgConn *PgConn, err err pgConn, err = connect(ctx, config, fc) if err == nil { return pgConn, nil - } else if err, ok := err.(PgError); ok { + } else if err, ok := err.(*PgError); ok { return nil, err } } @@ -199,7 +199,7 @@ func connect(ctx context.Context, config *Config, fallbackConfig *FallbackConfig // handled by ReceiveMessage case *pgproto3.ErrorResponse: pgConn.NetConn.Close() - return nil, PgError{ + return nil, &PgError{ Severity: msg.Severity, Code: msg.Code, Message: msg.Message, @@ -654,8 +654,8 @@ func (pgConn *PgConn) Exec(ctx context.Context, sql string) (*PgResult, error) { return result, nil } -func errorResponseToPgError(msg *pgproto3.ErrorResponse) PgError { - return PgError{ +func errorResponseToPgError(msg *pgproto3.ErrorResponse) *PgError { + return &PgError{ Severity: msg.Severity, Code: msg.Code, Message: msg.Message, diff --git a/pgconn_test.go b/pgconn_test.go index 741c1b4b..e46093b0 100644 --- a/pgconn_test.go +++ b/pgconn_test.go @@ -269,7 +269,7 @@ func TestConnExecMultipleQueriesError(t *testing.T) { result, err := pgConn.Exec(context.Background(), "select 1; select 1/0; select 1") require.NotNil(t, err) require.Nil(t, result) - if pgErr, ok := err.(pgconn.PgError); ok { + if pgErr, ok := err.(*pgconn.PgError); ok { assert.Equal(t, "22012", pgErr.Code) } else { t.Errorf("unexpected error: %v", err) @@ -331,7 +331,7 @@ func TestConnCancelQuery(t *testing.T) { require.Nil(t, err) _, err = pgConn.GetResult(context.Background()).Close() - if err, ok := err.(pgconn.PgError); ok { + if err, ok := err.(*pgconn.PgError); ok { assert.Equal(t, "57014", err.Code) } else { t.Errorf("expected pgconn.PgError got %v", err)