diff --git a/client/client_test.go b/client/client_test.go index 127bae7e8..ae1890770 100644 --- a/client/client_test.go +++ b/client/client_test.go @@ -25,8 +25,10 @@ func (s *clientTestSuite) SetUpSuite(c *C) { c.Fatal(err) } - _, err = s.c.Execute("CREATE DATABASE IF NOT EXISTS " + *testDB) + var result *mysql.Result + result, err = s.c.Execute("CREATE DATABASE IF NOT EXISTS " + *testDB) c.Assert(err, IsNil) + c.Assert(result.RowNumber() >= 0, IsTrue) _, err = s.c.Execute("USE " + *testDB) c.Assert(err, IsNil) diff --git a/client/resp.go b/client/resp.go index 21374e467..12fbac926 100644 --- a/client/resp.go +++ b/client/resp.go @@ -40,7 +40,7 @@ func (c *Conn) handleOKPacket(data []byte) (*Result, error) { var n int var pos = 1 - r := &Result{Resultset: &Resultset{}} + r := new(Result) r.AffectedRows, _, n = LengthEncodedInt(data[pos:]) pos += n @@ -128,11 +128,8 @@ func (c *Conn) handleAuthResult() error { return nil // auth already succeeded } if data[0] == CACHE_SHA2_FAST_AUTH { - if _, err = c.readOK(); err == nil { - return nil // auth successful - } else { - return err - } + _, err = c.readOK() + return err } else if data[0] == CACHE_SHA2_FULL_AUTH { // need full authentication if c.tlsConfig != nil || c.proto == "unix" { @@ -144,9 +141,8 @@ func (c *Conn) handleAuthResult() error { return err } } - if _, err = c.readOK(); err != nil { - return err - } + _, err = c.readOK() + return err } else { return errors.Errorf("invalid packet %x", data[0]) } diff --git a/mysql/resultset.go b/mysql/resultset.go index 6a4df6243..c3ad7ef1b 100644 --- a/mysql/resultset.go +++ b/mysql/resultset.go @@ -67,6 +67,9 @@ func (r *Resultset) Reset(fieldsCount int) { } func (r *Resultset) RowNumber() int { + if r == nil { + return 0 + } return len(r.Values) }