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
impl CastFunctionInfo
Sourcepub const unsafe fn new(info: duckdb_function_info) -> Self
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.
Sourcepub fn cast_mode(&self) -> CastMode
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).
Sourcepub unsafe fn get_extra_info(&self) -> *mut c_void
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.
Sourcepub fn set_error(&self, message: &str)
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.
Sourcepub unsafe fn set_row_error(
&self,
message: &str,
row: idx_t,
output: duckdb_vector,
)
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.