avantgardnerio commented on code in PR #5380:
URL: https://github.com/apache/arrow-datafusion/pull/5380#discussion_r1117352997


##########
datafusion/physical-expr/src/planner.rs:
##########
@@ -393,7 +393,10 @@ pub fn create_physical_expr(
                     execution_props,
                 )?);
             }
-
+            // udfs with zero params expect null array as input
+            if args.is_empty() {
+                physical_args.push(Arc::new(Literal::new(ScalarValue::Null)));

Review Comment:
   Though a convenient implementation, I'm wary that generating a fake argument 
by which to transfer row count will cause problems later.
   
   I'd prefer to see a solution where the row count is passed out-of-band, for 
example in a change to 
https://github.com/apache/arrow-datafusion/blob/cef119da9ee8672b1b1e50ac01387dcb1640d96e/datafusion/expr/src/function.rs#L39
 that would add an extra argument (i.e. `len: usize`) for this purpose.
   
   If that were present, we could populate it up in the call stack where we 
know the RecordBatch size, probably here: 
https://github.com/apache/arrow-datafusion/blob/cef119da9ee8672b1b1e50ac01387dcb1640d96e/datafusion/physical-expr/src/scalar_function.rs#L147



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to