pub enum HigherOrderTypeSignature {
UserDefined,
VariadicAny,
Any(usize),
Exact(Vec<ValueOrLambda<(), ()>>),
}Expand description
The types of arguments for which a function has implementations.
HigherOrderTypeSignature DOES NOT define the types that a user query could call the
function with. DataFusion will automatically coerce (cast) argument types to
one of the supported function signatures, if possible.
§Overview
Functions typically provide implementations for a small number of different
argument DataTypes, rather than all possible combinations. If a user
calls a function with arguments that do not match any of the declared types,
DataFusion will attempt to automatically coerce (add casts to) function
arguments so they match the HigherOrderTypeSignature. See the type_coercion module
for more details
Variants§
UserDefined
The acceptable signature and coercions rules are special for this function.
If this signature is specified,
DataFusion will call HigherOrderUDFImpl::coerce_value_types to prepare argument types.
VariadicAny
One or more lambdas or arguments with arbitrary types
Any(usize)
The specified number of lambdas or arguments with arbitrary types.
Exact(Vec<ValueOrLambda<(), ()>>)
Exactly the specified arguments in the given order, with arbitrary types.
DataFusion will call HigherOrderUDFImpl::coerce_value_types to prepare the value
argument types.
Trait Implementations§
Source§impl Clone for HigherOrderTypeSignature
impl Clone for HigherOrderTypeSignature
Source§fn clone(&self) -> HigherOrderTypeSignature
fn clone(&self) -> HigherOrderTypeSignature
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for HigherOrderTypeSignature
impl Debug for HigherOrderTypeSignature
impl Eq for HigherOrderTypeSignature
Source§impl Hash for HigherOrderTypeSignature
impl Hash for HigherOrderTypeSignature
Source§impl PartialEq for HigherOrderTypeSignature
impl PartialEq for HigherOrderTypeSignature
Source§fn eq(&self, other: &HigherOrderTypeSignature) -> bool
fn eq(&self, other: &HigherOrderTypeSignature) -> bool
self and other values to be equal, and is used by ==.Source§impl PartialOrd for HigherOrderTypeSignature
impl PartialOrd for HigherOrderTypeSignature
impl StructuralPartialEq for HigherOrderTypeSignature
Auto Trait Implementations§
impl Freeze for HigherOrderTypeSignature
impl RefUnwindSafe for HigherOrderTypeSignature
impl Send for HigherOrderTypeSignature
impl Sync for HigherOrderTypeSignature
impl Unpin for HigherOrderTypeSignature
impl UnsafeUnpin for HigherOrderTypeSignature
impl UnwindSafe for HigherOrderTypeSignature
Blanket Implementations§
impl<T> Allocation for T
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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