public static ArrayList<ExprNodeDesc> clone(List<ExprNodeDesc> sources) {
    ArrayList<ExprNodeDesc> result = new ArrayList<ExprNodeDesc>();
    for (ExprNodeDesc expr : sources) {
      result.add(expr.clone());
    }
    return result;
  }
Return false if the expression has any non deterministic function
ql/src/java/org/apache/hadoop/hive/ql/plan/ExprNodeDescUtils.java