jayzhan211 commented on code in PR #13717:
URL: https://github.com/apache/datafusion/pull/13717#discussion_r1911934625


##########
datafusion/core/src/catalog_common/information_schema.rs:
##########
@@ -406,6 +406,7 @@ fn get_udf_args_and_return_types(
             .into_iter()
             .map(|arg_types| {
                 // only handle the function which implemented 
[`ScalarUDFImpl::return_type`] method
+                #[allow(deprecated)]

Review Comment:
   I review about this part again and my conclusion is that `Expr` should be 
the same as it is now, and `schema` is separated concept other than `Expr`, 
with them we compute the corresponding metadata like data type and nullability. 
Therefore, I still think we need `return_type_with_args` for solving this issue.
   
   The issue mentioned in #12604 should be solved in another way. I think we 
can have such information stored in `LogicalPlan` instead. `Expr` has no type 
info until the schema is determined and it is when we create corresponding 
`LogicalPlan` from `Expr` and `Schema`.
   
   `LogicalPlan` can be considered as the **Container** of `Expr` + `Schema`, 
whenever the schema is updated or `Expr` is rewritten, we recompute the 
properties of `Expr`. If nothing changed, we can reuse such computed properties.



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