Skip to content

Commit 04efa78

Browse files
committed
patch: improve namings
Signed-off-by: 蔡略 <[email protected]>
1 parent 9072c20 commit 04efa78

File tree

1 file changed

+12
-11
lines changed

1 file changed

+12
-11
lines changed

arrow-array/src/array/byte_view_array.rs

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -325,18 +325,18 @@ impl<T: ByteViewType + ?Sized> GenericByteViewArray<T> {
325325
/// and return a new array with the compacted data buffers.
326326
/// The original array will be left as is.
327327
pub fn gc(&self) -> Self {
328-
let compact_check = self.compact_check();
328+
let check_result = self.compact_check();
329329

330-
if compact_check.iter().all(|x| *x) {
330+
if check_result.iter().all(|x| *x) {
331331
return self.clone();
332332
}
333333

334334
let mut new_views = Vec::with_capacity(self.views.len());
335335
let mut new_bufs: Vec<Vec<u8>> = vec![vec![]; self.buffers.len()];
336-
for view in self.views.iter() {
336+
for (i, view) in self.views.iter().enumerate() {
337337
let mut bv = ByteView::from(*view);
338338
let idx = bv.buffer_index as usize;
339-
if bv.length <= 12 || compact_check[idx] {
339+
if self.is_null(i) || bv.length <= 12 || check_result[idx] {
340340
new_views.push(*view);
341341
continue;
342342
}
@@ -362,7 +362,7 @@ impl<T: ByteViewType + ?Sized> GenericByteViewArray<T> {
362362
.iter()
363363
.enumerate()
364364
.map(|(idx, buf)| {
365-
if compact_check[idx] {
365+
if check_result[idx] {
366366
buf.clone()
367367
} else {
368368
new_bufs[idx].clone()
@@ -604,14 +604,15 @@ impl From<Vec<Option<String>>> for StringViewArray {
604604
/// Then it is better to do the check at once, rather than doing it for each accumulate operation.
605605
struct CompactChecker {
606606
length: usize,
607-
coverage: BTreeMap<usize, usize>,
607+
intervals: BTreeMap<usize, usize>,
608608
}
609609

610610
impl CompactChecker {
611+
/// Create a new checker with the expected length of the buffer
611612
pub fn new(length: usize) -> Self {
612613
Self {
613614
length,
614-
coverage: BTreeMap::new(),
615+
intervals: BTreeMap::new(),
615616
}
616617
}
617618

@@ -621,21 +622,21 @@ impl CompactChecker {
621622
return;
622623
}
623624
let end = offset + length;
624-
if let Some(val) = self.coverage.get_mut(&offset) {
625+
if let Some(val) = self.intervals.get_mut(&offset) {
625626
if *val < end {
626627
*val = end;
627628
}
628629
} else {
629-
self.coverage.insert(offset, end);
630+
self.intervals.insert(offset, end);
630631
}
631632
}
632633

633634
/// Check if the checker is fully covered
634-
pub fn finish(&self) -> bool {
635+
pub fn finish(self) -> bool {
635636
// check if the coverage is continuous and full
636637
let mut last_end = 0;
637638
// todo: can be optimized
638-
for (start, end) in self.coverage.iter() {
639+
for (start, end) in self.intervals.iter() {
639640
if *start > last_end {
640641
return false;
641642
}

0 commit comments

Comments
 (0)