Skip to content

Commit 71b4182

Browse files
findepiLiaCastaneda
authored andcommitted
Fix equality of parametrizable ArrayAgg function
The `ArrayAgg` struct is stateful, therefore it must implement `AggregateUDFImpl::equals` and `hash_value` functions.
1 parent e49a493 commit 71b4182

1 file changed

Lines changed: 4 additions & 2 deletions

File tree

datafusion/functions-aggregate/src/array_agg.rs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ use datafusion_common::{exec_err, internal_err, Result, ScalarValue};
3737
use datafusion_expr::function::{AccumulatorArgs, StateFieldsArgs};
3838
use datafusion_expr::utils::format_state_name;
3939
use datafusion_expr::{
40-
Accumulator, AggregateUDFImpl, Documentation, Signature, Volatility,
40+
udf_equals_hash, Accumulator, AggregateUDFImpl, Documentation, Signature, Volatility,
4141
};
4242
use datafusion_functions_aggregate_common::merge_arrays::merge_ordered_arrays;
4343
use datafusion_functions_aggregate_common::utils::ordering_fields;
@@ -75,7 +75,7 @@ This aggregation function can only mix DISTINCT and ORDER BY if the ordering exp
7575
"#,
7676
standard_argument(name = "expression",)
7777
)]
78-
#[derive(Debug)]
78+
#[derive(Debug, PartialEq, Eq, Hash)]
7979
/// ARRAY_AGG aggregate expression
8080
pub struct ArrayAgg {
8181
signature: Signature,
@@ -210,6 +210,8 @@ impl AggregateUDFImpl for ArrayAgg {
210210
fn documentation(&self) -> Option<&Documentation> {
211211
self.doc()
212212
}
213+
214+
udf_equals_hash!(AggregateUDFImpl);
213215
}
214216

215217
#[derive(Debug)]

0 commit comments

Comments
 (0)