Skip to content

Commit d9d847e

Browse files
authored
CI : Enforce clippy: :needless_pass_by_value rule to datafusion-functions-aggregate (#18805)
## Which issue does this PR close? - Closes #18759 and part of #18503 ## What changes are included in this PR? enforce clippy lint needless_pass_by_value to datafusion-functions-aggregate crate. ## Are these changes tested? yes ## Are there any user-facing changes? no
1 parent 307ec50 commit d9d847e

File tree

5 files changed

+62
-59
lines changed

5 files changed

+62
-59
lines changed

datafusion/functions-aggregate/src/approx_percentile_cont.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -164,7 +164,7 @@ impl ApproxPercentileCont {
164164

165165
pub(crate) fn create_accumulator(
166166
&self,
167-
args: AccumulatorArgs,
167+
args: &AccumulatorArgs,
168168
) -> Result<ApproxPercentileAccumulator> {
169169
let percentile =
170170
validate_percentile_expr(&args.exprs[1], "APPROX_PERCENTILE_CONT")?;
@@ -300,7 +300,7 @@ impl AggregateUDFImpl for ApproxPercentileCont {
300300

301301
#[inline]
302302
fn accumulator(&self, acc_args: AccumulatorArgs) -> Result<Box<dyn Accumulator>> {
303-
Ok(Box::new(self.create_accumulator(acc_args)?))
303+
Ok(Box::new(self.create_accumulator(&acc_args)?))
304304
}
305305

306306
fn return_type(&self, arg_types: &[DataType]) -> Result<DataType> {

datafusion/functions-aggregate/src/approx_percentile_cont_with_weight.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -244,7 +244,7 @@ impl AggregateUDFImpl for ApproxPercentileContWithWeight {
244244
is_distinct: acc_args.is_distinct,
245245
};
246246
let approx_percentile_cont_accumulator =
247-
self.approx_percentile_cont.create_accumulator(sub_args)?;
247+
self.approx_percentile_cont.create_accumulator(&sub_args)?;
248248
let accumulator = ApproxPercentileWithWeightAccumulator::new(
249249
approx_percentile_cont_accumulator,
250250
);

datafusion/functions-aggregate/src/first_last.rs

Lines changed: 54 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -209,7 +209,7 @@ impl AggregateUDFImpl for FirstValue {
209209
args: AccumulatorArgs,
210210
) -> Result<Box<dyn GroupsAccumulator>> {
211211
fn create_accumulator<T: ArrowPrimitiveType + Send>(
212-
args: AccumulatorArgs,
212+
args: &AccumulatorArgs,
213213
) -> Result<Box<dyn GroupsAccumulator>> {
214214
let Some(ordering) = LexOrdering::new(args.order_bys.to_vec()) else {
215215
return internal_err!("Groups accumulator must have an ordering.");
@@ -231,50 +231,50 @@ impl AggregateUDFImpl for FirstValue {
231231
}
232232

233233
match args.return_field.data_type() {
234-
DataType::Int8 => create_accumulator::<Int8Type>(args),
235-
DataType::Int16 => create_accumulator::<Int16Type>(args),
236-
DataType::Int32 => create_accumulator::<Int32Type>(args),
237-
DataType::Int64 => create_accumulator::<Int64Type>(args),
238-
DataType::UInt8 => create_accumulator::<UInt8Type>(args),
239-
DataType::UInt16 => create_accumulator::<UInt16Type>(args),
240-
DataType::UInt32 => create_accumulator::<UInt32Type>(args),
241-
DataType::UInt64 => create_accumulator::<UInt64Type>(args),
242-
DataType::Float16 => create_accumulator::<Float16Type>(args),
243-
DataType::Float32 => create_accumulator::<Float32Type>(args),
244-
DataType::Float64 => create_accumulator::<Float64Type>(args),
245-
246-
DataType::Decimal32(_, _) => create_accumulator::<Decimal32Type>(args),
247-
DataType::Decimal64(_, _) => create_accumulator::<Decimal64Type>(args),
248-
DataType::Decimal128(_, _) => create_accumulator::<Decimal128Type>(args),
249-
DataType::Decimal256(_, _) => create_accumulator::<Decimal256Type>(args),
234+
DataType::Int8 => create_accumulator::<Int8Type>(&args),
235+
DataType::Int16 => create_accumulator::<Int16Type>(&args),
236+
DataType::Int32 => create_accumulator::<Int32Type>(&args),
237+
DataType::Int64 => create_accumulator::<Int64Type>(&args),
238+
DataType::UInt8 => create_accumulator::<UInt8Type>(&args),
239+
DataType::UInt16 => create_accumulator::<UInt16Type>(&args),
240+
DataType::UInt32 => create_accumulator::<UInt32Type>(&args),
241+
DataType::UInt64 => create_accumulator::<UInt64Type>(&args),
242+
DataType::Float16 => create_accumulator::<Float16Type>(&args),
243+
DataType::Float32 => create_accumulator::<Float32Type>(&args),
244+
DataType::Float64 => create_accumulator::<Float64Type>(&args),
245+
246+
DataType::Decimal32(_, _) => create_accumulator::<Decimal32Type>(&args),
247+
DataType::Decimal64(_, _) => create_accumulator::<Decimal64Type>(&args),
248+
DataType::Decimal128(_, _) => create_accumulator::<Decimal128Type>(&args),
249+
DataType::Decimal256(_, _) => create_accumulator::<Decimal256Type>(&args),
250250

251251
DataType::Timestamp(TimeUnit::Second, _) => {
252-
create_accumulator::<TimestampSecondType>(args)
252+
create_accumulator::<TimestampSecondType>(&args)
253253
}
254254
DataType::Timestamp(TimeUnit::Millisecond, _) => {
255-
create_accumulator::<TimestampMillisecondType>(args)
255+
create_accumulator::<TimestampMillisecondType>(&args)
256256
}
257257
DataType::Timestamp(TimeUnit::Microsecond, _) => {
258-
create_accumulator::<TimestampMicrosecondType>(args)
258+
create_accumulator::<TimestampMicrosecondType>(&args)
259259
}
260260
DataType::Timestamp(TimeUnit::Nanosecond, _) => {
261-
create_accumulator::<TimestampNanosecondType>(args)
261+
create_accumulator::<TimestampNanosecondType>(&args)
262262
}
263263

264-
DataType::Date32 => create_accumulator::<Date32Type>(args),
265-
DataType::Date64 => create_accumulator::<Date64Type>(args),
264+
DataType::Date32 => create_accumulator::<Date32Type>(&args),
265+
DataType::Date64 => create_accumulator::<Date64Type>(&args),
266266
DataType::Time32(TimeUnit::Second) => {
267-
create_accumulator::<Time32SecondType>(args)
267+
create_accumulator::<Time32SecondType>(&args)
268268
}
269269
DataType::Time32(TimeUnit::Millisecond) => {
270-
create_accumulator::<Time32MillisecondType>(args)
270+
create_accumulator::<Time32MillisecondType>(&args)
271271
}
272272

273273
DataType::Time64(TimeUnit::Microsecond) => {
274-
create_accumulator::<Time64MicrosecondType>(args)
274+
create_accumulator::<Time64MicrosecondType>(&args)
275275
}
276276
DataType::Time64(TimeUnit::Nanosecond) => {
277-
create_accumulator::<Time64NanosecondType>(args)
277+
create_accumulator::<Time64NanosecondType>(&args)
278278
}
279279

280280
_ => internal_err!(
@@ -1171,7 +1171,7 @@ impl AggregateUDFImpl for LastValue {
11711171
args: AccumulatorArgs,
11721172
) -> Result<Box<dyn GroupsAccumulator>> {
11731173
fn create_accumulator<T>(
1174-
args: AccumulatorArgs,
1174+
args: &AccumulatorArgs,
11751175
) -> Result<Box<dyn GroupsAccumulator>>
11761176
where
11771177
T: ArrowPrimitiveType + Send,
@@ -1195,50 +1195,50 @@ impl AggregateUDFImpl for LastValue {
11951195
}
11961196

11971197
match args.return_field.data_type() {
1198-
DataType::Int8 => create_accumulator::<Int8Type>(args),
1199-
DataType::Int16 => create_accumulator::<Int16Type>(args),
1200-
DataType::Int32 => create_accumulator::<Int32Type>(args),
1201-
DataType::Int64 => create_accumulator::<Int64Type>(args),
1202-
DataType::UInt8 => create_accumulator::<UInt8Type>(args),
1203-
DataType::UInt16 => create_accumulator::<UInt16Type>(args),
1204-
DataType::UInt32 => create_accumulator::<UInt32Type>(args),
1205-
DataType::UInt64 => create_accumulator::<UInt64Type>(args),
1206-
DataType::Float16 => create_accumulator::<Float16Type>(args),
1207-
DataType::Float32 => create_accumulator::<Float32Type>(args),
1208-
DataType::Float64 => create_accumulator::<Float64Type>(args),
1209-
1210-
DataType::Decimal32(_, _) => create_accumulator::<Decimal32Type>(args),
1211-
DataType::Decimal64(_, _) => create_accumulator::<Decimal64Type>(args),
1212-
DataType::Decimal128(_, _) => create_accumulator::<Decimal128Type>(args),
1213-
DataType::Decimal256(_, _) => create_accumulator::<Decimal256Type>(args),
1198+
DataType::Int8 => create_accumulator::<Int8Type>(&args),
1199+
DataType::Int16 => create_accumulator::<Int16Type>(&args),
1200+
DataType::Int32 => create_accumulator::<Int32Type>(&args),
1201+
DataType::Int64 => create_accumulator::<Int64Type>(&args),
1202+
DataType::UInt8 => create_accumulator::<UInt8Type>(&args),
1203+
DataType::UInt16 => create_accumulator::<UInt16Type>(&args),
1204+
DataType::UInt32 => create_accumulator::<UInt32Type>(&args),
1205+
DataType::UInt64 => create_accumulator::<UInt64Type>(&args),
1206+
DataType::Float16 => create_accumulator::<Float16Type>(&args),
1207+
DataType::Float32 => create_accumulator::<Float32Type>(&args),
1208+
DataType::Float64 => create_accumulator::<Float64Type>(&args),
1209+
1210+
DataType::Decimal32(_, _) => create_accumulator::<Decimal32Type>(&args),
1211+
DataType::Decimal64(_, _) => create_accumulator::<Decimal64Type>(&args),
1212+
DataType::Decimal128(_, _) => create_accumulator::<Decimal128Type>(&args),
1213+
DataType::Decimal256(_, _) => create_accumulator::<Decimal256Type>(&args),
12141214

12151215
DataType::Timestamp(TimeUnit::Second, _) => {
1216-
create_accumulator::<TimestampSecondType>(args)
1216+
create_accumulator::<TimestampSecondType>(&args)
12171217
}
12181218
DataType::Timestamp(TimeUnit::Millisecond, _) => {
1219-
create_accumulator::<TimestampMillisecondType>(args)
1219+
create_accumulator::<TimestampMillisecondType>(&args)
12201220
}
12211221
DataType::Timestamp(TimeUnit::Microsecond, _) => {
1222-
create_accumulator::<TimestampMicrosecondType>(args)
1222+
create_accumulator::<TimestampMicrosecondType>(&args)
12231223
}
12241224
DataType::Timestamp(TimeUnit::Nanosecond, _) => {
1225-
create_accumulator::<TimestampNanosecondType>(args)
1225+
create_accumulator::<TimestampNanosecondType>(&args)
12261226
}
12271227

1228-
DataType::Date32 => create_accumulator::<Date32Type>(args),
1229-
DataType::Date64 => create_accumulator::<Date64Type>(args),
1228+
DataType::Date32 => create_accumulator::<Date32Type>(&args),
1229+
DataType::Date64 => create_accumulator::<Date64Type>(&args),
12301230
DataType::Time32(TimeUnit::Second) => {
1231-
create_accumulator::<Time32SecondType>(args)
1231+
create_accumulator::<Time32SecondType>(&args)
12321232
}
12331233
DataType::Time32(TimeUnit::Millisecond) => {
1234-
create_accumulator::<Time32MillisecondType>(args)
1234+
create_accumulator::<Time32MillisecondType>(&args)
12351235
}
12361236

12371237
DataType::Time64(TimeUnit::Microsecond) => {
1238-
create_accumulator::<Time64MicrosecondType>(args)
1238+
create_accumulator::<Time64MicrosecondType>(&args)
12391239
}
12401240
DataType::Time64(TimeUnit::Nanosecond) => {
1241-
create_accumulator::<Time64NanosecondType>(args)
1241+
create_accumulator::<Time64NanosecondType>(&args)
12421242
}
12431243

12441244
_ => {

datafusion/functions-aggregate/src/lib.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,9 @@
1515
// specific language governing permissions and limitations
1616
// under the License.
1717

18+
// https://github.com/apache/datafusion/issues/18503
19+
#![deny(clippy::needless_pass_by_value)]
20+
#![cfg_attr(test, allow(clippy::needless_pass_by_value))]
1821
#![doc(
1922
html_logo_url = "https://raw.githubusercontent.com/apache/datafusion/19fe44cf2f30cbdd63d4a4f52c74055163c6cc38/docs/logos/standalone_logo/logo_original.svg",
2023
html_favicon_url = "https://raw.githubusercontent.com/apache/datafusion/19fe44cf2f30cbdd63d4a4f52c74055163c6cc38/docs/logos/standalone_logo/logo_original.svg"

datafusion/functions-aggregate/src/percentile_cont.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,7 @@ impl PercentileCont {
153153
}
154154
}
155155

156-
fn create_accumulator(&self, args: AccumulatorArgs) -> Result<Box<dyn Accumulator>> {
156+
fn create_accumulator(&self, args: &AccumulatorArgs) -> Result<Box<dyn Accumulator>> {
157157
let percentile = validate_percentile_expr(&args.exprs[1], "PERCENTILE_CONT")?;
158158

159159
let is_descending = args
@@ -292,7 +292,7 @@ impl AggregateUDFImpl for PercentileCont {
292292
}
293293

294294
fn accumulator(&self, acc_args: AccumulatorArgs) -> Result<Box<dyn Accumulator>> {
295-
self.create_accumulator(acc_args)
295+
self.create_accumulator(&acc_args)
296296
}
297297

298298
fn groups_accumulator_supported(&self, args: AccumulatorArgs) -> bool {

0 commit comments

Comments
 (0)