Skip to content

Commit a039419

Browse files
committed
merge
1 parent c7304a7 commit a039419

File tree

3 files changed

+17
-36
lines changed

3 files changed

+17
-36
lines changed

datafusion/core/tests/fuzz_cases/aggregation_fuzzer/fuzzer.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ use arrow::array::RecordBatch;
2121
use arrow::util::pretty::pretty_format_batches;
2222
use datafusion_common::{DataFusionError, Result};
2323
use datafusion_common_runtime::JoinSet;
24-
use rand::seq::SliceRandom;
2524
use rand::{rng, Rng};
2625

2726
use crate::fuzz_cases::aggregation_fuzzer::query_builder::QueryBuilder;

datafusion/core/tests/fuzz_cases/aggregation_fuzzer/query_builder.rs

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717

1818
use std::{collections::HashSet, str::FromStr};
1919

20-
use rand::{seq::SliceRandom, thread_rng, Rng};
20+
use rand::{rng, seq::SliceRandom, Rng};
2121

2222
/// Random aggregate query builder
2323
///
@@ -277,8 +277,8 @@ impl QueryBuilder {
277277
/// * `alias` is a unique alias `colN` for the column (to avoid duplicate column names)
278278
fn random_aggregate_functions(&self, group_by_cols: &[String]) -> Vec<String> {
279279
const MAX_NUM_FUNCTIONS: usize = 5;
280-
let mut rng = thread_rng();
281-
let num_aggregate_functions = rng.gen_range(1..=MAX_NUM_FUNCTIONS);
280+
let mut rng = rng();
281+
let num_aggregate_functions = rng.random_range(1..=MAX_NUM_FUNCTIONS);
282282

283283
let mut alias_gen = 1;
284284

@@ -292,7 +292,7 @@ impl QueryBuilder {
292292
}
293293

294294
while aggregate_functions.len() < num_aggregate_functions {
295-
let idx = rng.gen_range(0..self.aggregate_functions.len());
295+
let idx = rng.random_range(0..self.aggregate_functions.len());
296296
let (function_name, is_distinct) = &self.aggregate_functions[idx];
297297
let argument = self.random_argument();
298298
let alias = format!("col{}", alias_gen);
@@ -320,8 +320,8 @@ impl QueryBuilder {
320320

321321
/// Pick a random aggregate function argument
322322
fn random_argument(&self) -> String {
323-
let mut rng = thread_rng();
324-
let idx = rng.gen_range(0..self.arguments.len());
323+
let mut rng = rng();
324+
let idx = rng.random_range(0..self.arguments.len());
325325
self.arguments[idx].clone()
326326
}
327327

@@ -333,25 +333,25 @@ impl QueryBuilder {
333333
.cloned()
334334
.collect();
335335

336-
available_columns.shuffle(&mut thread_rng());
336+
available_columns.shuffle(&mut rng());
337337

338338
let num_of_order_by_col = 12;
339339
let column_count = std::cmp::min(num_of_order_by_col, available_columns.len());
340340

341341
let selected_columns = &available_columns[0..column_count];
342342

343-
let mut rng = thread_rng();
343+
let mut rng = rng();
344344
let mut result = String::from_str(" order by ").unwrap();
345345
for col in selected_columns {
346-
let order = if rng.gen_bool(0.5) { "ASC" } else { "DESC" };
346+
let order = if rng.random_bool(0.5) { "ASC" } else { "DESC" };
347347
result.push_str(&format!("{} {},", col, order));
348348
}
349349

350350
result.strip_suffix(",").unwrap().to_string()
351351
}
352352

353353
fn null_opt(&self) -> String {
354-
if thread_rng().gen_bool(0.5) {
354+
if rng().random_bool(0.5) {
355355
"RESPECT NULLS".to_string()
356356
} else {
357357
"IGNORE NULLS".to_string()
@@ -363,18 +363,18 @@ impl QueryBuilder {
363363
/// Limited to `max_group_by_columns` group by columns to ensure coverage for large groups.
364364
/// With larger numbers of columns, each group has many fewer values.
365365
fn random_group_by(&self) -> Vec<String> {
366-
let mut rng = thread_rng();
366+
let mut rng = rng();
367367
let min_groups = self.min_group_by_columns;
368368
let max_groups = self.max_group_by_columns;
369369
assert!(min_groups <= max_groups);
370-
let num_group_by = rng.gen_range(min_groups..=max_groups);
370+
let num_group_by = rng.random_range(min_groups..=max_groups);
371371

372372
let mut already_used = HashSet::new();
373373
let mut group_by = vec![];
374374
while group_by.len() < num_group_by
375375
&& already_used.len() != self.group_by_columns.len()
376376
{
377-
let idx = rng.gen_range(0..self.group_by_columns.len());
377+
let idx = rng.random_range(0..self.group_by_columns.len());
378378
if already_used.insert(idx) {
379379
group_by.push(self.group_by_columns[idx].clone());
380380
}

datafusion/functions-aggregate/benches/array_agg.rs

Lines changed: 4 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ use datafusion_expr::Accumulator;
2727
use datafusion_functions_aggregate::array_agg::ArrayAggAccumulator;
2828

2929
use arrow::buffer::OffsetBuffer;
30-
use rand::distributions::{Distribution, Standard};
30+
use rand::distr::{Distribution, StandardUniform};
3131
use rand::prelude::StdRng;
3232
use rand::Rng;
3333
use rand::SeedableRng;
@@ -55,16 +55,16 @@ fn merge_batch_bench(c: &mut Criterion, name: &str, values: ArrayRef) {
5555
pub fn create_primitive_array<T>(size: usize, null_density: f32) -> PrimitiveArray<T>
5656
where
5757
T: ArrowPrimitiveType,
58-
Standard: Distribution<T::Native>,
58+
StandardUniform: Distribution<T::Native>,
5959
{
6060
let mut rng = seedable_rng();
6161

6262
(0..size)
6363
.map(|_| {
64-
if rng.gen::<f32>() < null_density {
64+
if rng.random::<f32>() < null_density {
6565
None
6666
} else {
67-
Some(rng.gen())
67+
Some(rng.random())
6868
}
6969
})
7070
.collect()
@@ -116,24 +116,6 @@ where
116116
)
117117
}
118118

119-
fn create_primitive_array<T>(size: usize, null_density: f32) -> PrimitiveArray<T>
120-
where
121-
T: ArrowPrimitiveType,
122-
StandardUniform: Distribution<T::Native>,
123-
{
124-
let mut rng = StdRng::seed_from_u64(42);
125-
126-
(0..size)
127-
.map(|_| {
128-
if rng.random::<f32>() < null_density {
129-
None
130-
} else {
131-
Some(rng.random())
132-
}
133-
})
134-
.collect()
135-
}
136-
137119
fn array_agg_benchmark(c: &mut Criterion) {
138120
let values = Arc::new(create_list_array::<Int64Type>(8192, 0.0, 1.0)) as ArrayRef;
139121
merge_batch_bench(c, "array_agg i64 merge_batch no nulls", values);

0 commit comments

Comments
 (0)