private static boolean checkCombinationsThreshold(List<ExpressionTree> andList) {
      int numComb = 1;
      for (ExpressionTree tree : andList) {
        numComb *= tree.getChildren().size();
        if (numComb > CNF_COMBINATIONS_THRESHOLD) {
          return false;
        }
      }
      return true;
    }
Convert an expression so that the top level operator is AND with OR
operators under it. This routine assumes that all of the NOT operators
have been pushed to the leaves via pushdDownNot.
@param root the expression
@return the normalized expression
storage-api/src/java/org/apache/hadoop/hive/ql/io/sarg/SearchArgumentImpl.java