}
correlatedRsOps.add((ReduceSinkOperator) curentRsOp);
int pos = rsOps.indexOf(curentRsOp);
for (int i = 0; i < joinConds.length; i++) {
JoinCondDesc joinCond = joinConds[i];
int type = joinCond.getType();
if (pos == joinCond.getLeft()) {
if (type == JoinDesc.INNER_JOIN ||
type == JoinDesc.LEFT_OUTER_JOIN ||
type == JoinDesc.LEFT_SEMI_JOIN) {
Operator<? extends OperatorDesc> newCurrentRsOps = rsOps.get(joinCond.getRight());
analyzeReduceSinkOperatorsOfJoinOperator(joinConds, rsOps, newCurrentRsOps,
correlatedRsOps);
}
} else if (pos == joinCond.getRight()) {
if (type == JoinDesc.INNER_JOIN || type == JoinDesc.RIGHT_OUTER_JOIN) {
Operator<? extends OperatorDesc> newCurrentRsOps = rsOps.get(joinCond.getLeft());
analyzeReduceSinkOperatorsOfJoinOperator(joinConds, rsOps, newCurrentRsOps,
correlatedRsOps);
}
}
}