eliaperantoni commented on issue #14432:
URL: https://github.com/apache/datafusion/issues/14432#issuecomment-2677625958
Hey @Chen-Yuan-Lai, thank you so much for your contributions 🙏 That is
indeed an annoying issue. It seems like some of the error macros "flatten" the
inner error to a string.
I think I'm in favour of option 2, in hope that there are not too many
places where this flattening happens. I wouldn't go for option 1 because, as
you say, it would change all existing macro invocations.
Perhaps we want is a `DataFusionError::map_diagnosticed_err` method? It
would:
1. Check if `&self` is a `DataFusionError::Diagnostic`
2. If so, apply a closure to the wrapper error.
i.e. then you would do:
```rust
let err1 = exec_err!("need to download more RAM");
let err2 = err1.with_diagnostic(...);
let err3 = err2.map_diagnosticed_err(|err|
plan_err!("that went wrong {}", err);
);
```
And now `err2` would be a `Diagnostic(ExecError)` and `err3` would be a
`Diagnostic(PlanError)`.
I'm not sure if this would work or make for a good implementation, but I
hope it can help in any way :)
--
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]