pub enum DataFusionError {
ArrowError(ArrowError),
IoError(Error),
SQL(ParserError),
NotImplemented(String),
Internal(String),
Plan(String),
SchemaError(SchemaError),
Execution(String),
ResourcesExhausted(String),
External(Box<dyn Error + Send + Sync>),
Context(String, Box<DataFusionError>),
Substrait(String),
}
Expand description
DataFusion error
Variants§
ArrowError(ArrowError)
Error returned by arrow.
IoError(Error)
Error associated to I/O operations and associated traits.
SQL(ParserError)
Error returned when SQL is syntactically incorrect.
NotImplemented(String)
Error returned on a branch that we know it is possible but to which we still have no implementation for. Often, these errors are tracked in our issue tracker.
Internal(String)
Error returned as a consequence of an error in DataFusion. This error should not happen in normal usage of DataFusion.
Plan(String)
This error happens whenever a plan is not valid. Examples include impossible casts.
SchemaError(SchemaError)
This error happens with schema-related errors, such as schema inference not possible and non-unique column names.
Execution(String)
Error returned during execution of the query. Examples include files not found, errors in parsing certain types.
ResourcesExhausted(String)
This error is thrown when a consumer cannot acquire memory from the Memory Manager we can just cancel the execution of the partition.
External(Box<dyn Error + Send + Sync>)
Errors originating from outside DataFusion’s core codebase. For example, a custom S3Error from the crate datafusion-objectstore-s3
Context(String, Box<DataFusionError>)
Error with additional context
Substrait(String)
Errors originating from either mapping LogicalPlans to/from Substrait plans or serializing/deserializing protobytes to Substrait plans
Implementations§
source§impl DataFusionError
impl DataFusionError
sourcepub fn find_root(&self) -> &Self
pub fn find_root(&self) -> &Self
Get deepest underlying DataFusionError
DataFusionError
s sometimes form a chain, such as DataFusionError::ArrowError()
in order to conform
to the correct error signature. Thus sometimes there is a chain several layers deep that can obscure the
original error. This function finds the lowest level DataFusionError possible.
For example, find_root
will returnDataFusionError::ResourceExhausted
given the input
DataFusionError::ArrowError
ArrowError::External
Box(DataFusionError::Context)
DataFusionError::ResourceExhausted
This may be the same as self
.