public static boolean isSame(List<ExprNodeDesc> first, List<ExprNodeDesc> second) {
    if (first == second) {
      return true;
    }
    if (first == null || second == null || first.size() != second.size()) {
      return false;
    }
    for (int i = 0; i < first.size(); i++) {
      if (!first.get(i).isSame(second.get(i))) {
        return false;
      }
    }
    return true;
  }
Checks whether the keys of a child operator are a prefix of the keys of a
parent operator.
@param childKeys keys of the child operator
@param parentKeys keys of the parent operator
@param childOp child operator
@param parentOp parent operator
@return true if the keys are a prefix, false otherwise
@throws SemanticException
ql/src/java/org/apache/hadoop/hive/ql/plan/ExprNodeDescUtils.java