diff options
Diffstat (limited to 'vendor/github.com/go-sql-driver/mysql/rows.go')
-rw-r--r-- | vendor/github.com/go-sql-driver/mysql/rows.go | 112 |
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 +} |