pub trait ScalarUDFImpl:
Debug
+ DynEq
+ DynHash
+ Send
+ Sync
+ Any {
Show 22 methods
// Required methods
fn name(&self) -> &str;
fn signature(&self) -> &Signature;
fn return_type(
&self,
arg_types: &[DataType],
) -> Result<DataType, DataFusionError>;
fn invoke_with_args(
&self,
args: ScalarFunctionArgs,
) -> Result<ColumnarValue, DataFusionError>;
// Provided methods
fn aliases(&self) -> &[String] { ... }
fn display_name(&self, args: &[Expr]) -> Result<String, DataFusionError> { ... }
fn schema_name(&self, args: &[Expr]) -> Result<String, DataFusionError> { ... }
fn with_updated_config(&self, _config: &ConfigOptions) -> Option<ScalarUDF> { ... }
fn return_field_from_args(
&self,
args: ReturnFieldArgs<'_>,
) -> Result<Arc<Field>, DataFusionError> { ... }
fn is_nullable(&self, _args: &[Expr], _schema: &dyn ExprSchema) -> bool { ... }
fn simplify(
&self,
args: Vec<Expr>,
_info: &SimplifyContext,
) -> Result<ExprSimplifyResult, DataFusionError> { ... }
fn preimage(
&self,
_args: &[Expr],
_lit_expr: &Expr,
_info: &SimplifyContext,
) -> Result<PreimageResult, DataFusionError> { ... }
fn short_circuits(&self) -> bool { ... }
fn conditional_arguments<'a>(
&self,
args: &'a [Expr],
) -> Option<(Vec<&'a Expr>, Vec<&'a Expr>)> { ... }
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 preserves_lex_ordering(
&self,
_inputs: &[ExprProperties],
) -> Result<bool, DataFusionError> { ... }
fn coerce_types(
&self,
_arg_types: &[DataType],
) -> Result<Vec<DataType>, DataFusionError> { ... }
fn struct_field_mapping(
&self,
_literal_args: &[Option<ScalarValue>],
) -> Option<StructFieldMapping> { ... }
fn documentation(&self) -> Option<&Documentation> { ... }
fn placement(&self, _args: &[ExpressionPlacement]) -> ExpressionPlacement { ... }
}Expand description
Trait for implementing user defined scalar functions.
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
/// This struct for a simple UDF that adds one to an int32
#[derive(Debug, PartialEq, Eq, Hash)]
struct AddOne {
signature: Signature,
}
impl AddOne {
fn new() -> Self {
Self {
signature: Signature::uniform(1, vec![DataType::Int32], Volatility::Immutable),
}
}
}
static DOCUMENTATION: LazyLock<Documentation> = LazyLock::new(|| {
Documentation::builder(DOC_SECTION_MATH, "Add one to an int32", "add_one(2)")
.with_argument("arg1", "The int32 number to add one to")
.build()
});
fn get_doc() -> &'static Documentation {
&DOCUMENTATION
}
/// Implement the ScalarUDFImpl trait for AddOne
impl ScalarUDFImpl for AddOne {
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_with_args(&self, args: ScalarFunctionArgs) -> 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 a Signature describing the argument types for which this
function has an implementation, and the function’s Volatility.
See Signature for more details on argument type handling
and Self::return_type for computing the return type.
Sourcefn return_type(
&self,
arg_types: &[DataType],
) -> Result<DataType, DataFusionError>
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
DataType returned by this function, given the types of the
arguments.
§Arguments
arg_types Data types of the arguments. The implementation of
return_type can assume that some other part of the code has coerced
the actual argument types to match Self::signature.
§Notes
If you provide an implementation for Self::return_field_from_args,
DataFusion will not call return_type (this function). While it is
valid to put unimplemented!() or unreachable!(), it is
recommended to return DataFusionError::Internal instead, which
reduces the severity of symptoms if bugs occur (an error rather than a
panic).
Sourcefn invoke_with_args(
&self,
args: ScalarFunctionArgs,
) -> Result<ColumnarValue, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
Invoke the function returning the appropriate result.
§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.
Provided Methods§
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 display_name(&self, args: &[Expr]) -> Result<String, DataFusionError>
👎Deprecated since 50.0.0: This method is unused and will be removed in a future release
fn display_name(&self, args: &[Expr]) -> Result<String, DataFusionError>
This method is unused and will be removed in a future release
Returns the user-defined display name of function, given the arguments
This can be used to customize the output column name generated by this function.
Defaults to name(args[0], args[1], ...)
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 with_updated_config(&self, _config: &ConfigOptions) -> Option<ScalarUDF>
fn with_updated_config(&self, _config: &ConfigOptions) -> Option<ScalarUDF>
Create a new instance of this function with updated configuration.
This method is called when configuration options change at runtime
(e.g., via SET statements) to allow functions that depend on
configuration to update themselves accordingly.
Note the current ConfigOptions are also passed to Self::invoke_with_args so
this API is not needed for functions where the values may
depend on the current options.
This API is useful for functions where the return
type depends on the configuration options, such as the now() function
which depends on the current timezone.
§Arguments
config- The updated configuration options
§Returns
Some(ScalarUDF)- A new instance of this function configured with the new settingsNone- If this function does not change with new configuration settings (the default)
Sourcefn return_field_from_args(
&self,
args: ReturnFieldArgs<'_>,
) -> Result<Arc<Field>, DataFusionError>
fn return_field_from_args( &self, args: ReturnFieldArgs<'_>, ) -> Result<Arc<Field>, DataFusionError>
What type will be returned by this function, given the arguments?
By default, this function calls Self::return_type with the
types of each argument.
§Notes
For the majority of UDFs, implementing Self::return_type is sufficient,
as the result type is typically a deterministic function of the input types
(e.g., sqrt(f32) consistently yields f32). Implementing this method directly
is generally unnecessary unless the return type depends on runtime values.
This function can be used for more advanced cases such as:
- specifying nullability
- return types based on the values of the arguments (rather than their types.
§Example creating Field
Note the name of the Field is ignored, except for structured types such as
DataType::Struct.
fn return_field_from_args(&self, args: ReturnFieldArgs) -> Result<FieldRef> {
// report output is only nullable if any one of the arguments are nullable
let nullable = args.arg_fields.iter().any(|f| f.is_nullable());
let field = Arc::new(Field::new("ignored_name", DataType::Int32, nullable));
Ok(field)
}§Output Type based on Values
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')–>Int16arrow_cast(x, 'Float32')–>Float32
§Requirements
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
Use return_field_from_args instead. if you use is_nullable that returns non-nullable with return_type, you would need to switch to return_field_from_args, you might have error
Sourcefn simplify(
&self,
args: Vec<Expr>,
_info: &SimplifyContext,
) -> Result<ExprSimplifyResult, DataFusionError>
fn simplify( &self, args: Vec<Expr>, _info: &SimplifyContext, ) -> 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
§Notes
The returned expression must have the same schema as the original expression, including both the data type and nullability. For example, if the original expression is nullable, the returned expression must also be nullable, otherwise it may lead to schema verification errors later in query planning.
Sourcefn preimage(
&self,
_args: &[Expr],
_lit_expr: &Expr,
_info: &SimplifyContext,
) -> Result<PreimageResult, DataFusionError>
fn preimage( &self, _args: &[Expr], _lit_expr: &Expr, _info: &SimplifyContext, ) -> Result<PreimageResult, DataFusionError>
Returns a single contiguous preimage for this function and the specified scalar expression, if any.
Currently only applies to =, !=, >, >=, <, <=, is distinct from, is not distinct from predicates
§Return Value
Implementations should return a half-open interval: inclusive lower
bound and exclusive upper bound. This is slightly different from normal
Interval semantics where the upper bound is closed (inclusive).
Typically this means the upper endpoint must be adjusted to the next
value not included in the preimage. See the Half-Open Intervals section
below for more details.
§Background
Inspired by the ClickHouse Paper, a “preimage rewrite” transforms a predicate containing a function call into a predicate containing an equivalent set of input literal (constant) values. The resulting predicate can often be further optimized by other rewrites (see Examples).
From the paper:
some functions can compute the preimage of a given function result. This is used to replace comparisons of constants with function calls on the key columns by comparing the key column value with the preimage. For example,
toYear(k) = 2024can be replaced byk >= 2024-01-01 && k < 2025-01-01
For example, given an expression like
date_part('YEAR', k) = 2024The interval [2024-01-01, 2025-12-31]contains all possible input values (preimage values) for which the functiondate_part(YEAR, k)produces the output value2024(image value). Returning the interval (note upper bound adjusted up)[2024-01-01, 2025-01-01]` the expression
can be rewritten to
k >= '2024-01-01' AND k < '2025-01-01'which is a simpler and a more canonical form, making it easier for other optimizer passes to recognize and apply further transformations.
§Examples
Case 1:
Original:
date_part('YEAR', k) = 2024 AND k >= '2024-06-01'After preimage rewrite:
k >= '2024-01-01' AND k < '2025-01-01' AND k >= '2024-06-01'Since this form is much simpler, the optimizer can combine and simplify sub-expressions further into:
k >= '2024-06-01' AND k < '2025-01-01'Case 2:
For min/max pruning, simpler predicates such as:
k >= '2024-01-01' AND k < '2025-01-01'are much easier for the pruner to reason about. See PruningPredicate for the backgrounds of predicate pruning.
The trade-off with the preimage rewrite is that evaluating the rewritten form might be slightly more expensive than evaluating the original expression. In practice, this cost is usually outweighed by the more aggressive optimization opportunities it enables.
§Half-Open Intervals
The preimage API uses half-open intervals, which makes the rewrite
easier to implement by avoiding calculations to adjust the upper bound.
For example, if a function returns its input unchanged and the desired
output is the single value 5, a closed interval could be represented
as [5, 5], but then the rewrite would require adjusting the upper
bound to 6 to create a proper range predicate. With a half-open
interval, the same range is represented as [5, 6), which already
forms a valid predicate.
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
When overriding this function to return true, ScalarUDFImpl::conditional_arguments can also be
overridden to report more accurately which arguments are eagerly evaluated and which ones
lazily.
Sourcefn conditional_arguments<'a>(
&self,
args: &'a [Expr],
) -> Option<(Vec<&'a Expr>, Vec<&'a Expr>)>
fn conditional_arguments<'a>( &self, args: &'a [Expr], ) -> Option<(Vec<&'a Expr>, Vec<&'a Expr>)>
Determines which of the arguments passed to this function are evaluated eagerly and which may be evaluated lazily.
If this function returns None, all arguments are eagerly evaluated.
Returning None is a micro optimization that saves a needless Vec
allocation.
If the function returns Some, returns (eager, lazy) where eager
are the arguments that are always evaluated, and lazy are the
arguments that may be evaluated lazily (i.e. may not be evaluated at all
in some cases).
Implementations must ensure that the two returned Vecs are disjunct,
and that each argument from args is present in one the two Vecs.
When overriding this function, ScalarUDFImpl::short_circuits must
be overridden to return true.
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
childrenare 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 Intervals for this
function.
This function is used to propagate constraints down through an expression tree.
§Parameters
intervalis the currently known interval for this function.inputsare 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 preserves_lex_ordering(
&self,
_inputs: &[ExprProperties],
) -> Result<bool, DataFusionError>
fn preserves_lex_ordering( &self, _inputs: &[ExprProperties], ) -> Result<bool, DataFusionError>
Returns true if the function preserves lexicographical ordering based on the input ordering.
For example, concat(a || b) preserves lexicographical ordering, but abs(a) does not.
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 struct_field_mapping(
&self,
_literal_args: &[Option<ScalarValue>],
) -> Option<StructFieldMapping>
fn struct_field_mapping( &self, _literal_args: &[Option<ScalarValue>], ) -> Option<StructFieldMapping>
For struct-producing functions, return how output fields map to input arguments. This enables the optimizer to propagate orderings through struct projections.
literal_args[i] is Some(value) if argument i is a known literal,
allowing extraction of field names from arguments like
named_struct('field_name', value, ...).
For example, named_struct('a', col1, 'b', col2) would return a
mapping indicating that output field 'a' (accessed via
get_field(output, 'a')) corresponds to input argument col1 at
index 1, and field 'b' corresponds to col2 at index 3.
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.
Sourcefn placement(&self, _args: &[ExpressionPlacement]) -> ExpressionPlacement
fn placement(&self, _args: &[ExpressionPlacement]) -> ExpressionPlacement
Returns placement information for this function.
This is used by optimizers to make decisions about expression placement, such as whether to push expressions down through projections.
The default implementation returns ExpressionPlacement::KeepInPlace,
meaning the expression should be kept where it is in the plan.
Override this method to indicate that the function can be pushed down closer to the data source.
Implementations§
Source§impl dyn ScalarUDFImpl
impl dyn ScalarUDFImpl
Sourcepub fn is<T>(&self) -> boolwhere
T: ScalarUDFImpl,
pub fn is<T>(&self) -> boolwhere
T: ScalarUDFImpl,
Returns true if the implementation is of type T.
Works correctly when called on Arc<dyn ScalarUDFImpl> via auto-deref.
Sourcepub fn downcast_ref<T>(&self) -> Option<&T>where
T: ScalarUDFImpl,
pub fn downcast_ref<T>(&self) -> Option<&T>where
T: ScalarUDFImpl,
Attempts to downcast to a concrete type T, returning None if the
implementation is not of that type.
Works correctly when called on Arc<dyn ScalarUDFImpl> via auto-deref,
unlike (&arc as &dyn Any).downcast_ref::<T>() which would attempt to
downcast the Arc itself.
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".
Implementations on Foreign Types§
Source§impl ScalarUDFImpl for AbsFunc
impl ScalarUDFImpl for AbsFunc
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn output_ordering( &self, input: &[ExprProperties], ) -> Result<SortProperties, DataFusionError>
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for ArrayAppend
impl ScalarUDFImpl for ArrayAppend
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn aliases(&self) -> &[String]
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for ArrayCompact
impl ScalarUDFImpl for ArrayCompact
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn aliases(&self) -> &[String]
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for ArrayConcat
impl ScalarUDFImpl for ArrayConcat
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn aliases(&self) -> &[String]
fn coerce_types( &self, arg_types: &[DataType], ) -> Result<Vec<DataType>, DataFusionError>
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for ArrayDims
impl ScalarUDFImpl for ArrayDims
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn aliases(&self) -> &[String]
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for ArrayDistance
impl ScalarUDFImpl for ArrayDistance
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn coerce_types( &self, arg_types: &[DataType], ) -> Result<Vec<DataType>, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn aliases(&self) -> &[String]
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for ArrayDistinct
impl ScalarUDFImpl for ArrayDistinct
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn aliases(&self) -> &[String]
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for ArrayElement
impl ScalarUDFImpl for ArrayElement
fn name(&self) -> &str
Source§fn display_name(&self, args: &[Expr]) -> Result<String, DataFusionError>
fn display_name(&self, args: &[Expr]) -> Result<String, DataFusionError>
This method is unused and will be removed in a future release
fn schema_name(&self, args: &[Expr]) -> Result<String, DataFusionError>
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn aliases(&self) -> &[String]
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for ArrayEmpty
impl ScalarUDFImpl for ArrayEmpty
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn aliases(&self) -> &[String]
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for ArrayExcept
impl ScalarUDFImpl for ArrayExcept
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn aliases(&self) -> &[String]
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for ArrayHas
impl ScalarUDFImpl for ArrayHas
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type(&self, _: &[DataType]) -> Result<DataType, DataFusionError>
fn simplify( &self, args: Vec<Expr>, _info: &SimplifyContext, ) -> Result<ExprSimplifyResult, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn aliases(&self) -> &[String]
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for ArrayHasAll
impl ScalarUDFImpl for ArrayHasAll
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type(&self, _: &[DataType]) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn aliases(&self) -> &[String]
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for ArrayHasAny
impl ScalarUDFImpl for ArrayHasAny
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type(&self, _: &[DataType]) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn aliases(&self) -> &[String]
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for ArrayIntersect
impl ScalarUDFImpl for ArrayIntersect
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn aliases(&self) -> &[String]
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for ArrayLength
impl ScalarUDFImpl for ArrayLength
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn aliases(&self) -> &[String]
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for ArrayMax
impl ScalarUDFImpl for ArrayMax
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn aliases(&self) -> &[String]
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for ArrayNormalize
impl ScalarUDFImpl for ArrayNormalize
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn coerce_types( &self, arg_types: &[DataType], ) -> Result<Vec<DataType>, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn aliases(&self) -> &[String]
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for ArrayPosition
impl ScalarUDFImpl for ArrayPosition
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn aliases(&self) -> &[String]
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for ArrayPositions
impl ScalarUDFImpl for ArrayPositions
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn aliases(&self) -> &[String]
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for ArrayPrepend
impl ScalarUDFImpl for ArrayPrepend
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn aliases(&self) -> &[String]
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for ArrayRemove
impl ScalarUDFImpl for ArrayRemove
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn return_field_from_args( &self, args: ReturnFieldArgs<'_>, ) -> Result<Arc<Field>, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn aliases(&self) -> &[String]
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for ArrayRemoveAll
impl ScalarUDFImpl for ArrayRemoveAll
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn return_field_from_args( &self, args: ReturnFieldArgs<'_>, ) -> Result<Arc<Field>, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn aliases(&self) -> &[String]
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for ArrayRemoveN
impl ScalarUDFImpl for ArrayRemoveN
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn return_field_from_args( &self, args: ReturnFieldArgs<'_>, ) -> Result<Arc<Field>, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn aliases(&self) -> &[String]
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for ArrayRepeat
impl ScalarUDFImpl for ArrayRepeat
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn aliases(&self) -> &[String]
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for ArrayReplace
impl ScalarUDFImpl for ArrayReplace
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type(&self, args: &[DataType]) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn aliases(&self) -> &[String]
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for ArrayResize
impl ScalarUDFImpl for ArrayResize
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn aliases(&self) -> &[String]
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for ArrayReverse
impl ScalarUDFImpl for ArrayReverse
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn aliases(&self) -> &[String]
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for ArraySort
impl ScalarUDFImpl for ArraySort
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn aliases(&self) -> &[String]
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for ArrayToString
impl ScalarUDFImpl for ArrayToString
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn aliases(&self) -> &[String]
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for ArrayUnion
impl ScalarUDFImpl for ArrayUnion
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn aliases(&self) -> &[String]
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for ArraysZip
impl ScalarUDFImpl for ArraysZip
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn aliases(&self) -> &[String]
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for ArrowCastFunc
impl ScalarUDFImpl for ArrowCastFunc
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn return_field_from_args( &self, args: ReturnFieldArgs<'_>, ) -> Result<Arc<Field>, DataFusionError>
fn invoke_with_args( &self, _args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn simplify( &self, args: Vec<Expr>, info: &SimplifyContext, ) -> Result<ExprSimplifyResult, DataFusionError>
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for ArrowFieldFunc
impl ScalarUDFImpl for ArrowFieldFunc
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for ArrowMetadataFunc
impl ScalarUDFImpl for ArrowMetadataFunc
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn documentation(&self) -> Option<&Documentation>
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
Source§impl ScalarUDFImpl for ArrowTryCastFunc
impl ScalarUDFImpl for ArrowTryCastFunc
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn return_field_from_args( &self, args: ReturnFieldArgs<'_>, ) -> Result<Arc<Field>, DataFusionError>
fn invoke_with_args( &self, _args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn simplify( &self, args: Vec<Expr>, info: &SimplifyContext, ) -> Result<ExprSimplifyResult, DataFusionError>
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for ArrowTypeOfFunc
impl ScalarUDFImpl for ArrowTypeOfFunc
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for AsciiFunc
impl ScalarUDFImpl for AsciiFunc
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for BTrimFunc
impl ScalarUDFImpl for BTrimFunc
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn aliases(&self) -> &[String]
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for BitLengthFunc
impl ScalarUDFImpl for BitLengthFunc
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for BitmapBitPosition
impl ScalarUDFImpl for BitmapBitPosition
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn return_field_from_args( &self, args: ReturnFieldArgs<'_>, ) -> Result<Arc<Field>, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
Source§impl ScalarUDFImpl for BitmapBucketNumber
impl ScalarUDFImpl for BitmapBucketNumber
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn return_field_from_args( &self, args: ReturnFieldArgs<'_>, ) -> Result<Arc<Field>, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
Source§impl ScalarUDFImpl for BitmapCount
impl ScalarUDFImpl for BitmapCount
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn return_field_from_args( &self, args: ReturnFieldArgs<'_>, ) -> Result<Arc<Field>, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
Source§impl ScalarUDFImpl for Cardinality
impl ScalarUDFImpl for Cardinality
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for CastToTypeFunc
impl ScalarUDFImpl for CastToTypeFunc
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn return_field_from_args( &self, args: ReturnFieldArgs<'_>, ) -> Result<Arc<Field>, DataFusionError>
fn invoke_with_args( &self, _args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn simplify( &self, args: Vec<Expr>, info: &SimplifyContext, ) -> Result<ExprSimplifyResult, DataFusionError>
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for CeilFunc
impl ScalarUDFImpl for CeilFunc
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn output_ordering( &self, input: &[ExprProperties], ) -> Result<SortProperties, DataFusionError>
fn evaluate_bounds( &self, inputs: &[&Interval], ) -> Result<Interval, DataFusionError>
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for CharFunc
impl ScalarUDFImpl for CharFunc
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn return_field_from_args( &self, args: ReturnFieldArgs<'_>, ) -> Result<Arc<Field>, DataFusionError>
Source§impl ScalarUDFImpl for CharacterLengthFunc
impl ScalarUDFImpl for CharacterLengthFunc
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn aliases(&self) -> &[String]
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for ChrFunc
impl ScalarUDFImpl for ChrFunc
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for CoalesceFunc
impl ScalarUDFImpl for CoalesceFunc
Source§fn invoke_with_args(
&self,
_args: ScalarFunctionArgs,
) -> Result<ColumnarValue, DataFusionError>
fn invoke_with_args( &self, _args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
coalesce evaluates to the first value which is not NULL
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn return_field_from_args( &self, args: ReturnFieldArgs<'_>, ) -> Result<Arc<Field>, DataFusionError>
fn simplify( &self, args: Vec<Expr>, _info: &SimplifyContext, ) -> Result<ExprSimplifyResult, DataFusionError>
fn conditional_arguments<'a>( &self, args: &'a [Expr], ) -> Option<(Vec<&'a Expr>, Vec<&'a Expr>)>
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 ConcatFunc
impl ScalarUDFImpl for ConcatFunc
Source§fn return_type(
&self,
arg_types: &[DataType],
) -> Result<DataType, DataFusionError>
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
Match the return type to the input types to avoid unnecessary casts. On mixed inputs, prefer Utf8View; prefer LargeUtf8 over Utf8 to avoid potential overflow on LargeUtf8 input.
Source§fn invoke_with_args(
&self,
args: ScalarFunctionArgs,
) -> Result<ColumnarValue, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
Concatenates 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: &SimplifyContext,
) -> Result<ExprSimplifyResult, DataFusionError>
fn simplify( &self, args: Vec<Expr>, _info: &SimplifyContext, ) -> Result<ExprSimplifyResult, DataFusionError>
Simplify the concat function by
- filtering out all
nullliterals - 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 name(&self) -> &str
fn signature(&self) -> &Signature
fn documentation(&self) -> Option<&Documentation>
fn preserves_lex_ordering( &self, _inputs: &[ExprProperties], ) -> Result<bool, DataFusionError>
Source§impl ScalarUDFImpl for ConcatWsFunc
impl ScalarUDFImpl for ConcatWsFunc
Source§fn return_type(
&self,
arg_types: &[DataType],
) -> Result<DataType, DataFusionError>
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
Match the return type to the input types to avoid unnecessary casts. On mixed inputs, prefer Utf8View; prefer LargeUtf8 over Utf8 to avoid potential overflow on LargeUtf8 input.
Source§fn invoke_with_args(
&self,
args: ScalarFunctionArgs,
) -> Result<ColumnarValue, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
Concatenates 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: &SimplifyContext,
) -> Result<ExprSimplifyResult, DataFusionError>
fn simplify( &self, args: Vec<Expr>, _info: &SimplifyContext, ) -> Result<ExprSimplifyResult, DataFusionError>
Simply the concat_ws function by
- folding to
nullif the delimiter is null - filtering out
nullarguments - using
concatto replaceconcat_wsif the delimiter is an empty string - concatenating contiguous literals if the delimiter is a literal.
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for ContainsFunc
impl ScalarUDFImpl for ContainsFunc
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type(&self, _: &[DataType]) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for CosineDistance
impl ScalarUDFImpl for CosineDistance
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn coerce_types( &self, arg_types: &[DataType], ) -> Result<Vec<DataType>, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for CotFunc
impl ScalarUDFImpl for CotFunc
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn documentation(&self) -> Option<&Documentation>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
Source§impl ScalarUDFImpl for CurrentDateFunc
Create an implementation of current_date() that always returns the
specified current date.
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 name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, _args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn aliases(&self) -> &[String]
fn simplify( &self, args: Vec<Expr>, info: &SimplifyContext, ) -> Result<ExprSimplifyResult, DataFusionError>
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for CurrentTimeFunc
Create an implementation of current_time() that always returns the
specified current time.
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 name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, _args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn simplify( &self, args: Vec<Expr>, info: &SimplifyContext, ) -> Result<ExprSimplifyResult, DataFusionError>
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for DateBinFunc
impl ScalarUDFImpl for DateBinFunc
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn output_ordering( &self, input: &[ExprProperties], ) -> Result<SortProperties, DataFusionError>
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for DatePartFunc
impl ScalarUDFImpl for DatePartFunc
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn return_field_from_args( &self, args: ReturnFieldArgs<'_>, ) -> Result<Arc<Field>, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn preimage( &self, args: &[Expr], lit_expr: &Expr, info: &SimplifyContext, ) -> Result<PreimageResult, DataFusionError>
fn aliases(&self) -> &[String]
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for DateTruncFunc
impl ScalarUDFImpl for DateTruncFunc
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn return_field_from_args( &self, args: ReturnFieldArgs<'_>, ) -> Result<Arc<Field>, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn aliases(&self) -> &[String]
fn output_ordering( &self, input: &[ExprProperties], ) -> Result<SortProperties, DataFusionError>
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for DecodeFunc
impl ScalarUDFImpl for DecodeFunc
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for DigestFunc
impl ScalarUDFImpl for DigestFunc
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for EncodeFunc
impl ScalarUDFImpl for EncodeFunc
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for EndsWithFunc
impl ScalarUDFImpl for EndsWithFunc
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for FactorialFunc
impl ScalarUDFImpl for FactorialFunc
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for FindInSetFunc
impl ScalarUDFImpl for FindInSetFunc
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for Flatten
impl ScalarUDFImpl for Flatten
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn aliases(&self) -> &[String]
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for FloorFunc
impl ScalarUDFImpl for FloorFunc
Source§fn preimage(
&self,
args: &[Expr],
lit_expr: &Expr,
_info: &SimplifyContext,
) -> Result<PreimageResult, DataFusionError>
fn preimage( &self, args: &[Expr], lit_expr: &Expr, _info: &SimplifyContext, ) -> Result<PreimageResult, DataFusionError>
Compute the preimage for floor function.
For floor(x) = N, the preimage is x >= N AND x < N + 1
because floor(x) = N for all x in [N, N+1).
This enables predicate pushdown optimizations, transforming:
floor(col) = 100 into col >= 100 AND col < 101
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn output_ordering( &self, input: &[ExprProperties], ) -> Result<SortProperties, DataFusionError>
fn evaluate_bounds( &self, inputs: &[&Interval], ) -> Result<Interval, DataFusionError>
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for ForeignScalarUDF
impl ScalarUDFImpl for ForeignScalarUDF
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn return_field_from_args( &self, args: ReturnFieldArgs<'_>, ) -> Result<Arc<Field>, DataFusionError>
fn invoke_with_args( &self, invoke_args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn aliases(&self) -> &[String]
fn short_circuits(&self) -> bool
fn coerce_types( &self, arg_types: &[DataType], ) -> Result<Vec<DataType>, DataFusionError>
Source§impl ScalarUDFImpl for FormatStringFunc
impl ScalarUDFImpl for FormatStringFunc
fn name(&self) -> &str
fn aliases(&self) -> &[String]
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn return_field_from_args( &self, args: ReturnFieldArgs<'_>, ) -> Result<Arc<Field>, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
Source§impl ScalarUDFImpl for FromUnixtimeFunc
impl ScalarUDFImpl for FromUnixtimeFunc
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_field_from_args( &self, args: ReturnFieldArgs<'_>, ) -> Result<Arc<Field>, DataFusionError>
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for GcdFunc
impl ScalarUDFImpl for GcdFunc
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for GetFieldFunc
impl ScalarUDFImpl for GetFieldFunc
fn name(&self) -> &str
Source§fn display_name(&self, args: &[Expr]) -> Result<String, DataFusionError>
fn display_name(&self, args: &[Expr]) -> Result<String, DataFusionError>
This method is unused and will be removed in a future release
fn schema_name(&self, args: &[Expr]) -> Result<String, DataFusionError>
fn signature(&self) -> &Signature
fn return_type(&self, _: &[DataType]) -> Result<DataType, DataFusionError>
fn return_field_from_args( &self, args: ReturnFieldArgs<'_>, ) -> Result<Arc<Field>, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn simplify( &self, args: Vec<Expr>, _info: &SimplifyContext, ) -> Result<ExprSimplifyResult, DataFusionError>
fn coerce_types( &self, arg_types: &[DataType], ) -> Result<Vec<DataType>, DataFusionError>
fn documentation(&self) -> Option<&Documentation>
fn placement(&self, args: &[ExpressionPlacement]) -> ExpressionPlacement
Source§impl ScalarUDFImpl for GreatestFunc
impl ScalarUDFImpl for GreatestFunc
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn coerce_types( &self, arg_types: &[DataType], ) -> Result<Vec<DataType>, DataFusionError>
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for InitcapFunc
impl ScalarUDFImpl for InitcapFunc
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for InnerProduct
impl ScalarUDFImpl for InnerProduct
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn coerce_types( &self, arg_types: &[DataType], ) -> Result<Vec<DataType>, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn aliases(&self) -> &[String]
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for IsNanFunc
impl ScalarUDFImpl for IsNanFunc
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for IsZeroFunc
impl ScalarUDFImpl for IsZeroFunc
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for JsonTuple
impl ScalarUDFImpl for JsonTuple
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn return_field_from_args( &self, args: ReturnFieldArgs<'_>, ) -> Result<Arc<Field>, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
Source§impl ScalarUDFImpl for LPadFunc
impl ScalarUDFImpl for LPadFunc
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for LcmFunc
impl ScalarUDFImpl for LcmFunc
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for LeastFunc
impl ScalarUDFImpl for LeastFunc
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn coerce_types( &self, arg_types: &[DataType], ) -> Result<Vec<DataType>, DataFusionError>
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for LeftFunc
impl ScalarUDFImpl for LeftFunc
Source§fn invoke_with_args(
&self,
args: ScalarFunctionArgs,
) -> Result<ColumnarValue, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
Returns first n characters in the string, or when n is negative, returns all but last |n| characters. left(‘abcde’, 2) = ‘ab’ left(‘abcde’, -2) = ‘abc’ The implementation uses UTF-8 code points as characters
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 LevenshteinFunc
impl ScalarUDFImpl for LevenshteinFunc
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for LogFunc
impl ScalarUDFImpl for LogFunc
Source§fn simplify(
&self,
args: Vec<Expr>,
info: &SimplifyContext,
) -> Result<ExprSimplifyResult, DataFusionError>
fn simplify( &self, args: Vec<Expr>, info: &SimplifyContext, ) -> 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 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>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for LowerFunc
impl ScalarUDFImpl for LowerFunc
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for LtrimFunc
impl ScalarUDFImpl for LtrimFunc
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for MakeArray
impl ScalarUDFImpl for MakeArray
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn aliases(&self) -> &[String]
fn coerce_types( &self, arg_types: &[DataType], ) -> Result<Vec<DataType>, DataFusionError>
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for MakeDateFunc
impl ScalarUDFImpl for MakeDateFunc
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for MakeTimeFunc
impl ScalarUDFImpl for MakeTimeFunc
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for MapEntriesFunc
impl ScalarUDFImpl for MapEntriesFunc
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for MapExtract
impl ScalarUDFImpl for MapExtract
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn aliases(&self) -> &[String]
fn coerce_types( &self, arg_types: &[DataType], ) -> Result<Vec<DataType>, DataFusionError>
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for MapFromArrays
impl ScalarUDFImpl for MapFromArrays
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn return_field_from_args( &self, args: ReturnFieldArgs<'_>, ) -> Result<Arc<Field>, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
Source§impl ScalarUDFImpl for MapFromEntries
impl ScalarUDFImpl for MapFromEntries
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn return_field_from_args( &self, args: ReturnFieldArgs<'_>, ) -> Result<Arc<Field>, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
Source§impl ScalarUDFImpl for MapFunc
impl ScalarUDFImpl for MapFunc
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for MapKeysFunc
impl ScalarUDFImpl for MapKeysFunc
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for Md5Func
impl ScalarUDFImpl for Md5Func
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for NVL2Func
impl ScalarUDFImpl for NVL2Func
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn return_field_from_args( &self, args: ReturnFieldArgs<'_>, ) -> Result<Arc<Field>, DataFusionError>
fn invoke_with_args( &self, _args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn simplify( &self, args: Vec<Expr>, _info: &SimplifyContext, ) -> Result<ExprSimplifyResult, DataFusionError>
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 NVLFunc
impl ScalarUDFImpl for NVLFunc
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn return_field_from_args( &self, args: ReturnFieldArgs<'_>, ) -> Result<Arc<Field>, DataFusionError>
fn simplify( &self, args: Vec<Expr>, info: &SimplifyContext, ) -> Result<ExprSimplifyResult, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn conditional_arguments<'a>( &self, args: &'a [Expr], ) -> Option<(Vec<&'a Expr>, Vec<&'a Expr>)>
fn short_circuits(&self) -> bool
fn aliases(&self) -> &[String]
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for NamedStructFunc
impl ScalarUDFImpl for NamedStructFunc
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn return_field_from_args( &self, args: ReturnFieldArgs<'_>, ) -> Result<Arc<Field>, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn documentation(&self) -> Option<&Documentation>
fn struct_field_mapping( &self, literal_args: &[Option<ScalarValue>], ) -> Option<StructFieldMapping>
Source§impl ScalarUDFImpl for NanvlFunc
impl ScalarUDFImpl for NanvlFunc
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for NowFunc
Create an implementation of now() that always returns the
specified timestamp.
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 name(&self) -> &str
fn signature(&self) -> &Signature
fn with_updated_config(&self, config: &ConfigOptions) -> Option<ScalarUDF>
fn return_field_from_args( &self, _args: ReturnFieldArgs<'_>, ) -> Result<Arc<Field>, DataFusionError>
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, _args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn simplify( &self, args: Vec<Expr>, info: &SimplifyContext, ) -> Result<ExprSimplifyResult, DataFusionError>
fn aliases(&self) -> &[String]
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for NullIfFunc
impl ScalarUDFImpl for NullIfFunc
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for OctetLengthFunc
impl ScalarUDFImpl for OctetLengthFunc
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for OverlayFunc
impl ScalarUDFImpl for OverlayFunc
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for ParseUrl
impl ScalarUDFImpl for ParseUrl
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
Source§impl ScalarUDFImpl for PiFunc
impl ScalarUDFImpl for PiFunc
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn 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: &SimplifyContext,
) -> Result<ExprSimplifyResult, DataFusionError>
fn simplify( &self, args: Vec<Expr>, info: &SimplifyContext, ) -> Result<ExprSimplifyResult, DataFusionError>
Simplify the power function by the relevant rules:
- Power(a, 0) ===> 1
- Power(a, 1) ===> a
- Power(a, Log(a, b)) ===> b
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn aliases(&self) -> &[String]
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for RPadFunc
impl ScalarUDFImpl for RPadFunc
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for RandomFunc
impl ScalarUDFImpl for RandomFunc
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn aliases(&self) -> &[String]
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for Range
impl ScalarUDFImpl for Range
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for RegexpCountFunc
impl ScalarUDFImpl for RegexpCountFunc
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for RegexpInstrFunc
impl ScalarUDFImpl for RegexpInstrFunc
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for RegexpLikeFunc
impl ScalarUDFImpl for RegexpLikeFunc
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn simplify( &self, args: Vec<Expr>, info: &SimplifyContext, ) -> Result<ExprSimplifyResult, DataFusionError>
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for RegexpMatchFunc
impl ScalarUDFImpl for RegexpMatchFunc
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for RegexpReplaceFunc
impl ScalarUDFImpl for RegexpReplaceFunc
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for RepeatFunc
impl ScalarUDFImpl for RepeatFunc
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for ReplaceFunc
impl ScalarUDFImpl for ReplaceFunc
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for ReverseFunc
impl ScalarUDFImpl for ReverseFunc
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for RightFunc
impl ScalarUDFImpl for RightFunc
Source§fn invoke_with_args(
&self,
args: ScalarFunctionArgs,
) -> Result<ColumnarValue, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
Returns right n characters in the string, or when n is negative, returns all but first |n| characters. right(‘abcde’, 2) = ‘de’ right(‘abcde’, -2) = ‘cde’ The implementation uses UTF-8 code points as characters
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 RoundFunc
impl ScalarUDFImpl for RoundFunc
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_field_from_args( &self, args: ReturnFieldArgs<'_>, ) -> Result<Arc<Field>, DataFusionError>
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn output_ordering( &self, input: &[ExprProperties], ) -> Result<SortProperties, DataFusionError>
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for RtrimFunc
impl ScalarUDFImpl for RtrimFunc
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for SHAFunc
impl ScalarUDFImpl for SHAFunc
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for SignumFunc
impl ScalarUDFImpl for SignumFunc
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>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for SparkAbs
impl ScalarUDFImpl for SparkAbs
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn return_field_from_args( &self, args: ReturnFieldArgs<'_>, ) -> Result<Arc<Field>, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
Source§impl ScalarUDFImpl for SparkAddMonths
impl ScalarUDFImpl for SparkAddMonths
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn return_field_from_args( &self, args: ReturnFieldArgs<'_>, ) -> Result<Arc<Field>, DataFusionError>
fn simplify( &self, args: Vec<Expr>, info: &SimplifyContext, ) -> Result<ExprSimplifyResult, DataFusionError>
fn invoke_with_args( &self, _args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
Source§impl ScalarUDFImpl for SparkArray
impl ScalarUDFImpl for SparkArray
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn return_field_from_args( &self, args: ReturnFieldArgs<'_>, ) -> Result<Arc<Field>, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn coerce_types( &self, arg_types: &[DataType], ) -> Result<Vec<DataType>, DataFusionError>
Source§impl ScalarUDFImpl for SparkArrayContains
impl ScalarUDFImpl for SparkArrayContains
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type(&self, _: &[DataType]) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
Source§impl ScalarUDFImpl for SparkArrayRepeat
impl ScalarUDFImpl for SparkArrayRepeat
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn coerce_types( &self, arg_types: &[DataType], ) -> Result<Vec<DataType>, DataFusionError>
Source§impl ScalarUDFImpl for SparkAscii
impl ScalarUDFImpl for SparkAscii
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn return_field_from_args( &self, args: ReturnFieldArgs<'_>, ) -> Result<Arc<Field>, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
Source§impl ScalarUDFImpl for SparkBase64
impl ScalarUDFImpl for SparkBase64
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn return_field_from_args( &self, args: ReturnFieldArgs<'_>, ) -> Result<Arc<Field>, DataFusionError>
fn invoke_with_args( &self, _args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn simplify( &self, args: Vec<Expr>, _info: &SimplifyContext, ) -> Result<ExprSimplifyResult, DataFusionError>
Source§impl ScalarUDFImpl for SparkBin
impl ScalarUDFImpl for SparkBin
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn return_field_from_args( &self, args: ReturnFieldArgs<'_>, ) -> Result<Arc<Field>, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
Source§impl ScalarUDFImpl for SparkBitCount
impl ScalarUDFImpl for SparkBitCount
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn return_field_from_args( &self, args: ReturnFieldArgs<'_>, ) -> Result<Arc<Field>, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
Source§impl ScalarUDFImpl for SparkBitGet
impl ScalarUDFImpl for SparkBitGet
fn name(&self) -> &str
fn aliases(&self) -> &[String]
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn return_field_from_args( &self, args: ReturnFieldArgs<'_>, ) -> Result<Arc<Field>, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
Source§impl ScalarUDFImpl for SparkBitShift
impl ScalarUDFImpl for SparkBitShift
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn return_field_from_args( &self, args: ReturnFieldArgs<'_>, ) -> Result<Arc<Field>, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
Source§impl ScalarUDFImpl for SparkBitwiseNot
impl ScalarUDFImpl for SparkBitwiseNot
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn return_field_from_args( &self, args: ReturnFieldArgs<'_>, ) -> Result<Arc<Field>, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
Source§impl ScalarUDFImpl for SparkCeil
impl ScalarUDFImpl for SparkCeil
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn aliases(&self) -> &[String]
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
Source§impl ScalarUDFImpl for SparkConcat
impl ScalarUDFImpl for SparkConcat
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn coerce_types( &self, arg_types: &[DataType], ) -> Result<Vec<DataType>, DataFusionError>
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn return_field_from_args( &self, args: ReturnFieldArgs<'_>, ) -> Result<Arc<Field>, DataFusionError>
Source§impl ScalarUDFImpl for SparkCrc32
impl ScalarUDFImpl for SparkCrc32
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn return_field_from_args( &self, args: ReturnFieldArgs<'_>, ) -> Result<Arc<Field>, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
Source§impl ScalarUDFImpl for SparkCsc
impl ScalarUDFImpl for SparkCsc
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
Source§impl ScalarUDFImpl for SparkDateAdd
impl ScalarUDFImpl for SparkDateAdd
fn name(&self) -> &str
fn aliases(&self) -> &[String]
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn return_field_from_args( &self, args: ReturnFieldArgs<'_>, ) -> Result<Arc<Field>, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
Source§impl ScalarUDFImpl for SparkDateDiff
impl ScalarUDFImpl for SparkDateDiff
fn name(&self) -> &str
fn aliases(&self) -> &[String]
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn return_field_from_args( &self, args: ReturnFieldArgs<'_>, ) -> Result<Arc<Field>, DataFusionError>
fn invoke_with_args( &self, _args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn simplify( &self, args: Vec<Expr>, info: &SimplifyContext, ) -> Result<ExprSimplifyResult, DataFusionError>
Source§impl ScalarUDFImpl for SparkDatePart
impl ScalarUDFImpl for SparkDatePart
fn name(&self) -> &str
fn aliases(&self) -> &[String]
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn return_field_from_args( &self, args: ReturnFieldArgs<'_>, ) -> Result<Arc<Field>, DataFusionError>
fn invoke_with_args( &self, _args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn simplify( &self, args: Vec<Expr>, _info: &SimplifyContext, ) -> Result<ExprSimplifyResult, DataFusionError>
Source§impl ScalarUDFImpl for SparkDateSub
impl ScalarUDFImpl for SparkDateSub
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn return_field_from_args( &self, args: ReturnFieldArgs<'_>, ) -> Result<Arc<Field>, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
Source§impl ScalarUDFImpl for SparkDateTrunc
impl ScalarUDFImpl for SparkDateTrunc
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn return_field_from_args( &self, args: ReturnFieldArgs<'_>, ) -> Result<Arc<Field>, DataFusionError>
fn invoke_with_args( &self, _args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn simplify( &self, args: Vec<Expr>, info: &SimplifyContext, ) -> Result<ExprSimplifyResult, DataFusionError>
Source§impl ScalarUDFImpl for SparkElt
impl ScalarUDFImpl for SparkElt
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn coerce_types( &self, arg_types: &[DataType], ) -> Result<Vec<DataType>, DataFusionError>
Source§impl ScalarUDFImpl for SparkExpm1
impl ScalarUDFImpl for SparkExpm1
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
Source§impl ScalarUDFImpl for SparkFactorial
impl ScalarUDFImpl for SparkFactorial
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn aliases(&self) -> &[String]
Source§impl ScalarUDFImpl for SparkFloor
impl ScalarUDFImpl for SparkFloor
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn return_field_from_args( &self, args: ReturnFieldArgs<'_>, ) -> Result<Arc<Field>, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
Source§impl ScalarUDFImpl for SparkFromUtcTimestamp
impl ScalarUDFImpl for SparkFromUtcTimestamp
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn return_field_from_args( &self, args: ReturnFieldArgs<'_>, ) -> Result<Arc<Field>, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
Source§impl ScalarUDFImpl for SparkHex
impl ScalarUDFImpl for SparkHex
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn aliases(&self) -> &[String]
Source§impl ScalarUDFImpl for SparkHour
impl ScalarUDFImpl for SparkHour
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
Source§impl ScalarUDFImpl for SparkILike
impl ScalarUDFImpl for SparkILike
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn return_field_from_args( &self, args: ReturnFieldArgs<'_>, ) -> Result<Arc<Field>, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
Source§impl ScalarUDFImpl for SparkIsValidUtf8
impl ScalarUDFImpl for SparkIsValidUtf8
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn return_field_from_args( &self, _args: ReturnFieldArgs<'_>, ) -> Result<Arc<Field>, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
Source§impl ScalarUDFImpl for SparkLastDay
impl ScalarUDFImpl for SparkLastDay
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn return_field_from_args( &self, args: ReturnFieldArgs<'_>, ) -> Result<Arc<Field>, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
Source§impl ScalarUDFImpl for SparkLengthFunc
impl ScalarUDFImpl for SparkLengthFunc
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type(&self, _args: &[DataType]) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn aliases(&self) -> &[String]
fn return_field_from_args( &self, args: ReturnFieldArgs<'_>, ) -> Result<Arc<Field>, DataFusionError>
Source§impl ScalarUDFImpl for SparkLike
impl ScalarUDFImpl for SparkLike
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn return_field_from_args( &self, args: ReturnFieldArgs<'_>, ) -> Result<Arc<Field>, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
Source§impl ScalarUDFImpl for SparkLuhnCheck
impl ScalarUDFImpl for SparkLuhnCheck
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
Source§impl ScalarUDFImpl for SparkMakeDtInterval
impl ScalarUDFImpl for SparkMakeDtInterval
Source§fn return_type(
&self,
_arg_types: &[DataType],
) -> Result<DataType, DataFusionError>
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
Note the return type is DataType::Duration(TimeUnit::Microsecond) and not DataType::Interval(DayTime) as you might expect.
This is because DataType::Interval(DayTime) has precision only to the millisecond, whilst Spark’s DayTimeIntervalType has
precision to the microsecond. We use DataType::Duration(TimeUnit::Microsecond) in order to not lose any precision. See the
Sail compatibility doc for reference.
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_field_from_args( &self, args: ReturnFieldArgs<'_>, ) -> Result<Arc<Field>, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
Source§impl ScalarUDFImpl for SparkMakeInterval
impl ScalarUDFImpl for SparkMakeInterval
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
Source§impl ScalarUDFImpl for SparkMakeValidUtf8
impl ScalarUDFImpl for SparkMakeValidUtf8
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn return_field_from_args( &self, args: ReturnFieldArgs<'_>, ) -> Result<Arc<Field>, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
Source§impl ScalarUDFImpl for SparkMinute
impl ScalarUDFImpl for SparkMinute
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
Source§impl ScalarUDFImpl for SparkMod
impl ScalarUDFImpl for SparkMod
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
Source§impl ScalarUDFImpl for SparkNegative
impl ScalarUDFImpl for SparkNegative
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
Source§impl ScalarUDFImpl for SparkNextDay
impl ScalarUDFImpl for SparkNextDay
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn return_field_from_args( &self, _args: ReturnFieldArgs<'_>, ) -> Result<Arc<Field>, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
Source§impl ScalarUDFImpl for SparkPmod
impl ScalarUDFImpl for SparkPmod
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
Source§impl ScalarUDFImpl for SparkRint
impl ScalarUDFImpl for SparkRint
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn output_ordering( &self, input: &[ExprProperties], ) -> Result<SortProperties, DataFusionError>
Source§impl ScalarUDFImpl for SparkRound
impl ScalarUDFImpl for SparkRound
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
Source§impl ScalarUDFImpl for SparkSec
impl ScalarUDFImpl for SparkSec
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
Source§impl ScalarUDFImpl for SparkSecond
impl ScalarUDFImpl for SparkSecond
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
Source§impl ScalarUDFImpl for SparkSha1
impl ScalarUDFImpl for SparkSha1
fn name(&self) -> &str
fn aliases(&self) -> &[String]
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn return_field_from_args( &self, args: ReturnFieldArgs<'_>, ) -> Result<Arc<Field>, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
Source§impl ScalarUDFImpl for SparkSha2
impl ScalarUDFImpl for SparkSha2
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
Source§impl ScalarUDFImpl for SparkShuffle
impl ScalarUDFImpl for SparkShuffle
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn return_field_from_args( &self, args: ReturnFieldArgs<'_>, ) -> Result<Arc<Field>, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
Source§impl ScalarUDFImpl for SparkSize
impl ScalarUDFImpl for SparkSize
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn return_field_from_args( &self, _args: ReturnFieldArgs<'_>, ) -> Result<Arc<Field>, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
Source§impl ScalarUDFImpl for SparkSlice
impl ScalarUDFImpl for SparkSlice
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn return_field_from_args( &self, args: ReturnFieldArgs<'_>, ) -> Result<Arc<Field>, DataFusionError>
fn invoke_with_args( &self, func_args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
Source§impl ScalarUDFImpl for SparkSoundex
impl ScalarUDFImpl for SparkSoundex
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
Source§impl ScalarUDFImpl for SparkSpace
impl ScalarUDFImpl for SparkSpace
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type(&self, args: &[DataType]) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
Source§impl ScalarUDFImpl for SparkStrToMap
impl ScalarUDFImpl for SparkStrToMap
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn return_field_from_args( &self, args: ReturnFieldArgs<'_>, ) -> Result<Arc<Field>, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
Source§impl ScalarUDFImpl for SparkSubstring
impl ScalarUDFImpl for SparkSubstring
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn aliases(&self) -> &[String]
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn return_field_from_args( &self, args: ReturnFieldArgs<'_>, ) -> Result<Arc<Field>, DataFusionError>
Source§impl ScalarUDFImpl for SparkTimeTrunc
impl ScalarUDFImpl for SparkTimeTrunc
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn return_field_from_args( &self, args: ReturnFieldArgs<'_>, ) -> Result<Arc<Field>, DataFusionError>
fn invoke_with_args( &self, _args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn simplify( &self, args: Vec<Expr>, _info: &SimplifyContext, ) -> Result<ExprSimplifyResult, DataFusionError>
Source§impl ScalarUDFImpl for SparkToUtcTimestamp
impl ScalarUDFImpl for SparkToUtcTimestamp
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn return_field_from_args( &self, args: ReturnFieldArgs<'_>, ) -> Result<Arc<Field>, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
Source§impl ScalarUDFImpl for SparkTrunc
impl ScalarUDFImpl for SparkTrunc
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn return_field_from_args( &self, args: ReturnFieldArgs<'_>, ) -> Result<Arc<Field>, DataFusionError>
fn invoke_with_args( &self, _args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn simplify( &self, args: Vec<Expr>, info: &SimplifyContext, ) -> Result<ExprSimplifyResult, DataFusionError>
Source§impl ScalarUDFImpl for SparkUnBase64
impl ScalarUDFImpl for SparkUnBase64
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn return_field_from_args( &self, args: ReturnFieldArgs<'_>, ) -> Result<Arc<Field>, DataFusionError>
fn invoke_with_args( &self, _args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn simplify( &self, args: Vec<Expr>, _info: &SimplifyContext, ) -> Result<ExprSimplifyResult, DataFusionError>
Source§impl ScalarUDFImpl for SparkUnhex
impl ScalarUDFImpl for SparkUnhex
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
Source§impl ScalarUDFImpl for SparkUnixDate
impl ScalarUDFImpl for SparkUnixDate
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn return_field_from_args( &self, args: ReturnFieldArgs<'_>, ) -> Result<Arc<Field>, DataFusionError>
fn invoke_with_args( &self, _args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn simplify( &self, args: Vec<Expr>, info: &SimplifyContext, ) -> Result<ExprSimplifyResult, DataFusionError>
Source§impl ScalarUDFImpl for SparkUnixTimestamp
impl ScalarUDFImpl for SparkUnixTimestamp
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn return_field_from_args( &self, args: ReturnFieldArgs<'_>, ) -> Result<Arc<Field>, DataFusionError>
fn invoke_with_args( &self, _args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn simplify( &self, args: Vec<Expr>, info: &SimplifyContext, ) -> Result<ExprSimplifyResult, DataFusionError>
Source§impl ScalarUDFImpl for SparkWidthBucket
impl ScalarUDFImpl for SparkWidthBucket
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn output_ordering( &self, input: &[ExprProperties], ) -> Result<SortProperties, DataFusionError>
Source§impl ScalarUDFImpl for SparkXxhash64
impl ScalarUDFImpl for SparkXxhash64
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn return_field_from_args( &self, _args: ReturnFieldArgs<'_>, ) -> Result<Arc<Field>, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
Source§impl ScalarUDFImpl for SplitPartFunc
impl ScalarUDFImpl for SplitPartFunc
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for StartsWithFunc
impl ScalarUDFImpl for StartsWithFunc
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn simplify( &self, args: Vec<Expr>, info: &SimplifyContext, ) -> Result<ExprSimplifyResult, DataFusionError>
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for StringToArray
impl ScalarUDFImpl for StringToArray
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn aliases(&self) -> &[String]
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for StrposFunc
impl ScalarUDFImpl for StrposFunc
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn return_field_from_args( &self, args: ReturnFieldArgs<'_>, ) -> Result<Arc<Field>, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn aliases(&self) -> &[String]
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for StructFunc
impl ScalarUDFImpl for StructFunc
fn name(&self) -> &str
fn aliases(&self) -> &[String]
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for SubstrFunc
impl ScalarUDFImpl for SubstrFunc
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn aliases(&self) -> &[String]
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for SubstrIndexFunc
impl ScalarUDFImpl for SubstrIndexFunc
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn aliases(&self) -> &[String]
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for ToCharFunc
impl ScalarUDFImpl for ToCharFunc
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn aliases(&self) -> &[String]
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for ToDateFunc
impl ScalarUDFImpl for ToDateFunc
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for ToHexFunc
impl ScalarUDFImpl for ToHexFunc
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for ToLocalTimeFunc
impl ScalarUDFImpl for ToLocalTimeFunc
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for ToTimeFunc
impl ScalarUDFImpl for ToTimeFunc
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for ToTimestampFunc
impl ScalarUDFImpl for ToTimestampFunc
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn with_updated_config(&self, config: &ConfigOptions) -> Option<ScalarUDF>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for ToTimestampMicrosFunc
impl ScalarUDFImpl for ToTimestampMicrosFunc
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn with_updated_config(&self, config: &ConfigOptions) -> Option<ScalarUDF>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for ToTimestampMillisFunc
impl ScalarUDFImpl for ToTimestampMillisFunc
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn with_updated_config(&self, config: &ConfigOptions) -> Option<ScalarUDF>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for ToTimestampNanosFunc
impl ScalarUDFImpl for ToTimestampNanosFunc
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn with_updated_config(&self, config: &ConfigOptions) -> Option<ScalarUDF>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for ToTimestampSecondsFunc
impl ScalarUDFImpl for ToTimestampSecondsFunc
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn with_updated_config(&self, config: &ConfigOptions) -> Option<ScalarUDF>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for ToUnixtimeFunc
impl ScalarUDFImpl for ToUnixtimeFunc
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for TranslateFunc
impl ScalarUDFImpl for TranslateFunc
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for TruncFunc
impl ScalarUDFImpl for TruncFunc
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn output_ordering( &self, input: &[ExprProperties], ) -> Result<SortProperties, DataFusionError>
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for TryCastToTypeFunc
impl ScalarUDFImpl for TryCastToTypeFunc
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, _arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn return_field_from_args( &self, args: ReturnFieldArgs<'_>, ) -> Result<Arc<Field>, DataFusionError>
fn invoke_with_args( &self, _args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn simplify( &self, args: Vec<Expr>, info: &SimplifyContext, ) -> Result<ExprSimplifyResult, DataFusionError>
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for TryParseUrl
impl ScalarUDFImpl for TryParseUrl
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
Source§impl ScalarUDFImpl for TryUrlDecode
impl ScalarUDFImpl for TryUrlDecode
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
Source§impl ScalarUDFImpl for UnionExtractFun
impl ScalarUDFImpl for UnionExtractFun
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type(&self, _: &[DataType]) -> Result<DataType, DataFusionError>
fn return_field_from_args( &self, args: ReturnFieldArgs<'_>, ) -> Result<Arc<Field>, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for UnionTagFunc
impl ScalarUDFImpl for UnionTagFunc
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type(&self, _: &[DataType]) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for UpperFunc
impl ScalarUDFImpl for UpperFunc
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
fn documentation(&self) -> Option<&Documentation>
Source§impl ScalarUDFImpl for UrlDecode
impl ScalarUDFImpl for UrlDecode
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
Source§impl ScalarUDFImpl for UrlEncode
impl ScalarUDFImpl for UrlEncode
fn name(&self) -> &str
fn signature(&self) -> &Signature
fn return_type( &self, arg_types: &[DataType], ) -> Result<DataType, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
Source§impl ScalarUDFImpl for UuidFunc
impl ScalarUDFImpl for UuidFunc
Source§fn invoke_with_args(
&self,
args: ScalarFunctionArgs,
) -> Result<ColumnarValue, DataFusionError>
fn invoke_with_args( &self, args: ScalarFunctionArgs, ) -> Result<ColumnarValue, DataFusionError>
Prints random (v4) uuid values per row uuid() = ‘a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11’