Package org.apache.drill.exec.expr.fn
Class DrillComplexWriterFuncHolder
java.lang.Object
org.apache.drill.exec.expr.fn.AbstractFuncHolder
org.apache.drill.exec.expr.fn.DrillFuncHolder
org.apache.drill.exec.expr.fn.DrillSimpleFuncHolder
org.apache.drill.exec.expr.fn.DrillComplexWriterFuncHolder
- All Implemented Interfaces:
FuncHolder
-
Constructor Summary
ConstructorDescriptionDrillComplexWriterFuncHolder
(FunctionAttributes functionAttributes, FunctionInitializer initializer) -
Method Summary
Modifier and TypeMethodDescriptionprotected void
checkNullHandling
(FunctionTemplate.NullHandling nullHandling) Check if function type supports provided null handling strategy.protected ClassGenerator.HoldingContainer
generateEvalBody
(ClassGenerator<?> classGenerator, ClassGenerator.HoldingContainer[] inputVariables, String body, com.sun.codemodel.JVar[] workspaceJVars, FunctionHolderExpression holderExpr) Generate the eval block for a simple function, including the null-handling wrapper, if requested.boolean
Checks that the current function holder stores output value using field writer instead of vector holder.Methods inherited from class org.apache.drill.exec.expr.fn.DrillSimpleFuncHolder
createInterpreter, isNested, renderEnd
Methods inherited from class org.apache.drill.exec.expr.fn.DrillFuncHolder
addProtectedBlock, assignInjectableValue, checkPrecisionRange, declare, declareInputVariable, declareVarArgArray, declareWorkspaceVariables, generateBody, getAttributeParameter, getClassLoader, getCostCategory, getExpr, getInputParameters, getNullHandling, getOutputWidthCalculator, getParamCount, getParameters, getParamMajorType, getRegisteredNames, getReturnType, getReturnType, getReturnValue, getWorkspaceVars, isAggregating, isConstant, isDeterministic, isFieldReader, isInternal, isNiladic, isVarArg, matches, meth, meth, renderStart, toString, variableOutputSizeEstimate
Methods inherited from class org.apache.drill.exec.expr.fn.AbstractFuncHolder
renderMiddle
-
Constructor Details
-
DrillComplexWriterFuncHolder
public DrillComplexWriterFuncHolder(FunctionAttributes functionAttributes, FunctionInitializer initializer)
-
-
Method Details
-
isComplexWriterFuncHolder
public boolean isComplexWriterFuncHolder()Description copied from interface:FuncHolder
Checks that the current function holder stores output value using field writer instead of vector holder.- Specified by:
isComplexWriterFuncHolder
in interfaceFuncHolder
- Overrides:
isComplexWriterFuncHolder
in classAbstractFuncHolder
- Returns:
- true if current function holder uses field writer to store the output value
-
generateEvalBody
protected ClassGenerator.HoldingContainer generateEvalBody(ClassGenerator<?> classGenerator, ClassGenerator.HoldingContainer[] inputVariables, String body, com.sun.codemodel.JVar[] workspaceJVars, FunctionHolderExpression holderExpr) Description copied from class:DrillSimpleFuncHolder
Generate the eval block for a simple function, including the null-handling wrapper, if requested.- Overrides:
generateEvalBody
in classDrillSimpleFuncHolder
-
checkNullHandling
Description copied from class:DrillFuncHolder
Check if function type supports provided null handling strategy.Keep in mind that this method is invoked in
DrillFuncHolder(FunctionAttributes, FunctionInitializer)
constructor so make sure not to use any state fields when overriding the method to avoid uninitialized state.- Overrides:
checkNullHandling
in classDrillFuncHolder
- Parameters:
nullHandling
- null handling strategy defined for a function
-