Class FallbackVectorProcessor<T>
java.lang.Object
org.apache.druid.math.expr.vector.FallbackVectorProcessor<T>
- All Implemented Interfaces:
ExprVectorProcessor<T>
Implementation of
ExprVectorProcessor that adapts non-vectorized Expr.eval(Expr.ObjectBinding).
This allows non-vectorized expressions to participate in vectorized queries.-
Field Summary
Fields -
Method Summary
Modifier and TypeMethodDescriptionstatic booleancanFallbackVectorize(List<Expr> args, ExpressionType outputType, Expr.InputBindingInspector inspector) Returns whethercreate(Function, List, Expr.VectorInputBindingInspector)can be used to make a fallback vectorized processor for a function with the given output type and arguments.static booleancanFallbackVectorize(LambdaExpr lambdaExpr, List<Expr> args, ExpressionType outputType, Expr.InputBindingInspector inspector) Returns whethercreate(ApplyFunction, LambdaExpr, List, Expr.VectorInputBindingInspector)can be used to make a fallback vectorized processor for a function with the given output type and arguments.static <T> ExprVectorProcessor<T> create(ApplyFunction function, LambdaExpr lambdaExpr, List<Expr> args, Expr.VectorInputBindingInspector inspector) Create a processor for a non-vectorizableApplyFunction.static <T> ExprVectorProcessor<T> create(ExprMacroTable.ExprMacro macro, List<Expr> args, Expr.VectorInputBindingInspector inspector) Create a processor for a non-vectorizableExprMacroTable.ExprMacro.static <T> ExprVectorProcessor<T> create(Function function, List<Expr> args, Expr.VectorInputBindingInspector inspector) Create a processor for a non-vectorizableFunction.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.apache.druid.math.expr.vector.ExprVectorProcessor
evalVector, maxVectorSize
-
Field Details
-
outputType
-
-
Method Details
-
create
public static <T> ExprVectorProcessor<T> create(Function function, List<Expr> args, Expr.VectorInputBindingInspector inspector) Create a processor for a non-vectorizableFunction. -
create
public static <T> ExprVectorProcessor<T> create(ApplyFunction function, LambdaExpr lambdaExpr, List<Expr> args, Expr.VectorInputBindingInspector inspector) Create a processor for a non-vectorizableApplyFunction. -
create
public static <T> ExprVectorProcessor<T> create(ExprMacroTable.ExprMacro macro, List<Expr> args, Expr.VectorInputBindingInspector inspector) Create a processor for a non-vectorizableExprMacroTable.ExprMacro. -
canFallbackVectorize
public static boolean canFallbackVectorize(List<Expr> args, @Nullable ExpressionType outputType, Expr.InputBindingInspector inspector) Returns whethercreate(Function, List, Expr.VectorInputBindingInspector)can be used to make a fallback vectorized processor for a function with the given output type and arguments. -
canFallbackVectorize
public static boolean canFallbackVectorize(LambdaExpr lambdaExpr, List<Expr> args, @Nullable ExpressionType outputType, Expr.InputBindingInspector inspector) Returns whethercreate(ApplyFunction, LambdaExpr, List, Expr.VectorInputBindingInspector)can be used to make a fallback vectorized processor for a function with the given output type and arguments. -
getOutputType
- Specified by:
getOutputTypein interfaceExprVectorProcessor<T>
-