summaryrefslogtreecommitdiffstats
path: root/vendor/github.com/go-sql-driver/mysql/rows.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/go-sql-driver/mysql/rows.go')
-rw-r--r--vendor/github.com/go-sql-driver/mysql/rows.go112
1 files changed, 23 insertions, 89 deletions
diff --git a/vendor/github.com/go-sql-driver/mysql/rows.go b/vendor/github.com/go-sql-driver/mysql/rows.go
index 13905e216..c08255eee 100644
--- a/vendor/github.com/go-sql-driver/mysql/rows.go
+++ b/vendor/github.com/go-sql-driver/mysql/rows.go
@@ -21,15 +21,9 @@ type mysqlField struct {
decimals byte
}
-type resultSet struct {
- columns []mysqlField
- columnNames []string
- done bool
-}
-
type mysqlRows struct {
- mc *mysqlConn
- rs resultSet
+ mc *mysqlConn
+ columns []mysqlField
}
type binaryRows struct {
@@ -40,31 +34,27 @@ type textRows struct {
mysqlRows
}
-func (rows *mysqlRows) Columns() []string {
- if rows.rs.columnNames != nil {
- return rows.rs.columnNames
- }
+type emptyRows struct{}
- columns := make([]string, len(rows.rs.columns))
+func (rows *mysqlRows) Columns() []string {
+ columns := make([]string, len(rows.columns))
if rows.mc != nil && rows.mc.cfg.ColumnsWithAlias {
for i := range columns {
- if tableName := rows.rs.columns[i].tableName; len(tableName) > 0 {
- columns[i] = tableName + "." + rows.rs.columns[i].name
+ if tableName := rows.columns[i].tableName; len(tableName) > 0 {
+ columns[i] = tableName + "." + rows.columns[i].name
} else {
- columns[i] = rows.rs.columns[i].name
+ columns[i] = rows.columns[i].name
}
}
} else {
for i := range columns {
- columns[i] = rows.rs.columns[i].name
+ columns[i] = rows.columns[i].name
}
}
-
- rows.rs.columnNames = columns
return columns
}
-func (rows *mysqlRows) Close() (err error) {
+func (rows *mysqlRows) Close() error {
mc := rows.mc
if mc == nil {
return nil
@@ -74,9 +64,7 @@ func (rows *mysqlRows) Close() (err error) {
}
// Remove unread packets from stream
- if !rows.rs.done {
- err = mc.readUntilEOF()
- }
+ err := mc.readUntilEOF()
if err == nil {
if err = mc.discardResults(); err != nil {
return err
@@ -87,62 +75,6 @@ func (rows *mysqlRows) Close() (err error) {
return err
}
-func (rows *mysqlRows) HasNextResultSet() (b bool) {
- if rows.mc == nil {
- return false
- }
- return rows.mc.status&statusMoreResultsExists != 0
-}
-
-func (rows *mysqlRows) nextResultSet() (int, error) {
- if rows.mc == nil {
- return 0, io.EOF
- }
- if rows.mc.netConn == nil {
- return 0, ErrInvalidConn
- }
-
- // Remove unread packets from stream
- if !rows.rs.done {
- if err := rows.mc.readUntilEOF(); err != nil {
- return 0, err
- }
- rows.rs.done = true
- }
-
- if !rows.HasNextResultSet() {
- rows.mc = nil
- return 0, io.EOF
- }
- rows.rs = resultSet{}
- return rows.mc.readResultSetHeaderPacket()
-}
-
-func (rows *mysqlRows) nextNotEmptyResultSet() (int, error) {
- for {
- resLen, err := rows.nextResultSet()
- if err != nil {
- return 0, err
- }
-
- if resLen > 0 {
- return resLen, nil
- }
-
- rows.rs.done = true
- }
-}
-
-func (rows *binaryRows) NextResultSet() error {
- resLen, err := rows.nextNotEmptyResultSet()
- if err != nil {
- return err
- }
-
- rows.rs.columns, err = rows.mc.readColumns(resLen)
- return err
-}
-
func (rows *binaryRows) Next(dest []driver.Value) error {
if mc := rows.mc; mc != nil {
if mc.netConn == nil {
@@ -155,16 +87,6 @@ func (rows *binaryRows) Next(dest []driver.Value) error {
return io.EOF
}
-func (rows *textRows) NextResultSet() (err error) {
- resLen, err := rows.nextNotEmptyResultSet()
- if err != nil {
- return err
- }
-
- rows.rs.columns, err = rows.mc.readColumns(resLen)
- return err
-}
-
func (rows *textRows) Next(dest []driver.Value) error {
if mc := rows.mc; mc != nil {
if mc.netConn == nil {
@@ -176,3 +98,15 @@ func (rows *textRows) Next(dest []driver.Value) error {
}
return io.EOF
}
+
+func (rows emptyRows) Columns() []string {
+ return nil
+}
+
+func (rows emptyRows) Close() error {
+ return nil
+}
+
+func (rows emptyRows) Next(dest []driver.Value) error {
+ return io.EOF
+}