public static ExprNodeDesc disjunction(ExprNodeDesc e1, ExprNodeDesc e2) throws UDFArgumentException {
    if (e1 == null) {
      return e2;
    }
    if (e2 == null) {
      return e1;
    }
    if (e1.isSame(e2)) {
      return e1;
    }
    List<ExprNodeDesc> operands = new ArrayList<ExprNodeDesc>();
    disjunctiveDecomposition(e1, operands);
    disjunctiveDecomposition(e2, operands);
    return disjunction(operands);
  }
Checks wether the two expression sets have a common deterministic intersection.
ql/src/java/org/apache/hadoop/hive/ql/plan/ExprNodeDescUtils.java