From 21a1b078b3eec779137649f60022a4d90f580aed Mon Sep 17 00:00:00 2001 From: Julien Schmidt Date: Mon, 1 Jul 2013 10:32:52 +0200 Subject: [PATCH 1/2] rows: clean up error handling --- errors.go | 1 + rows.go | 8 +++----- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/errors.go b/errors.go index 20003e086..09b3ef14e 100644 --- a/errors.go +++ b/errors.go @@ -17,6 +17,7 @@ import ( ) var ( + errInvalidConn = errors.New("Invalid Connection") errMalformPkt = errors.New("Malformed Packet") errNoTLS = errors.New("TLS encryption requested but server does not support TLS") errOldPassword = errors.New("It seems like you are using old_passwords, which is unsupported. See https://github.com/go-sql-driver/mysql/wiki/old_passwords") diff --git a/rows.go b/rows.go index fda75998b..dc02d22ed 100644 --- a/rows.go +++ b/rows.go @@ -11,7 +11,6 @@ package mysql import ( "database/sql/driver" - "errors" "io" ) @@ -44,7 +43,7 @@ func (rows *mysqlRows) Close() (err error) { // Remove unread packets from stream if !rows.eof { if rows.mc == nil { - return errors.New("Invalid Connection") + return errInvalidConn } err = rows.mc.readUntilEOF() @@ -53,17 +52,16 @@ func (rows *mysqlRows) Close() (err error) { return } -func (rows *mysqlRows) Next(dest []driver.Value) error { +func (rows *mysqlRows) Next(dest []driver.Value) (err error) { if rows.eof { return io.EOF } if rows.mc == nil { - return errors.New("Invalid Connection") + return errInvalidConn } // Fetch next row from stream - var err error if rows.binary { err = rows.readBinaryRow(dest) } else { From 7aa2b6ae289b40205152462530865bf0dc1e113f Mon Sep 17 00:00:00 2001 From: Julien Schmidt Date: Mon, 1 Jul 2013 10:34:23 +0200 Subject: [PATCH 2/2] rows.Close: remove superfluous lambda function --- rows.go | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/rows.go b/rows.go index dc02d22ed..4fef1d9d5 100644 --- a/rows.go +++ b/rows.go @@ -36,10 +36,6 @@ func (rows *mysqlRows) Columns() (columns []string) { } func (rows *mysqlRows) Close() (err error) { - defer func() { - rows.mc = nil - }() - // Remove unread packets from stream if !rows.eof { if rows.mc == nil { @@ -49,6 +45,8 @@ func (rows *mysqlRows) Close() (err error) { err = rows.mc.readUntilEOF() } + rows.mc = nil + return }