PG error type is *pgconn.PgError
This commit is contained in:
@@ -45,7 +45,7 @@ type PgError struct {
|
|||||||
Routine string
|
Routine string
|
||||||
}
|
}
|
||||||
|
|
||||||
func (pe PgError) Error() string {
|
func (pe *PgError) Error() string {
|
||||||
return pe.Severity + ": " + pe.Message + " (SQLSTATE " + pe.Code + ")"
|
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)
|
pgConn, err = connect(ctx, config, fc)
|
||||||
if err == nil {
|
if err == nil {
|
||||||
return pgConn, nil
|
return pgConn, nil
|
||||||
} else if err, ok := err.(PgError); ok {
|
} else if err, ok := err.(*PgError); ok {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -199,7 +199,7 @@ func connect(ctx context.Context, config *Config, fallbackConfig *FallbackConfig
|
|||||||
// handled by ReceiveMessage
|
// handled by ReceiveMessage
|
||||||
case *pgproto3.ErrorResponse:
|
case *pgproto3.ErrorResponse:
|
||||||
pgConn.NetConn.Close()
|
pgConn.NetConn.Close()
|
||||||
return nil, PgError{
|
return nil, &PgError{
|
||||||
Severity: msg.Severity,
|
Severity: msg.Severity,
|
||||||
Code: msg.Code,
|
Code: msg.Code,
|
||||||
Message: msg.Message,
|
Message: msg.Message,
|
||||||
@@ -654,8 +654,8 @@ func (pgConn *PgConn) Exec(ctx context.Context, sql string) (*PgResult, error) {
|
|||||||
return result, nil
|
return result, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func errorResponseToPgError(msg *pgproto3.ErrorResponse) PgError {
|
func errorResponseToPgError(msg *pgproto3.ErrorResponse) *PgError {
|
||||||
return PgError{
|
return &PgError{
|
||||||
Severity: msg.Severity,
|
Severity: msg.Severity,
|
||||||
Code: msg.Code,
|
Code: msg.Code,
|
||||||
Message: msg.Message,
|
Message: msg.Message,
|
||||||
|
|||||||
+2
-2
@@ -269,7 +269,7 @@ func TestConnExecMultipleQueriesError(t *testing.T) {
|
|||||||
result, err := pgConn.Exec(context.Background(), "select 1; select 1/0; select 1")
|
result, err := pgConn.Exec(context.Background(), "select 1; select 1/0; select 1")
|
||||||
require.NotNil(t, err)
|
require.NotNil(t, err)
|
||||||
require.Nil(t, result)
|
require.Nil(t, result)
|
||||||
if pgErr, ok := err.(pgconn.PgError); ok {
|
if pgErr, ok := err.(*pgconn.PgError); ok {
|
||||||
assert.Equal(t, "22012", pgErr.Code)
|
assert.Equal(t, "22012", pgErr.Code)
|
||||||
} else {
|
} else {
|
||||||
t.Errorf("unexpected error: %v", err)
|
t.Errorf("unexpected error: %v", err)
|
||||||
@@ -331,7 +331,7 @@ func TestConnCancelQuery(t *testing.T) {
|
|||||||
require.Nil(t, err)
|
require.Nil(t, err)
|
||||||
|
|
||||||
_, err = pgConn.GetResult(context.Background()).Close()
|
_, 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)
|
assert.Equal(t, "57014", err.Code)
|
||||||
} else {
|
} else {
|
||||||
t.Errorf("expected pgconn.PgError got %v", err)
|
t.Errorf("expected pgconn.PgError got %v", err)
|
||||||
|
|||||||
Reference in New Issue
Block a user