Class DrillCalciteSqlAggFunctionWrapper
java.lang.Object
org.apache.calcite.sql.SqlOperator
org.apache.calcite.sql.SqlFunction
org.apache.calcite.sql.SqlAggFunction
org.apache.drill.exec.planner.sql.DrillCalciteSqlAggFunctionWrapper
- All Implemented Interfaces:
org.apache.calcite.plan.Context
,org.apache.calcite.schema.Wrapper
,DrillCalciteSqlWrapper
public class DrillCalciteSqlAggFunctionWrapper
extends org.apache.calcite.sql.SqlAggFunction
implements DrillCalciteSqlWrapper
This class serves as a wrapper class for SqlAggFunction. The motivation is to plug-in the return type inference and operand
type check algorithms of Drill into Calcite's sql validation procedure.
Except for the methods which are relevant to the return type inference and operand type check algorithms, the wrapper
simply forwards the method calls to the wrapped SqlAggFunction.
-
Field Summary
Fields inherited from class org.apache.calcite.sql.SqlOperator
kind, MDX_PRECEDENCE, NL
-
Constructor Summary
ConstructorDescriptionDrillCalciteSqlAggFunctionWrapper
(org.apache.calcite.sql.SqlAggFunction sqlAggFunction, List<DrillFuncHolder> functions) DrillCalciteSqlAggFunctionWrapper
(org.apache.calcite.sql.SqlAggFunction sqlAggFunction, org.apache.calcite.rel.type.RelDataType relDataType) -
Method Summary
Modifier and TypeMethodDescriptionboolean
boolean
argumentMustBeScalar
(int ordinal) boolean
checkOperandTypes
(org.apache.calcite.sql.SqlCallBinding callBinding, boolean throwOnFailure) org.apache.calcite.rel.type.RelDataType
deriveType
(org.apache.calcite.sql.validate.SqlValidator validator, org.apache.calcite.sql.validate.SqlValidatorScope scope, org.apache.calcite.sql.SqlCall call) getAllowedSignatures
(String opNameToUse) org.apache.calcite.sql.validate.SqlMonotonicity
getMonotonicity
(org.apache.calcite.sql.SqlOperatorBinding call) org.apache.calcite.sql.SqlOperator
Get the wrappedSqlOperator
getSignatureTemplate
(int operandsCount) org.apache.calcite.sql.SqlSyntax
boolean
boolean
boolean
boolean
boolean
validRexOperands
(int count, org.apache.calcite.util.Litmus litmus) Methods inherited from class org.apache.calcite.sql.SqlAggFunction
allowsFilter, allowsNullTreatment, getDistinctOptionality, getParameterTypes, getReturnType, getRollup, isPercentile, isQuantifierAllowed, requiresGroupOrder, requiresOrder, requiresOver, unwrap, validateCall
Methods inherited from class org.apache.calcite.sql.SqlFunction
getFunctionType, getNameAsId, getParamTypes, getSqlIdentifier, unparse, validateQuantifier
Methods inherited from class org.apache.calcite.sql.SqlOperator
acceptCall, acceptCall, adjustType, checkOperandCount, constructArgNameList, constructArgTypeList, constructOperandList, createCall, createCall, createCall, createCall, createCall, createCall, createCall, deriveOperandType, equals, getAllowedSignatures, getKind, getLeftPrec, getMonotonicity, getName, getOperandCountRange, getOperandTypeChecker, getOperandTypeInference, getReturnTypeInference, getRightPrec, getStrongPolicyInference, hashCode, inferReturnType, inferReturnType, isGroup, isGroupAuxiliary, isName, isSymmetrical, leftPrec, not, preValidateCall, reverse, rewriteCall, rightPrec, toString, unparseListClause, unparseListClause, validateOperands
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
Methods inherited from interface org.apache.calcite.schema.Wrapper
maybeUnwrap, unwrapOrThrow
-
Field Details
-
SUM
-
-
Constructor Details
-
DrillCalciteSqlAggFunctionWrapper
public DrillCalciteSqlAggFunctionWrapper(org.apache.calcite.sql.SqlAggFunction sqlAggFunction, List<DrillFuncHolder> functions) -
DrillCalciteSqlAggFunctionWrapper
public DrillCalciteSqlAggFunctionWrapper(org.apache.calcite.sql.SqlAggFunction sqlAggFunction, org.apache.calcite.rel.type.RelDataType relDataType)
-
-
Method Details
-
getOperator
public org.apache.calcite.sql.SqlOperator getOperator()Description copied from interface:DrillCalciteSqlWrapper
Get the wrappedSqlOperator
- Specified by:
getOperator
in interfaceDrillCalciteSqlWrapper
- Returns:
- SqlOperator get the wrapped
SqlOperator
-
validRexOperands
public boolean validRexOperands(int count, org.apache.calcite.util.Litmus litmus) - Overrides:
validRexOperands
in classorg.apache.calcite.sql.SqlOperator
-
getAllowedSignatures
- Overrides:
getAllowedSignatures
in classorg.apache.calcite.sql.SqlOperator
-
isAggregator
public boolean isAggregator()- Overrides:
isAggregator
in classorg.apache.calcite.sql.SqlAggFunction
-
allowsFraming
public boolean allowsFraming()- Overrides:
allowsFraming
in classorg.apache.calcite.sql.SqlOperator
-
getMonotonicity
public org.apache.calcite.sql.validate.SqlMonotonicity getMonotonicity(org.apache.calcite.sql.SqlOperatorBinding call) - Overrides:
getMonotonicity
in classorg.apache.calcite.sql.SqlOperator
-
isDeterministic
public boolean isDeterministic()- Overrides:
isDeterministic
in classorg.apache.calcite.sql.SqlOperator
-
isDynamicFunction
public boolean isDynamicFunction()- Overrides:
isDynamicFunction
in classorg.apache.calcite.sql.SqlOperator
-
requiresDecimalExpansion
public boolean requiresDecimalExpansion()- Overrides:
requiresDecimalExpansion
in classorg.apache.calcite.sql.SqlOperator
-
argumentMustBeScalar
public boolean argumentMustBeScalar(int ordinal) - Overrides:
argumentMustBeScalar
in classorg.apache.calcite.sql.SqlOperator
-
checkOperandTypes
public boolean checkOperandTypes(org.apache.calcite.sql.SqlCallBinding callBinding, boolean throwOnFailure) - Overrides:
checkOperandTypes
in classorg.apache.calcite.sql.SqlOperator
-
getSyntax
public org.apache.calcite.sql.SqlSyntax getSyntax()- Overrides:
getSyntax
in classorg.apache.calcite.sql.SqlFunction
-
getParamNames
- Overrides:
getParamNames
in classorg.apache.calcite.sql.SqlFunction
-
getSignatureTemplate
- Overrides:
getSignatureTemplate
in classorg.apache.calcite.sql.SqlOperator
-
deriveType
public org.apache.calcite.rel.type.RelDataType deriveType(org.apache.calcite.sql.validate.SqlValidator validator, org.apache.calcite.sql.validate.SqlValidatorScope scope, org.apache.calcite.sql.SqlCall call) - Overrides:
deriveType
in classorg.apache.calcite.sql.SqlFunction
-