Skip to content

Commit 474fbe6

Browse files
committed
test: add null_treatment for aggregate udf
1 parent b88accd commit 474fbe6

File tree

1 file changed

+27
-4
lines changed

1 file changed

+27
-4
lines changed

datafusion/proto/tests/cases/roundtrip_logical_plan.rs

Lines changed: 27 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -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

22072230
fn dummy_udf() -> ScalarUDF {

0 commit comments

Comments
 (0)