diff --git a/bitpacker/src/bitpacker.rs b/bitpacker/src/bitpacker.rs index 85b4eb7c3f..1efd2755e1 100644 --- a/bitpacker/src/bitpacker.rs +++ b/bitpacker/src/bitpacker.rs @@ -48,7 +48,7 @@ impl BitPacker { pub fn flush(&mut self, output: &mut TWrite) -> io::Result<()> { if self.mini_buffer_written > 0 { - let num_bytes = (self.mini_buffer_written + 7) / 8; + let num_bytes = self.mini_buffer_written.div_ceil(8); let bytes = self.mini_buffer.to_le_bytes(); output.write_all(&bytes[..num_bytes])?; self.mini_buffer_written = 0; @@ -138,7 +138,7 @@ impl BitUnpacker { // We use `usize` here to avoid overflow issues. let end_bit_read = (end_idx as usize) * self.num_bits; - let end_byte_read = (end_bit_read + 7) / 8; + let end_byte_read = end_bit_read.div_ceil(8); assert!( end_byte_read <= data.len(), "Requested index is out of bounds." @@ -258,7 +258,7 @@ mod test { bitpacker.write(val, num_bits, &mut data).unwrap(); } bitpacker.close(&mut data).unwrap(); - assert_eq!(data.len(), ((num_bits as usize) * len + 7) / 8); + assert_eq!(data.len(), ((num_bits as usize) * len).div_ceil(8)); let bitunpacker = BitUnpacker::new(num_bits); (bitunpacker, vals, data) } @@ -304,7 +304,7 @@ mod test { bitpacker.write(val, num_bits, &mut buffer).unwrap(); } bitpacker.flush(&mut buffer).unwrap(); - assert_eq!(buffer.len(), (vals.len() * num_bits as usize + 7) / 8); + assert_eq!(buffer.len(), (vals.len() * num_bits as usize).div_ceil(8)); let bitunpacker = BitUnpacker::new(num_bits); let max_val = if num_bits == 64 { u64::MAX diff --git a/columnar/benches/bench_values_u64.rs b/columnar/benches/bench_values_u64.rs index 313a857546..7fe3b2efdc 100644 --- a/columnar/benches/bench_values_u64.rs +++ b/columnar/benches/bench_values_u64.rs @@ -141,7 +141,7 @@ fn bench_intfastfield_stride7_vec(b: &mut Bencher) { b.iter(|| { let mut a = 0u64; for i in (0..n / 7).map(|val| val * 7) { - a += permutation[i as usize]; + a += permutation[i]; } a }); @@ -196,7 +196,7 @@ fn bench_intfastfield_scan_all_vec(b: &mut Bencher) { b.iter(|| { let mut a = 0u64; for i in 0..permutation.len() { - a += permutation[i as usize] as u64; + a += permutation[i] as u64; } a }); diff --git a/columnar/src/column_index/merge/stacked.rs b/columnar/src/column_index/merge/stacked.rs index 4a1a70375e..1237c52de6 100644 --- a/columnar/src/column_index/merge/stacked.rs +++ b/columnar/src/column_index/merge/stacked.rs @@ -105,10 +105,11 @@ fn get_num_values_iterator<'a>( ) -> Box + 'a> { match column_index { ColumnIndex::Empty { .. } => Box::new(std::iter::empty()), - ColumnIndex::Full => Box::new(std::iter::repeat(1u32).take(num_docs as usize)), - ColumnIndex::Optional(optional_index) => { - Box::new(std::iter::repeat(1u32).take(optional_index.num_non_nulls() as usize)) - } + ColumnIndex::Full => Box::new(std::iter::repeat_n(1u32, num_docs as usize)), + ColumnIndex::Optional(optional_index) => Box::new(std::iter::repeat_n( + 1u32, + optional_index.num_non_nulls() as usize, + )), ColumnIndex::Multivalued(multivalued_index) => Box::new( multivalued_index .get_start_index_column() diff --git a/columnar/src/column_values/u64_based/bitpacked.rs b/columnar/src/column_values/u64_based/bitpacked.rs index 3ed999648a..4a6195ec45 100644 --- a/columnar/src/column_values/u64_based/bitpacked.rs +++ b/columnar/src/column_values/u64_based/bitpacked.rs @@ -109,7 +109,7 @@ impl ColumnCodecEstimator for BitpackedCodecEstimator { fn estimate(&self, stats: &ColumnStats) -> Option { let num_bits_per_value = num_bits(stats); - Some(stats.num_bytes() + (stats.num_rows as u64 * (num_bits_per_value as u64) + 7) / 8) + Some(stats.num_bytes() + (stats.num_rows as u64 * (num_bits_per_value as u64)).div_ceil(8)) } fn serialize( diff --git a/columnar/src/column_values/u64_based/linear.rs b/columnar/src/column_values/u64_based/linear.rs index ba0c9e6417..63b1b6bb85 100644 --- a/columnar/src/column_values/u64_based/linear.rs +++ b/columnar/src/column_values/u64_based/linear.rs @@ -117,7 +117,7 @@ impl ColumnCodecEstimator for LinearCodecEstimator { Some( stats.num_bytes() + linear_params.num_bytes() - + (num_bits as u64 * stats.num_rows as u64 + 7) / 8, + + (num_bits as u64 * stats.num_rows as u64).div_ceil(8), ) } diff --git a/columnar/src/columnar/writer/column_operation.rs b/columnar/src/columnar/writer/column_operation.rs index 1297a0be94..b26a6dd336 100644 --- a/columnar/src/columnar/writer/column_operation.rs +++ b/columnar/src/columnar/writer/column_operation.rs @@ -244,7 +244,7 @@ impl SymbolValue for UnorderedId { fn compute_num_bytes_for_u64(val: u64) -> usize { let msb = (64u32 - val.leading_zeros()) as usize; - (msb + 7) / 8 + msb.div_ceil(8) } fn encode_zig_zag(n: i64) -> u64 { diff --git a/common/src/bitset.rs b/common/src/bitset.rs index c930e6fe8f..8e98e67808 100644 --- a/common/src/bitset.rs +++ b/common/src/bitset.rs @@ -183,7 +183,7 @@ pub struct BitSet { } fn num_buckets(max_val: u32) -> u32 { - (max_val + 63u32) / 64u32 + max_val.div_ceil(64u32) } impl BitSet { diff --git a/sstable/src/sstable_index_v3.rs b/sstable/src/sstable_index_v3.rs index 1c99c36e5f..55a81b4bbc 100644 --- a/sstable/src/sstable_index_v3.rs +++ b/sstable/src/sstable_index_v3.rs @@ -438,7 +438,7 @@ impl BlockAddrBlockMetadata { let ordinal_addr = range_start_addr + self.range_start_nbits as usize; let range_end_addr = range_start_addr + num_bits; - if (range_end_addr + self.range_start_nbits as usize + 7) / 8 > data.len() { + if (range_end_addr + self.range_start_nbits as usize).div_ceil(8) > data.len() { return None; }