Struct datafusion_substrait::extensions::Extensions

source ·
pub struct Extensions {
    pub functions: HashMap<u32, String>,
    pub types: HashMap<u32, String>,
    pub type_variations: HashMap<u32, String>,
}
Expand description

Substrait uses SimpleExtensions to define behavior of plans in addition to what’s supported directly by the protobuf definitions. That includes functions, but also provides support for custom types and variations for existing types. This structs facilitates the use of these extensions in DataFusion. TODO: DF doesn’t yet use extensions for type variations https://github.com/apache/datafusion/issues/11544 TODO: DF doesn’t yet provide valid extensionUris https://github.com/apache/datafusion/issues/11545

Fields§

§functions: HashMap<u32, String>§types: HashMap<u32, String>§type_variations: HashMap<u32, String>

Implementations§

source§

impl Extensions

source

pub fn register_function(&mut self, function_name: String) -> u32

Registers a function and returns the anchor (reference) to it. If the function has already been registered, it returns the existing anchor. Function names are case-insensitive (converted to lowercase).

source

pub fn register_type(&mut self, type_name: String) -> u32

Registers a type and returns the anchor (reference) to it. If the type has already been registered, it returns the existing anchor.

Trait Implementations§

source§

impl Debug for Extensions

source§

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

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

impl Default for Extensions

source§

fn default() -> Extensions

Returns the “default value” for a type. Read more
source§

impl From<Extensions> for Vec<SimpleExtensionDeclaration>

source§

fn from(val: Extensions) -> Vec<SimpleExtensionDeclaration>

Converts to this type from the input type.
source§

impl PartialEq for Extensions

source§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

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

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl TryFrom<&Vec<SimpleExtensionDeclaration>> for Extensions

§

type Error = DataFusionError

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

fn try_from(value: &Vec<SimpleExtensionDeclaration>) -> Result<Self>

Performs the conversion.
source§

impl StructuralPartialEq for Extensions

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> 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> Same for T

§

type Output = T

Should always be Self
source§

impl<T, U> TryFrom<U> for T
where 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 T
where 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.
source§

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

source§

fn vzip(self) -> V

source§

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