Package org.apache.calcite.rel.core
Class Aggregate.AggCallBinding
java.lang.Object
org.apache.calcite.sql.SqlOperatorBinding
org.apache.calcite.rel.core.Aggregate.AggCallBinding
- Direct Known Subclasses:
Aggregate.PercentileDiscAggCallBinding
- Enclosing class:
Aggregate
Implementation of the
SqlOperatorBinding
interface for an
aggregate call
applied to a set of operands in the
context of a LogicalAggregate
.-
Field Summary
Fields inherited from class org.apache.calcite.sql.SqlOperatorBinding
typeFactory
-
Constructor Summary
ConstructorDescriptionAggCallBinding
(RelDataTypeFactory typeFactory, SqlAggFunction aggFunction, List<RelDataType> operands, int groupCount, boolean filter) Deprecated.AggCallBinding
(RelDataTypeFactory typeFactory, SqlAggFunction aggFunction, List<RelDataType> preOperands, List<RelDataType> operands, int groupCount, boolean filter) Creates an AggCallBinding. -
Method Summary
Modifier and TypeMethodDescriptionint
If the operator call occurs in an aggregate query, returns the number of columns in the GROUP BY clause.int
Returns the number of bound operands.getOperandType
(int ordinal) Gets the type of a bound operand.int
Returns the number of pre-operands.boolean
Returns whether the operator is an aggregate function with a filter.newError
(org.apache.calcite.runtime.Resources.ExInst<SqlValidatorException> e) Wraps a validation error with context appropriate to this operator call.Methods inherited from class org.apache.calcite.sql.SqlOperatorBinding
collectOperandTypes, getCollationType, getColumnListParamInfo, getCursorOperand, getIntLiteralOperand, getOperandLiteralValue, getOperandLiteralValue, getOperandLiteralValue, getOperandMonotonicity, getOperator, getStringLiteralOperand, getTypeFactory, isOperandLiteral, isOperandNull, isOperandTimeFrame
-
Constructor Details
-
AggCallBinding
public AggCallBinding(RelDataTypeFactory typeFactory, SqlAggFunction aggFunction, List<RelDataType> preOperands, List<RelDataType> operands, int groupCount, boolean filter) Creates an AggCallBinding.- Parameters:
typeFactory
- Type factoryaggFunction
- Aggregate functionpreOperands
- Data types of pre-operandsoperands
- Data types of operandsgroupCount
- Number of columns in the GROUP BY clausefilter
- Whether the aggregate function has a FILTER clause
-
AggCallBinding
@Deprecated public AggCallBinding(RelDataTypeFactory typeFactory, SqlAggFunction aggFunction, List<RelDataType> operands, int groupCount, boolean filter) Deprecated.
-
-
Method Details
-
getGroupCount
public int getGroupCount()Description copied from class:SqlOperatorBinding
If the operator call occurs in an aggregate query, returns the number of columns in the GROUP BY clause. For example, for "SELECT count(*) FROM emp GROUP BY deptno, gender", returns 2.Returns 0 if the query is implicitly "GROUP BY ()" because of an aggregate expression. For example, "SELECT sum(sal) FROM emp".
Returns -1 if the query is not an aggregate query.
- Overrides:
getGroupCount
in classSqlOperatorBinding
-
hasFilter
public boolean hasFilter()Description copied from class:SqlOperatorBinding
Returns whether the operator is an aggregate function with a filter.- Overrides:
hasFilter
in classSqlOperatorBinding
-
getPreOperandCount
public int getPreOperandCount()Description copied from class:SqlOperatorBinding
Returns the number of pre-operands. Zero except for a few aggregate functions.- Overrides:
getPreOperandCount
in classSqlOperatorBinding
-
getOperandCount
public int getOperandCount()Description copied from class:SqlOperatorBinding
Returns the number of bound operands. Includes pre-operands and regular operands.- Specified by:
getOperandCount
in classSqlOperatorBinding
-
getOperandType
Description copied from class:SqlOperatorBinding
Gets the type of a bound operand.- Specified by:
getOperandType
in classSqlOperatorBinding
- Parameters:
ordinal
- zero-based ordinal of operand of interest- Returns:
- bound operand type
-
newError
public CalciteException newError(org.apache.calcite.runtime.Resources.ExInst<SqlValidatorException> e) Description copied from class:SqlOperatorBinding
Wraps a validation error with context appropriate to this operator call.- Specified by:
newError
in classSqlOperatorBinding
- Parameters:
e
- Validation error, not null- Returns:
- Error wrapped, if possible, with positional information
-