findepi commented on code in PR #13756:
URL: https://github.com/apache/datafusion/pull/13756#discussion_r1888459710


##########
datafusion/functions-nested/src/extract.rs:
##########
@@ -993,3 +993,84 @@ where
     let data = mutable.freeze();
     Ok(arrow::array::make_array(data))
 }
+
+#[cfg(test)]
+mod tests {
+    use super::array_element_udf;
+    use arrow_schema::{DataType, Field};
+    use datafusion_common::{Column, DFSchema, ScalarValue};
+    use datafusion_expr::expr::ScalarFunction;
+    use datafusion_expr::{cast, Expr, ExprSchemable};
+    use std::collections::HashMap;
+
+    #[test]
+    fn test_array_element_return_type() {
+        let complex_type = DataType::FixedSizeList(

Review Comment:
   > Is there example about the difference of this two, especially for function.
   
   the difference is more apparent for duplicate syntax (such is IS NULL vs IS 
UNKNOWN), syntax sugar (order by 1, order by all, select *)
   for function call the difference is about function being resolved (typed and 
inputs coerced) or not.
   
   
   > > since they are not to be used once the plan is constructed.
   > 
   > Why `get_type` is not supposed to be available after plan is constructed 
from Expr.
   
   for a fully resolved logical plan it's fair question to ask what is the type 
of an expression (and this may or may not be O(1) available answer)
   
   however, there is no point to ask a UDF what is its type, since we already 
asked it 
   
   think of this as engine and UDF being implemented by independent parties, 
with UDF being a contract layer.
   you go over a contract layer when you have to (analysis time), but going 
over contract layer multiple times with the same question should be avoided. 
   



-- 
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: github-unsubscr...@datafusion.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: github-unsubscr...@datafusion.apache.org
For additional commands, e-mail: github-h...@datafusion.apache.org

Reply via email to