@@ -232,11 +232,6 @@ object CometFirst extends CometAggregateExpressionSerde {
232232 binding : Boolean ,
233233 conf : SQLConf ): Option [ExprOuterClass .AggExpr ] = {
234234 val first = expr.asInstanceOf [First ]
235- if (first.ignoreNulls) {
236- // DataFusion doesn't support ignoreNulls true
237- withInfo(aggExpr, " First not supported when ignoreNulls=true" )
238- return None
239- }
240235 val child = first.children.head
241236 val childExpr = exprToProto(child, inputs, binding)
242237 val dataType = serializeDataType(first.dataType)
@@ -245,6 +240,7 @@ object CometFirst extends CometAggregateExpressionSerde {
245240 val builder = ExprOuterClass .First .newBuilder()
246241 builder.setChild(childExpr.get)
247242 builder.setDatatype(dataType.get)
243+ builder.setIgnoreNulls(first.ignoreNulls)
248244
249245 Some (
250246 ExprOuterClass .AggExpr
@@ -269,11 +265,6 @@ object CometLast extends CometAggregateExpressionSerde {
269265 binding : Boolean ,
270266 conf : SQLConf ): Option [ExprOuterClass .AggExpr ] = {
271267 val last = expr.asInstanceOf [Last ]
272- if (last.ignoreNulls) {
273- // DataFusion doesn't support ignoreNulls true
274- withInfo(aggExpr, " Last not supported when ignoreNulls=true" )
275- return None
276- }
277268 val child = last.children.head
278269 val childExpr = exprToProto(child, inputs, binding)
279270 val dataType = serializeDataType(last.dataType)
@@ -282,6 +273,7 @@ object CometLast extends CometAggregateExpressionSerde {
282273 val builder = ExprOuterClass .Last .newBuilder()
283274 builder.setChild(childExpr.get)
284275 builder.setDatatype(dataType.get)
276+ builder.setIgnoreNulls(last.ignoreNulls)
285277
286278 Some (
287279 ExprOuterClass .AggExpr
0 commit comments