Package org.apache.druid.math.expr
Class ApplyFunction.CartesianFoldFunction
- java.lang.Object
-
- org.apache.druid.math.expr.ApplyFunction.BaseFoldFunction
-
- org.apache.druid.math.expr.ApplyFunction.CartesianFoldFunction
-
- All Implemented Interfaces:
ApplyFunction,NamedFunction
- Enclosing interface:
- ApplyFunction
public static class ApplyFunction.CartesianFoldFunction extends ApplyFunction.BaseFoldFunction
Accumulate a value for the cartesian product of 'n' array inputs arguments with an 'n + 1' argumentLambdaExpr. The 'array' input expressions are the first 'n' arguments, the initial value for the accumulator expression is the final argument.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.apache.druid.math.expr.ApplyFunction
ApplyFunction.AllMatchFunction, ApplyFunction.AnyMatchFunction, ApplyFunction.BaseFoldFunction, ApplyFunction.BaseMapFunction, ApplyFunction.CartesianFoldFunction, ApplyFunction.CartesianFoldLambdaBinding, ApplyFunction.CartesianMapFunction, ApplyFunction.CartesianMapLambdaBinding, ApplyFunction.FilterFunction, ApplyFunction.FoldFunction, ApplyFunction.FoldLambdaBinding, ApplyFunction.IndexableFoldLambdaBinding, ApplyFunction.IndexableMapLambdaObjectBinding, ApplyFunction.LambdaInputBindingInspector, ApplyFunction.MapFunction, ApplyFunction.MapLambdaBinding, ApplyFunction.MatchFunction, ApplyFunction.SettableLambdaBinding
-
-
Constructor Summary
Constructors Constructor Description CartesianFoldFunction()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description ExprEvalapply(LambdaExpr lambdaExpr, List<Expr> argsExpr, Expr.ObjectBinding bindings)Set<Expr>getArrayInputs(List<Expr> args)Get list of input arguments which must evaluate to an arrayExprTypeStringname()Name of the functionvoidvalidateArguments(LambdaExpr lambdaExpr, List<Expr> args)Validate function arguments.-
Methods inherited from class org.apache.druid.math.expr.ApplyFunction.BaseFoldFunction
getOutputType, hasArrayOutput
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.apache.druid.math.expr.ApplyFunction
asVectorProcessor, canVectorize
-
Methods inherited from interface org.apache.druid.math.expr.NamedFunction
processingFailed, validationFailed, validationFailed, validationHelperCheckAnyOfArgumentCount, validationHelperCheckArgIsLiteral, validationHelperCheckArgumentCount, validationHelperCheckArgumentCount, validationHelperCheckArgumentRange, validationHelperCheckLambaArgumentCount, validationHelperCheckMinArgumentCount, validationHelperCheckMinArgumentCount
-
-
-
-
Method Detail
-
name
public String name()
Description copied from interface:NamedFunctionName of the function
-
apply
public ExprEval apply(LambdaExpr lambdaExpr, List<Expr> argsExpr, Expr.ObjectBinding bindings)
Description copied from interface:ApplyFunctionApplyLambdaExprto argument list ofExprgiven a set of outerExpr.ObjectBinding. These outer bindings will be used to form the scope for the bindings used to evaluate theLambdaExpr, which use the array inputs to supply scalar values to use as bindings forIdentifierExprin the lambda body.
-
getArrayInputs
public Set<Expr> getArrayInputs(List<Expr> args)
Description copied from interface:ApplyFunctionGet list of input arguments which must evaluate to an arrayExprType
-
validateArguments
public void validateArguments(LambdaExpr lambdaExpr, List<Expr> args)
Description copied from interface:ApplyFunctionValidate function arguments. This method is called whenever aApplyFunctionExpris created, and should validate everything that is feasible up front. Note that input type information is typically unavailable at the timeExprare parsed, and so this method is incapable of performing complete validation.
-
-