Skip to main content

CastFunctionInfo

Struct CastFunctionInfo 

Source
pub struct CastFunctionInfo { /* private fields */ }
Expand description

Ergonomic wrapper around the duckdb_function_info handle provided to a cast callback.

Exposes the cast-specific methods that are only meaningful inside a cast function callback.

Implementations§

Source§

impl CastFunctionInfo

Source

pub const unsafe fn new(info: duckdb_function_info) -> Self

Wraps a raw duckdb_function_info provided by DuckDB inside a cast callback.

§Safety

info must be a valid duckdb_function_info passed by DuckDB to a cast callback.

Source

pub fn cast_mode(&self) -> CastMode

Returns whether this invocation is a TRY_CAST or a regular CAST.

Check this inside your callback to decide between aborting on error (CastMode::Normal) and producing NULL with a per-row error (CastMode::Try).

Source

pub unsafe fn get_extra_info(&self) -> *mut c_void

Retrieves the extra-info pointer previously set via CastFunctionBuilder::extra_info.

Returns a raw *mut c_void. Cast it back to your concrete type.

§Safety

The returned pointer is only valid as long as the cast function is registered and DuckDB has not yet called the destructor.

Source

pub fn set_error(&self, message: &str)

Reports a fatal error, causing DuckDB to abort the current query.

Use this only in CastMode::Normal; in CastMode::Try prefer set_row_error so that failed rows become NULL.

If message contains an interior null byte it is truncated at that point.

Source

pub unsafe fn set_row_error( &self, message: &str, row: idx_t, output: duckdb_vector, )

Reports a per-row error for TRY_CAST.

Records message for row in the output error vector. The row’s output value should be set to NULL by the caller.

If message contains an interior null byte it is truncated at that point.

§Safety

output must be the same duckdb_vector passed to the cast callback.

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> 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, U> TryFrom<U> for T
where U: Into<T>,

Source§

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