pub enum DataFusionError {
Show 14 variants ArrowError(ArrowError), ParquetError(ParquetError), ObjectStore(Error), IoError(Error), SQL(ParserError), NotImplemented(String), Internal(String), Plan(String), SchemaError(SchemaError), Execution(String), ResourcesExhausted(String), External(Box<dyn Error + Send + Sync, Global>), Context(String, Box<DataFusionError, Global>), Substrait(String),
}
Expand description

DataFusion error

Variants§

§

ArrowError(ArrowError)

Error returned by arrow.

§

ParquetError(ParquetError)

Wraps an error from the Parquet crate

§

ObjectStore(Error)

Wraps an error from the object_store crate

§

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.

DataFusions has internal invariants that the compiler is not always able to check. This error is raised when one of those invariants is not verified during execution.

§

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, Global>)

Errors originating from outside DataFusion’s core codebase. For example, a custom S3Error from the crate datafusion-objectstore-s3

§

Context(String, Box<DataFusionError, Global>)

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

source

pub fn find_root(&self) -> &DataFusionError

Get deepest underlying DataFusionError

DataFusionErrors 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.

source

pub fn context(self, description: impl Into<String>) -> DataFusionError

wraps self in Self::Context with a description

Trait Implementations§

source§

impl Debug for DataFusionError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl Display for DataFusionError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl Error for DataFusionError

source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, demand: &mut Demand<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
source§

impl From<ArrowError> for DataFusionError

source§

fn from(e: ArrowError) -> DataFusionError

Converts to this type from the input type.
source§

impl From<Box<dyn Error + Send + Sync, Global>> for DataFusionError

source§

fn from(err: Box<dyn Error + Send + Sync, Global>) -> DataFusionError

Converts to this type from the input type.
source§

impl From<Error> for DataFusionError

source§

fn from(e: Error) -> DataFusionError

Converts to this type from the input type.
source§

impl From<Error> for DataFusionError

source§

fn from(e: Error) -> DataFusionError

Converts to this type from the input type.
source§

impl From<Error> for DataFusionError

source§

fn from(e: Error) -> DataFusionError

Converts to this type from the input type.
source§

impl From<Error> for DataFusionError

source§

fn from(_e: Error) -> DataFusionError

Converts to this type from the input type.
source§

impl From<ParquetError> for DataFusionError

source§

fn from(e: ParquetError) -> DataFusionError

Converts to this type from the input type.
source§

impl From<ParserError> for DataFusionError

source§

fn from(e: ParserError) -> DataFusionError

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<T> AsErrorSource for Twhere T: Error + 'static,

§

fn as_error_source(&self) -> &(dyn Error + 'static)

For maximum effectiveness, this needs to be called as a method to benefit from Rust’s automatic dereferencing of method receivers.
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T> Instrument for T

source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for Twhere U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<E> Provider for Ewhere E: Error + ?Sized,

source§

fn provide<'a>(&'a self, demand: &mut Demand<'a>)

🔬This is a nightly-only experimental API. (provide_any)
Data providers should implement this method to provide all values they are able to provide by using demand. Read more
source§

impl<T> Same<T> for T

§

type Output = T

Should always be Self
source§

impl<T> ToString for Twhere T: Display + ?Sized,

source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for Twhere V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> WithSubscriber for T

source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more