Skip to main content

ErrorCode

Enum ErrorCode 

Source
#[non_exhaustive]
pub enum ErrorCode {
Show 44 variants Cancelled, SqlParse, InvalidRequest, InvalidConfiguration, DataFusionPlanning, PlanningTimeout, ObjectNotFound, SourceAccessDenied, SourceUnauthenticated, SourceObjectNotFound, SourceTemporaryFailure, SourceDependencyFailure, FieldNotFound, GraphInputInvalid, RequiredGpuOperationUnsupported, FinalPlanRequirementUnsatisfied, UnsupportedOperator, UnsupportedExpression, UnsupportedType, InvalidExecutionPlan, InvalidChildCount, CudfInvalidInput, CudfUnsupported, SizeOverflow, HostMaterializationLimitExceeded, HostStagingLimitExceeded, HostMemoryExhausted, CudfTemporaryFailure, CudfPersistentFailure, CudfDependencyFailure, AlgorithmDidNotConverge, CudfInvariantViolation, MemoryReservationFailed, ServiceOverloaded, QueryBudgetUnavailable, QueryMemoryLimitExceeded, DeviceOutOfMemory, DeviceAllocationFailed, DeviceFault, CleanupFailed, InternalInvariantViolation, FlightFrameTooLarge, ServerTransportFailure, Internal,
}
Expand description

Stable, machine-readable adapter error codes.

Codes describe the closest adapter-level cause. ErrorKind and ErrorStatus are derived from the code by ErrorCode::kind and ErrorCode::status. Consumers should treat those methods as the policy contract and should not infer behavior from variant names.

Variants (Non-exhaustive)§

This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
§

Cancelled

Query execution was canceled by the caller.

§

SqlParse

SQL text could not be parsed.

§

InvalidRequest

The server request envelope or handle was invalid for the operation.

§

InvalidConfiguration

A server, backend, or device configuration value is invalid or inconsistent with the discovered hardware.

The same configuration fails again until it changes; the message names the setting, its value, and the largest accepted value when one exists.

§

DataFusionPlanning

DataFusion rejected the query during logical or physical planning.

§

PlanningTimeout

Adapter-owned planning exceeded its configured time budget.

This is classified as permanent for the same request and budget: retry with table maintenance, a narrower request, or a larger configured planning budget.

§

ObjectNotFound

A requested catalog, schema, table, table function, or similar named object was not found.

§

SourceAccessDenied

Source object storage denied access to the requested object or metadata.

§

SourceUnauthenticated

Source object storage lacked valid authentication credentials.

§

SourceObjectNotFound

Source object storage could not find the requested object.

§

SourceTemporaryFailure

Source object storage failed with a retryable transport or service error.

§

SourceDependencyFailure

A source reader or source dependency failed permanently while serving the request.

§

FieldNotFound

A named field was not present in a resolved schema.

§

GraphInputInvalid

Materialized graph edges or side inputs violate the graph operation’s declared input contract.

§

RequiredGpuOperationUnsupported

A completed-plan requirement needed a GPU operation that the exact final physical plan could not provide.

§

FinalPlanRequirementUnsatisfied

The exact completed physical plan did not satisfy a configured final plan requirement.

§

UnsupportedOperator

A physical operator is unsupported by the GPU/native adapter path.

§

UnsupportedExpression

A physical expression or expression form is unsupported.

§

UnsupportedType

A data type, physical representation, or type combination is unsupported.

§

InvalidExecutionPlan

A DataFusion physical plan is invalid for the adapter boundary.

Use this only for malformed or inconsistent plans. A well-formed plan outside the supported capability catalogue is reported as unsupported.

§

InvalidChildCount

An execution plan had an impossible child count for the adapter node.

§

CudfInvalidInput

cuDF rejected an input, including permanent NotFound conditions.

§

CudfUnsupported

cuDF reported a permanent unsupported capability.

§

SizeOverflow

A host materialization size computation overflowed the platform range.

§

HostMaterializationLimitExceeded

One unsplittable Arrow host row exceeds the configured deterministic materialization ceiling.

§

HostStagingLimitExceeded

A bounded host-staging boundary exceeded its configured cumulative byte ceiling before GPU admission or a device-to-host copy.

§

HostMemoryExhausted

DataFusion’s host memory pool rejected a reservation.

