@@ -2189,7 +2189,11 @@ fn roundtrip_aggregate_udf() {
21892189 Arc :: new ( vec ! [ DataType :: Float64 , DataType :: UInt32 ] ) ,
21902190 ) ;
21912191
2192- let test_expr = Expr :: AggregateFunction ( expr:: AggregateFunction :: new_udf (
2192+ let ctx = SessionContext :: new ( ) ;
2193+ ctx. register_udaf ( dummy_agg. clone ( ) ) ;
2194+
2195+ // null_treatment absent
2196+ let test_expr1 = Expr :: AggregateFunction ( expr:: AggregateFunction :: new_udf (
21932197 Arc :: new ( dummy_agg. clone ( ) ) ,
21942198 vec ! [ lit( 1.0_f64 ) ] ,
21952199 false ,
@@ -2198,10 +2202,29 @@ fn roundtrip_aggregate_udf() {
21982202 None ,
21992203 ) ) ;
22002204
2201- let ctx = SessionContext :: new ( ) ;
2202- ctx. register_udaf ( dummy_agg) ;
2205+ // null_treatment respect nulls
2206+ let test_expr2 = Expr :: AggregateFunction ( expr:: AggregateFunction :: new_udf (
2207+ Arc :: new ( dummy_agg. clone ( ) ) ,
2208+ vec ! [ lit( 1.0_f64 ) ] ,
2209+ true ,
2210+ Some ( Box :: new ( lit ( true ) ) ) ,
2211+ vec ! [ ] ,
2212+ Some ( NullTreatment :: RespectNulls ) ,
2213+ ) ) ;
22032214
2204- roundtrip_expr_test ( test_expr, ctx) ;
2215+ // null_treatment ignore nulls
2216+ let test_expr3 = Expr :: AggregateFunction ( expr:: AggregateFunction :: new_udf (
2217+ Arc :: new ( dummy_agg) ,
2218+ vec ! [ lit( 1.0_f64 ) ] ,
2219+ true ,
2220+ Some ( Box :: new ( lit ( true ) ) ) ,
2221+ vec ! [ ] ,
2222+ Some ( NullTreatment :: IgnoreNulls ) ,
2223+ ) ) ;
2224+
2225+ roundtrip_expr_test ( test_expr1, ctx. clone ( ) ) ;
2226+ roundtrip_expr_test ( test_expr2, ctx. clone ( ) ) ;
2227+ roundtrip_expr_test ( test_expr3, ctx) ;
22052228}
22062229
22072230fn dummy_udf ( ) -> ScalarUDF {
0 commit comments