Skip to content

Commit 87443b9

Browse files
authored
small code cleanup (#1598)
* Go programmers familier with `if err != nil {}` than `if err == nil {}`. * Update some URLs about MySQL client/server protocol.
1 parent 9b8d28e commit 87443b9

File tree

2 files changed

+40
-36
lines changed

2 files changed

+40
-36
lines changed

connection.go

+23-20
Original file line numberDiff line numberDiff line change
@@ -400,31 +400,34 @@ func (mc *mysqlConn) query(query string, args []driver.Value) (*textRows, error)
400400
}
401401
// Send command
402402
err := mc.writeCommandPacketStr(comQuery, query)
403-
if err == nil {
404-
// Read Result
405-
var resLen int
406-
resLen, err = handleOk.readResultSetHeaderPacket()
407-
if err == nil {
408-
rows := new(textRows)
409-
rows.mc = mc
403+
if err != nil {
404+
return nil, mc.markBadConn(err)
405+
}
410406

411-
if resLen == 0 {
412-
rows.rs.done = true
407+
// Read Result
408+
var resLen int
409+
resLen, err = handleOk.readResultSetHeaderPacket()
410+
if err != nil {
411+
return nil, mc.markBadConn(err)
412+
}
413413

414-
switch err := rows.NextResultSet(); err {
415-
case nil, io.EOF:
416-
return rows, nil
417-
default:
418-
return nil, err
419-
}
420-
}
414+
rows := new(textRows)
415+
rows.mc = mc
421416

422-
// Columns
423-
rows.rs.columns, err = mc.readColumns(resLen)
424-
return rows, err
417+
if resLen == 0 {
418+
rows.rs.done = true
419+
420+
switch err := rows.NextResultSet(); err {
421+
case nil, io.EOF:
422+
return rows, nil
423+
default:
424+
return nil, err
425425
}
426426
}
427-
return nil, mc.markBadConn(err)
427+
428+
// Columns
429+
rows.rs.columns, err = mc.readColumns(resLen)
430+
return rows, err
428431
}
429432

430433
// Gets the value of the given MySQL System Variable

packets.go

+17-16
Original file line numberDiff line numberDiff line change
@@ -524,32 +524,33 @@ func (mc *okHandler) readResultOK() error {
524524
}
525525

526526
// Result Set Header Packet
527-
// http://dev.mysql.com/doc/internals/en/com-query-response.html#packet-ProtocolText::Resultset
527+
// https://dev.mysql.com/doc/dev/mysql-server/latest/page_protocol_com_query_response.html
528528
func (mc *okHandler) readResultSetHeaderPacket() (int, error) {
529529
// handleOkPacket replaces both values; other cases leave the values unchanged.
530530
mc.result.affectedRows = append(mc.result.affectedRows, 0)
531531
mc.result.insertIds = append(mc.result.insertIds, 0)
532532

533533
data, err := mc.conn().readPacket()
534-
if err == nil {
535-
switch data[0] {
536-
537-
case iOK:
538-
return 0, mc.handleOkPacket(data)
534+
if err != nil {
535+
return 0, err
536+
}
539537

540-
case iERR:
541-
return 0, mc.conn().handleErrorPacket(data)
538+
switch data[0] {
539+
case iOK:
540+
return 0, mc.handleOkPacket(data)
542541

543-
case iLocalInFile:
544-
return 0, mc.handleInFileRequest(string(data[1:]))
545-
}
542+
case iERR:
543+
return 0, mc.conn().handleErrorPacket(data)
546544

547-
// column count
548-
num, _, _ := readLengthEncodedInteger(data)
549-
// ignore remaining data in the packet. see #1478.
550-
return int(num), nil
545+
case iLocalInFile:
546+
return 0, mc.handleInFileRequest(string(data[1:]))
551547
}
552-
return 0, err
548+
549+
// column count
550+
// https://dev.mysql.com/doc/dev/mysql-server/latest/page_protocol_com_query_response_text_resultset.html
551+
num, _, _ := readLengthEncodedInteger(data)
552+
// ignore remaining data in the packet. see #1478.
553+
return int(num), nil
553554
}
554555

555556
// Error Packet

0 commit comments

Comments
 (0)