fix(datafusion): add error logging to catalog methods that silently swallow errors#273
Merged
Merged
Conversation
…wallow errors The CatalogProvider/SchemaProvider trait methods schema_names(), schema(), table_names(), and table_exist() have no Result return type, so errors from remote catalog operations were silently discarded. Add log::error! to surface these failures for debugging. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
…wallow errors
The CatalogProvider/SchemaProvider trait methods schema_names(), schema(), table_names(), and table_exist() have no Result return type, so errors from remote catalog operations were silently discarded. Add log::error! to surface these failures for debugging.
Purpose
Linked issue: N/A (no existing issue — upstream trait limitation)
Add
log::error!to 4CatalogProvider/SchemaProvidertrait methods that silently discard errors from remote catalog operations, making failures visible for debugging.Brief change log
schema_names(): replaceunwrap_or_default()withmatch+log::error!onErrschema(): replaceErr(_) => Nonewithlog::error!before returningNonetable_names(): replaceunwrap_or_default()withmatch+log::error!onErrtable_exist(): replaceErr(_) => falsewithlog::error!before returningfalselog = "0.4"dependency topaimon-datafusionThese 4 methods have no
Resultreturn type in the upstream DataFusion trait, so logging is the best we can do. A proper fix requires changing the upstream trait signatures (tobe proposed separately as a breaking API change on apache/datafusion).
Tests
cargo test -p paimon-datafusion)RUST_LOG=errorand trigger a catalog error to verify log outputAPI and Format
No API or format changes.
Documentation
No documentation changes needed.