diff --git a/datafusion/core/src/physical_plan/aggregates/row_hash2.rs b/datafusion/core/src/physical_plan/aggregates/row_hash2.rs index 0b6862faace7..345d0c2be507 100644 --- a/datafusion/core/src/physical_plan/aggregates/row_hash2.rs +++ b/datafusion/core/src/physical_plan/aggregates/row_hash2.rs @@ -463,7 +463,7 @@ impl GroupedHashAggregateStream2 { AggregateMode::Partial | AggregateMode::Single => { acc.update_batch( values, - &group_indices, + group_indices, opt_filter, total_num_groups, )?; @@ -473,7 +473,7 @@ impl GroupedHashAggregateStream2 { // use merge acc.merge_batch( values, - &group_indices, + group_indices, opt_filter, total_num_groups, )?; @@ -501,7 +501,7 @@ impl GroupedHashAggregateStream2 { } // First output rows are the groups - let groups_rows = self.group_values.iter().map(|owned_row| owned_row); + let groups_rows = self.group_values.iter(); let mut output: Vec = self.row_converter.convert_rows(groups_rows)?; diff --git a/datafusion/physical-expr/src/aggregate/average.rs b/datafusion/physical-expr/src/aggregate/average.rs index bf553f4c6507..3e335e5c032c 100644 --- a/datafusion/physical-expr/src/aggregate/average.rs +++ b/datafusion/physical-expr/src/aggregate/average.rs @@ -182,20 +182,19 @@ impl AggregateExpr for Avg { fn groups_accumulator_supported(&self) -> bool { use DataType::*; - match &self.sum_data_type { - Int8 - | Int16 - | Int32 - | Int64 - | UInt8 - | UInt16 - | UInt32 - | UInt64 - | Float32 - | Float64 - | Decimal128(_, _) => true, - _ => false, - } + matches!( + &self.sum_data_type, + Int8 | Int16 + | Int32 + | Int64 + | UInt8 + | UInt16 + | UInt32 + | UInt64 + | Float32 + | Float64 + | Decimal128(_, _) + ) } fn create_groups_accumulator(&self) -> Result> { diff --git a/datafusion/physical-expr/src/aggregate/groups_accumulator/adapter.rs b/datafusion/physical-expr/src/aggregate/groups_accumulator/adapter.rs index 5961256be924..aae2a91a7d04 100644 --- a/datafusion/physical-expr/src/aggregate/groups_accumulator/adapter.rs +++ b/datafusion/physical-expr/src/aggregate/groups_accumulator/adapter.rs @@ -203,12 +203,12 @@ impl GroupsAccumulatorAdapter { // RecordBatch(es) let iter = groups_with_rows.iter().zip(offsets.windows(2)); - for (group_idx, offsets) in iter { - let state = &mut self.states[*group_idx as usize]; + for (&group_idx, offsets) in iter { + let state = &mut self.states[group_idx]; let size_pre = state.size(); let values_to_accumulate = - slice_and_maybe_filter(&values, opt_filter.as_ref(), &offsets)?; + slice_and_maybe_filter(&values, opt_filter.as_ref(), offsets)?; (f)(state.accumulator.as_mut(), &values_to_accumulate)?; // clear out the state @@ -267,7 +267,7 @@ impl GroupsAccumulator for GroupsAccumulatorAdapter { for state in states { let accumulator_state = state.accumulator.state()?; - results.resize_with(accumulator_state.len(), || vec![]); + results.resize_with(accumulator_state.len(), Vec::new); for (idx, state_val) in accumulator_state.into_iter().enumerate() { results[idx].push(state_val); } @@ -276,7 +276,7 @@ impl GroupsAccumulator for GroupsAccumulatorAdapter { // create an array for each intermediate column let arrays = results .into_iter() - .map(|state| ScalarValue::iter_to_array(state)) + .map(ScalarValue::iter_to_array) .collect::>>()?; // double check each array has the same length (aka the @@ -348,7 +348,7 @@ pub(crate) fn slice_and_maybe_filter( sliced_arrays .iter() .map(|array| { - compute::filter(array, &filter_array).map_err(DataFusionError::ArrowError) + compute::filter(array, filter_array).map_err(DataFusionError::ArrowError) }) .collect() } else { diff --git a/datafusion/physical-expr/src/aggregate/sum.rs b/datafusion/physical-expr/src/aggregate/sum.rs index 7b093d17d15f..e89eca2e65b8 100644 --- a/datafusion/physical-expr/src/aggregate/sum.rs +++ b/datafusion/physical-expr/src/aggregate/sum.rs @@ -601,11 +601,8 @@ where let sums = adjust_output_array(&self.sum_data_type, sums)?; - let counts = vec![0 as u64; sums.len()]; - let counts = Arc::new(PrimitiveArray::::new( - counts.into(), - nulls.clone(), - )); + let counts = vec![0_u64; sums.len()]; + let counts = Arc::new(PrimitiveArray::::new(counts.into(), nulls)); // TODO: Sum expects sum/count array, but count is not needed Ok(vec![sums.clone() as ArrayRef, counts as ArrayRef])