Struct datafusion_functions::string::concat_ws::ConcatWsFunc
source · pub struct ConcatWsFunc { /* private fields */ }Implementations§
source§impl ConcatWsFunc
impl ConcatWsFunc
Trait Implementations§
source§impl Debug for ConcatWsFunc
impl Debug for ConcatWsFunc
source§impl Default for ConcatWsFunc
impl Default for ConcatWsFunc
source§impl ScalarUDFImpl for ConcatWsFunc
impl ScalarUDFImpl for ConcatWsFunc
source§fn invoke(&self, args: &[ColumnarValue]) -> Result<ColumnarValue>
fn invoke(&self, args: &[ColumnarValue]) -> Result<ColumnarValue>
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: &dyn SimplifyInfo
) -> Result<ExprSimplifyResult>
fn simplify( &self, args: Vec<Expr>, _info: &dyn SimplifyInfo ) -> Result<ExprSimplifyResult>
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.
source§fn signature(&self) -> &Signature
fn signature(&self) -> &Signature
Returns the function’s
Signature for information about what input
types are accepted and the function’s Volatility.source§fn return_type_from_exprs(
&self,
_args: &[Expr],
_schema: &dyn ExprSchema,
arg_types: &[DataType]
) -> Result<DataType, DataFusionError>
fn return_type_from_exprs( &self, _args: &[Expr], _schema: &dyn ExprSchema, arg_types: &[DataType] ) -> Result<DataType, DataFusionError>
source§fn invoke_no_args(
&self,
_number_rows: usize
) -> Result<ColumnarValue, DataFusionError>
fn invoke_no_args( &self, _number_rows: usize ) -> Result<ColumnarValue, DataFusionError>
Invoke the function without
args, instead the number of rows are provided,
returning the appropriate result.source§fn aliases(&self) -> &[String]
fn aliases(&self) -> &[String]
Returns any aliases (alternate names) for this function. Read more
source§fn monotonicity(&self) -> Result<Option<Vec<Option<bool>>>, DataFusionError>
fn monotonicity(&self) -> Result<Option<Vec<Option<bool>>>, DataFusionError>
This function specifies monotonicity behaviors for User defined scalar functions.
source§fn 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 eliminationAuto Trait Implementations§
impl Freeze for ConcatWsFunc
impl RefUnwindSafe for ConcatWsFunc
impl Send for ConcatWsFunc
impl Sync for ConcatWsFunc
impl Unpin for ConcatWsFunc
impl UnwindSafe for ConcatWsFunc
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
source§impl<T> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more