public static class Function.NvlFunc extends Object implements Function
Function.Abs, Function.Acos, Function.ArrayAddElementFunction, Function.ArrayAppendFunction, Function.ArrayConcatFunction, Function.ArrayConstructorFunction, Function.ArrayContainsFunction, Function.ArrayLengthFunction, Function.ArrayOffsetFunction, Function.ArrayOffsetOfFunction, Function.ArrayOrdinalFunction, Function.ArrayOrdinalOfFunction, Function.ArrayOverlapFunction, Function.ArrayPrependFunction, Function.ArrayScalarFunction, Function.ArraySetAddAllFunction, Function.ArraySetAddFunction, Function.ArraysFunction, Function.ArraySliceFunction, Function.ArraysMergeFunction, Function.ArrayToMultiValueStringFunction, Function.ArrayToStringFunction, Function.Asin, Function.Atan, Function.Atan2, Function.BitwiseAnd, Function.BitwiseComplement, Function.BitwiseConvertDoubleToLongBits, Function.BitwiseConvertLongBitsToDouble, Function.BitwiseOr, Function.BitwiseShiftLeft, Function.BitwiseShiftRight, Function.BitwiseXor, Function.BivariateBitwiseMathFunction, Function.BivariateFunction, Function.BivariateMathFunction, Function.CaseSearchedFunc, Function.CaseSimpleFunc, Function.CastFunc, Function.Cbrt, Function.Ceil, Function.ConcatFunc, Function.ConditionFunc, Function.CopySign, Function.Cos, Function.Cosh, Function.Cot, Function.Div, Function.DoubleBivariateMathFunction, Function.DoubleUnivariateMathFunction, Function.Exp, Function.Expm1, Function.Floor, Function.GetExponent, Function.GreatestFunc, Function.HumanReadableBinaryByteFormatFunc, Function.HumanReadableDecimalByteFormatFunc, Function.HumanReadableDecimalFormatFunc, Function.Hypot, Function.IsNotNullFunc, Function.IsNullFunc, Function.LeastFunc, Function.LeftFunc, Function.Log, Function.Log10, Function.Log1p, Function.LowerFunc, Function.LpadFunc, Function.Max, Function.Min, Function.MultiValueStringToArrayFunction, Function.NextAfter, Function.NextUp, Function.NvlFunc, Function.ParseLong, Function.Pi, Function.Pow, Function.ReduceFunction, Function.Remainder, Function.RepeatFunc, Function.ReplaceFunc, Function.ReverseFunc, Function.RightFunc, Function.Rint, Function.Round, Function.RpadFunc, Function.SafeDivide, Function.Scalb, Function.Signum, Function.Sin, Function.Sinh, Function.SizeFormatFunc, Function.Sqrt, Function.StringFormatFunc, Function.StringLongFunction, Function.StringToArrayFunction, Function.StrlenFunc, Function.StrposFunc, Function.SubMonthFunc, Function.SubstringFunc, Function.Tan, Function.Tanh, Function.TimestampFromEpochFunc, Function.ToDegrees, Function.ToRadians, Function.Ulp, Function.UnivariateFunction, Function.UnivariateMathFunction, Function.UnixTimestampFunc, Function.UpperFunc
Constructor and Description |
---|
NvlFunc() |
Modifier and Type | Method and Description |
---|---|
ExprEval |
apply(List<Expr> args,
Expr.ObjectBinding bindings)
Evaluate the function, given a list of arguments and a set of bindings to provide values for
IdentifierExpr . |
<T> ExprVectorProcessor<T> |
asVectorProcessor(Expr.VectorInputBindingInspector inspector,
List<Expr> args)
Builds a 'vectorized' function expression processor, that can build vectorized processors for its input values
using
Expr.asVectorProcessor(org.apache.druid.math.expr.Expr.VectorInputBindingInspector) , for use in vectorized query engines. |
boolean |
canVectorize(Expr.InputBindingInspector inspector,
List<Expr> args)
Check if a function can be 'vectorized', for a given set of
Expr inputs. |
ExpressionType |
getOutputType(Expr.InputBindingInspector inspector,
List<Expr> args)
Compute the output type of this function for a given set of argument expression inputs.
|
String |
name()
Name of the function
|
void |
validateArguments(List<Expr> args)
Validate function arguments.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getArrayInputs, getScalarInputs, hasArrayInputs, hasArrayOutput
processingFailed, validationFailed, validationFailed, validationHelperCheckAnyOfArgumentCount, validationHelperCheckArgIsLiteral, validationHelperCheckArgumentCount, validationHelperCheckArgumentCount, validationHelperCheckArgumentRange, validationHelperCheckLambaArgumentCount, validationHelperCheckMinArgumentCount, validationHelperCheckMinArgumentCount
public String name()
NamedFunction
name
in interface NamedFunction
public ExprEval apply(List<Expr> args, Expr.ObjectBinding bindings)
Function
IdentifierExpr
.public void validateArguments(List<Expr> args)
Function
FunctionExpr
is created, and should validate
everything that is feasible up front. Note that input type information is typically unavailable at the time
Expr
are parsed, and so this method is incapable of performing complete validation.validateArguments
in interface Function
@Nullable public ExpressionType getOutputType(Expr.InputBindingInspector inspector, List<Expr> args)
Function
getOutputType
in interface Function
Expr.getOutputType(org.apache.druid.math.expr.Expr.InputBindingInspector)
public boolean canVectorize(Expr.InputBindingInspector inspector, List<Expr> args)
Function
Expr
inputs. If this method returns true,
Function.asVectorProcessor(org.apache.druid.math.expr.Expr.VectorInputBindingInspector, java.util.List<org.apache.druid.math.expr.Expr>)
is expected to produce a ExprVectorProcessor
which can evaluate values in
batches to use with vectorized query engines.canVectorize
in interface Function
Expr.canVectorize(Expr.InputBindingInspector)
,
ApplyFunction.canVectorize(Expr.InputBindingInspector, Expr, List)
public <T> ExprVectorProcessor<T> asVectorProcessor(Expr.VectorInputBindingInspector inspector, List<Expr> args)
Function
Expr.asVectorProcessor(org.apache.druid.math.expr.Expr.VectorInputBindingInspector)
, for use in vectorized query engines.asVectorProcessor
in interface Function
Expr.asVectorProcessor(Expr.VectorInputBindingInspector)
,
ApplyFunction.asVectorProcessor(Expr.VectorInputBindingInspector, Expr, List)
Copyright © 2011–2023 The Apache Software Foundation. All rights reserved.