in pkg/resultset/reader.go [73:94]
func (r *Reader) Read(p []byte) (int, error) {
if r.rd == nil || r.seeked {
if err := r.Close(); err != nil {
return 0, err
}
reader, err := newRangeReader(context.Background(), r.set, r.bucket, r.off, -1)
r.rd = reader
r.seeked = false
if err != nil {
return 0, err
}
}
n, err := r.rd.Read(p)
r.off += int64(n)
if err == io.EOF {
// Next Read() call needs to recreate the reader.
r.seeked = true
// Ignore EOF because there might be more data.
return n, nil
}
return n, err
}