public abstract class PushLocalAggIntoScanRuleBase
extends org.apache.calcite.plan.RelOptRule
BatchPhysicalTableSourceScan
whose table is a TableSourceTable with a source supporting SupportsAggregatePushDown.
The aggregate push down does not support a number of more complex statements at present:
| Constructor and Description |
|---|
PushLocalAggIntoScanRuleBase(org.apache.calcite.plan.RelOptRuleOperand operand,
String description) |
| Modifier and Type | Method and Description |
|---|---|
protected boolean |
canPushDown(org.apache.calcite.plan.RelOptRuleCall call,
BatchPhysicalGroupAggregateBase aggregate,
BatchPhysicalTableSourceScan tableSourceScan,
BatchPhysicalCalc calc) |
protected int[] |
getRefFiledIndex(BatchPhysicalCalc calc) |
protected boolean |
isInputRefOnly(BatchPhysicalCalc calc)
Currently, we only supports to push down aggregate above calc which has input ref only.
|
protected boolean |
isProjectionNotPushedDown(BatchPhysicalTableSourceScan tableSourceScan) |
protected void |
pushLocalAggregateIntoScan(org.apache.calcite.plan.RelOptRuleCall call,
BatchPhysicalGroupAggregateBase localAgg,
BatchPhysicalTableSourceScan oldScan,
BatchPhysicalCalc calc) |
protected List<org.apache.calcite.rel.core.AggregateCall> |
translateAggCallArgIndex(List<org.apache.calcite.rel.core.AggregateCall> aggCallList,
int[] refFields) |
protected List<int[]> |
translateGroupingArgIndex(List<int[]> groupingSets,
int[] refFields) |
any, convert, convert, convertList, convertOperand, convertOperand, equals, equals, getOperand, getOperands, getOutConvention, getOutTrait, hashCode, matches, none, onMatch, operand, operand, operand, operand, operand, operandJ, operandJ, some, toString, unorderedpublic PushLocalAggIntoScanRuleBase(org.apache.calcite.plan.RelOptRuleOperand operand,
String description)
protected boolean canPushDown(org.apache.calcite.plan.RelOptRuleCall call,
BatchPhysicalGroupAggregateBase aggregate,
BatchPhysicalTableSourceScan tableSourceScan,
@Nullable
BatchPhysicalCalc calc)
protected void pushLocalAggregateIntoScan(org.apache.calcite.plan.RelOptRuleCall call,
BatchPhysicalGroupAggregateBase localAgg,
BatchPhysicalTableSourceScan oldScan,
@Nullable
BatchPhysicalCalc calc)
protected boolean isProjectionNotPushedDown(BatchPhysicalTableSourceScan tableSourceScan)
protected boolean isInputRefOnly(BatchPhysicalCalc calc)
calc - BatchPhysicalCalcprotected int[] getRefFiledIndex(BatchPhysicalCalc calc)
protected List<int[]> translateGroupingArgIndex(List<int[]> groupingSets, int[] refFields)
Copyright © 2014–2025 The Apache Software Foundation. All rights reserved.