use of org.apache.flink.table.planner.plan.nodes.physical.batch.BatchPhysicalCalc in project flink by apache.
the class PushLocalHashAggWithCalcIntoScanRule method matches.
@Override
public boolean matches(RelOptRuleCall call) {
BatchPhysicalLocalHashAggregate localHashAgg = call.rel(1);
BatchPhysicalCalc calc = call.rel(2);
BatchPhysicalTableSourceScan tableSourceScan = call.rel(3);
return isInputRefOnly(calc) && isProjectionNotPushedDown(tableSourceScan) && canPushDown(call, localHashAgg, tableSourceScan);
}
use of org.apache.flink.table.planner.plan.nodes.physical.batch.BatchPhysicalCalc in project flink by apache.
the class PushLocalHashAggWithCalcIntoScanRule method onMatch.
@Override
public void onMatch(RelOptRuleCall call) {
BatchPhysicalLocalHashAggregate localHashAgg = call.rel(1);
BatchPhysicalCalc calc = call.rel(2);
BatchPhysicalTableSourceScan oldScan = call.rel(3);
int[] calcRefFields = getRefFiledIndex(calc);
pushLocalAggregateIntoScan(call, localHashAgg, oldScan, calcRefFields);
}
use of org.apache.flink.table.planner.plan.nodes.physical.batch.BatchPhysicalCalc in project flink by apache.
the class PushLocalSortAggWithCalcIntoScanRule method matches.
@Override
public boolean matches(RelOptRuleCall call) {
BatchPhysicalLocalSortAggregate localAggregate = call.rel(1);
BatchPhysicalCalc calc = call.rel(2);
BatchPhysicalTableSourceScan tableSourceScan = call.rel(3);
return isInputRefOnly(calc) && isProjectionNotPushedDown(tableSourceScan) && canPushDown(call, localAggregate, tableSourceScan);
}
use of org.apache.flink.table.planner.plan.nodes.physical.batch.BatchPhysicalCalc in project flink by apache.
the class PushLocalSortAggWithCalcIntoScanRule method onMatch.
@Override
public void onMatch(RelOptRuleCall call) {
BatchPhysicalLocalSortAggregate localHashAgg = call.rel(1);
BatchPhysicalCalc calc = call.rel(2);
BatchPhysicalTableSourceScan oldScan = call.rel(3);
int[] calcRefFields = getRefFiledIndex(calc);
pushLocalAggregateIntoScan(call, localHashAgg, oldScan, calcRefFields);
}
use of org.apache.flink.table.planner.plan.nodes.physical.batch.BatchPhysicalCalc in project flink by apache.
the class PushLocalSortAggWithSortAndCalcIntoScanRule method onMatch.
@Override
public void onMatch(RelOptRuleCall call) {
BatchPhysicalGroupAggregateBase localSortAgg = call.rel(1);
BatchPhysicalCalc calc = call.rel(3);
BatchPhysicalTableSourceScan oldScan = call.rel(4);
int[] calcRefFields = getRefFiledIndex(calc);
pushLocalAggregateIntoScan(call, localSortAgg, oldScan, calcRefFields);
}
Aggregations