Skip to content

Commit e65b69a

Browse files
committed
refine the range check
1 parent 71e8bf0 commit e65b69a

File tree

2 files changed

+6
-7
lines changed

2 files changed

+6
-7
lines changed

src/common/base/src/rangemap/range_merger.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -64,10 +64,10 @@ impl RangeMerger {
6464
rs
6565
}
6666

67-
pub fn get(&self, range: Range<u64>) -> Option<usize> {
67+
pub fn get(&self, check: Range<u64>) -> Option<(usize, Range<u64>)> {
6868
for (i, r) in self.ranges.iter().enumerate() {
69-
if r.contains(&range.start) && r.contains(&range.end) {
70-
return Some(i);
69+
if r.start <= check.start && r.end >= check.end {
70+
return Some((i, r.clone()));
7171
}
7272
}
7373
None

src/query/storages/fuse/src/io/read/block_reader_parquet.rs

+3-4
Original file line numberDiff line numberDiff line change
@@ -336,15 +336,14 @@ impl BlockReader {
336336
let column_end = column_start + column_meta.len;
337337

338338
let range_idx = range_merger.get(column_start..column_end);
339-
let idx = match range_idx {
339+
let (idx, range) = match range_idx {
340340
None => Err(ErrorCode::Internal(format!(
341-
"it's a bug, not found range:[{},{}], in {:?}",
341+
"it's a bug, not found range:[{},{}], in\n: {:?}",
342342
column_start, column_end, ranges
343343
))),
344-
Some(v) => Ok(v),
344+
Some((i, r)) => Ok((i, r)),
345345
}?;
346346
let data = &merge_results[idx].1;
347-
let range = &ranges[idx];
348347
let column_data = data
349348
[(column_start - range.start) as usize..(column_end - column_start) as usize]
350349
.to_vec();

0 commit comments

Comments
 (0)