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