Add underlying std::io::Error
to IoError
and add IpcError
variant
#4726
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Which issue does this PR close?
Does not close any open issue.
Rationale for this change
I need to handle some kind of I/O errors (notably broken pipe errors) specifically and the current
IoError
variant does not permit it because it does not expose the underlyingstd::io::Error
. Moreover, it looks to me thatIoError
is a bit misused, mostly in the IPC format and Flight crates. I introduced a newIpcError
variant to have a better semantics of errors.What changes are included in this PR?
std::io::Error
field toIoError
variantIpcError
variant toArrowError
IoError
within the IPC / Flights cratesI'm not 100% sure about the new semantics of every errors so feel to correct me.
Are there any user-facing changes?
Yes. Callers that handle
IoError
separately will need to update their patterns to include the new field and they will also need to handle the newIpcError
variant.