Skip to content

Commit ed836d7

Browse files
authored
chore: update group of 3 crates to rust 2024 edition (#19001)
## Which issue does this PR close? This addresses part of #15804 but does not close it. ## Rationale for this change Now that we are on MSRV 1.88 we can use rust edition 2024, which brings let chains and other nice features. It also improves `unsafe` checking. In order to introduce these changes in slower way instead of one massive PR that is too difficult to manage we are updating a few crates at a time. ## What changes are included in this PR? Updates 3 crates to 2024. - physical-expr-common - functions-window-common - functions-aggregate-common ## Are these changes tested? Existing unit tests. There are no functional code changes. ## Are there any user-facing changes? None.
1 parent da36ad8 commit ed836d7

File tree

22 files changed

+99
-84
lines changed

22 files changed

+99
-84
lines changed

datafusion/functions-aggregate-common/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ description = "Utility functions for implementing aggregate functions for the Da
2121
keywords = ["datafusion", "logical", "plan", "expressions"]
2222
readme = "README.md"
2323
version = { workspace = true }
24-
edition = { workspace = true }
24+
edition = "2024"
2525
homepage = { workspace = true }
2626
repository = { workspace = true }
2727
license = { workspace = true }

datafusion/functions-aggregate-common/benches/accumulate.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ extern crate criterion;
2020
use std::sync::Arc;
2121

2222
use arrow::array::{ArrayRef, BooleanArray, Int64Array};
23-
use criterion::{criterion_group, criterion_main, Criterion};
23+
use criterion::{Criterion, criterion_group, criterion_main};
2424
use datafusion_functions_aggregate_common::aggregate::groups_accumulator::accumulate::accumulate_indices;
2525

2626
fn generate_group_indices(len: usize) -> Vec<usize> {

datafusion/functions-aggregate-common/src/aggregate/avg_distinct/decimal.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
use arrow::{
1919
array::{ArrayRef, ArrowNumericType},
2020
datatypes::{
21-
i256, Decimal128Type, Decimal256Type, Decimal32Type, Decimal64Type, DecimalType,
21+
Decimal32Type, Decimal64Type, Decimal128Type, Decimal256Type, DecimalType, i256,
2222
},
2323
};
2424
use datafusion_common::{Result, ScalarValue};
@@ -158,7 +158,7 @@ impl<T: DecimalType + ArrowNumericType + Debug> Accumulator
158158
mod tests {
159159
use super::*;
160160
use arrow::array::{
161-
Decimal128Array, Decimal256Array, Decimal32Array, Decimal64Array,
161+
Decimal32Array, Decimal64Array, Decimal128Array, Decimal256Array,
162162
};
163163
use std::sync::Arc;
164164

datafusion/functions-aggregate-common/src/aggregate/count_distinct/bytes.rs

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,9 @@
1818
//! [`BytesDistinctCountAccumulator`] for Utf8/LargeUtf8/Binary/LargeBinary values
1919
2020
use arrow::array::{ArrayRef, OffsetSizeTrait};
21+
use datafusion_common::ScalarValue;
2122
use datafusion_common::cast::as_list_array;
2223
use datafusion_common::utils::SingleRowListArrayBuilder;
23-
use datafusion_common::ScalarValue;
2424
use datafusion_expr_common::accumulator::Accumulator;
2525
use datafusion_physical_expr_common::binary_map::{ArrowBytesSet, OutputType};
2626
use datafusion_physical_expr_common::binary_view_map::ArrowBytesViewSet;
@@ -48,7 +48,9 @@ impl<O: OffsetSizeTrait> Accumulator for BytesDistinctCountAccumulator<O> {
4848
fn state(&mut self) -> datafusion_common::Result<Vec<ScalarValue>> {
4949
let set = self.0.take();
5050
let arr = set.into_state();
51-
Ok(vec![SingleRowListArrayBuilder::new(arr).build_list_scalar()])
51+
Ok(vec![
52+
SingleRowListArrayBuilder::new(arr).build_list_scalar(),
53+
])
5254
}
5355

5456
fn update_batch(&mut self, values: &[ArrayRef]) -> datafusion_common::Result<()> {
@@ -107,7 +109,9 @@ impl Accumulator for BytesViewDistinctCountAccumulator {
107109
fn state(&mut self) -> datafusion_common::Result<Vec<ScalarValue>> {
108110
let set = self.0.take();
109111
let arr = set.into_state();
110-
Ok(vec![SingleRowListArrayBuilder::new(arr).build_list_scalar()])
112+
Ok(vec![
113+
SingleRowListArrayBuilder::new(arr).build_list_scalar(),
114+
])
111115
}
112116

113117
fn update_batch(&mut self, values: &[ArrayRef]) -> datafusion_common::Result<()> {

datafusion/functions-aggregate-common/src/aggregate/count_distinct/dict.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
use arrow::array::{ArrayRef, BooleanArray};
1919
use arrow::downcast_dictionary_array;
2020
use datafusion_common::internal_err;
21-
use datafusion_common::{arrow_datafusion_err, ScalarValue};
21+
use datafusion_common::{ScalarValue, arrow_datafusion_err};
2222
use datafusion_expr_common::accumulator::Accumulator;
2323

2424
#[derive(Debug)]

datafusion/functions-aggregate-common/src/aggregate/count_distinct/native.rs

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,15 +27,15 @@ use std::mem::size_of_val;
2727
use std::sync::Arc;
2828

2929
use ahash::RandomState;
30-
use arrow::array::types::ArrowPrimitiveType;
3130
use arrow::array::ArrayRef;
3231
use arrow::array::PrimitiveArray;
32+
use arrow::array::types::ArrowPrimitiveType;
3333
use arrow::datatypes::DataType;
3434

35+
use datafusion_common::ScalarValue;
3536
use datafusion_common::cast::{as_list_array, as_primitive_array};
36-
use datafusion_common::utils::memory::estimate_memory_size;
3737
use datafusion_common::utils::SingleRowListArrayBuilder;
38-
use datafusion_common::ScalarValue;
38+
use datafusion_common::utils::memory::estimate_memory_size;
3939
use datafusion_expr_common::accumulator::Accumulator;
4040

4141
use crate::utils::GenericDistinctBuffer;
@@ -73,7 +73,9 @@ where
7373
PrimitiveArray::<T>::from_iter_values(self.values.iter().cloned())
7474
.with_data_type(self.data_type.clone()),
7575
);
76-
Ok(vec![SingleRowListArrayBuilder::new(arr).build_list_scalar()])
76+
Ok(vec![
77+
SingleRowListArrayBuilder::new(arr).build_list_scalar(),
78+
])
7779
}
7880

7981
fn update_batch(&mut self, values: &[ArrayRef]) -> datafusion_common::Result<()> {

datafusion/functions-aggregate-common/src/aggregate/groups_accumulator.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ use arrow::{
3232
compute::take_arrays,
3333
datatypes::UInt32Type,
3434
};
35-
use datafusion_common::{arrow_datafusion_err, Result, ScalarValue};
35+
use datafusion_common::{Result, ScalarValue, arrow_datafusion_err};
3636
use datafusion_expr_common::accumulator::Accumulator;
3737
use datafusion_expr_common::groups_accumulator::{EmitTo, GroupsAccumulator};
3838

datafusion/functions-aggregate-common/src/aggregate/groups_accumulator/accumulate.rs

Lines changed: 33 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -195,11 +195,11 @@ impl NullState {
195195
.zip(group_indices.iter())
196196
.zip(values.iter())
197197
.for_each(|((filter_value, &group_index), new_value)| {
198-
if let Some(true) = filter_value {
199-
if let Some(new_value) = new_value {
200-
seen_values.set_bit(group_index, true);
201-
value_fn(group_index, new_value)
202-
}
198+
if let Some(true) = filter_value
199+
&& let Some(new_value) = new_value
200+
{
201+
seen_values.set_bit(group_index, true);
202+
value_fn(group_index, new_value)
203203
}
204204
})
205205
}
@@ -357,10 +357,10 @@ pub fn accumulate<T, F>(
357357
.zip(group_indices.iter())
358358
.zip(values.iter())
359359
.for_each(|((filter_value, &group_index), new_value)| {
360-
if let Some(true) = filter_value {
361-
if let Some(new_value) = new_value {
362-
value_fn(group_index, new_value)
363-
}
360+
if let Some(true) = filter_value
361+
&& let Some(new_value) = new_value
362+
{
363+
value_fn(group_index, new_value)
364364
}
365365
})
366366
}
@@ -594,7 +594,7 @@ mod test {
594594
use super::*;
595595

596596
use arrow::array::{Int32Array, UInt32Array};
597-
use rand::{rngs::ThreadRng, Rng};
597+
use rand::{Rng, rngs::ThreadRng};
598598
use std::collections::HashSet;
599599

600600
#[test]
@@ -690,11 +690,7 @@ mod test {
690690
let values_with_nulls: Vec<Option<u32>> = (0..num_values)
691691
.map(|_| {
692692
let is_null = null_pct < rng.random_range(0.0..1.0);
693-
if is_null {
694-
None
695-
} else {
696-
Some(rng.random())
697-
}
693+
if is_null { None } else { Some(rng.random()) }
698694
})
699695
.collect();
700696

@@ -824,18 +820,20 @@ mod test {
824820
.zip(filter.iter())
825821
.for_each(|((&group_index, value), is_included)| {
826822
// if value passed filter
827-
if let Some(true) = is_included {
828-
if let Some(value) = value {
829-
mock.saw_value(group_index);
830-
expected_values.push((group_index, value));
831-
}
823+
if let Some(true) = is_included
824+
&& let Some(value) = value
825+
{
826+
mock.saw_value(group_index);
827+
expected_values.push((group_index, value));
832828
}
833829
});
834830
}
835831
}
836832

837-
assert_eq!(accumulated_values, expected_values,
838-
"\n\naccumulated_values:{accumulated_values:#?}\n\nexpected_values:{expected_values:#?}");
833+
assert_eq!(
834+
accumulated_values, expected_values,
835+
"\n\naccumulated_values:{accumulated_values:#?}\n\nexpected_values:{expected_values:#?}"
836+
);
839837
let seen_values = null_state.seen_values.finish_cloned();
840838
mock.validate_seen_values(&seen_values);
841839

@@ -895,8 +893,10 @@ mod test {
895893
}
896894
}
897895

898-
assert_eq!(accumulated_values, expected_values,
899-
"\n\naccumulated_values:{accumulated_values:#?}\n\nexpected_values:{expected_values:#?}");
896+
assert_eq!(
897+
accumulated_values, expected_values,
898+
"\n\naccumulated_values:{accumulated_values:#?}\n\nexpected_values:{expected_values:#?}"
899+
);
900900
}
901901

902902
/// This is effectively a different implementation of
@@ -940,18 +940,20 @@ mod test {
940940
.zip(filter.iter())
941941
.for_each(|((&group_index, value), is_included)| {
942942
// if value passed filter
943-
if let Some(true) = is_included {
944-
if let Some(value) = value {
945-
mock.saw_value(group_index);
946-
expected_values.push((group_index, value));
947-
}
943+
if let Some(true) = is_included
944+
&& let Some(value) = value
945+
{
946+
mock.saw_value(group_index);
947+
expected_values.push((group_index, value));
948948
}
949949
});
950950
}
951951
}
952952

953-
assert_eq!(accumulated_values, expected_values,
954-
"\n\naccumulated_values:{accumulated_values:#?}\n\nexpected_values:{expected_values:#?}");
953+
assert_eq!(
954+
accumulated_values, expected_values,
955+
"\n\naccumulated_values:{accumulated_values:#?}\n\nexpected_values:{expected_values:#?}"
956+
);
955957

956958
let seen_values = null_state.seen_values.finish_cloned();
957959
mock.validate_seen_values(&seen_values);

datafusion/functions-aggregate-common/src/aggregate/groups_accumulator/nulls.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ use arrow::array::{
2424
};
2525
use arrow::buffer::NullBuffer;
2626
use arrow::datatypes::DataType;
27-
use datafusion_common::{not_impl_err, Result};
27+
use datafusion_common::{Result, not_impl_err};
2828
use std::sync::Arc;
2929

3030
/// Sets the validity mask for a `PrimitiveArray` to `nulls`

datafusion/functions-aggregate-common/src/aggregate/groups_accumulator/prim_op.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ use arrow::buffer::NullBuffer;
2323
use arrow::compute;
2424
use arrow::datatypes::ArrowPrimitiveType;
2525
use arrow::datatypes::DataType;
26-
use datafusion_common::{internal_datafusion_err, DataFusionError, Result};
26+
use datafusion_common::{DataFusionError, Result, internal_datafusion_err};
2727
use datafusion_expr_common::groups_accumulator::{EmitTo, GroupsAccumulator};
2828

2929
use super::accumulate::NullState;

0 commit comments

Comments
 (0)