findepi commented on PR #13717:
URL: https://github.com/apache/datafusion/pull/13717#issuecomment-2535985246
> Both of these functions have been part of the public API for a while now.
i believe you
> The newer `return_type_from_exprs` works correctly and the older
`return_type` is incorrect in some cases. It seems better to me to deprecate
the older incorrect version.
date_part's return_type used to be correct in all cases
the implementation was removed because it was no longer correct in all cases
if someone calls `func.return_type()` just for display purposes into logs,
they may be OK getting wrong information.
If someone calls `func.return_type()` and trusts return value, they could be
disappointed if we continue to return something, but the return value doesn't
continue to be correct.
for example (pseudo-code)
```rust
let func_return_value : ArrayRef = ... ;
match func.return_type() {
case Float64 => {
as_float64_array(func_return_value) ...
```
or
```rust
let wanted_type = ...;
let ret func.return_type();
if wanted_type == ret {
return func
} else {
Expr::Cast( func, wanted_type )
}
```
if we need to return some incorrect value for some time, this should be
behind an opt-in config toggle.
--
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]