pub trait ScalarUDFImpl:
Debug
+ Send
+ Sync {
Show 21 methods
// Required methods
fn as_any(&self) -> &(dyn Any + 'static);
fn name(&self) -> &str;
fn signature(&self) -> &Signature;
fn return_type(
&self,
arg_types: &[DataType],
) -> Result<DataType, DataFusionError>;
// Provided methods
fn display_name(&self, args: &[Expr]) -> Result<String, DataFusionError> { ... }
fn schema_name(&self, args: &[Expr]) -> Result<String, DataFusionError> { ... }
fn return_type_from_exprs(
&self,
_args: &[Expr],
_schema: &dyn ExprSchema,
arg_types: &[DataType],
) -> Result<DataType, DataFusionError> { ... }
fn is_nullable(&self, _args: &[Expr], _schema: &dyn ExprSchema) -> bool { ... }
fn invoke(
&self,
_args: &[ColumnarValue],
) -> Result<ColumnarValue, DataFusionError> { ... }
fn invoke_batch(
&self,
args: &[ColumnarValue],
number_rows: usize,
) -> Result<ColumnarValue, DataFusionError> { ... }
fn invoke_no_args(
&self,
_number_rows: usize,
) -> Result<ColumnarValue, DataFusionError> { ... }
fn aliases(&self) -> &[String] { ... }
fn simplify(
&self,
args: Vec<Expr>,
_info: &dyn SimplifyInfo,
) -> Result<ExprSimplifyResult, DataFusionError> { ... }
fn short_circuits(&self) -> bool { ... }
fn evaluate_bounds(
&self,
_input: &[&Interval],
) -> Result<Interval, DataFusionError> { ... }
fn propagate_constraints(
&self,
_interval: &Interval,
_inputs: &[&Interval],
) -> Result<Option<Vec<Interval>>, DataFusionError> { ... }
fn output_ordering(
&self,
_inputs: &[ExprProperties],
) -> Result<SortProperties, DataFusionError> { ... }
fn coerce_types(
&self,
_arg_types: &[DataType],
) -> Result<Vec<DataType>, DataFusionError> { ... }
fn equals(&self, other: &dyn ScalarUDFImpl) -> bool { ... }
fn hash_value(&self) -> u64 { ... }
fn documentation(&self) -> Option<&Documentation> { ... }
}
Expand description
Trait for implementing ScalarUDF
.
This trait exposes the full API for implementing user defined functions and can be used to implement any function.
See advanced_udf.rs
for a full example with complete implementation and
ScalarUDF
for other available options.
§Basic Example
#[derive(Debug)]
struct AddOne {
signature: Signature,
}
impl AddOne {
fn new() -> Self {
Self {
signature: Signature::uniform(1, vec![DataType::Int32], Volatility::Immutable),
}
}
}
static DOCUMENTATION: OnceLock<Documentation> = OnceLock::new();
fn get_doc() -> &'static Documentation {
DOCUMENTATION.get_or_init(|| {
Documentation::builder()
.with_doc_section(DOC_SECTION_MATH)
.with_description("Add one to an int32")
.with_syntax_example("add_one(2)")
.with_argument("arg1", "The int32 number to add one to")
.build()
.unwrap()
})
}
/// Implement the ScalarUDFImpl trait for AddOne
impl ScalarUDFImpl for AddOne {
fn as_any(&self) -> &dyn Any { self }
fn name(&self) -> &str { "add_one" }
fn signature(&self) -> &Signature { &self.signature }
fn return_type(&self, args: &[DataType]) -> Result<DataType> {
if !matches!(args.get(0), Some(&DataType::Int32)) {
return plan_err!("add_one only accepts Int32 arguments");
}
Ok(DataType::Int32)
}
// The actual implementation would add one to the argument
fn invoke(&self, args: &[ColumnarValue]) -> Result<ColumnarValue> { unimplemented!() }
fn documentation(&self) -> Option<&Documentation> {
Some(get_doc())
}
}
// Create a new ScalarUDF from the implementation
let add_one = ScalarUDF::from(AddOne::new());
// Call the function `add_one(col)`
let expr = add_one.call(vec![col("a")]);
Required Methods§
Sourcefn signature(&self) -> &Signature
fn signature(&self) -> &Signature
Returns the function’s Signature
for information about what input
types are accepted and the function’s Volatility.
Sourcefn return_type(
&self,
arg_types: &[DataType],
) -> Result<DataType, DataFusionError>
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
What DataType
will be returned by this function, given the types of
the arguments.
§Notes
If you provide an implementation for Self::return_type_from_exprs
,
DataFusion will not call return_type
(this function). In this case it
is recommended to return DataFusionError::Internal
.
Provided Methods§
Sourcefn display_name(&self, args: &[Expr]) -> Result<String, DataFusionError>
fn display_name(&self, args: &[Expr]) -> Result<String, DataFusionError>
Returns the user-defined display name of the UDF given the arguments
Sourcefn schema_name(&self, args: &[Expr]) -> Result<String, DataFusionError>
fn schema_name(&self, args: &[Expr]) -> Result<String, DataFusionError>
Returns the name of the column this expression would create
See Expr::schema_name
for details
Sourcefn return_type_from_exprs(
&self,
_args: &[Expr],
_schema: &dyn ExprSchema,
arg_types: &[DataType],
) -> Result<DataType, DataFusionError>
fn return_type_from_exprs( &self, _args: &[Expr], _schema: &dyn ExprSchema, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
What DataType
will be returned by this function, given the
arguments?
Note most UDFs should implement Self::return_type
and not this
function. The output type for most functions only depends on the types
of their inputs (e.g. sqrt(f32)
is always f32
).
By default, this function calls Self::return_type
with the
types of each argument.
This method can be overridden for functions that return different types based on the values of their arguments.
For example, the following two function calls get the same argument
types (something and a Utf8
string) but return different types based
on the value of the second argument:
arrow_cast(x, 'Int16')
–>Int16
arrow_cast(x, 'Float32')
–>Float32
§Notes:
This function must consistently return the same type for the same
logical input even if the input is simplified (e.g. it must return the same
value for ('foo' | 'bar')
as it does for (‘foobar’).
fn is_nullable(&self, _args: &[Expr], _schema: &dyn ExprSchema) -> bool
Sourcefn invoke(
&self,
_args: &[ColumnarValue],
) -> Result<ColumnarValue, DataFusionError>
👎Deprecated since 42.1.0: Use invoke_batch
instead
fn invoke( &self, _args: &[ColumnarValue], ) -> Result<ColumnarValue, DataFusionError>
invoke_batch
insteadInvoke the function on args
, returning the appropriate result
The function will be invoked passed with the slice of ColumnarValue
(either scalar or array).
If the function does not take any arguments, please use invoke_no_args instead and return not_impl_err for this function.
§Performance
For the best performance, the implementations of invoke
should handle
the common case when one or more of their arguments are constant values
(aka ColumnarValue::Scalar
).
ColumnarValue::values_to_arrays
can be used to convert the arguments
to arrays, which will likely be simpler code, but be slower.
Sourcefn invoke_batch(
&self,
args: &[ColumnarValue],
number_rows: usize,
) -> Result<ColumnarValue, DataFusionError>
fn invoke_batch( &self, args: &[ColumnarValue], number_rows: usize, ) -> Result<ColumnarValue, DataFusionError>
Invoke the function with args
and the number of rows,
returning the appropriate result.
The function will be invoked with the slice of ColumnarValue
(either scalar or array).
§Performance
For the best performance, the implementations should handle the common case
when one or more of their arguments are constant values (aka
ColumnarValue::Scalar
).
ColumnarValue::values_to_arrays
can be used to convert the arguments
to arrays, which will likely be simpler code, but be slower.
Sourcefn invoke_no_args(
&self,
_number_rows: usize,
) -> Result<ColumnarValue, DataFusionError>
👎Deprecated since 42.1.0: Use invoke_batch
instead
fn invoke_no_args( &self, _number_rows: usize, ) -> Result<ColumnarValue, DataFusionError>
invoke_batch
insteadInvoke the function without args
, instead the number of rows are provided,
returning the appropriate result.
Sourcefn aliases(&self) -> &[String]
fn aliases(&self) -> &[String]
Returns any aliases (alternate names) for this function.
Aliases can be used to invoke the same function using different names.
For example in some databases now()
and current_timestamp()
are
aliases for the same function. This behavior can be obtained by
returning current_timestamp
as an alias for the now
function.
Note: aliases
should only include names other than Self::name
.
Defaults to []
(no aliases)
Sourcefn simplify(
&self,
args: Vec<Expr>,
_info: &dyn SimplifyInfo,
) -> Result<ExprSimplifyResult, DataFusionError>
fn simplify( &self, args: Vec<Expr>, _info: &dyn SimplifyInfo, ) -> Result<ExprSimplifyResult, DataFusionError>
Optionally apply per-UDF simplification / rewrite rules.
This can be used to apply function specific simplification rules during
optimization (e.g. arrow_cast
–> Expr::Cast
). The default
implementation does nothing.
Note that DataFusion handles simplifying arguments and “constant
folding” (replacing a function call with constant arguments such as
my_add(1,2) --> 3
). Thus, there is no need to implement such
optimizations manually for specific UDFs.
§Arguments
args
: The arguments of the functioninfo
: The necessary information for simplification
§Returns
ExprSimplifyResult
indicating the result of the simplification NOTE
if the function cannot be simplified, the arguments MUST be returned
unmodified
Sourcefn short_circuits(&self) -> bool
fn short_circuits(&self) -> bool
Returns true if some of this exprs
subexpressions may not be evaluated
and thus any side effects (like divide by zero) may not be encountered
Setting this to true prevents certain optimizations such as common subexpression elimination
Sourcefn evaluate_bounds(
&self,
_input: &[&Interval],
) -> Result<Interval, DataFusionError>
fn evaluate_bounds( &self, _input: &[&Interval], ) -> Result<Interval, DataFusionError>
Computes the output interval for a ScalarUDFImpl
, given the input
intervals.
§Parameters
children
are the intervals for the children (inputs) of this function.
§Example
If the function is ABS(a)
, and the input interval is a: [-3, 2]
,
then the output interval would be [0, 3]
.
Sourcefn propagate_constraints(
&self,
_interval: &Interval,
_inputs: &[&Interval],
) -> Result<Option<Vec<Interval>>, DataFusionError>
fn propagate_constraints( &self, _interval: &Interval, _inputs: &[&Interval], ) -> Result<Option<Vec<Interval>>, DataFusionError>
Updates bounds for child expressions, given a known interval for this function. This is used to propagate constraints down through an expression tree.
§Parameters
interval
is the currently known interval for this function.inputs
are the current intervals for the inputs (children) of this function.
§Returns
A Vec
of new intervals for the children, in order.
If constraint propagation reveals an infeasibility for any child, returns
None
. If none of the children intervals change as a result of
propagation, may return an empty vector instead of cloning children
.
This is the default (and conservative) return value.
§Example
If the function is ABS(a)
, the current interval
is [4, 5]
and the
input a
is given as [-7, 3]
, then propagation would return [-5, 3]
.
Sourcefn output_ordering(
&self,
_inputs: &[ExprProperties],
) -> Result<SortProperties, DataFusionError>
fn output_ordering( &self, _inputs: &[ExprProperties], ) -> Result<SortProperties, DataFusionError>
Calculates the SortProperties
of this function based on its
children’s properties.
Sourcefn coerce_types(
&self,
_arg_types: &[DataType],
) -> Result<Vec<DataType>, DataFusionError>
fn coerce_types( &self, _arg_types: &[DataType], ) -> Result<Vec<DataType>, DataFusionError>
Coerce arguments of a function call to types that the function can evaluate.
This function is only called if ScalarUDFImpl::signature
returns crate::TypeSignature::UserDefined
. Most
UDFs should return one of the other variants of TypeSignature
which handle common
cases
See the type coercion module documentation for more details on type coercion
For example, if your function requires a floating point arguments, but the user calls
it like my_func(1::int)
(i.e. with 1
as an integer), coerce_types can return [DataType::Float64]
to ensure the argument is converted to 1::double
§Parameters
arg_types
: The argument types of the arguments this function with
§Return value
A Vec the same length as arg_types
. DataFusion will CAST
the function call
arguments to these specific types.
Sourcefn equals(&self, other: &dyn ScalarUDFImpl) -> bool
fn equals(&self, other: &dyn ScalarUDFImpl) -> bool
Return true if this scalar UDF is equal to the other.
Allows customizing the equality of scalar UDFs.
Must be consistent with Self::hash_value
and follow the same rules as Eq
:
- reflexive:
a.equals(a)
; - symmetric:
a.equals(b)
impliesb.equals(a)
; - transitive:
a.equals(b)
andb.equals(c)
impliesa.equals(c)
.
By default, compares Self::name
and Self::signature
.
Sourcefn hash_value(&self) -> u64
fn hash_value(&self) -> u64
Returns a hash value for this scalar UDF.
Allows customizing the hash code of scalar UDFs. Similarly to Hash
and Eq
,
if Self::equals
returns true for two UDFs, their hash_value
s must be the same.
By default, hashes Self::name
and Self::signature
.
Sourcefn documentation(&self) -> Option<&Documentation>
fn documentation(&self) -> Option<&Documentation>
Returns the documentation for this Scalar UDF.
Documentation can be accessed programmatically as well as generating publicly facing documentation.
Implementations on Foreign Types§
Source§impl ScalarUDFImpl for ArrayHas
impl ScalarUDFImpl for ArrayHas
fn as_any(&self) -> &(dyn Any + 'static)
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type(&self, _: &[DataType]) -> Result<DataType, DataFusionError>
Source§fn invoke(
&self,
args: &[ColumnarValue],
) -> Result<ColumnarValue, DataFusionError>
fn invoke( &self, args: &[ColumnarValue], ) -> Result<ColumnarValue, DataFusionError>
invoke_batch
insteadfn aliases(&self) -> &[String]
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for ArrayHasAll
impl ScalarUDFImpl for ArrayHasAll
fn as_any(&self) -> &(dyn Any + 'static)
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type(&self, _: &[DataType]) -> Result<DataType, DataFusionError>
Source§fn invoke(
&self,
args: &[ColumnarValue],
) -> Result<ColumnarValue, DataFusionError>
fn invoke( &self, args: &[ColumnarValue], ) -> Result<ColumnarValue, DataFusionError>
invoke_batch
insteadfn aliases(&self) -> &[String]
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for ArrayHasAny
impl ScalarUDFImpl for ArrayHasAny
fn as_any(&self) -> &(dyn Any + 'static)
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type(&self, _: &[DataType]) -> Result<DataType, DataFusionError>
Source§fn invoke(
&self,
args: &[ColumnarValue],
) -> Result<ColumnarValue, DataFusionError>
fn invoke( &self, args: &[ColumnarValue], ) -> Result<ColumnarValue, DataFusionError>
invoke_batch
insteadfn aliases(&self) -> &[String]
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for ArrayAppend
impl ScalarUDFImpl for ArrayAppend
fn as_any(&self) -> &(dyn Any + 'static)
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
Source§fn invoke(
&self,
args: &[ColumnarValue],
) -> Result<ColumnarValue, DataFusionError>
fn invoke( &self, args: &[ColumnarValue], ) -> Result<ColumnarValue, DataFusionError>
invoke_batch
insteadfn aliases(&self) -> &[String]
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for ArrayConcat
impl ScalarUDFImpl for ArrayConcat
fn as_any(&self) -> &(dyn Any + 'static)
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
Source§fn invoke(
&self,
args: &[ColumnarValue],
) -> Result<ColumnarValue, DataFusionError>
fn invoke( &self, args: &[ColumnarValue], ) -> Result<ColumnarValue, DataFusionError>
invoke_batch
insteadfn aliases(&self) -> &[String]
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for ArrayPrepend
impl ScalarUDFImpl for ArrayPrepend
fn as_any(&self) -> &(dyn Any + 'static)
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
Source§fn invoke(
&self,
args: &[ColumnarValue],
) -> Result<ColumnarValue, DataFusionError>
fn invoke( &self, args: &[ColumnarValue], ) -> Result<ColumnarValue, DataFusionError>
invoke_batch
insteadfn aliases(&self) -> &[String]
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for MakeArray
impl ScalarUDFImpl for MakeArray
fn as_any(&self) -> &(dyn Any + 'static)
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
Source§fn invoke(
&self,
args: &[ColumnarValue],
) -> Result<ColumnarValue, DataFusionError>
fn invoke( &self, args: &[ColumnarValue], ) -> Result<ColumnarValue, DataFusionError>
invoke_batch
insteadSource§fn invoke_no_args(
&self,
_number_rows: usize,
) -> Result<ColumnarValue, DataFusionError>
fn invoke_no_args( &self, _number_rows: usize, ) -> Result<ColumnarValue, DataFusionError>
invoke_batch
insteadfn aliases(&self) -> &[String]
fn coerce_types( &self, arg_types: &[DataType], ) -> Result<Vec<DataType>, DataFusionError>
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for MapFunc
impl ScalarUDFImpl for MapFunc
fn as_any(&self) -> &(dyn Any + 'static)
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
Source§fn invoke(
&self,
args: &[ColumnarValue],
) -> Result<ColumnarValue, DataFusionError>
fn invoke( &self, args: &[ColumnarValue], ) -> Result<ColumnarValue, DataFusionError>
invoke_batch
insteadfn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for ArrowCastFunc
impl ScalarUDFImpl for ArrowCastFunc
fn as_any(&self) -> &(dyn Any + 'static)
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn is_nullable(&self, args: &[Expr], schema: &dyn ExprSchema) -> bool
fn return_type_from_exprs( &self, args: &[Expr], _schema: &dyn ExprSchema, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
Source§fn invoke(
&self,
_args: &[ColumnarValue],
) -> Result<ColumnarValue, DataFusionError>
fn invoke( &self, _args: &[ColumnarValue], ) -> Result<ColumnarValue, DataFusionError>
invoke_batch
insteadfn simplify( &self, args: Vec<Expr>, info: &dyn SimplifyInfo, ) -> Result<ExprSimplifyResult, DataFusionError>
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for ArrowTypeOfFunc
impl ScalarUDFImpl for ArrowTypeOfFunc
fn as_any(&self) -> &(dyn Any + 'static)
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
Source§fn invoke(
&self,
args: &[ColumnarValue],
) -> Result<ColumnarValue, DataFusionError>
fn invoke( &self, args: &[ColumnarValue], ) -> Result<ColumnarValue, DataFusionError>
invoke_batch
insteadfn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for CoalesceFunc
impl ScalarUDFImpl for CoalesceFunc
Source§fn invoke(
&self,
args: &[ColumnarValue],
) -> Result<ColumnarValue, DataFusionError>
👎Deprecated since 42.1.0: Use invoke_batch
instead
fn invoke( &self, args: &[ColumnarValue], ) -> Result<ColumnarValue, DataFusionError>
invoke_batch
insteadcoalesce evaluates to the first value which is not NULL
fn as_any(&self) -> &(dyn Any + 'static)
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn is_nullable(&self, args: &[Expr], schema: &dyn ExprSchema) -> bool
fn short_circuits(&self) -> bool
fn coerce_types( &self, arg_types: &[DataType], ) -> Result<Vec<DataType>, DataFusionError>
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for GetFieldFunc
impl ScalarUDFImpl for GetFieldFunc
fn as_any(&self) -> &(dyn Any + 'static)
fn name(&self) -> &str
fn display_name(&self, args: &[Expr]) -> Result<String, DataFusionError>
fn schema_name(&self, args: &[Expr]) -> Result<String, DataFusionError>
fn signature(&self) -> &Signature
fn return_type(&self, _: &[DataType]) -> Result<DataType, DataFusionError>
fn return_type_from_exprs( &self, args: &[Expr], schema: &dyn ExprSchema, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
Source§fn invoke(
&self,
args: &[ColumnarValue],
) -> Result<ColumnarValue, DataFusionError>
fn invoke( &self, args: &[ColumnarValue], ) -> Result<ColumnarValue, DataFusionError>
invoke_batch
insteadfn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for NamedStructFunc
impl ScalarUDFImpl for NamedStructFunc
fn as_any(&self) -> &(dyn Any + 'static)
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn return_type_from_exprs( &self, args: &[Expr], schema: &dyn ExprSchema, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
Source§fn invoke(
&self,
args: &[ColumnarValue],
) -> Result<ColumnarValue, DataFusionError>
fn invoke( &self, args: &[ColumnarValue], ) -> Result<ColumnarValue, DataFusionError>
invoke_batch
insteadfn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for NullIfFunc
impl ScalarUDFImpl for NullIfFunc
fn as_any(&self) -> &(dyn Any + 'static)
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
Source§fn invoke(
&self,
args: &[ColumnarValue],
) -> Result<ColumnarValue, DataFusionError>
fn invoke( &self, args: &[ColumnarValue], ) -> Result<ColumnarValue, DataFusionError>
invoke_batch
insteadfn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for NVL2Func
impl ScalarUDFImpl for NVL2Func
fn as_any(&self) -> &(dyn Any + 'static)
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
Source§fn invoke(
&self,
args: &[ColumnarValue],
) -> Result<ColumnarValue, DataFusionError>
fn invoke( &self, args: &[ColumnarValue], ) -> Result<ColumnarValue, DataFusionError>
invoke_batch
insteadfn coerce_types( &self, arg_types: &[DataType], ) -> Result<Vec<DataType>, DataFusionError>
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for NVLFunc
impl ScalarUDFImpl for NVLFunc
fn as_any(&self) -> &(dyn Any + 'static)
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
Source§fn invoke(
&self,
args: &[ColumnarValue],
) -> Result<ColumnarValue, DataFusionError>
fn invoke( &self, args: &[ColumnarValue], ) -> Result<ColumnarValue, DataFusionError>
invoke_batch
insteadfn aliases(&self) -> &[String]
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for StructFunc
impl ScalarUDFImpl for StructFunc
fn as_any(&self) -> &(dyn Any + 'static)
fn name(&self) -> &str
fn aliases(&self) -> &[String]
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
Source§fn invoke(
&self,
args: &[ColumnarValue],
) -> Result<ColumnarValue, DataFusionError>
fn invoke( &self, args: &[ColumnarValue], ) -> Result<ColumnarValue, DataFusionError>
invoke_batch
insteadfn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for VersionFunc
impl ScalarUDFImpl for VersionFunc
fn as_any(&self) -> &(dyn Any + 'static)
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type(&self, args: &[DataType]) -> Result<DataType, DataFusionError>
Source§fn invoke(&self, _: &[ColumnarValue]) -> Result<ColumnarValue, DataFusionError>
fn invoke(&self, _: &[ColumnarValue]) -> Result<ColumnarValue, DataFusionError>
invoke_batch
insteadSource§fn invoke_no_args(&self, _: usize) -> Result<ColumnarValue, DataFusionError>
fn invoke_no_args(&self, _: usize) -> Result<ColumnarValue, DataFusionError>
invoke_batch
insteadfn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for DigestFunc
impl ScalarUDFImpl for DigestFunc
fn as_any(&self) -> &(dyn Any + 'static)
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
Source§fn invoke(
&self,
args: &[ColumnarValue],
) -> Result<ColumnarValue, DataFusionError>
fn invoke( &self, args: &[ColumnarValue], ) -> Result<ColumnarValue, DataFusionError>
invoke_batch
insteadfn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for Md5Func
impl ScalarUDFImpl for Md5Func
fn as_any(&self) -> &(dyn Any + 'static)
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
Source§fn invoke(
&self,
args: &[ColumnarValue],
) -> Result<ColumnarValue, DataFusionError>
fn invoke( &self, args: &[ColumnarValue], ) -> Result<ColumnarValue, DataFusionError>
invoke_batch
insteadfn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for SHA224Func
impl ScalarUDFImpl for SHA224Func
fn as_any(&self) -> &(dyn Any + 'static)
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
Source§fn invoke(
&self,
args: &[ColumnarValue],
) -> Result<ColumnarValue, DataFusionError>
fn invoke( &self, args: &[ColumnarValue], ) -> Result<ColumnarValue, DataFusionError>
invoke_batch
insteadfn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for SHA256Func
impl ScalarUDFImpl for SHA256Func
fn as_any(&self) -> &(dyn Any + 'static)
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
Source§fn invoke(
&self,
args: &[ColumnarValue],
) -> Result<ColumnarValue, DataFusionError>
fn invoke( &self, args: &[ColumnarValue], ) -> Result<ColumnarValue, DataFusionError>
invoke_batch
insteadfn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for SHA384Func
impl ScalarUDFImpl for SHA384Func
fn as_any(&self) -> &(dyn Any + 'static)
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
Source§fn invoke(
&self,
args: &[ColumnarValue],
) -> Result<ColumnarValue, DataFusionError>
fn invoke( &self, args: &[ColumnarValue], ) -> Result<ColumnarValue, DataFusionError>
invoke_batch
insteadfn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for SHA512Func
impl ScalarUDFImpl for SHA512Func
fn as_any(&self) -> &(dyn Any + 'static)
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
Source§fn invoke(
&self,
args: &[ColumnarValue],
) -> Result<ColumnarValue, DataFusionError>
fn invoke( &self, args: &[ColumnarValue], ) -> Result<ColumnarValue, DataFusionError>
invoke_batch
insteadfn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for CurrentDateFunc
impl ScalarUDFImpl for CurrentDateFunc
Create an implementation of current_date()
that always returns the
specified current date.
The semantics of current_date()
require it to return the same value
wherever it appears within a single statement. This value is
chosen during planning time.
fn as_any(&self) -> &(dyn Any + 'static)
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
Source§fn invoke(
&self,
_args: &[ColumnarValue],
) -> Result<ColumnarValue, DataFusionError>
fn invoke( &self, _args: &[ColumnarValue], ) -> Result<ColumnarValue, DataFusionError>
invoke_batch
insteadfn aliases(&self) -> &[String]
fn simplify( &self, _args: Vec<Expr>, info: &dyn SimplifyInfo, ) -> Result<ExprSimplifyResult, DataFusionError>
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for CurrentTimeFunc
impl ScalarUDFImpl for CurrentTimeFunc
Create an implementation of current_time()
that always returns the
specified current time.
The semantics of current_time()
require it to return the same value
wherever it appears within a single statement. This value is
chosen during planning time.
fn as_any(&self) -> &(dyn Any + 'static)
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
Source§fn invoke(
&self,
_args: &[ColumnarValue],
) -> Result<ColumnarValue, DataFusionError>
fn invoke( &self, _args: &[ColumnarValue], ) -> Result<ColumnarValue, DataFusionError>
invoke_batch
insteadfn simplify( &self, _args: Vec<Expr>, info: &dyn SimplifyInfo, ) -> Result<ExprSimplifyResult, DataFusionError>
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for DateBinFunc
impl ScalarUDFImpl for DateBinFunc
fn as_any(&self) -> &(dyn Any + 'static)
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
Source§fn invoke(
&self,
args: &[ColumnarValue],
) -> Result<ColumnarValue, DataFusionError>
fn invoke( &self, args: &[ColumnarValue], ) -> Result<ColumnarValue, DataFusionError>
invoke_batch
insteadfn output_ordering( &self, input: &[ExprProperties], ) -> Result<SortProperties, DataFusionError>
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for DatePartFunc
impl ScalarUDFImpl for DatePartFunc
fn as_any(&self) -> &(dyn Any + 'static)
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
Source§fn invoke(
&self,
args: &[ColumnarValue],
) -> Result<ColumnarValue, DataFusionError>
fn invoke( &self, args: &[ColumnarValue], ) -> Result<ColumnarValue, DataFusionError>
invoke_batch
insteadfn aliases(&self) -> &[String]
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for DateTruncFunc
impl ScalarUDFImpl for DateTruncFunc
fn as_any(&self) -> &(dyn Any + 'static)
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
Source§fn invoke(
&self,
args: &[ColumnarValue],
) -> Result<ColumnarValue, DataFusionError>
fn invoke( &self, args: &[ColumnarValue], ) -> Result<ColumnarValue, DataFusionError>
invoke_batch
insteadfn aliases(&self) -> &[String]
fn output_ordering( &self, input: &[ExprProperties], ) -> Result<SortProperties, DataFusionError>
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for FromUnixtimeFunc
impl ScalarUDFImpl for FromUnixtimeFunc
fn as_any(&self) -> &(dyn Any + 'static)
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type_from_exprs( &self, args: &[Expr], _schema: &dyn ExprSchema, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
Source§fn invoke(
&self,
args: &[ColumnarValue],
) -> Result<ColumnarValue, DataFusionError>
fn invoke( &self, args: &[ColumnarValue], ) -> Result<ColumnarValue, DataFusionError>
invoke_batch
insteadfn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for MakeDateFunc
impl ScalarUDFImpl for MakeDateFunc
fn as_any(&self) -> &(dyn Any + 'static)
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
Source§fn invoke(
&self,
args: &[ColumnarValue],
) -> Result<ColumnarValue, DataFusionError>
fn invoke( &self, args: &[ColumnarValue], ) -> Result<ColumnarValue, DataFusionError>
invoke_batch
insteadfn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for NowFunc
impl ScalarUDFImpl for NowFunc
Create an implementation of now()
that always returns the
specified timestamp.
The semantics of now()
require it to return the same value
wherever it appears within a single statement. This value is
chosen during planning time.
fn as_any(&self) -> &(dyn Any + 'static)
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
Source§fn invoke(
&self,
_args: &[ColumnarValue],
) -> Result<ColumnarValue, DataFusionError>
fn invoke( &self, _args: &[ColumnarValue], ) -> Result<ColumnarValue, DataFusionError>
invoke_batch
insteadfn simplify( &self, _args: Vec<Expr>, info: &dyn SimplifyInfo, ) -> Result<ExprSimplifyResult, DataFusionError>
fn documentation(&self) -> Option<&Documentation>
fn aliases(&self) -> &[String]
fn is_nullable(&self, _args: &[Expr], _schema: &dyn ExprSchema) -> bool
Source§impl ScalarUDFImpl for ToCharFunc
impl ScalarUDFImpl for ToCharFunc
fn as_any(&self) -> &(dyn Any + 'static)
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
Source§fn invoke(
&self,
args: &[ColumnarValue],
) -> Result<ColumnarValue, DataFusionError>
fn invoke( &self, args: &[ColumnarValue], ) -> Result<ColumnarValue, DataFusionError>
invoke_batch
insteadfn aliases(&self) -> &[String]
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for ToDateFunc
impl ScalarUDFImpl for ToDateFunc
fn as_any(&self) -> &(dyn Any + 'static)
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
Source§fn invoke(
&self,
args: &[ColumnarValue],
) -> Result<ColumnarValue, DataFusionError>
fn invoke( &self, args: &[ColumnarValue], ) -> Result<ColumnarValue, DataFusionError>
invoke_batch
insteadfn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for ToLocalTimeFunc
impl ScalarUDFImpl for ToLocalTimeFunc
fn as_any(&self) -> &(dyn Any + 'static)
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
Source§fn invoke(
&self,
args: &[ColumnarValue],
) -> Result<ColumnarValue, DataFusionError>
fn invoke( &self, args: &[ColumnarValue], ) -> Result<ColumnarValue, DataFusionError>
invoke_batch
insteadfn coerce_types( &self, arg_types: &[DataType], ) -> Result<Vec<DataType>, DataFusionError>
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for ToTimestampFunc
impl ScalarUDFImpl for ToTimestampFunc
to_timestamp SQL function
Note: to_timestamp
returns Timestamp(Nanosecond)
though its arguments are interpreted as seconds.
The supported range for integer input is between -9223372037
and 9223372036
.
Supported range for string input is between 1677-09-21T00:12:44.0
and 2262-04-11T23:47:16.0
.
Please use to_timestamp_seconds
for the input outside of supported bounds.
fn as_any(&self) -> &(dyn Any + 'static)
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
Source§fn invoke(
&self,
args: &[ColumnarValue],
) -> Result<ColumnarValue, DataFusionError>
fn invoke( &self, args: &[ColumnarValue], ) -> Result<ColumnarValue, DataFusionError>
invoke_batch
insteadfn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for ToTimestampMicrosFunc
impl ScalarUDFImpl for ToTimestampMicrosFunc
fn as_any(&self) -> &(dyn Any + 'static)
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
Source§fn invoke(
&self,
args: &[ColumnarValue],
) -> Result<ColumnarValue, DataFusionError>
fn invoke( &self, args: &[ColumnarValue], ) -> Result<ColumnarValue, DataFusionError>
invoke_batch
insteadfn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for ToTimestampMillisFunc
impl ScalarUDFImpl for ToTimestampMillisFunc
fn as_any(&self) -> &(dyn Any + 'static)
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
Source§fn invoke(
&self,
args: &[ColumnarValue],
) -> Result<ColumnarValue, DataFusionError>
fn invoke( &self, args: &[ColumnarValue], ) -> Result<ColumnarValue, DataFusionError>
invoke_batch
insteadfn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for ToTimestampNanosFunc
impl ScalarUDFImpl for ToTimestampNanosFunc
fn as_any(&self) -> &(dyn Any + 'static)
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
Source§fn invoke(
&self,
args: &[ColumnarValue],
) -> Result<ColumnarValue, DataFusionError>
fn invoke( &self, args: &[ColumnarValue], ) -> Result<ColumnarValue, DataFusionError>
invoke_batch
insteadfn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for ToTimestampSecondsFunc
impl ScalarUDFImpl for ToTimestampSecondsFunc
fn as_any(&self) -> &(dyn Any + 'static)
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
Source§fn invoke(
&self,
args: &[ColumnarValue],
) -> Result<ColumnarValue, DataFusionError>
fn invoke( &self, args: &[ColumnarValue], ) -> Result<ColumnarValue, DataFusionError>
invoke_batch
insteadfn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for ToUnixtimeFunc
impl ScalarUDFImpl for ToUnixtimeFunc
fn as_any(&self) -> &(dyn Any + 'static)
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_batch( &self, args: &[ColumnarValue], batch_size: usize, ) -> Result<ColumnarValue, DataFusionError>
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for DecodeFunc
impl ScalarUDFImpl for DecodeFunc
fn as_any(&self) -> &(dyn Any + 'static)
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
Source§fn invoke(
&self,
args: &[ColumnarValue],
) -> Result<ColumnarValue, DataFusionError>
fn invoke( &self, args: &[ColumnarValue], ) -> Result<ColumnarValue, DataFusionError>
invoke_batch
insteadfn coerce_types( &self, arg_types: &[DataType], ) -> Result<Vec<DataType>, DataFusionError>
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for EncodeFunc
impl ScalarUDFImpl for EncodeFunc
fn as_any(&self) -> &(dyn Any + 'static)
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
Source§fn invoke(
&self,
args: &[ColumnarValue],
) -> Result<ColumnarValue, DataFusionError>
fn invoke( &self, args: &[ColumnarValue], ) -> Result<ColumnarValue, DataFusionError>
invoke_batch
insteadfn coerce_types( &self, arg_types: &[DataType], ) -> Result<Vec<DataType>, DataFusionError>
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for AbsFunc
impl ScalarUDFImpl for AbsFunc
fn as_any(&self) -> &(dyn Any + 'static)
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
Source§fn invoke(
&self,
args: &[ColumnarValue],
) -> Result<ColumnarValue, DataFusionError>
fn invoke( &self, args: &[ColumnarValue], ) -> Result<ColumnarValue, DataFusionError>
invoke_batch
insteadfn output_ordering( &self, input: &[ExprProperties], ) -> Result<SortProperties, DataFusionError>
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for CotFunc
impl ScalarUDFImpl for CotFunc
fn as_any(&self) -> &(dyn Any + 'static)
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn documentation(&self) -> Option<&Documentation>
Source§fn invoke(
&self,
args: &[ColumnarValue],
) -> Result<ColumnarValue, DataFusionError>
fn invoke( &self, args: &[ColumnarValue], ) -> Result<ColumnarValue, DataFusionError>
invoke_batch
insteadSource§impl ScalarUDFImpl for FactorialFunc
impl ScalarUDFImpl for FactorialFunc
fn as_any(&self) -> &(dyn Any + 'static)
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
Source§fn invoke(
&self,
args: &[ColumnarValue],
) -> Result<ColumnarValue, DataFusionError>
fn invoke( &self, args: &[ColumnarValue], ) -> Result<ColumnarValue, DataFusionError>
invoke_batch
insteadfn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for GcdFunc
impl ScalarUDFImpl for GcdFunc
fn as_any(&self) -> &(dyn Any + 'static)
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
Source§fn invoke(
&self,
args: &[ColumnarValue],
) -> Result<ColumnarValue, DataFusionError>
fn invoke( &self, args: &[ColumnarValue], ) -> Result<ColumnarValue, DataFusionError>
invoke_batch
insteadfn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for IsZeroFunc
impl ScalarUDFImpl for IsZeroFunc
fn as_any(&self) -> &(dyn Any + 'static)
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
Source§fn invoke(
&self,
args: &[ColumnarValue],
) -> Result<ColumnarValue, DataFusionError>
fn invoke( &self, args: &[ColumnarValue], ) -> Result<ColumnarValue, DataFusionError>
invoke_batch
insteadfn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for LcmFunc
impl ScalarUDFImpl for LcmFunc
fn as_any(&self) -> &(dyn Any + 'static)
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
Source§fn invoke(
&self,
args: &[ColumnarValue],
) -> Result<ColumnarValue, DataFusionError>
fn invoke( &self, args: &[ColumnarValue], ) -> Result<ColumnarValue, DataFusionError>
invoke_batch
insteadfn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for LogFunc
impl ScalarUDFImpl for LogFunc
Source§fn simplify(
&self,
args: Vec<Expr>,
info: &dyn SimplifyInfo,
) -> Result<ExprSimplifyResult, DataFusionError>
fn simplify( &self, args: Vec<Expr>, info: &dyn SimplifyInfo, ) -> Result<ExprSimplifyResult, DataFusionError>
Simplify the log
function by the relevant rules:
- Log(a, 1) ===> 0
- Log(a, Power(a, b)) ===> b
- Log(a, a) ===> 1
fn as_any(&self) -> &(dyn Any + 'static)
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn output_ordering( &self, input: &[ExprProperties], ) -> Result<SortProperties, DataFusionError>
Source§fn invoke(
&self,
args: &[ColumnarValue],
) -> Result<ColumnarValue, DataFusionError>
fn invoke( &self, args: &[ColumnarValue], ) -> Result<ColumnarValue, DataFusionError>
invoke_batch
insteadfn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for IsNanFunc
impl ScalarUDFImpl for IsNanFunc
fn as_any(&self) -> &(dyn Any + 'static)
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
Source§fn invoke(
&self,
args: &[ColumnarValue],
) -> Result<ColumnarValue, DataFusionError>
fn invoke( &self, args: &[ColumnarValue], ) -> Result<ColumnarValue, DataFusionError>
invoke_batch
insteadfn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for NanvlFunc
impl ScalarUDFImpl for NanvlFunc
fn as_any(&self) -> &(dyn Any + 'static)
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
Source§fn invoke(
&self,
args: &[ColumnarValue],
) -> Result<ColumnarValue, DataFusionError>
fn invoke( &self, args: &[ColumnarValue], ) -> Result<ColumnarValue, DataFusionError>
invoke_batch
insteadfn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for PiFunc
impl ScalarUDFImpl for PiFunc
fn as_any(&self) -> &(dyn Any + 'static)
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
Source§fn invoke(
&self,
_args: &[ColumnarValue],
) -> Result<ColumnarValue, DataFusionError>
fn invoke( &self, _args: &[ColumnarValue], ) -> Result<ColumnarValue, DataFusionError>
invoke_batch
insteadSource§fn invoke_no_args(
&self,
_number_rows: usize,
) -> Result<ColumnarValue, DataFusionError>
fn invoke_no_args( &self, _number_rows: usize, ) -> Result<ColumnarValue, DataFusionError>
invoke_batch
insteadfn output_ordering( &self, _input: &[ExprProperties], ) -> Result<SortProperties, DataFusionError>
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for PowerFunc
impl ScalarUDFImpl for PowerFunc
Source§fn simplify(
&self,
args: Vec<Expr>,
info: &dyn SimplifyInfo,
) -> Result<ExprSimplifyResult, DataFusionError>
fn simplify( &self, args: Vec<Expr>, info: &dyn SimplifyInfo, ) -> Result<ExprSimplifyResult, DataFusionError>
Simplify the power
function by the relevant rules:
- Power(a, 0) ===> 0
- Power(a, 1) ===> a
- Power(a, Log(a, b)) ===> b
fn as_any(&self) -> &(dyn Any + 'static)
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn aliases(&self) -> &[String]
Source§fn invoke(
&self,
args: &[ColumnarValue],
) -> Result<ColumnarValue, DataFusionError>
fn invoke( &self, args: &[ColumnarValue], ) -> Result<ColumnarValue, DataFusionError>
invoke_batch
insteadfn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for RandomFunc
impl ScalarUDFImpl for RandomFunc
fn as_any(&self) -> &(dyn Any + 'static)
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
Source§fn invoke(
&self,
_args: &[ColumnarValue],
) -> Result<ColumnarValue, DataFusionError>
fn invoke( &self, _args: &[ColumnarValue], ) -> Result<ColumnarValue, DataFusionError>
invoke_batch
insteadSource§fn invoke_no_args(
&self,
num_rows: usize,
) -> Result<ColumnarValue, DataFusionError>
fn invoke_no_args( &self, num_rows: usize, ) -> Result<ColumnarValue, DataFusionError>
invoke_batch
insteadfn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for RoundFunc
impl ScalarUDFImpl for RoundFunc
fn as_any(&self) -> &(dyn Any + 'static)
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
Source§fn invoke(
&self,
args: &[ColumnarValue],
) -> Result<ColumnarValue, DataFusionError>
fn invoke( &self, args: &[ColumnarValue], ) -> Result<ColumnarValue, DataFusionError>
invoke_batch
insteadfn output_ordering( &self, input: &[ExprProperties], ) -> Result<SortProperties, DataFusionError>
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for SignumFunc
impl ScalarUDFImpl for SignumFunc
fn as_any(&self) -> &(dyn Any + 'static)
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn output_ordering( &self, input: &[ExprProperties], ) -> Result<SortProperties, DataFusionError>
Source§fn invoke(
&self,
args: &[ColumnarValue],
) -> Result<ColumnarValue, DataFusionError>
fn invoke( &self, args: &[ColumnarValue], ) -> Result<ColumnarValue, DataFusionError>
invoke_batch
insteadfn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for TruncFunc
impl ScalarUDFImpl for TruncFunc
fn as_any(&self) -> &(dyn Any + 'static)
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
Source§fn invoke(
&self,
args: &[ColumnarValue],
) -> Result<ColumnarValue, DataFusionError>
fn invoke( &self, args: &[ColumnarValue], ) -> Result<ColumnarValue, DataFusionError>
invoke_batch
insteadfn output_ordering( &self, input: &[ExprProperties], ) -> Result<SortProperties, DataFusionError>
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for RegexpCountFunc
impl ScalarUDFImpl for RegexpCountFunc
fn as_any(&self) -> &(dyn Any + 'static)
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
Source§fn invoke(
&self,
args: &[ColumnarValue],
) -> Result<ColumnarValue, DataFusionError>
fn invoke( &self, args: &[ColumnarValue], ) -> Result<ColumnarValue, DataFusionError>
invoke_batch
insteadfn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for RegexpLikeFunc
impl ScalarUDFImpl for RegexpLikeFunc
fn as_any(&self) -> &(dyn Any + 'static)
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
Source§fn invoke(
&self,
args: &[ColumnarValue],
) -> Result<ColumnarValue, DataFusionError>
fn invoke( &self, args: &[ColumnarValue], ) -> Result<ColumnarValue, DataFusionError>
invoke_batch
insteadfn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for RegexpMatchFunc
impl ScalarUDFImpl for RegexpMatchFunc
fn as_any(&self) -> &(dyn Any + 'static)
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
Source§fn invoke(
&self,
args: &[ColumnarValue],
) -> Result<ColumnarValue, DataFusionError>
fn invoke( &self, args: &[ColumnarValue], ) -> Result<ColumnarValue, DataFusionError>
invoke_batch
insteadfn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for RegexpReplaceFunc
impl ScalarUDFImpl for RegexpReplaceFunc
fn as_any(&self) -> &(dyn Any + 'static)
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
Source§fn invoke(
&self,
args: &[ColumnarValue],
) -> Result<ColumnarValue, DataFusionError>
fn invoke( &self, args: &[ColumnarValue], ) -> Result<ColumnarValue, DataFusionError>
invoke_batch
insteadfn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for AsciiFunc
impl ScalarUDFImpl for AsciiFunc
fn as_any(&self) -> &(dyn Any + 'static)
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
Source§fn invoke(
&self,
args: &[ColumnarValue],
) -> Result<ColumnarValue, DataFusionError>
fn invoke( &self, args: &[ColumnarValue], ) -> Result<ColumnarValue, DataFusionError>
invoke_batch
insteadfn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for BitLengthFunc
impl ScalarUDFImpl for BitLengthFunc
fn as_any(&self) -> &(dyn Any + 'static)
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
Source§fn invoke(
&self,
args: &[ColumnarValue],
) -> Result<ColumnarValue, DataFusionError>
fn invoke( &self, args: &[ColumnarValue], ) -> Result<ColumnarValue, DataFusionError>
invoke_batch
insteadfn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for BTrimFunc
impl ScalarUDFImpl for BTrimFunc
fn as_any(&self) -> &(dyn Any + 'static)
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
Source§fn invoke(
&self,
args: &[ColumnarValue],
) -> Result<ColumnarValue, DataFusionError>
fn invoke( &self, args: &[ColumnarValue], ) -> Result<ColumnarValue, DataFusionError>
invoke_batch
insteadfn aliases(&self) -> &[String]
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for ChrFunc
impl ScalarUDFImpl for ChrFunc
fn as_any(&self) -> &(dyn Any + 'static)
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
Source§fn invoke(
&self,
args: &[ColumnarValue],
) -> Result<ColumnarValue, DataFusionError>
fn invoke( &self, args: &[ColumnarValue], ) -> Result<ColumnarValue, DataFusionError>
invoke_batch
insteadfn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for ConcatFunc
impl ScalarUDFImpl for ConcatFunc
Source§fn invoke(
&self,
args: &[ColumnarValue],
) -> Result<ColumnarValue, DataFusionError>
👎Deprecated since 42.1.0: Use invoke_batch
instead
fn invoke( &self, args: &[ColumnarValue], ) -> Result<ColumnarValue, DataFusionError>
invoke_batch
insteadConcatenates the text representations of all the arguments. NULL arguments are ignored. concat(‘abcde’, 2, NULL, 22) = ‘abcde222’
Source§fn simplify(
&self,
args: Vec<Expr>,
_info: &dyn SimplifyInfo,
) -> Result<ExprSimplifyResult, DataFusionError>
fn simplify( &self, args: Vec<Expr>, _info: &dyn SimplifyInfo, ) -> Result<ExprSimplifyResult, DataFusionError>
Simplify the concat
function by
- filtering out all
null
literals - concatenating contiguous literal arguments
For example:
concat(col(a), 'hello ', 'world', col(b), null)
will be optimized to
concat(col(a), 'hello world', col(b))
fn as_any(&self) -> &(dyn Any + 'static)
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for ConcatWsFunc
impl ScalarUDFImpl for ConcatWsFunc
Source§fn invoke(
&self,
args: &[ColumnarValue],
) -> Result<ColumnarValue, DataFusionError>
👎Deprecated since 42.1.0: Use invoke_batch
instead
fn invoke( &self, args: &[ColumnarValue], ) -> Result<ColumnarValue, DataFusionError>
invoke_batch
insteadConcatenates all but the first argument, with separators. The first argument is used as the separator string, and should not be NULL. Other NULL arguments are ignored. concat_ws(‘,’, ‘abcde’, 2, NULL, 22) = ‘abcde,2,22’
Source§fn simplify(
&self,
args: Vec<Expr>,
_info: &dyn SimplifyInfo,
) -> Result<ExprSimplifyResult, DataFusionError>
fn simplify( &self, args: Vec<Expr>, _info: &dyn SimplifyInfo, ) -> Result<ExprSimplifyResult, DataFusionError>
Simply the concat_ws
function by
- folding to
null
if the delimiter is null - filtering out
null
arguments - using
concat
to replaceconcat_ws
if the delimiter is an empty string - concatenating contiguous literals if the delimiter is a literal.
fn as_any(&self) -> &(dyn Any + 'static)
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for ContainsFunc
impl ScalarUDFImpl for ContainsFunc
fn as_any(&self) -> &(dyn Any + 'static)
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type(&self, _: &[DataType]) -> Result<DataType, DataFusionError>
Source§fn invoke(
&self,
args: &[ColumnarValue],
) -> Result<ColumnarValue, DataFusionError>
fn invoke( &self, args: &[ColumnarValue], ) -> Result<ColumnarValue, DataFusionError>
invoke_batch
insteadfn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for EndsWithFunc
impl ScalarUDFImpl for EndsWithFunc
fn as_any(&self) -> &(dyn Any + 'static)
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
Source§fn invoke(
&self,
args: &[ColumnarValue],
) -> Result<ColumnarValue, DataFusionError>
fn invoke( &self, args: &[ColumnarValue], ) -> Result<ColumnarValue, DataFusionError>
invoke_batch
insteadfn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for InitcapFunc
impl ScalarUDFImpl for InitcapFunc
fn as_any(&self) -> &(dyn Any + 'static)
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
Source§fn invoke(
&self,
args: &[ColumnarValue],
) -> Result<ColumnarValue, DataFusionError>
fn invoke( &self, args: &[ColumnarValue], ) -> Result<ColumnarValue, DataFusionError>
invoke_batch
insteadfn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for LevenshteinFunc
impl ScalarUDFImpl for LevenshteinFunc
fn as_any(&self) -> &(dyn Any + 'static)
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
Source§fn invoke(
&self,
args: &[ColumnarValue],
) -> Result<ColumnarValue, DataFusionError>
fn invoke( &self, args: &[ColumnarValue], ) -> Result<ColumnarValue, DataFusionError>
invoke_batch
insteadfn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for LowerFunc
impl ScalarUDFImpl for LowerFunc
fn as_any(&self) -> &(dyn Any + 'static)
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
Source§fn invoke(
&self,
args: &[ColumnarValue],
) -> Result<ColumnarValue, DataFusionError>
fn invoke( &self, args: &[ColumnarValue], ) -> Result<ColumnarValue, DataFusionError>
invoke_batch
insteadfn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for LtrimFunc
impl ScalarUDFImpl for LtrimFunc
fn as_any(&self) -> &(dyn Any + 'static)
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
Source§fn invoke(
&self,
args: &[ColumnarValue],
) -> Result<ColumnarValue, DataFusionError>
fn invoke( &self, args: &[ColumnarValue], ) -> Result<ColumnarValue, DataFusionError>
invoke_batch
insteadfn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for OctetLengthFunc
impl ScalarUDFImpl for OctetLengthFunc
fn as_any(&self) -> &(dyn Any + 'static)
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
Source§fn invoke(
&self,
args: &[ColumnarValue],
) -> Result<ColumnarValue, DataFusionError>
fn invoke( &self, args: &[ColumnarValue], ) -> Result<ColumnarValue, DataFusionError>
invoke_batch
insteadfn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for OverlayFunc
impl ScalarUDFImpl for OverlayFunc
fn as_any(&self) -> &(dyn Any + 'static)
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
Source§fn invoke(
&self,
args: &[ColumnarValue],
) -> Result<ColumnarValue, DataFusionError>
fn invoke( &self, args: &[ColumnarValue], ) -> Result<ColumnarValue, DataFusionError>
invoke_batch
insteadfn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for RepeatFunc
impl ScalarUDFImpl for RepeatFunc
fn as_any(&self) -> &(dyn Any + 'static)
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
Source§fn invoke(
&self,
args: &[ColumnarValue],
) -> Result<ColumnarValue, DataFusionError>
fn invoke( &self, args: &[ColumnarValue], ) -> Result<ColumnarValue, DataFusionError>
invoke_batch
insteadfn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for ReplaceFunc
impl ScalarUDFImpl for ReplaceFunc
fn as_any(&self) -> &(dyn Any + 'static)
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
Source§fn invoke(
&self,
args: &[ColumnarValue],
) -> Result<ColumnarValue, DataFusionError>
fn invoke( &self, args: &[ColumnarValue], ) -> Result<ColumnarValue, DataFusionError>
invoke_batch
insteadfn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for RtrimFunc
impl ScalarUDFImpl for RtrimFunc
fn as_any(&self) -> &(dyn Any + 'static)
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
Source§fn invoke(
&self,
args: &[ColumnarValue],
) -> Result<ColumnarValue, DataFusionError>
fn invoke( &self, args: &[ColumnarValue], ) -> Result<ColumnarValue, DataFusionError>
invoke_batch
insteadfn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for SplitPartFunc
impl ScalarUDFImpl for SplitPartFunc
fn as_any(&self) -> &(dyn Any + 'static)
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
Source§fn invoke(
&self,
args: &[ColumnarValue],
) -> Result<ColumnarValue, DataFusionError>
fn invoke( &self, args: &[ColumnarValue], ) -> Result<ColumnarValue, DataFusionError>
invoke_batch
insteadfn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for StartsWithFunc
impl ScalarUDFImpl for StartsWithFunc
fn as_any(&self) -> &(dyn Any + 'static)
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
Source§fn invoke(
&self,
args: &[ColumnarValue],
) -> Result<ColumnarValue, DataFusionError>
fn invoke( &self, args: &[ColumnarValue], ) -> Result<ColumnarValue, DataFusionError>
invoke_batch
insteadfn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for ToHexFunc
impl ScalarUDFImpl for ToHexFunc
fn as_any(&self) -> &(dyn Any + 'static)
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
Source§fn invoke(
&self,
args: &[ColumnarValue],
) -> Result<ColumnarValue, DataFusionError>
fn invoke( &self, args: &[ColumnarValue], ) -> Result<ColumnarValue, DataFusionError>
invoke_batch
insteadfn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for UpperFunc
impl ScalarUDFImpl for UpperFunc
fn as_any(&self) -> &(dyn Any + 'static)
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
Source§fn invoke(
&self,
args: &[ColumnarValue],
) -> Result<ColumnarValue, DataFusionError>
fn invoke( &self, args: &[ColumnarValue], ) -> Result<ColumnarValue, DataFusionError>
invoke_batch
insteadfn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for UuidFunc
impl ScalarUDFImpl for UuidFunc
Source§fn invoke_no_args(
&self,
num_rows: usize,
) -> Result<ColumnarValue, DataFusionError>
👎Deprecated since 42.1.0: Use invoke_batch
instead
fn invoke_no_args( &self, num_rows: usize, ) -> Result<ColumnarValue, DataFusionError>
invoke_batch
insteadPrints random (v4) uuid values per row uuid() = ‘a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11’
fn as_any(&self) -> &(dyn Any + 'static)
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
Source§fn invoke(
&self,
_args: &[ColumnarValue],
) -> Result<ColumnarValue, DataFusionError>
fn invoke( &self, _args: &[ColumnarValue], ) -> Result<ColumnarValue, DataFusionError>
invoke_batch
insteadfn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for CharacterLengthFunc
impl ScalarUDFImpl for CharacterLengthFunc
fn as_any(&self) -> &(dyn Any + 'static)
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
Source§fn invoke(
&self,
args: &[ColumnarValue],
) -> Result<ColumnarValue, DataFusionError>
fn invoke( &self, args: &[ColumnarValue], ) -> Result<ColumnarValue, DataFusionError>
invoke_batch
insteadfn aliases(&self) -> &[String]
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for FindInSetFunc
impl ScalarUDFImpl for FindInSetFunc
fn as_any(&self) -> &(dyn Any + 'static)
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
Source§fn invoke(
&self,
args: &[ColumnarValue],
) -> Result<ColumnarValue, DataFusionError>
fn invoke( &self, args: &[ColumnarValue], ) -> Result<ColumnarValue, DataFusionError>
invoke_batch
insteadfn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for LeftFunc
impl ScalarUDFImpl for LeftFunc
fn as_any(&self) -> &(dyn Any + 'static)
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
Source§fn invoke(
&self,
args: &[ColumnarValue],
) -> Result<ColumnarValue, DataFusionError>
fn invoke( &self, args: &[ColumnarValue], ) -> Result<ColumnarValue, DataFusionError>
invoke_batch
insteadfn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for LPadFunc
impl ScalarUDFImpl for LPadFunc
fn as_any(&self) -> &(dyn Any + 'static)
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
Source§fn invoke(
&self,
args: &[ColumnarValue],
) -> Result<ColumnarValue, DataFusionError>
fn invoke( &self, args: &[ColumnarValue], ) -> Result<ColumnarValue, DataFusionError>
invoke_batch
insteadfn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for ReverseFunc
impl ScalarUDFImpl for ReverseFunc
fn as_any(&self) -> &(dyn Any + 'static)
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
Source§fn invoke(
&self,
args: &[ColumnarValue],
) -> Result<ColumnarValue, DataFusionError>
fn invoke( &self, args: &[ColumnarValue], ) -> Result<ColumnarValue, DataFusionError>
invoke_batch
insteadfn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for RightFunc
impl ScalarUDFImpl for RightFunc
fn as_any(&self) -> &(dyn Any + 'static)
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
Source§fn invoke(
&self,
args: &[ColumnarValue],
) -> Result<ColumnarValue, DataFusionError>
fn invoke( &self, args: &[ColumnarValue], ) -> Result<ColumnarValue, DataFusionError>
invoke_batch
insteadfn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for RPadFunc
impl ScalarUDFImpl for RPadFunc
fn as_any(&self) -> &(dyn Any + 'static)
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
Source§fn invoke(
&self,
args: &[ColumnarValue],
) -> Result<ColumnarValue, DataFusionError>
fn invoke( &self, args: &[ColumnarValue], ) -> Result<ColumnarValue, DataFusionError>
invoke_batch
insteadfn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for StrposFunc
impl ScalarUDFImpl for StrposFunc
fn as_any(&self) -> &(dyn Any + 'static)
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
Source§fn invoke(
&self,
args: &[ColumnarValue],
) -> Result<ColumnarValue, DataFusionError>
fn invoke( &self, args: &[ColumnarValue], ) -> Result<ColumnarValue, DataFusionError>
invoke_batch
insteadfn aliases(&self) -> &[String]
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for SubstrFunc
impl ScalarUDFImpl for SubstrFunc
fn as_any(&self) -> &(dyn Any + 'static)
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
Source§fn invoke(
&self,
args: &[ColumnarValue],
) -> Result<ColumnarValue, DataFusionError>
fn invoke( &self, args: &[ColumnarValue], ) -> Result<ColumnarValue, DataFusionError>
invoke_batch
insteadfn aliases(&self) -> &[String]
fn coerce_types( &self, arg_types: &[DataType], ) -> Result<Vec<DataType>, DataFusionError>
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for SubstrIndexFunc
impl ScalarUDFImpl for SubstrIndexFunc
fn as_any(&self) -> &(dyn Any + 'static)
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
Source§fn invoke(
&self,
args: &[ColumnarValue],
) -> Result<ColumnarValue, DataFusionError>
fn invoke( &self, args: &[ColumnarValue], ) -> Result<ColumnarValue, DataFusionError>
invoke_batch
insteadfn aliases(&self) -> &[String]
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for TranslateFunc
impl ScalarUDFImpl for TranslateFunc
fn as_any(&self) -> &(dyn Any + 'static)
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
Source§fn invoke(
&self,
args: &[ColumnarValue],
) -> Result<ColumnarValue, DataFusionError>
fn invoke( &self, args: &[ColumnarValue], ) -> Result<ColumnarValue, DataFusionError>
invoke_batch
instead