Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
branch: master
Fetching contributors…

Octocat-spinner-32-eaf2f5

Cannot retrieve contributors at this time

file 78 lines (64 sloc) 1.388 kb
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77
// Go MySQL Driver - A MySQL-Driver for Go's database/sql package
//
// Copyright 2012 Julien Schmidt. All rights reserved.
// http://www.julienschmidt.com
//
// This Source Code Form is subject to the terms of the Mozilla Public
// License, v. 2.0. If a copy of the MPL was not distributed with this file,
// You can obtain one at http://mozilla.org/MPL/2.0/.

package mysql

import (
"database/sql/driver"
"errors"
"io"
)

type mysqlField struct {
name string
fieldType byte
flags FieldFlag
}

type mysqlRows struct {
mc *mysqlConn
binary bool
columns []mysqlField
eof bool
}

func (rows *mysqlRows) Columns() (columns []string) {
columns = make([]string, len(rows.columns))
for i := range columns {
columns[i] = rows.columns[i].name
}
return
}

func (rows *mysqlRows) Close() (err error) {
defer func() {
rows.mc = nil
}()

// Remove unread packets from stream
if !rows.eof {
if rows.mc == nil {
return errors.New("Invalid Connection")
}

err = rows.mc.readUntilEOF()
}

return
}

func (rows *mysqlRows) Next(dest []driver.Value) error {
if rows.eof {
return io.EOF
}

if rows.mc == nil {
return errors.New("Invalid Connection")
}

// Fetch next row from stream
var err error
if rows.binary {
err = rows.readBinaryRow(dest)
} else {
err = rows.readRow(dest)
}

if err == io.EOF {
rows.eof = true
}
return err
}
Something went wrong with that request. Please try again.