in go/rows.go [104:131]
func (r *Rows) Next(dest []driver.Value) error {
if r.reachedLastPage {
return io.EOF
}
if len(r.ResultOutput.ResultSet.Rows) == 0 {
if r.ResultOutput.NextToken == nil || *r.ResultOutput.NextToken == "" {
// this means we reach the last page - no token and no rows
r.reachedLastPage = true
return io.EOF
}
if err := r.fetchNextPage(r.ResultOutput.NextToken); err != nil {
return err
}
if r.reachedLastPage {
return io.EOF
}
}
// Shift to next row
cur := r.ResultOutput.ResultSet.Rows[0]
columns := r.ResultOutput.ResultSet.ResultSetMetadata.ColumnInfo
if err := r.convertRow(columns, cur.Data, dest, r.config); err != nil {
return err
}
r.ResultOutput.ResultSet.Rows = r.ResultOutput.ResultSet.Rows[1:]
return nil
}