Skip to content

Commit c6f6102

Browse files
committed
readUntilEOF should support ERR packet
fixes go-sql-driver#464
1 parent 3654d25 commit c6f6102

File tree

1 file changed

+11
-8
lines changed

1 file changed

+11
-8
lines changed

packets.go

+11-8
Original file line numberDiff line numberDiff line change
@@ -729,16 +729,19 @@ func (rows *textRows) readRow(dest []driver.Value) error {
729729
func (mc *mysqlConn) readUntilEOF() error {
730730
for {
731731
data, err := mc.readPacket()
732-
733-
// No Err and no EOF Packet
734-
if err == nil && data[0] != iEOF {
735-
continue
736-
}
737-
if err == nil && data[0] == iEOF && len(data) == 5 {
738-
mc.status = readStatus(data[3:])
732+
if err != nil {
733+
return err
739734
}
740735

741-
return err // Err or EOF
736+
switch data[0] {
737+
case iERR:
738+
return mc.handleErrorPacket(data)
739+
case iEOF:
740+
if len(data) == 5 {
741+
mc.status = readStatus(data[3:])
742+
}
743+
return nil
744+
}
742745
}
743746
}
744747

0 commit comments

Comments
 (0)