joroKr21 commented on code in PR #12922:
URL: https://github.com/apache/datafusion/pull/12922#discussion_r1801708934


##########
datafusion/functions/src/macros.rs:
##########
@@ -226,9 +226,8 @@ macro_rules! make_math_unary_udf {
                     $EVALUATE_BOUNDS(inputs)
                 }
 
-                fn invoke(&self, args: &[ColumnarValue]) -> 
Result<ColumnarValue> {
-                    let args = ColumnarValue::values_to_arrays(args)?;
-
+                fn invoke(&self, col_args: &[ColumnarValue]) -> 
Result<ColumnarValue> {

Review Comment:
   Yeah anyway, I was just trying to show that this is a deficiency of the UDF 
model. Ideally, `invoke` should also get the number of expected rows and then 
there would also be no need for a special `invoke_no_args`.
   
   Regarding adding a flag with default `false`, that doesn't sound very 
useful. Maybe we can just assume that if the result of any immutable function 
is an array of size one, we might as well convert it to a scalar value.



-- 
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]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to