public ExprNodeGenericFuncDesc translateSearchConditions(
    List<IndexSearchCondition> searchConditions) {

    ExprNodeGenericFuncDesc expr = null;
    for (IndexSearchCondition searchCondition : searchConditions) {
      if (expr == null) {
        expr = searchCondition.getIndexExpr();
        continue;
      }
      List<ExprNodeDesc> children = new ArrayList<ExprNodeDesc>();
      children.add(expr);
      children.add(searchCondition.getIndexExpr());
      expr = new ExprNodeGenericFuncDesc(
        TypeInfoFactory.booleanTypeInfo,
        FunctionRegistry.getGenericUDFForAnd(),
        children);
    }
    return expr;
  }
Translates search conditions back to ExprNodeDesc form (as
a left-deep conjunction).

@param searchConditions (typically produced by analyzePredicate)

@return ExprNodeGenericFuncDesc form of search conditions
ql/src/java/org/apache/hadoop/hive/ql/index/IndexPredicateAnalyzer.java