public abstract class EnumerableAggregateBase extends Aggregate
| Modifier and Type | Class and Description |
|---|---|
protected class |
EnumerableAggregateBase.AggContextImpl
An implementation of
AggContext. |
Aggregate.AggCallBinding, Aggregate.GroupRelNode.ContextaggCalls, groupSet, groupSets, hints, indicator, IS_NOT_GRAND_TOTAL, IS_SIMPLE, NO_INDICATORdigest, id, rowType, traitSet| Modifier | Constructor and Description |
|---|---|
protected |
EnumerableAggregateBase(RelOptCluster cluster,
RelTraitSet traitSet,
List<RelHint> hints,
RelNode input,
ImmutableBitSet groupSet,
@Nullable List<ImmutableBitSet> groupSets,
List<AggregateCall> aggCalls) |
| Modifier and Type | Method and Description |
|---|---|
protected void |
createAccumulatorAdders(org.apache.calcite.linq4j.tree.ParameterExpression inParameter,
List<AggImpState> aggs,
PhysType accPhysType,
org.apache.calcite.linq4j.tree.ParameterExpression accExpr,
PhysType inputPhysType,
org.apache.calcite.linq4j.tree.BlockBuilder builder,
EnumerableRelImplementor implementor,
JavaTypeFactory typeFactory) |
protected List<Type> |
createAggStateTypes(List<org.apache.calcite.linq4j.tree.Expression> initExpressions,
org.apache.calcite.linq4j.tree.BlockBuilder initBlock,
List<AggImpState> aggs,
JavaTypeFactory typeFactory) |
protected void |
declareParentAccumulator(List<org.apache.calcite.linq4j.tree.Expression> initExpressions,
org.apache.calcite.linq4j.tree.BlockBuilder initBlock,
PhysType accPhysType) |
protected static boolean |
hasOrderedCall(List<AggImpState> aggs) |
protected void |
implementLambdaFactory(org.apache.calcite.linq4j.tree.BlockBuilder builder,
PhysType inputPhysType,
List<AggImpState> aggs,
org.apache.calcite.linq4j.tree.Expression accumulatorInitializer,
boolean hasOrderedCall,
org.apache.calcite.linq4j.tree.ParameterExpression lambdaFactory)
Implements the
AggregateLambdaFactory. |
checkIndicator, computeSelfCost, containsDistinctCall, copy, copy, copy, deriveRowType, deriveRowType, estimateRowCount, explainTerms, getAggCallList, getGroupCount, getGroupSet, getGroupSets, getGroupType, getHints, getIndicatorCount, getNamedAggCalls, isNotGrandTotal, isSimple, isValid, noIndicatorchildrenAccept, getInput, getInputs, replaceInputaccept, accept, collectVariablesSet, collectVariablesUsed, deepEquals, deepHashCode, equals, explain, getCluster, getConvention, getCorrelVariable, getDescription, getDigest, getExpectedInputRowType, getId, getInput, getRelDigest, getRelTypeName, getRowType, getTable, getTraitSet, getVariablesSet, hashCode, isEnforcer, metadata, onRegister, recomputeDigest, register, sole, toStringclone, finalize, getClass, notify, notifyAll, wait, wait, waitattachHints, withHintsexplain, fieldIsNullableprotected EnumerableAggregateBase(RelOptCluster cluster, RelTraitSet traitSet, List<RelHint> hints, RelNode input, ImmutableBitSet groupSet, @Nullable List<ImmutableBitSet> groupSets, List<AggregateCall> aggCalls)
protected static boolean hasOrderedCall(List<AggImpState> aggs)
protected void declareParentAccumulator(List<org.apache.calcite.linq4j.tree.Expression> initExpressions, org.apache.calcite.linq4j.tree.BlockBuilder initBlock, PhysType accPhysType)
protected void implementLambdaFactory(org.apache.calcite.linq4j.tree.BlockBuilder builder,
PhysType inputPhysType,
List<AggImpState> aggs,
org.apache.calcite.linq4j.tree.Expression accumulatorInitializer,
boolean hasOrderedCall,
org.apache.calcite.linq4j.tree.ParameterExpression lambdaFactory)
AggregateLambdaFactory.
Behavior depends upon ordering:
hasOrderedCall == true means there is at least one aggregate
call including sort spec. We use LazyAggregateLambdaFactory
implementation to implement sorted aggregates for that.
hasOrderedCall == false indicates to use
BasicAggregateLambdaFactory to implement a non-sort
aggregate.
protected void createAccumulatorAdders(org.apache.calcite.linq4j.tree.ParameterExpression inParameter,
List<AggImpState> aggs,
PhysType accPhysType,
org.apache.calcite.linq4j.tree.ParameterExpression accExpr,
PhysType inputPhysType,
org.apache.calcite.linq4j.tree.BlockBuilder builder,
EnumerableRelImplementor implementor,
JavaTypeFactory typeFactory)
protected List<Type> createAggStateTypes(List<org.apache.calcite.linq4j.tree.Expression> initExpressions, org.apache.calcite.linq4j.tree.BlockBuilder initBlock, List<AggImpState> aggs, JavaTypeFactory typeFactory)
Copyright © 2012-2022 Apache Software Foundation. All Rights Reserved.