Represents a temporary resource exhaustion in the host-side pool. Device memory is governed by the query domain allocator and reports through Self::QueryMemoryLimitExceeded, Self::DeviceOutOfMemory, and Self::DeviceAllocationFailed.

§

CudfTemporaryFailure

cuDF reported a temporary dependency/runtime failure.

§

CudfPersistentFailure

cuDF reported a persistent dependency/runtime failure.

The failure has been observed to recur or is known to continue. Stop automatic retries and escalate or wait for intervention.

§

CudfDependencyFailure

cuDF reported a permanent dependency failure.

§

AlgorithmDidNotConverge

An iterative native algorithm reached its configured iteration bound.

§

CudfInvariantViolation

cuDF reported an invariant or execution-context violation.

§

MemoryReservationFailed

The native admission controller could not reserve requested memory.

Represents a temporary resource condition propagated from native execution, separate from a cuDF allocator failure.

§

ServiceOverloaded

The native query service rejected work because admission capacity was exhausted.

§

QueryBudgetUnavailable

The requested query cap cannot fit on any eligible device after subtracting resident ownership.

§

QueryMemoryLimitExceeded

The query domain rejected an actual or exact-required allocation over the query’s fixed memory cap.

§

DeviceOutOfMemory

A device allocation failed with confirmed physical-memory provenance.

§

DeviceAllocationFailed

A device allocation failed without confirmed physical-memory provenance.

§

DeviceFault

A persistent device or CUDA runtime fault made the affected device unavailable.

§

CleanupFailed

Cleanup or synchronization could not establish safe release of the attempt’s device resources.

§

InternalInvariantViolation

An owner, provenance, ledger, or stream-routing invariant was violated.

§

FlightFrameTooLarge

One logical Arrow row cannot be represented within the configured Flight/gRPC message limit.

This is permanent for the same row and transport limit: callers must project a smaller value or otherwise change the request. The server must not raise tonic’s message-size limit to hide this condition.

§

ServerTransportFailure

The Flight SQL server transport failed outside request handling.

§

Internal

An internal adapter bug or unreachable condition.

Implementations§

Source§

impl ErrorCode

Source

pub const ALL: &'static [Self]

Every adapter error code, in declaration order.

Source

pub const fn as_str(self) -> &'static str

Stable snake-case code label used in reports and error text.

Source

pub const fn kind(self) -> ErrorKind

Stable coarse category of this code.

kind is the broad bucket used for diagnostics and aggregation. It is less specific than ErrorCode and stays stable for consumers that group failures without depending on every code variant.

Source

pub const fn status(self) -> ErrorStatus

Retry/remediation status of this code.

Attempt retry advice is derived only after terminal evidence is sealed. ErrorStatus::Persistent means a repeated or known-continuing dependency failure that requires escalation or intervention, while ErrorStatus::Permanent means the request, input, configuration, or code must change before the same operation can succeed.

Trait Implementations§

Source§

impl Clone for ErrorCode

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Copy for ErrorCode

Source§

impl Debug for ErrorCode

Source§

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

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

impl Display for ErrorCode

Source§

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

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

impl Eq for ErrorCode

Source§

impl Hash for ErrorCode

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl PartialEq for ErrorCode

Source§

fn eq(&self, other: &Self) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for ErrorCode

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Allocation for T
where T: RefUnwindSafe + Send + Sync,

Source§

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

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

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

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

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

Source§

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

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DynEq for T
where T: Eq + Any,

Source§

fn dyn_eq(&self, other: &(dyn Any + 'static)) -> bool

Source§

impl<T> DynHash for T
where T: Hash + Any,

Source§

fn dyn_hash(&self, state: &mut dyn Hasher)

Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> FromRef<T> for T
where T: Clone,

Source§

fn from_ref(input: &T) -> T

Converts to this type from a reference to the input type.
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 T
where 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<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> IntoRequest<T> for T

Source§

fn into_request(self) -> Request<T>

Wrap the input message T in a tonic::Request
Source§

impl<L> LayerExt<L> for L

Source§

fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>
where L: Layer<S>,

Applies the layer to a service and wraps it in Layered.
Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

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

Source§

fn to_string(&self) -> String

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

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

Source§

type Error = !

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

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

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

Source§

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.
Source§

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

Source§

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