Skip to content

Commit 2d7bc48

Browse files
committed
fixed regressions & added test
1 parent 40a43c6 commit 2d7bc48

File tree

2 files changed

+368
-258
lines changed

2 files changed

+368
-258
lines changed

datafusion/physical-plan/benches/single_column_aggr.rs

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ fn create_string_values(cardinality: &Cardinality) -> Vec<String> {
3939
Cardinality::Large => 200,
4040
};
4141
(0..num_values)
42-
.map(|i| format!("group_value_{:06}", i))
42+
.map(|i| format!("group_value_{i:06}"))
4343
.collect()
4444
}
4545
fn create_batch(batch_size: &BatchSize, cardinality: &Cardinality) -> Vec<String> {
@@ -84,7 +84,7 @@ fn introduce_nulls(values: Vec<String>, null_rate: &NullRate) -> Vec<Option<Stri
8484
.collect()
8585
}
8686

87-
fn generate_group_values(kind: GroupType) -> Box<dyn GroupValues> {
87+
fn generate_group_values(kind: &GroupType) -> Box<dyn GroupValues> {
8888
match kind {
8989
GroupType::GroupValueRows => {
9090
// we know this is going to hit the fallback path I.E GroupValueRows, but for the sake of avoiding making private items public call the public api
@@ -123,8 +123,7 @@ fn bench_single_column_group_values(c: &mut Criterion) {
123123
for null_rate in &null_rates {
124124
for group_type in &group_types {
125125
let group_name = format!(
126-
"t1_{:?}_cardinality_{:?}_batch_{:?}_null_rate_{:?}",
127-
group_type, cardinality, batch_size, null_rate
126+
"t1_{group_type:?}_cardinality_{cardinality:?}_batch_{batch_size:?}_null_rate_{null_rate:?}"
128127
);
129128

130129
let string_vec = create_batch(batch_size, cardinality);
@@ -138,7 +137,7 @@ fn bench_single_column_group_values(c: &mut Criterion) {
138137
b.iter_batched(
139138
|| {
140139
//create fresh group values for each iteration
141-
let gv = generate_group_values(group_type.clone());
140+
let gv = generate_group_values(&group_type);
142141
let col = col_ref.clone();
143142
(gv, col)
144143
},
@@ -153,14 +152,13 @@ fn bench_single_column_group_values(c: &mut Criterion) {
153152

154153
// Second benchmark that alternates between intern and emit to simulate more realistic usage patterns where the same group values is used across multiple batches of the same grouping column
155154
let multi_batch_name = format!(
156-
"multi_batch/{:?}_cardinality_{:?}_batch_{:?}_null_rate_{:?}",
157-
group_type, cardinality, batch_size, null_rate
155+
"multi_batch/{group_type:?}_cardinality_{cardinality:?}_batch_{batch_size:?}_null_rate_{null_rate:?}"
158156
);
159157
c.bench_function(&multi_batch_name, |b| {
160158
b.iter_batched(
161159
|| {
162160
// setup - create 3 batches to simulate multiple record batches
163-
let gv = generate_group_values(group_type.clone());
161+
let gv = generate_group_values(&group_type);
164162
let batch1 = col_ref.clone();
165163
let batch2 = col_ref.clone();
166164
let batch3 = col_ref.clone();
@@ -213,12 +211,11 @@ fn bench_repeated_intern_prefab_cols(c: &mut Criterion) {
213211
let arr4 = col_ref.clone();
214212

215213
let group_name = format!(
216-
"repeated_intern/{:?}_cardinality_{:?}_batch_{:?}_null_rate_{:?}",
217-
group_type, cardinality, batch_size, null_rate
214+
"repeated_intern/{group_type:?}_cardinality_{cardinality:?}_batch_{batch_size:?}_null_rate_{null_rate:?}"
218215
);
219216
c.bench_function(&group_name, |b| {
220217
b.iter_batched(
221-
|| generate_group_values(group_type.clone()),
218+
|| generate_group_values(&group_type),
222219
|mut group_values| {
223220
let mut groups = Vec::new();
224221

0 commit comments

Comments
 (0)