public static ExprNodeGenericFuncDesc and(List<ExprNodeDesc> exps) {
    List<ExprNodeDesc> flatExps = new ArrayList<>();
    for (ExprNodeDesc e : exps) {
      split(e, flatExps);
    }
    return new ExprNodeGenericFuncDesc(TypeInfoFactory.booleanTypeInfo, new GenericUDFOPAnd(), "and", flatExps);
  }
Creates a conjunction (AND) of the given expressions flattening nested conjunctions if possible.
<pre>
Input: OR(A, B), C, AND(D, AND(E, F))
Output: AND(OR(A, B), C, D, E, F)
</pre>
TODO: Replace mergePredicates ?
ql/src/java/org/apache/hadoop/hive/ql/plan/ExprNodeDescUtils.java