Skip to content

Commit 31c0fca

Browse files
findepiLiaCastaneda
authored andcommitted
Fix equality of parametrizable ArrayAgg function (apache#17065)
The `ArrayAgg` struct is stateful, therefore it must implement `AggregateUDFImpl::equals` and `hash_value` functions.
1 parent 471a2a5 commit 31c0fca

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::utils::ordering_fields;
@@ -74,7 +74,7 @@ This aggregation function can only mix DISTINCT and ORDER BY if the ordering exp
7474
"#,
7575
standard_argument(name = "expression",)
7676
)]
77-
#[derive(Debug)]
77+
#[derive(Debug, PartialEq, Eq, Hash)]
7878
/// ARRAY_AGG aggregate expression
7979
pub struct ArrayAgg {
8080
signature: Signature,
@@ -222,6 +222,8 @@ impl AggregateUDFImpl for ArrayAgg {
222222
fn documentation(&self) -> Option<&Documentation> {
223223
self.doc()
224224
}
225+
226+
udf_equals_hash!(AggregateUDFImpl);
225227
}
226228

227229
#[derive(Debug)]

0 commit comments

Comments
 (0)