in pkg/resultset/resultset.go [128:142]
func newRangeReader(ctx context.Context, set ResultSet, bucket obj.Bucket, off, length int64) (io.ReadCloser, error) {
if off >= set.TotalByteLength() {
return nil, io.EOF
}
block, blockOff := set.OffsetToBlockPos(off)
obj := bucket.Object(set[block].Name)
blockByteLen := set[block].BlockByteLength()
if length < 0 {
length = blockByteLen - blockOff
} else if blockByteLen < blockOff+length {
length = blockByteLen - blockOff
}
return obj.NewRangeReader(ctx, blockOff+int64(set[block].FirstDigitOffset), length)
}