public static List<ExprNodeDesc> resolveJoinKeysAsRSColumns(List<ExprNodeDesc> sourceList,
      Operator<?> reduceSinkOp) {
    ArrayList<ExprNodeDesc> result = new ArrayList<ExprNodeDesc>(sourceList.size());
    for (ExprNodeDesc source : sourceList) {
      ExprNodeDesc newExpr = resolveJoinKeysAsRSColumns(source, reduceSinkOp);
      if (newExpr == null) {
        return null;
      }
      result.add(newExpr);
    }
    return result;
  }
When Multi-Parent backtrack to the same Vertex (non-RS) branch and return the found parent.
@param current Parent OP
@param terminal End Op
@return parent Op or Null when not found
ql/src/java/org/apache/hadoop/hive/ql/plan/ExprNodeDescUtils.java