summaryrefslogtreecommitdiffstats
path: root/vendor/github.com/go-sql-driver/mysql/connection.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/go-sql-driver/mysql/connection.go')
-rw-r--r--vendor/github.com/go-sql-driver/mysql/connection.go36
1 files changed, 12 insertions, 24 deletions
diff --git a/vendor/github.com/go-sql-driver/mysql/connection.go b/vendor/github.com/go-sql-driver/mysql/connection.go
index cdce3e30f..d82c728f3 100644
--- a/vendor/github.com/go-sql-driver/mysql/connection.go
+++ b/vendor/github.com/go-sql-driver/mysql/connection.go
@@ -10,7 +10,6 @@ package mysql
import (
"database/sql/driver"
- "io"
"net"
"strconv"
"strings"
@@ -272,6 +271,7 @@ func (mc *mysqlConn) Exec(query string, args []driver.Value) (driver.Result, err
return nil, err
}
query = prepared
+ args = nil
}
mc.affectedRows = 0
mc.insertId = 0
@@ -289,29 +289,22 @@ func (mc *mysqlConn) Exec(query string, args []driver.Value) (driver.Result, err
// Internal function to execute commands
func (mc *mysqlConn) exec(query string) error {
// Send command
- if err := mc.writeCommandPacketStr(comQuery, query); err != nil {
+ err := mc.writeCommandPacketStr(comQuery, query)
+ if err != nil {
return err
}
// Read Result
resLen, err := mc.readResultSetHeaderPacket()
- if err != nil {
- return err
- }
-
- if resLen > 0 {
- // columns
- if err := mc.readUntilEOF(); err != nil {
+ if err == nil && resLen > 0 {
+ if err = mc.readUntilEOF(); err != nil {
return err
}
- // rows
- if err := mc.readUntilEOF(); err != nil {
- return err
- }
+ err = mc.readUntilEOF()
}
- return mc.discardResults()
+ return err
}
func (mc *mysqlConn) Query(query string, args []driver.Value) (driver.Rows, error) {
@@ -329,6 +322,7 @@ func (mc *mysqlConn) Query(query string, args []driver.Value) (driver.Rows, erro
return nil, err
}
query = prepared
+ args = nil
}
// Send command
err := mc.writeCommandPacketStr(comQuery, query)
@@ -341,17 +335,11 @@ func (mc *mysqlConn) Query(query string, args []driver.Value) (driver.Rows, erro
rows.mc = mc
if resLen == 0 {
- rows.rs.done = true
-
- switch err := rows.NextResultSet(); err {
- case nil, io.EOF:
- return rows, nil
- default:
- return nil, err
- }
+ // no columns, no more data
+ return emptyRows{}, nil
}
// Columns
- rows.rs.columns, err = mc.readColumns(resLen)
+ rows.columns, err = mc.readColumns(resLen)
return rows, err
}
}
@@ -371,7 +359,7 @@ func (mc *mysqlConn) getSystemVar(name string) ([]byte, error) {
if err == nil {
rows := new(textRows)
rows.mc = mc
- rows.rs.columns = []mysqlField{{fieldType: fieldTypeVarChar}}
+ rows.columns = []mysqlField{{fieldType: fieldTypeVarChar}}
if resLen > 0 {
// Columns