Skip to content

Commit 71a4770

Browse files
committed
Revert "Update rand requirement from 0.8 to 0.9 (#7045)"
This reverts commit 69eeee3.
1 parent d3a875f commit 71a4770

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

73 files changed

+389
-423
lines changed

arrow-array/Cargo.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ ffi = ["arrow-schema/ffi", "arrow-data/ffi"]
5555
force_validate = []
5656

5757
[dev-dependencies]
58-
rand = { version = "0.9", default-features = false, features = ["std", "std_rng", "thread_rng"] }
58+
rand = { version = "0.8", default-features = false, features = ["std", "std_rng"] }
5959
criterion = { version = "0.5", default-features = false }
6060

6161
[build-dependencies]

arrow-array/benches/fixed_size_list_array.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,13 @@
1818
use arrow_array::{Array, FixedSizeListArray, Int32Array};
1919
use arrow_schema::Field;
2020
use criterion::*;
21-
use rand::{rng, Rng};
21+
use rand::{thread_rng, Rng};
2222
use std::sync::Arc;
2323

2424
fn gen_fsl(len: usize, value_len: usize) -> FixedSizeListArray {
25-
let mut rng = rng();
25+
let mut rng = thread_rng();
2626
let values = Arc::new(Int32Array::from(
27-
(0..len).map(|_| rng.random::<i32>()).collect::<Vec<_>>(),
27+
(0..len).map(|_| rng.gen::<i32>()).collect::<Vec<_>>(),
2828
));
2929
let field = Arc::new(Field::new_list_field(values.data_type().clone(), true));
3030
FixedSizeListArray::new(field, value_len as i32, values, None)

arrow-array/benches/occupancy.rs

+4-4
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ use arrow_array::types::Int32Type;
1919
use arrow_array::{DictionaryArray, Int32Array};
2020
use arrow_buffer::NullBuffer;
2121
use criterion::*;
22-
use rand::{rng, Rng};
22+
use rand::{thread_rng, Rng};
2323
use std::sync::Arc;
2424

2525
fn gen_dict(
@@ -28,11 +28,11 @@ fn gen_dict(
2828
occupancy: f64,
2929
null_percent: f64,
3030
) -> DictionaryArray<Int32Type> {
31-
let mut rng = rng();
31+
let mut rng = thread_rng();
3232
let values = Int32Array::from(vec![0; values_len]);
3333
let max_key = (values_len as f64 * occupancy) as i32;
34-
let keys = (0..len).map(|_| rng.random_range(0..max_key)).collect();
35-
let nulls = (0..len).map(|_| !rng.random_bool(null_percent)).collect();
34+
let keys = (0..len).map(|_| rng.gen_range(0..max_key)).collect();
35+
let nulls = (0..len).map(|_| !rng.gen_bool(null_percent)).collect();
3636

3737
let keys = Int32Array::new(keys, Some(NullBuffer::new(nulls)));
3838
DictionaryArray::new(keys, Arc::new(values))

arrow-array/benches/union_array.rs

+6-6
Original file line numberDiff line numberDiff line change
@@ -24,27 +24,27 @@ use arrow_array::{Array, ArrayRef, Int32Array, UnionArray};
2424
use arrow_buffer::{NullBuffer, ScalarBuffer};
2525
use arrow_schema::{DataType, Field, UnionFields};
2626
use criterion::*;
27-
use rand::{rng, Rng};
27+
use rand::{thread_rng, Rng};
2828

2929
fn array_with_nulls() -> ArrayRef {
30-
let mut rng = rng();
30+
let mut rng = thread_rng();
3131

32-
let values = ScalarBuffer::from_iter(repeat_with(|| rng.random()).take(4096));
32+
let values = ScalarBuffer::from_iter(repeat_with(|| rng.gen()).take(4096));
3333

3434
// nulls with at least one null and one valid
3535
let nulls: NullBuffer = [true, false]
3636
.into_iter()
37-
.chain(repeat_with(|| rng.random()))
37+
.chain(repeat_with(|| rng.gen()))
3838
.take(4096)
3939
.collect();
4040

4141
Arc::new(Int32Array::new(values.clone(), Some(nulls)))
4242
}
4343

4444
fn array_without_nulls() -> ArrayRef {
45-
let mut rng = rng();
45+
let mut rng = thread_rng();
4646

47-
let values = ScalarBuffer::from_iter(repeat_with(|| rng.random()).take(4096));
47+
let values = ScalarBuffer::from_iter(repeat_with(|| rng.gen()).take(4096));
4848

4949
Arc::new(Int32Array::new(values.clone(), None))
5050
}

arrow-array/src/array/boolean_array.rs

+4-4
Original file line numberDiff line numberDiff line change
@@ -479,7 +479,7 @@ impl From<BooleanBuffer> for BooleanArray {
479479
mod tests {
480480
use super::*;
481481
use arrow_buffer::Buffer;
482-
use rand::{rng, Rng};
482+
use rand::{thread_rng, Rng};
483483

484484
#[test]
485485
fn test_boolean_fmt_debug() {
@@ -667,11 +667,11 @@ mod tests {
667667
#[test]
668668
#[cfg_attr(miri, ignore)] // Takes too long
669669
fn test_true_false_count() {
670-
let mut rng = rng();
670+
let mut rng = thread_rng();
671671

672672
for _ in 0..10 {
673673
// No nulls
674-
let d: Vec<_> = (0..2000).map(|_| rng.random_bool(0.5)).collect();
674+
let d: Vec<_> = (0..2000).map(|_| rng.gen_bool(0.5)).collect();
675675
let b = BooleanArray::from(d.clone());
676676

677677
let expected_true = d.iter().filter(|x| **x).count();
@@ -680,7 +680,7 @@ mod tests {
680680

681681
// With nulls
682682
let d: Vec<_> = (0..2000)
683-
.map(|_| rng.random_bool(0.5).then(|| rng.random_bool(0.5)))
683+
.map(|_| rng.gen_bool(0.5).then(|| rng.gen_bool(0.5)))
684684
.collect();
685685
let b = BooleanArray::from(d.clone());
686686

arrow-array/src/array/run_array.rs

+5-5
Original file line numberDiff line numberDiff line change
@@ -662,8 +662,8 @@ where
662662

663663
#[cfg(test)]
664664
mod tests {
665-
use rand::rng;
666665
use rand::seq::SliceRandom;
666+
use rand::thread_rng;
667667
use rand::Rng;
668668

669669
use super::*;
@@ -691,7 +691,7 @@ mod tests {
691691
];
692692
let mut result: Vec<Option<i32>> = Vec::with_capacity(size);
693693
let mut ix = 0;
694-
let mut rng = rng();
694+
let mut rng = thread_rng();
695695
// run length can go up to 8. Cap the max run length for smaller arrays to size / 2.
696696
let max_run_length = 8_usize.min(1_usize.max(size / 2));
697697
while result.len() < size {
@@ -700,7 +700,7 @@ mod tests {
700700
seed.shuffle(&mut rng);
701701
}
702702
// repeat the items between 1 and 8 times. Cap the length for smaller sized arrays
703-
let num = max_run_length.min(rand::rng().random_range(1..=max_run_length));
703+
let num = max_run_length.min(rand::thread_rng().gen_range(1..=max_run_length));
704704
for _ in 0..num {
705705
result.push(seed[ix]);
706706
}
@@ -1000,7 +1000,7 @@ mod tests {
10001000
let mut logical_indices: Vec<u32> = (0_u32..(logical_len as u32)).collect();
10011001
// add same indices once more
10021002
logical_indices.append(&mut logical_indices.clone());
1003-
let mut rng = rng();
1003+
let mut rng = thread_rng();
10041004
logical_indices.shuffle(&mut rng);
10051005

10061006
let physical_indices = run_array.get_physical_indices(&logical_indices).unwrap();
@@ -1036,7 +1036,7 @@ mod tests {
10361036
let mut logical_indices: Vec<u32> = (0_u32..(slice_len as u32)).collect();
10371037
// add same indices once more
10381038
logical_indices.append(&mut logical_indices.clone());
1039-
let mut rng = rng();
1039+
let mut rng = thread_rng();
10401040
logical_indices.shuffle(&mut rng);
10411041

10421042
// test for offset = 0 and slice length = slice_len

arrow-array/src/run_iterator.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -172,7 +172,7 @@ where
172172

173173
#[cfg(test)]
174174
mod tests {
175-
use rand::{rng, seq::SliceRandom, Rng};
175+
use rand::{seq::SliceRandom, thread_rng, Rng};
176176

177177
use crate::{
178178
array::{Int32Array, StringArray},
@@ -200,7 +200,7 @@ mod tests {
200200
];
201201
let mut result: Vec<Option<i32>> = Vec::with_capacity(size);
202202
let mut ix = 0;
203-
let mut rng = rng();
203+
let mut rng = thread_rng();
204204
// run length can go up to 8. Cap the max run length for smaller arrays to size / 2.
205205
let max_run_length = 8_usize.min(1_usize.max(size / 2));
206206
while result.len() < size {
@@ -209,7 +209,7 @@ mod tests {
209209
seed.shuffle(&mut rng);
210210
}
211211
// repeat the items between 1 and 8 times. Cap the length for smaller sized arrays
212-
let num = max_run_length.min(rand::rng().random_range(1..=max_run_length));
212+
let num = max_run_length.min(rand::thread_rng().gen_range(1..=max_run_length));
213213
for _ in 0..num {
214214
result.push(seed[ix]);
215215
}

arrow-avro/Cargo.toml

+2-1
Original file line numberDiff line numberDiff line change
@@ -51,4 +51,5 @@ crc = { version = "3.0", optional = true }
5151

5252

5353
[dev-dependencies]
54-
rand = { version = "0.9", default-features = false, features = ["std", "std_rng", "thread_rng"] }
54+
rand = { version = "0.8", default-features = false, features = ["std", "std_rng"] }
55+

arrow-buffer/Cargo.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ half = { version = "2.1", default-features = false }
4040

4141
[dev-dependencies]
4242
criterion = { version = "0.5", default-features = false }
43-
rand = { version = "0.9", default-features = false, features = ["std", "std_rng", "thread_rng"] }
43+
rand = { version = "0.8", default-features = false, features = ["std", "std_rng"] }
4444

4545
[build-dependencies]
4646

arrow-buffer/benches/i256.rs

+4-4
Original file line numberDiff line numberDiff line change
@@ -47,16 +47,16 @@ fn criterion_benchmark(c: &mut Criterion) {
4747

4848
let numerators: Vec<_> = (0..SIZE)
4949
.map(|_| {
50-
let high = rng.random_range(1000..i128::MAX);
51-
let low = rng.random();
50+
let high = rng.gen_range(1000..i128::MAX);
51+
let low = rng.gen();
5252
i256::from_parts(low, high)
5353
})
5454
.collect();
5555

5656
let divisors: Vec<_> = numerators
5757
.iter()
5858
.map(|n| {
59-
let quotient = rng.random_range(1..100_i32);
59+
let quotient = rng.gen_range(1..100_i32);
6060
n.wrapping_div(i256::from(quotient))
6161
})
6262
.collect();
@@ -70,7 +70,7 @@ fn criterion_benchmark(c: &mut Criterion) {
7070
});
7171

7272
let divisors: Vec<_> = (0..SIZE)
73-
.map(|_| i256::from(rng.random_range(1..100_i32)))
73+
.map(|_| i256::from(rng.gen_range(1..100_i32)))
7474
.collect();
7575

7676
c.bench_function("i256_div_rem small divisor", |b| {

arrow-buffer/benches/offset.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ const SIZE: usize = 1024;
2424

2525
fn criterion_benchmark(c: &mut Criterion) {
2626
let mut rng = StdRng::seed_from_u64(42);
27-
let lengths: Vec<usize> = black_box((0..SIZE).map(|_| rng.random_range(0..40)).collect());
27+
let lengths: Vec<usize> = black_box((0..SIZE).map(|_| rng.gen_range(0..40)).collect());
2828

2929
c.bench_function("OffsetBuffer::from_lengths", |b| {
3030
b.iter(|| OffsetBuffer::<i32>::from_lengths(lengths.iter().copied()));

arrow-buffer/src/bigint/mod.rs

+6-6
Original file line numberDiff line numberDiff line change
@@ -840,7 +840,7 @@ impl ToPrimitive for i256 {
840840
mod tests {
841841
use super::*;
842842
use num::Signed;
843-
use rand::{rng, Rng};
843+
use rand::{thread_rng, Rng};
844844

845845
#[test]
846846
fn test_signed_cmp() {
@@ -1091,16 +1091,16 @@ mod tests {
10911091
#[test]
10921092
#[cfg_attr(miri, ignore)]
10931093
fn test_i256_fuzz() {
1094-
let mut rng = rng();
1094+
let mut rng = thread_rng();
10951095

10961096
for _ in 0..1000 {
10971097
let mut l = [0_u8; 32];
1098-
let len = rng.random_range(0..32);
1099-
l.iter_mut().take(len).for_each(|x| *x = rng.random());
1098+
let len = rng.gen_range(0..32);
1099+
l.iter_mut().take(len).for_each(|x| *x = rng.gen());
11001100

11011101
let mut r = [0_u8; 32];
1102-
let len = rng.random_range(0..32);
1103-
r.iter_mut().take(len).for_each(|x| *x = rng.random());
1102+
let len = rng.gen_range(0..32);
1103+
r.iter_mut().take(len).for_each(|x| *x = rng.gen());
11041104

11051105
test_ops(i256::from_le_bytes(l), i256::from_le_bytes(r))
11061106
}

arrow-buffer/src/builder/boolean.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -416,7 +416,7 @@ mod tests {
416416

417417
let mut buffer = BooleanBufferBuilder::new(12);
418418
let mut all_bools = vec![];
419-
let mut rng = rand::rng();
419+
let mut rng = rand::thread_rng();
420420

421421
let src_len = 32;
422422
let (src, compacted_src) = {

arrow-buffer/src/util/bit_chunk_iterator.rs

+5-12
Original file line numberDiff line numberDiff line change
@@ -371,10 +371,7 @@ impl ExactSizeIterator for BitChunkIterator<'_> {
371371

372372
#[cfg(test)]
373373
mod tests {
374-
use rand::distr::uniform::UniformSampler;
375-
use rand::distr::uniform::UniformUsize;
376374
use rand::prelude::*;
377-
use rand::rng;
378375

379376
use crate::buffer::Buffer;
380377
use crate::util::bit_chunk_iterator::UnalignedBitChunk;
@@ -627,25 +624,21 @@ mod tests {
627624
#[test]
628625
#[cfg_attr(miri, ignore)]
629626
fn fuzz_unaligned_bit_chunk_iterator() {
630-
let mut rng = rng();
627+
let mut rng = thread_rng();
631628

632-
let uusize = UniformUsize::new(usize::MIN, usize::MAX).unwrap();
633629
for _ in 0..100 {
634-
let mask_len = rng.random_range(0..1024);
635-
let bools: Vec<_> = std::iter::from_fn(|| Some(rng.random()))
630+
let mask_len = rng.gen_range(0..1024);
631+
let bools: Vec<_> = std::iter::from_fn(|| Some(rng.gen()))
636632
.take(mask_len)
637633
.collect();
638634

639635
let buffer = Buffer::from_iter(bools.iter().cloned());
640636

641637
let max_offset = 64.min(mask_len);
642-
let offset = uusize.sample(&mut rng).checked_rem(max_offset).unwrap_or(0);
638+
let offset = rng.gen::<usize>().checked_rem(max_offset).unwrap_or(0);
643639

644640
let max_truncate = 128.min(mask_len - offset);
645-
let truncate = uusize
646-
.sample(&mut rng)
647-
.checked_rem(max_truncate)
648-
.unwrap_or(0);
641+
let truncate = rng.gen::<usize>().checked_rem(max_truncate).unwrap_or(0);
649642

650643
let unaligned =
651644
UnalignedBitChunk::new(buffer.as_slice(), offset, mask_len - offset - truncate);

arrow-buffer/src/util/bit_mask.rs

+7-7
Original file line numberDiff line numberDiff line change
@@ -164,7 +164,7 @@ mod tests {
164164
use super::*;
165165
use crate::bit_util::{get_bit, set_bit, unset_bit};
166166
use rand::prelude::StdRng;
167-
use rand::{Rng, SeedableRng, TryRngCore};
167+
use rand::{Fill, Rng, SeedableRng};
168168
use std::fmt::Display;
169169

170170
#[test]
@@ -322,20 +322,20 @@ mod tests {
322322
// -------------------+-----------------+-------
323323

324324
// length of data to copy
325-
let len = rng.random_range(0..=200);
325+
let len = rng.gen_range(0..=200);
326326

327327
// randomly pick where we will write to
328-
let offset_write_bits = rng.random_range(0..=200);
328+
let offset_write_bits = rng.gen_range(0..=200);
329329
let offset_write_bytes = if offset_write_bits % 8 == 0 {
330330
offset_write_bits / 8
331331
} else {
332332
(offset_write_bits / 8) + 1
333333
};
334-
let extra_write_data_bytes = rng.random_range(0..=5); // ensure 0 shows up often
334+
let extra_write_data_bytes = rng.gen_range(0..=5); // ensure 0 shows up often
335335

336336
// randomly decide where we will read from
337-
let extra_read_data_bytes = rng.random_range(0..=5); // make sure 0 shows up often
338-
let offset_read_bits = rng.random_range(0..=200);
337+
let extra_read_data_bytes = rng.gen_range(0..=5); // make sure 0 shows up often
338+
let offset_read_bits = rng.gen_range(0..=200);
339339
let offset_read_bytes = if offset_read_bits % 8 != 0 {
340340
(offset_read_bits / 8) + 1
341341
} else {
@@ -356,7 +356,7 @@ mod tests {
356356
self.data
357357
.resize(offset_read_bytes + len + extra_read_data_bytes, 0);
358358
// fill source data with random bytes
359-
rng.try_fill_bytes(self.data.as_mut_slice()).unwrap();
359+
self.data.try_fill(rng).unwrap();
360360
self.offset_read = offset_read_bits;
361361

362362
self.len = len;

0 commit comments

Comments
 (0)