diff --git a/client/client_test.go b/client/client_test.go index 0d39bbc3b..7443e2877 100644 --- a/client/client_test.go +++ b/client/client_test.go @@ -269,6 +269,7 @@ func (s *clientTestSuite) testStmt_DropTable() { stmt, err := s.c.Prepare(str) require.NoError(s.T(), err) + require.Zero(s.T(), stmt.WarningsNum()) defer stmt.Close() diff --git a/client/stmt.go b/client/stmt.go index 30d878b55..bab79c7ba 100644 --- a/client/stmt.go +++ b/client/stmt.go @@ -265,9 +265,14 @@ func (c *Conn) Prepare(query string) (*Stmt, error) { s.params = int(binary.LittleEndian.Uint16(data[pos:])) pos += 2 - // warnings - s.warnings = int(binary.LittleEndian.Uint16(data[pos:])) - // pos += 2 + // reserved + pos += 1 + + if len(data) >= 12 { + // warnings + s.warnings = int(binary.LittleEndian.Uint16(data[pos:])) + // pos += 2 + } if s.params > 0 { if err := s.conn.readUntilEOF(); err != nil {