public class DrillComplexWriterAggFuncHolder extends DrillFuncHolder
Constructor and Description |
---|
DrillComplexWriterAggFuncHolder(FunctionAttributes functionAttributes,
FunctionInitializer initializer) |
Modifier and Type | Method and Description |
---|---|
protected String |
add() |
protected void |
addProtectedBlock(ClassGenerator<?> g,
com.sun.codemodel.JBlock sub,
String body,
ClassGenerator.HoldingContainer[] inputVariables,
com.sun.codemodel.JVar[] workspaceJVars,
boolean decConstantInputOnly)
Generate the function block itself, without surrounding comments, and
whether or not the method is empty.
|
protected void |
checkNullHandling(FunctionTemplate.NullHandling nullHandling)
Check if function type supports provided null handling strategy.
|
protected String |
cleanup() |
boolean |
isAggregating() |
boolean |
isComplexWriterFuncHolder()
Checks that the current function holder stores output value
using field writer instead of vector holder.
|
boolean |
isNested() |
protected String |
output() |
ClassGenerator.HoldingContainer |
renderEnd(ClassGenerator<?> classGenerator,
ClassGenerator.HoldingContainer[] inputVariables,
com.sun.codemodel.JVar[] workspaceJVars,
FunctionHolderExpression holderExpr)
Generate methods body and complete the code generation.
|
void |
renderMiddle(ClassGenerator<?> classGenerator,
ClassGenerator.HoldingContainer[] inputVariables,
com.sun.codemodel.JVar[] workspaceJVars) |
com.sun.codemodel.JVar[] |
renderStart(ClassGenerator<?> classGenerator,
ClassGenerator.HoldingContainer[] inputVariables,
FieldReference fieldReference) |
protected String |
reset() |
protected String |
setup() |
assignInjectableValue, checkPrecisionRange, declare, declareInputVariable, declareVarArgArray, declareWorkspaceVariables, generateBody, getAttributeParameter, getClassLoader, getCostCategory, getExpr, getInputParameters, getNullHandling, getOutputWidthCalculator, getParamCount, getParameters, getParamMajorType, getRegisteredNames, getReturnType, getReturnType, getReturnValue, getWorkspaceVars, isConstant, isDeterministic, isFieldReader, isInternal, isNiladic, isVarArg, matches, meth, meth, toString, variableOutputSizeEstimate
public DrillComplexWriterAggFuncHolder(FunctionAttributes functionAttributes, FunctionInitializer initializer)
public boolean isComplexWriterFuncHolder()
FuncHolder
isComplexWriterFuncHolder
in interface FuncHolder
isComplexWriterFuncHolder
in class AbstractFuncHolder
public com.sun.codemodel.JVar[] renderStart(ClassGenerator<?> classGenerator, ClassGenerator.HoldingContainer[] inputVariables, FieldReference fieldReference)
public void renderMiddle(ClassGenerator<?> classGenerator, ClassGenerator.HoldingContainer[] inputVariables, com.sun.codemodel.JVar[] workspaceJVars)
public ClassGenerator.HoldingContainer renderEnd(ClassGenerator<?> classGenerator, ClassGenerator.HoldingContainer[] inputVariables, com.sun.codemodel.JVar[] workspaceJVars, FunctionHolderExpression holderExpr)
AbstractFuncHolder
classGenerator
- the class responsible for code generationinputVariables
- the source of the vector holdersworkspaceJVars
- class fieldsholderExpr
- holder for the function expressionprotected String setup()
protected String reset()
protected String add()
protected String output()
protected String cleanup()
public boolean isNested()
isNested
in interface FuncHolder
isNested
in class AbstractFuncHolder
public boolean isAggregating()
isAggregating
in class DrillFuncHolder
protected void addProtectedBlock(ClassGenerator<?> g, com.sun.codemodel.JBlock sub, String body, ClassGenerator.HoldingContainer[] inputVariables, com.sun.codemodel.JVar[] workspaceJVars, boolean decConstantInputOnly)
DrillFuncHolder
addProtectedBlock
in class DrillFuncHolder
protected void checkNullHandling(FunctionTemplate.NullHandling nullHandling)
DrillFuncHolder
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.
checkNullHandling
in class DrillFuncHolder
nullHandling
- null handling strategy defined for a functionCopyright © 1970 The Apache Software Foundation. All rights reserved.