This is an automated email from the ASF dual-hosted git repository.

Jefffrey pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/arrow-rs.git


The following commit(s) were added to refs/heads/main by this push:
     new 013263d806 chore: bump more rand deps to 0.10 (#10556)
013263d806 is described below

commit 013263d80603a0b7d33f579befe10b233a4b4446
Author: Jeffrey Vo <[email protected]>
AuthorDate: Thu Aug 6 08:43:22 2026 +0900

    chore: bump more rand deps to 0.10 (#10556)
    
    - Followup to https://github.com/apache/arrow-rs/pull/10537
    - Part of https://github.com/apache/arrow-rs/pull/10562
---
 Cargo.lock                                         | 10 +--
 arrow-avro/Cargo.toml                              |  4 +-
 arrow-avro/benches/avro_writer.rs                  |  2 +-
 arrow-avro/benches/project_record.rs               |  2 +-
 arrow-avro/src/writer/format.rs                    |  2 +-
 arrow-row/Cargo.toml                               |  2 +-
 arrow-row/src/lib.rs                               | 93 ++++++++--------------
 parquet-variant-compute/Cargo.toml                 |  3 +-
 parquet-variant-compute/benches/variant_kernels.rs |  9 +--
 parquet-variant/Cargo.toml                         |  2 +-
 parquet-variant/benches/variant_builder.rs         |  2 +-
 parquet-variant/tests/variant_interop.rs           |  2 +-
 parquet/Cargo.toml                                 |  2 +-
 parquet/benches/arrow_reader.rs                    |  2 +-
 parquet/benches/arrow_reader_peak_memory.rs        |  2 +-
 parquet/benches/arrow_reader_row_filter.rs         |  2 +-
 parquet/benches/arrow_writer.rs                    |  2 +-
 parquet/benches/bloom_filter.rs                    |  2 +-
 parquet/benches/metadata.rs                        |  6 +-
 parquet/benches/parquet_round_trip.rs              |  2 +-
 parquet/benches/row_selection_cursor.rs            |  2 +-
 parquet/benches/row_selector.rs                    |  2 +-
 parquet/benches/row_selector_boolean_buffer.rs     |  2 +-
 parquet/src/arrow/arrow_reader/mod.rs              |  2 +-
 parquet/src/arrow/arrow_reader/read_plan.rs        |  2 +-
 .../src/arrow/arrow_reader/selection/algebra.rs    |  2 +-
 .../src/arrow/arrow_reader/selection/boolean.rs    |  2 +-
 parquet/src/arrow/async_reader/mod.rs              |  2 +-
 .../src/arrow/record_reader/definition_levels.rs   |  2 +-
 parquet/src/encodings/rle.rs                       |  2 +-
 parquet/src/util/test_common/rand_gen.rs           |  2 +-
 31 files changed, 72 insertions(+), 103 deletions(-)

diff --git a/Cargo.lock b/Cargo.lock
index f2d3786d3a..ee741323d0 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -254,7 +254,7 @@ dependencies = [
  "num-bigint 0.5.1",
  "object_store",
  "once_cell",
- "rand 0.9.5",
+ "rand 0.10.2",
  "serde",
  "serde_json",
  "sha2",
@@ -500,7 +500,7 @@ dependencies = [
  "arrow-schema",
  "arrow-select",
  "half",
- "rand 0.9.5",
+ "rand 0.10.2",
 ]
 
 [[package]]
@@ -2445,7 +2445,7 @@ dependencies = [
  "parquet-variant",
  "parquet-variant-compute",
  "parquet-variant-json",
- "rand 0.9.5",
+ "rand 0.10.2",
  "ring",
  "seq-macro",
  "serde",
@@ -2482,7 +2482,7 @@ dependencies = [
  "half",
  "indexmap",
  "num-traits",
- "rand 0.9.5",
+ "rand 0.10.2",
  "simdutf8",
  "uuid",
 ]
@@ -2499,7 +2499,7 @@ dependencies = [
  "indexmap",
  "parquet-variant",
  "parquet-variant-json",
- "rand 0.9.5",
+ "rand 0.10.2",
  "serde_json",
  "uuid",
 ]
diff --git a/arrow-avro/Cargo.toml b/arrow-avro/Cargo.toml
index ce210cf0e3..5974743b97 100644
--- a/arrow-avro/Cargo.toml
+++ b/arrow-avro/Cargo.toml
@@ -76,7 +76,7 @@ crc = { version = "3.0", optional = true }
 strum_macros = "0.28"
 uuid = "1.17"
 indexmap = "2.10"
-rand = "0.9"
+rand = "0.10"
 md5 = { version = "0.8", optional = true }
 sha2 = { version = "0.11", optional = true }
 tokio = { version = "1.0", optional = true, default-features = false, features 
= ["macros", "rt", "io-util"] }
@@ -84,7 +84,7 @@ tokio = { version = "1.0", optional = true, default-features 
= false, features =
 [dev-dependencies]
 arrow-data = { workspace = true }
 bytes = { version = "1.11.0", default-features = false, features = ["std"] }
-rand = { version = "0.9.1", default-features = false, features = [
+rand = { version = "0.10.1", default-features = false, features = [
     "std",
     "std_rng",
     "thread_rng",
diff --git a/arrow-avro/benches/avro_writer.rs 
b/arrow-avro/benches/avro_writer.rs
index 6ac4e81af2..397bbce34a 100644
--- a/arrow-avro/benches/avro_writer.rs
+++ b/arrow-avro/benches/avro_writer.rs
@@ -31,7 +31,7 @@ use arrow_schema::{DataType, Field, IntervalUnit, Schema, 
TimeUnit, UnionFields,
 use criterion::{BatchSize, BenchmarkId, Criterion, Throughput, 
criterion_group, criterion_main};
 use once_cell::sync::Lazy;
 use rand::{
-    Rng, SeedableRng,
+    RngExt, SeedableRng,
     distr::uniform::{SampleRange, SampleUniform},
     rngs::StdRng,
 };
diff --git a/arrow-avro/benches/project_record.rs 
b/arrow-avro/benches/project_record.rs
index 91bece6d7e..2a982822d8 100644
--- a/arrow-avro/benches/project_record.rs
+++ b/arrow-avro/benches/project_record.rs
@@ -23,8 +23,8 @@ use arrow_avro::schema::{
 };
 use criterion::{BatchSize, BenchmarkId, Criterion, Throughput};
 use criterion::{criterion_group, criterion_main};
-use rand::Rng;
 use rand::rngs::ThreadRng;
+use rand::{Rng, RngExt};
 use std::hint::black_box;
 
 const BATCH_SIZE: usize = 8192;
diff --git a/arrow-avro/src/writer/format.rs b/arrow-avro/src/writer/format.rs
index c969651f16..19cd9166da 100644
--- a/arrow-avro/src/writer/format.rs
+++ b/arrow-avro/src/writer/format.rs
@@ -22,7 +22,7 @@ use crate::errors::AvroError;
 use crate::schema::{AvroSchema, AvroSchemaOptions, SCHEMA_METADATA_KEY};
 use crate::writer::encoder::write_long;
 use arrow_schema::Schema;
-use rand::RngCore;
+use rand::Rng;
 use std::fmt::Debug;
 use std::io::Write;
 
diff --git a/arrow-row/Cargo.toml b/arrow-row/Cargo.toml
index 990ae90371..a996300961 100644
--- a/arrow-row/Cargo.toml
+++ b/arrow-row/Cargo.toml
@@ -47,7 +47,7 @@ half = { version = "2.1", default-features = false }
 arrow-cast = { workspace = true }
 arrow-ord = { workspace = true }
 arrow-select = { workspace = true }
-rand = { version = "0.9", default-features = false, features = ["std", 
"std_rng", "thread_rng"] }
+rand = { version = "0.10", default-features = false, features = ["std", 
"std_rng", "thread_rng"] }
 
 [lints]
 workspace = true
diff --git a/arrow-row/src/lib.rs b/arrow-row/src/lib.rs
index a48f6a7bc7..0dfdaf14ca 100644
--- a/arrow-row/src/lib.rs
+++ b/arrow-row/src/lib.rs
@@ -2434,7 +2434,7 @@ mod tests {
     use rand::distr::uniform::SampleUniform;
     use rand::distr::{Distribution, StandardUniform};
     use rand::prelude::StdRng;
-    use rand::{Rng, RngCore, SeedableRng};
+    use rand::{RngExt, SeedableRng};
 
     use super::*;
 
@@ -4583,7 +4583,7 @@ mod tests {
     }
 
     fn generate_primitive_array<K>(
-        rng: &mut impl RngCore,
+        rng: &mut StdRng,
         len: usize,
         valid_percent: f64,
     ) -> PrimitiveArray<K>
@@ -4596,10 +4596,7 @@ mod tests {
             .collect()
     }
 
-    fn generate_all_unique_primitive_array<K>(
-        rng: &mut impl RngCore,
-        len: usize,
-    ) -> PrimitiveArray<K>
+    fn generate_all_unique_primitive_array<K>(rng: &mut StdRng, len: usize) -> 
PrimitiveArray<K>
     where
         K: ArrowPrimitiveType,
         K::Native: Hash + Eq,
@@ -4628,18 +4625,14 @@ mod tests {
             .collect()
     }
 
-    fn generate_boolean_array(
-        rng: &mut impl RngCore,
-        len: usize,
-        valid_percent: f64,
-    ) -> BooleanArray {
+    fn generate_boolean_array(rng: &mut StdRng, len: usize, valid_percent: 
f64) -> BooleanArray {
         (0..len)
             .map(|_| rng.random_bool(valid_percent).then(|| 
rng.random_bool(0.5)))
             .collect()
     }
 
     fn generate_strings<O: OffsetSizeTrait>(
-        rng: &mut impl RngCore,
+        rng: &mut StdRng,
         len: usize,
         valid_percent: f64,
     ) -> GenericStringArray<O> {
@@ -4654,11 +4647,7 @@ mod tests {
             .collect()
     }
 
-    fn generate_string_view(
-        rng: &mut impl RngCore,
-        len: usize,
-        valid_percent: f64,
-    ) -> StringViewArray {
+    fn generate_string_view(rng: &mut StdRng, len: usize, valid_percent: f64) 
-> StringViewArray {
         (0..len)
             .map(|_| {
                 rng.random_bool(valid_percent).then(|| {
@@ -4670,11 +4659,7 @@ mod tests {
             .collect()
     }
 
-    fn generate_byte_view(
-        rng: &mut impl RngCore,
-        len: usize,
-        valid_percent: f64,
-    ) -> BinaryViewArray {
+    fn generate_byte_view(rng: &mut StdRng, len: usize, valid_percent: f64) -> 
BinaryViewArray {
         (0..len)
             .map(|_| {
                 rng.random_bool(valid_percent).then(|| {
@@ -4715,7 +4700,7 @@ mod tests {
     }
 
     fn generate_dictionary<K>(
-        rng: &mut impl RngCore,
+        rng: &mut StdRng,
         values: ArrayRef,
         len: usize,
         valid_percent: f64,
@@ -4748,7 +4733,7 @@ mod tests {
     }
 
     fn generate_fixed_size_binary(
-        rng: &mut impl RngCore,
+        rng: &mut StdRng,
         len: usize,
         valid_percent: f64,
     ) -> FixedSizeBinaryArray {
@@ -4769,7 +4754,7 @@ mod tests {
         builder.finish()
     }
 
-    fn generate_struct(rng: &mut impl RngCore, len: usize, valid_percent: f64) 
-> StructArray {
+    fn generate_struct(rng: &mut StdRng, len: usize, valid_percent: f64) -> 
StructArray {
         let nulls = NullBuffer::from_iter((0..len).map(|_| 
rng.random_bool(valid_percent)));
         let a = generate_primitive_array::<Int32Type>(rng, len, valid_percent);
         let b = generate_strings::<i32>(rng, len, valid_percent);
@@ -4781,14 +4766,9 @@ mod tests {
         StructArray::new(fields, values, Some(nulls))
     }
 
-    fn generate_list<R: RngCore, F>(
-        rng: &mut R,
-        len: usize,
-        valid_percent: f64,
-        values: F,
-    ) -> ListArray
+    fn generate_list<F>(rng: &mut StdRng, len: usize, valid_percent: f64, 
values: F) -> ListArray
     where
-        F: FnOnce(&mut R, usize) -> ArrayRef,
+        F: FnOnce(&mut StdRng, usize) -> ArrayRef,
     {
         let offsets = OffsetBuffer::<i32>::from_lengths((0..len).map(|_| 
rng.random_range(0..10)));
         let values_len = offsets.last().unwrap().to_usize().unwrap();
@@ -4799,18 +4779,18 @@ mod tests {
     }
 
     fn generate_list_view<F>(
-        rng: &mut impl RngCore,
+        rng: &mut StdRng,
         len: usize,
         valid_percent: f64,
         values: F,
     ) -> ListViewArray
     where
-        F: FnOnce(usize) -> ArrayRef,
+        F: FnOnce(&mut StdRng, usize) -> ArrayRef,
     {
         // Generate sizes first, then create a values array large enough
         let sizes: Vec<i32> = (0..len).map(|_| 
rng.random_range(0..10)).collect();
         let values_len: usize = sizes.iter().map(|s| *s as 
usize).sum::<usize>().max(1);
-        let values = values(values_len);
+        let values = values(rng, values_len);
 
         // Generate offsets that can overlap, be non-monotonic, or share ranges
         let offsets: Vec<i32> = sizes
@@ -4835,16 +4815,16 @@ mod tests {
         )
     }
 
-    fn generate_map<R: RngCore, KeysFn, ValuesFn>(
-        rng: &mut R,
+    fn generate_map<KeysFn, ValuesFn>(
+        rng: &mut StdRng,
         len: usize,
         valid_percent: f64,
         gen_keys: KeysFn,
         gen_values: ValuesFn,
     ) -> MapArray
     where
-        KeysFn: FnOnce(&mut R, usize) -> ArrayRef,
-        ValuesFn: FnOnce(&mut R, usize) -> ArrayRef,
+        KeysFn: FnOnce(&mut StdRng, usize) -> ArrayRef,
+        ValuesFn: FnOnce(&mut StdRng, usize) -> ArrayRef,
     {
         let offsets = OffsetBuffer::<i32>::from_lengths((0..len).map(|_| 
rng.random_range(0..10)));
         let entries_len = offsets.last().unwrap().to_usize().unwrap();
@@ -4913,7 +4893,7 @@ mod tests {
         })
     }
 
-    fn generate_nulls(rng: &mut impl RngCore, len: usize) -> 
Option<NullBuffer> {
+    fn generate_nulls(rng: &mut StdRng, len: usize) -> Option<NullBuffer> {
         Some(NullBuffer::from_iter(
             (0..len).map(|_| rng.random_bool(0.8)),
         ))
@@ -5099,7 +5079,7 @@ mod tests {
         )
     }
 
-    fn generate_column(rng: &mut (impl RngCore + Clone), len: usize) -> 
ArrayRef {
+    fn generate_column(rng: &mut StdRng, len: usize) -> ArrayRef {
         match rng.random_range(0..24) {
             0 => Arc::new(generate_primitive_array::<Int32Type>(rng, len, 
0.8)),
             1 => Arc::new(generate_primitive_array::<UInt32Type>(rng, len, 
0.8)),
@@ -5139,32 +5119,23 @@ mod tests {
             15 => Arc::new(generate_byte_view(rng, len, 0.8)),
             16 => Arc::new(generate_fixed_stringview_column(len)),
             17 => Arc::new(
-                generate_list(&mut rng.clone(), len + 1000, 0.8, |rng, 
values_len| {
+                generate_list(rng, len + 1000, 0.8, |rng, values_len| {
                     Arc::new(generate_primitive_array::<Int64Type>(rng, 
values_len, 0.8))
                 })
                 .slice(500, len),
             ),
             18 => Arc::new(generate_boolean_array(rng, len, 0.8)),
-            19 => Arc::new(generate_list_view(
-                &mut rng.clone(),
-                len,
-                0.8,
-                |values_len| 
Arc::new(generate_primitive_array::<Int64Type>(rng, values_len, 0.8)),
-            )),
-            20 => Arc::new(generate_list_view(
-                &mut rng.clone(),
-                len,
-                0.8,
-                |values_len| Arc::new(generate_strings::<i32>(rng, values_len, 
0.8)),
-            )),
-            21 => Arc::new(generate_list_view(
-                &mut rng.clone(),
-                len,
-                0.8,
-                |values_len| Arc::new(generate_struct(rng, values_len, 0.8)),
-            )),
+            19 => Arc::new(generate_list_view(rng, len, 0.8, |rng, values_len| 
{
+                Arc::new(generate_primitive_array::<Int64Type>(rng, 
values_len, 0.8))
+            })),
+            20 => Arc::new(generate_list_view(rng, len, 0.8, |rng, values_len| 
{
+                Arc::new(generate_strings::<i32>(rng, values_len, 0.8))
+            })),
+            21 => Arc::new(generate_list_view(rng, len, 0.8, |rng, values_len| 
{
+                Arc::new(generate_struct(rng, values_len, 0.8))
+            })),
             22 => Arc::new(
-                generate_list_view(&mut rng.clone(), len + 1000, 0.8, 
|values_len| {
+                generate_list_view(rng, len + 1000, 0.8, |rng, values_len| {
                     Arc::new(generate_primitive_array::<Int64Type>(rng, 
values_len, 0.8))
                 })
                 .slice(500, len),
diff --git a/parquet-variant-compute/Cargo.toml 
b/parquet-variant-compute/Cargo.toml
index 7b58fae5a2..0412beb1f4 100644
--- a/parquet-variant-compute/Cargo.toml
+++ b/parquet-variant-compute/Cargo.toml
@@ -47,9 +47,8 @@ name = "parquet_variant_compute"
 bench = false
 
 [dev-dependencies]
-rand = "0.9.1"
+rand = "0.10.1"
 criterion = { workspace = true, default-features = false }
-arrow = { workspace = true, features = ["test_utils"] }
 
 [[bench]]
 name = "variant_kernels"
diff --git a/parquet-variant-compute/benches/variant_kernels.rs 
b/parquet-variant-compute/benches/variant_kernels.rs
index 59c8c77a95..8ecf5bf44e 100644
--- a/parquet-variant-compute/benches/variant_kernels.rs
+++ b/parquet-variant-compute/benches/variant_kernels.rs
@@ -17,7 +17,6 @@
 
 use arrow::array::{Array, ArrayRef, BinaryViewArray, BinaryViewBuilder, 
StringArray, StructArray};
 use arrow::buffer::Buffer;
-use arrow::util::test_util::seedable_rng;
 use arrow_schema::{DataType, Field, FieldRef, Fields};
 use criterion::{Criterion, criterion_group, criterion_main};
 use parquet_variant::{EMPTY_VARIANT_METADATA_BYTES, Variant, VariantBuilder, 
VariantPath};
@@ -25,7 +24,7 @@ use parquet_variant_compute::{
     GetOptions, VariantArray, VariantArrayBuilder, json_to_variant, 
variant_get,
 };
 use parquet_variant_json::append_json;
-use rand::Rng;
+use rand::RngExt;
 use rand::SeedableRng;
 use rand::distr::Alphanumeric;
 use rand::rngs::StdRng;
@@ -285,7 +284,7 @@ fn create_unshredded_object_variant_array(size: usize) -> 
VariantArray {
 /// }
 /// ```
 fn json_repeated_struct(count: usize) -> impl Iterator<Item = String> {
-    let mut rng = seedable_rng();
+    let mut rng = StdRng::seed_from_u64(42);
     (0..count).map(move |_| {
         let first: String = (0..rng.random_range(1..=20))
             .map(|_| rng.sample(Alphanumeric) as char)
@@ -309,7 +308,7 @@ fn json_repeated_struct(count: usize) -> impl Iterator<Item 
= String> {
 /// [1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0],
 /// ```
 fn json_repeated_list(count: usize) -> impl Iterator<Item = String> {
-    let mut rng = seedable_rng();
+    let mut rng = StdRng::seed_from_u64(42);
     (0..count).map(move |_| {
         let length = rng.random_range(0..=100);
         let mut output = String::new();
@@ -395,7 +394,7 @@ struct RandomJsonGenerator {
 
 impl Default for RandomJsonGenerator {
     fn default() -> Self {
-        let rng = seedable_rng();
+        let rng = StdRng::seed_from_u64(42);
         Self {
             rng,
             null_weight: 0,
diff --git a/parquet-variant/Cargo.toml b/parquet-variant/Cargo.toml
index ceb4cf2e5e..6b71cc177c 100644
--- a/parquet-variant/Cargo.toml
+++ b/parquet-variant/Cargo.toml
@@ -48,7 +48,7 @@ bench = false
 
 [dev-dependencies]
 criterion = { workspace = true, default-features = false }
-rand = { version = "0.9", default-features = false, features = [
+rand = { version = "0.10", default-features = false, features = [
     "std",
     "std_rng",
     "thread_rng",
diff --git a/parquet-variant/benches/variant_builder.rs 
b/parquet-variant/benches/variant_builder.rs
index 6bfdb5298b..9dbf843586 100644
--- a/parquet-variant/benches/variant_builder.rs
+++ b/parquet-variant/benches/variant_builder.rs
@@ -19,7 +19,7 @@ use criterion::*;
 
 use parquet_variant::{Variant, VariantBuilder};
 use rand::{
-    Rng, SeedableRng,
+    RngExt, SeedableRng,
     distr::{Alphanumeric, uniform::SampleUniform},
     rngs::StdRng,
 };
diff --git a/parquet-variant/tests/variant_interop.rs 
b/parquet-variant/tests/variant_interop.rs
index 26efcd0dc9..ac114561bd 100644
--- a/parquet-variant/tests/variant_interop.rs
+++ b/parquet-variant/tests/variant_interop.rs
@@ -27,7 +27,7 @@ use parquet_variant::{
 };
 
 use rand::rngs::StdRng;
-use rand::{Rng, SeedableRng};
+use rand::{RngExt, SeedableRng};
 use uuid::Uuid;
 
 /// Returns a directory path for the parquet variant test data.
diff --git a/parquet/Cargo.toml b/parquet/Cargo.toml
index 662bb2b422..2c8233d2db 100644
--- a/parquet/Cargo.toml
+++ b/parquet/Cargo.toml
@@ -90,7 +90,7 @@ serde_json = { version = "1.0", features = ["std"], 
default-features = false }
 arrow = { workspace = true, features = ["ipc", "test_utils", "prettyprint", 
"json"] }
 arrow-cast = { workspace = true }
 tokio = { version = "1.0", default-features = false, features = ["macros", 
"rt-multi-thread", "io-util", "fs", "sync"] }
-rand = { version = "0.9", default-features = false, features = ["std", 
"std_rng", "thread_rng"] }
+rand = { version = "0.10", default-features = false, features = ["std", 
"std_rng", "thread_rng"] }
 object_store = { workspace = true, features = ["azure", "fs"] }
 sysinfo = { version = "0.39.6", default-features = false, features = 
["system"] }
 
diff --git a/parquet/benches/arrow_reader.rs b/parquet/benches/arrow_reader.rs
index 6e91a04f4e..2fad9d5c9e 100644
--- a/parquet/benches/arrow_reader.rs
+++ b/parquet/benches/arrow_reader.rs
@@ -39,7 +39,7 @@ use parquet::{
     schema::types::{ColumnDescPtr, SchemaDescPtr},
 };
 use rand::distr::uniform::SampleUniform;
-use rand::{Rng, SeedableRng, rngs::StdRng};
+use rand::{RngExt, SeedableRng, rngs::StdRng};
 use std::{collections::VecDeque, sync::Arc};
 
 fn build_test_schema() -> SchemaDescPtr {
diff --git a/parquet/benches/arrow_reader_peak_memory.rs 
b/parquet/benches/arrow_reader_peak_memory.rs
index 2a717ec4a1..4d5fda1fe8 100644
--- a/parquet/benches/arrow_reader_peak_memory.rs
+++ b/parquet/benches/arrow_reader_peak_memory.rs
@@ -39,7 +39,7 @@ use parquet::data_type::{ByteArrayType, DoubleType, 
FixedLenByteArrayType, Int32
 use parquet::schema::parser::parse_message_type;
 use parquet::schema::types::{ColumnDescPtr, SchemaDescriptor};
 use parquet::util::{DataPageBuilder, DataPageBuilderImpl, 
InMemoryPageIterator};
-use rand::{Rng, SeedableRng, rngs::StdRng};
+use rand::{RngExt, SeedableRng, rngs::StdRng};
 
 // ---------------------------------------------------------------------------
 // Thread-local tracking allocator
diff --git a/parquet/benches/arrow_reader_row_filter.rs 
b/parquet/benches/arrow_reader_row_filter.rs
index 2b5a09eebc..85e75e5a7c 100644
--- a/parquet/benches/arrow_reader_row_filter.rs
+++ b/parquet/benches/arrow_reader_row_filter.rs
@@ -72,7 +72,7 @@ use parquet::arrow::{ArrowWriter, 
ParquetRecordBatchStreamBuilder, ProjectionMas
 use parquet::basic::Compression;
 use parquet::file::metadata::{PageIndexPolicy, ParquetMetaData, 
ParquetMetaDataReader};
 use parquet::file::properties::WriterProperties;
-use rand::{Rng, SeedableRng, rngs::StdRng};
+use rand::{RngExt, SeedableRng, rngs::StdRng};
 use std::ops::Range;
 use std::sync::Arc;
 
diff --git a/parquet/benches/arrow_writer.rs b/parquet/benches/arrow_writer.rs
index cad8cf163e..93c9b8ebdc 100644
--- a/parquet/benches/arrow_writer.rs
+++ b/parquet/benches/arrow_writer.rs
@@ -22,7 +22,7 @@ use arrow_array::builder::StringDictionaryBuilder;
 use criterion::{Bencher, Criterion, Throughput};
 use parquet::arrow::ArrowWriter;
 use parquet::basic::{Compression, Encoding, ZstdLevel};
-use rand::{Rng, distr::Alphanumeric};
+use rand::{RngExt, distr::Alphanumeric};
 
 use std::hint::black_box;
 use std::io::Empty;
diff --git a/parquet/benches/bloom_filter.rs b/parquet/benches/bloom_filter.rs
index cb2bfb6b4a..4588b93526 100644
--- a/parquet/benches/bloom_filter.rs
+++ b/parquet/benches/bloom_filter.rs
@@ -20,7 +20,7 @@ use std::hint;
 use criterion::{BatchSize, BenchmarkId, Criterion, Throughput, 
criterion_group, criterion_main};
 use parquet::bloom_filter::Sbbf;
 use rand::rngs::StdRng;
-use rand::{Rng, SeedableRng};
+use rand::{RngExt, SeedableRng};
 
 /// Build a bloom filter sized for `initial_ndv` at `fpp`, insert `num_values` 
distinct values,
 /// and return it ready for folding.
diff --git a/parquet/benches/metadata.rs b/parquet/benches/metadata.rs
index 8bbc017f71..eaa36a9f80 100644
--- a/parquet/benches/metadata.rs
+++ b/parquet/benches/metadata.rs
@@ -31,19 +31,19 @@ use parquet::schema::parser::parse_message_type;
 use parquet::schema::types::{
     ColumnDescPtr, ColumnDescriptor, ColumnPath, SchemaDescriptor, Type as 
SchemaType,
 };
-use rand::Rng;
+use rand::{RngExt, SeedableRng};
 
-use arrow::util::test_util::seedable_rng;
 use bytes::Bytes;
 use criterion::{Criterion, criterion_group, criterion_main};
 use parquet::file::reader::SerializedFileReader;
 use parquet::file::serialized_reader::ReadOptionsBuilder;
+use rand::rngs::StdRng;
 
 const NUM_COLUMNS: usize = 10_000;
 const NUM_ROW_GROUPS: usize = 10;
 
 fn encoded_meta(is_nullable: bool, has_lists: bool, write_path_in_schema: 
bool) -> Vec<u8> {
-    let mut rng = seedable_rng();
+    let mut rng = StdRng::seed_from_u64(42);
 
     let mut column_desc_ptrs: Vec<ColumnDescPtr> = 
Vec::with_capacity(NUM_COLUMNS);
     let mut message_type = "message test_schema {".to_string();
diff --git a/parquet/benches/parquet_round_trip.rs 
b/parquet/benches/parquet_round_trip.rs
index 7f46b02b78..825b32ea95 100644
--- a/parquet/benches/parquet_round_trip.rs
+++ b/parquet/benches/parquet_round_trip.rs
@@ -29,7 +29,7 @@ use 
parquet::arrow::arrow_reader::ParquetRecordBatchReaderBuilder;
 use parquet::basic::Encoding;
 use parquet::file::properties::WriterProperties;
 use rand::{
-    Rng, SeedableRng,
+    RngExt, SeedableRng,
     distr::{Alphanumeric, StandardUniform},
     prelude::StdRng,
 };
diff --git a/parquet/benches/row_selection_cursor.rs 
b/parquet/benches/row_selection_cursor.rs
index a957f0b80c..8b96f0363d 100644
--- a/parquet/benches/row_selection_cursor.rs
+++ b/parquet/benches/row_selection_cursor.rs
@@ -29,7 +29,7 @@ use parquet::arrow::arrow_reader::{
     ParquetRecordBatchReaderBuilder, RowSelection, RowSelectionPolicy, 
RowSelector,
 };
 use rand::rngs::StdRng;
-use rand::{Rng, SeedableRng};
+use rand::{RngExt, SeedableRng};
 
 const TOTAL_ROWS: usize = 1 << 20;
 const BATCH_SIZE: usize = 1 << 10;
diff --git a/parquet/benches/row_selector.rs b/parquet/benches/row_selector.rs
index b2b3b55899..cb18d55563 100644
--- a/parquet/benches/row_selector.rs
+++ b/parquet/benches/row_selector.rs
@@ -19,7 +19,7 @@ use arrow_array::BooleanArray;
 use arrow_buffer::BooleanBuffer;
 use criterion::*;
 use parquet::arrow::arrow_reader::{RowSelection, RowSelector};
-use rand::Rng;
+use rand::RngExt;
 use std::hint;
 
 /// Run lengths for the mask conversion benchmarks. Shorter runs mean more
diff --git a/parquet/benches/row_selector_boolean_buffer.rs 
b/parquet/benches/row_selector_boolean_buffer.rs
index c5e1177b4d..d741453735 100644
--- a/parquet/benches/row_selector_boolean_buffer.rs
+++ b/parquet/benches/row_selector_boolean_buffer.rs
@@ -23,7 +23,7 @@ use criterion::{BenchmarkId, Criterion, criterion_group, 
criterion_main};
 use parquet::arrow::ArrowWriter;
 use parquet::arrow::arrow_reader::{ParquetRecordBatchReaderBuilder, 
RowSelection};
 use rand::rngs::StdRng;
-use rand::{Rng, SeedableRng};
+use rand::{RngExt, SeedableRng};
 use std::hint;
 use std::sync::Arc;
 
diff --git a/parquet/src/arrow/arrow_reader/mod.rs 
b/parquet/src/arrow/arrow_reader/mod.rs
index 29ba9a4ab3..1fba869e45 100644
--- a/parquet/src/arrow/arrow_reader/mod.rs
+++ b/parquet/src/arrow/arrow_reader/mod.rs
@@ -1695,7 +1695,7 @@ pub(crate) mod tests {
     use std::sync::Arc;
 
     use rand::rngs::StdRng;
-    use rand::{Rng, RngCore, SeedableRng, random, rng};
+    use rand::{Rng, RngExt, SeedableRng, random, rng};
     use tempfile::tempfile;
 
     use crate::arrow::arrow_reader::{
diff --git a/parquet/src/arrow/arrow_reader/read_plan.rs 
b/parquet/src/arrow/arrow_reader/read_plan.rs
index de2ef875ad..fb39f55d9a 100644
--- a/parquet/src/arrow/arrow_reader/read_plan.rs
+++ b/parquet/src/arrow/arrow_reader/read_plan.rs
@@ -559,7 +559,7 @@ mod tests {
 
     #[test]
     fn preferred_selection_strategy_mask_matches_selector_backing() {
-        use rand::{Rng, rng};
+        use rand::{RngExt, rng};
 
         let mut rand = rng();
         for _ in 0..200 {
diff --git a/parquet/src/arrow/arrow_reader/selection/algebra.rs 
b/parquet/src/arrow/arrow_reader/selection/algebra.rs
index 9c25afbd3b..ce44882858 100644
--- a/parquet/src/arrow/arrow_reader/selection/algebra.rs
+++ b/parquet/src/arrow/arrow_reader/selection/algebra.rs
@@ -397,7 +397,7 @@ fn and_then_masks(mask: &BooleanBuffer, other: 
&BooleanBuffer) -> BooleanBuffer
 mod tests {
     use super::*;
     use arrow_array::BooleanArray;
-    use rand::{Rng, rng};
+    use rand::{RngExt, rng};
 
     #[test]
     fn test_and() {
diff --git a/parquet/src/arrow/arrow_reader/selection/boolean.rs 
b/parquet/src/arrow/arrow_reader/selection/boolean.rs
index bf6c983d1c..990fc1b2ab 100644
--- a/parquet/src/arrow/arrow_reader/selection/boolean.rs
+++ b/parquet/src/arrow/arrow_reader/selection/boolean.rs
@@ -356,7 +356,7 @@ mod tests {
     use super::*;
     use crate::arrow::arrow_reader::selection::{RowSelection, 
RowSelectionInner};
     use arrow_array::BooleanArray;
-    use rand::{Rng, rng};
+    use rand::{RngExt, rng};
 
     #[test]
     fn test_mask_iter_yields_borrowed_selectors() {
diff --git a/parquet/src/arrow/async_reader/mod.rs 
b/parquet/src/arrow/async_reader/mod.rs
index 1d276df2a6..8b71ce0f1a 100644
--- a/parquet/src/arrow/async_reader/mod.rs
+++ b/parquet/src/arrow/async_reader/mod.rs
@@ -957,7 +957,7 @@ mod tests {
     };
     use arrow_schema::{DataType, Field, Schema};
     use futures::{StreamExt, TryStreamExt};
-    use rand::{Rng, rng};
+    use rand::{RngExt, rng};
     use std::collections::HashMap;
     use std::sync::{Arc, Mutex};
     use tempfile::tempfile;
diff --git a/parquet/src/arrow/record_reader/definition_levels.rs 
b/parquet/src/arrow/record_reader/definition_levels.rs
index c48c326980..37a0dd9918 100644
--- a/parquet/src/arrow/record_reader/definition_levels.rs
+++ b/parquet/src/arrow/record_reader/definition_levels.rs
@@ -491,7 +491,7 @@ mod tests {
     use super::*;
 
     use crate::encodings::rle::RleEncoder;
-    use rand::{Rng, rng};
+    use rand::{RngExt, rng};
 
     #[test]
     fn test_build_validity_bitmap_unfiltered_word_chunk() {
diff --git a/parquet/src/encodings/rle.rs b/parquet/src/encodings/rle.rs
index 5de9dc850a..f4dfebe81d 100644
--- a/parquet/src/encodings/rle.rs
+++ b/parquet/src/encodings/rle.rs
@@ -643,7 +643,7 @@ mod tests {
     use super::*;
 
     use crate::util::bit_util::ceil;
-    use rand::{self, Rng, SeedableRng, distr::StandardUniform, rng};
+    use rand::{self, RngExt, SeedableRng, distr::StandardUniform, rng};
 
     const MAX_WIDTH: usize = 32;
 
diff --git a/parquet/src/util/test_common/rand_gen.rs 
b/parquet/src/util/test_common/rand_gen.rs
index e4ab2f7a0f..635edfce0a 100644
--- a/parquet/src/util/test_common/rand_gen.rs
+++ b/parquet/src/util/test_common/rand_gen.rs
@@ -19,7 +19,7 @@ use crate::basic::Encoding;
 use crate::column::page::Page;
 use bytes::Bytes;
 use rand::{
-    Rng,
+    RngExt,
     distr::{Distribution, StandardUniform, uniform::SampleUniform},
     rng,
 };

Reply via email to