public interface Function extends NamedFunction
FunctionExpr. All Function implementations
are immutable.
Do NOT remove "unused" members in this class. They are used by generated Antlr| Modifier and Type | Interface and Description |
|---|---|
static class |
Function.Abs |
static class |
Function.Acos |
static class |
Function.ArrayAddElementFunction
Scaffolding for a 2 argument
Function which accepts one array and one scalar input and adds the scalar
input to the array in some way. |
static class |
Function.ArrayAppendFunction |
static class |
Function.ArrayConcatFunction |
static class |
Function.ArrayConstructorFunction |
static class |
Function.ArrayContainsFunction |
static class |
Function.ArrayLengthFunction |
static class |
Function.ArrayOffsetFunction |
static class |
Function.ArrayOffsetOfFunction |
static class |
Function.ArrayOrdinalFunction |
static class |
Function.ArrayOrdinalOfFunction |
static class |
Function.ArrayOverlapFunction |
static class |
Function.ArrayPrependFunction |
static class |
Function.ArrayScalarFunction
Function that takes 1 array operand and 1 scalar operand |
static class |
Function.ArraySetAddAllFunction |
static class |
Function.ArraySetAddFunction |
static class |
Function.ArraysFunction
Function that takes 2 array operands |
static class |
Function.ArraySliceFunction |
static class |
Function.ArraysMergeFunction
Base scaffolding for functions which accept 2 array arguments and combine them in some way
|
static class |
Function.ArrayToMultiValueStringFunction |
static class |
Function.ArrayToStringFunction |
static class |
Function.Asin |
static class |
Function.Atan |
static class |
Function.Atan2 |
static class |
Function.BitwiseAnd |
static class |
Function.BitwiseComplement |
static class |
Function.BitwiseConvertDoubleToLongBits |
static class |
Function.BitwiseConvertLongBitsToDouble |
static class |
Function.BitwiseOr |
static class |
Function.BitwiseShiftLeft |
static class |
Function.BitwiseShiftRight |
static class |
Function.BitwiseXor |
static class |
Function.BivariateBitwiseMathFunction |
static class |
Function.BivariateFunction
Base class for a 2 variable input
Function implementation |
static class |
Function.BivariateMathFunction
Base class for a 2 variable input mathematical
Function, with specialized 'eval' implementations that
operate on primitive number types |
static class |
Function.CaseSearchedFunc
"Searched CASE" function, similar to
CASE WHEN boolean_expr THEN result [ELSE else_result] END in SQL. |
static class |
Function.CaseSimpleFunc
"Simple CASE" function, similar to
CASE expr WHEN value THEN result [ELSE else_result] END in SQL. |
static class |
Function.CastFunc |
static class |
Function.Cbrt |
static class |
Function.Ceil |
static class |
Function.ConcatFunc |
static class |
Function.ConditionFunc |
static class |
Function.CopySign |
static class |
Function.Cos |
static class |
Function.Cosh |
static class |
Function.Cot |
static class |
Function.Div |
static class |
Function.DoubleBivariateMathFunction
Many math functions always output a
Double primitive, regardless of input type. |
static class |
Function.DoubleUnivariateMathFunction
Many math functions always output a
Double primitive, regardless of input type. |
static class |
Function.Exp |
static class |
Function.Expm1 |
static class |
Function.Floor |
static class |
Function.GetExponent |
static class |
Function.GreatestFunc |
static class |
Function.HumanReadableBinaryByteFormatFunc |
static class |
Function.HumanReadableDecimalByteFormatFunc |
static class |
Function.HumanReadableDecimalFormatFunc |
static class |
Function.Hypot |
static class |
Function.IsNotNullFunc |
static class |
Function.IsNullFunc |
static class |
Function.LeastFunc |
static class |
Function.LeftFunc |
static class |
Function.Log |
static class |
Function.Log10 |
static class |
Function.Log1p |
static class |
Function.LowerFunc |
static class |
Function.LpadFunc |
static class |
Function.Max |
static class |
Function.Min |
static class |
Function.MultiValueStringToArrayFunction |
static class |
Function.NextAfter |
static class |
Function.NextUp |
static class |
Function.NvlFunc |
static class |
Function.ParseLong |
static class |
Function.Pi |
static class |
Function.Pow |
static class |
Function.ReduceFunction |
static class |
Function.Remainder |
static class |
Function.RepeatFunc |
static class |
Function.ReplaceFunc |
static class |
Function.ReverseFunc |
static class |
Function.RightFunc |
static class |
Function.Rint |
static class |
Function.Round |
static class |
Function.RpadFunc |
static class |
Function.SafeDivide |
static class |
Function.Scalb |
static class |
Function.Signum |
static class |
Function.Sin |
static class |
Function.Sinh |
static class |
Function.SizeFormatFunc |
static class |
Function.Sqrt |
static class |
Function.StringFormatFunc |
static class |
Function.StringLongFunction
Base class for a 2 variable input
Function whose first argument is a ExprType.STRING and second
argument is ExprType.LONG |
static class |
Function.StringToArrayFunction |
static class |
Function.StrlenFunc |
static class |
Function.StrposFunc |
static class |
Function.SubMonthFunc |
static class |
Function.SubstringFunc |
static class |
Function.Tan |
static class |
Function.Tanh |
static class |
Function.TimestampFromEpochFunc |
static class |
Function.ToDegrees |
static class |
Function.ToRadians |
static class |
Function.Ulp |
static class |
Function.UnivariateFunction
Base class for a single variable input
Function implementation |
static class |
Function.UnivariateMathFunction
Base class for a single variable input mathematical
Function, with specialized 'eval' implementations that
that operate on primitive number types |
static class |
Function.UnixTimestampFunc |
static class |
Function.UpperFunc |
| 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. |
default <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. |
default boolean |
canVectorize(Expr.InputBindingInspector inspector,
List<Expr> args)
Check if a function can be 'vectorized', for a given set of
Expr inputs. |
default Set<Expr> |
getArrayInputs(List<Expr> args)
Given a list of arguments to this
Function, get the set of arguments that must evaluate to an array
value |
ExpressionType |
getOutputType(Expr.InputBindingInspector inspector,
List<Expr> args)
Compute the output type of this function for a given set of argument expression inputs.
|
default Set<Expr> |
getScalarInputs(List<Expr> args)
Given a list of arguments to this
Function, get the set of arguments that must evaluate to a scalar value |
default boolean |
hasArrayInputs()
Returns true if a function expects any array arguments
|
default boolean |
hasArrayOutput()
Returns true if function produces an array.
|
void |
validateArguments(List<Expr> args)
Validate function arguments.
|
name, processingFailed, validationFailed, validationFailed, validationHelperCheckAnyOfArgumentCount, validationHelperCheckArgIsLiteral, validationHelperCheckArgumentCount, validationHelperCheckArgumentCount, validationHelperCheckArgumentRange, validationHelperCheckLambaArgumentCount, validationHelperCheckMinArgumentCount, validationHelperCheckMinArgumentCountExprEval apply(List<Expr> args, Expr.ObjectBinding bindings)
IdentifierExpr.default Set<Expr> getScalarInputs(List<Expr> args)
Function, get the set of arguments that must evaluate to a scalar valuedefault Set<Expr> getArrayInputs(List<Expr> args)
Function, get the set of arguments that must evaluate to an array
valuedefault boolean hasArrayInputs()
default boolean hasArrayOutput()
Function implementations are expected to
exclusively produce either scalar or array values.void validateArguments(List<Expr> args)
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.@Nullable ExpressionType getOutputType(Expr.InputBindingInspector inspector, List<Expr> args)
default boolean canVectorize(Expr.InputBindingInspector inspector, List<Expr> args)
Expr inputs. If this method returns true,
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.default <T> ExprVectorProcessor<T> asVectorProcessor(Expr.VectorInputBindingInspector inspector, List<Expr> args)
Expr.asVectorProcessor(org.apache.druid.math.expr.Expr.VectorInputBindingInspector), for use in vectorized query engines.Copyright © 2011–2023 The Apache Software Foundation. All rights reserved.