Skip to content

Commit a83237f

Browse files
authored
Fix equality of parametrizable ArrayAgg function (#17065)
The `ArrayAgg` struct is stateful, therefore it must implement `AggregateUDFImpl::equals` and `hash_value` functions.
1 parent 60ac1cc commit a83237f

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

datafusion/functions-aggregate/src/array_agg.rs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ use datafusion_common::{exec_err, internal_err, Result, ScalarValue};
3636
use datafusion_expr::function::{AccumulatorArgs, StateFieldsArgs};
3737
use datafusion_expr::utils::format_state_name;
3838
use datafusion_expr::{
39-
Accumulator, AggregateUDFImpl, Documentation, Signature, Volatility,
39+
udf_equals_hash, Accumulator, AggregateUDFImpl, Documentation, Signature, Volatility,
4040
};
4141
use datafusion_functions_aggregate_common::merge_arrays::merge_ordered_arrays;
4242
use datafusion_functions_aggregate_common::order::AggregateOrderSensitivity;
@@ -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,
@@ -227,6 +227,8 @@ impl AggregateUDFImpl for ArrayAgg {
227227
fn documentation(&self) -> Option<&Documentation> {
228228
self.doc()
229229
}
230+
231+
udf_equals_hash!(AggregateUDFImpl);
230232
}
231233

232234
#[derive(Debug)]

0 commit comments

Comments
 (0)