Skip to main content

ErrorCode

Enum ErrorCode 

Source
#[non_exhaustive]
pub enum ErrorCode {
Show 13 variants Parser, Binder, Catalog, Conversion, OutOfRange, InvalidInput, OutOfMemory, Io, NotImplemented, Constraint, Transaction, Interrupt, Internal,
}
Expand description

What kind of thing went wrong.

These are stable and they are part of the public interface, because a client that retries on one class of failure and gives up on another has to be able to tell them apart without reading the message. Adding a variant is a compatible change and renaming one is not.

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

Parser

The text is not SQL.

§

Binder

The text is SQL and it does not mean anything, for example a column that is not in scope.

§

Catalog

A named object is missing, or one that should be missing is not.

§

Conversion

A value will not convert to the type it is being asked for.

§

OutOfRange

A value is outside what its type can hold.

§

InvalidInput

An argument is wrong in a way that is not a type error, for example a negative length.

§

OutOfMemory

An allocation failed or a memory limit was reached. An error, never an abort.

§

Io

The filesystem, the network or the object store said no.

§

NotImplemented

It is in the plan and it is not built yet.

§

Constraint

A primary key, unique, not null or check constraint was violated.

§

Transaction

A conflict, an abort, or a statement issued outside a transaction that needs one.

§

Interrupt

The query was cancelled. Cooperative, checked at morsel boundaries.

§

Internal

An invariant this code is responsible for does not hold. Always a bug here, never in the query.

Implementations§

Source§

impl ErrorCode

Source

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

The prefix DuckDB puts on a message with this code.

Compatibility obligation from spec/12-duckdb-compat.md section 12.5: a great many tests in the wild assert on the exact text of an error, so the prefix is DuckDB’s spelling including the parts that look like typos. Not implemented Error really is capitalised that way upstream, and INTERNAL Error really is shouted.

Source

pub const fn is_user_error(self) -> bool

Whether an error with this code says something about the query rather than about us.

Used by the fuzzing harness in spec/16-testing.md section 16.4, which treats a rejected query as a normal outcome and an internal error as a finding.

Trait Implementations§

Source§

impl Clone for ErrorCode

Source§

fn clone(&self) -> ErrorCode

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: &ErrorCode) -> 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> 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> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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