func()

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
}