protected Object generateRanges(Configuration conf, ColumnMapper columnMapper,
                                  String hiveRowIdColumnName, ExprNodeDesc root) {
    AccumuloRangeGenerator rangeGenerator = new AccumuloRangeGenerator(conf, handler,
        columnMapper.getRowIdMapping(), hiveRowIdColumnName);
    SemanticDispatcher disp = new DefaultRuleDispatcher(rangeGenerator,
        Collections.<SemanticRule, SemanticNodeProcessor> emptyMap(), null);
    SemanticGraphWalker ogw = new DefaultGraphWalker(disp);
    List<Node> roots = new ArrayList<Node>();
    roots.add(root);
    HashMap<Node, Object> nodeOutput = new HashMap<Node, Object>();

    try {
      ogw.startWalking(roots, nodeOutput);
    } catch (SemanticException ex) {
      throw new RuntimeException(ex);
    }

    return nodeOutput.get(root);
  }
Encapsulates the traversal over some {@link ExprNodeDesc} tree for the generation of Accumulo.
Ranges using expressions involving the Accumulo rowid-mapped Hive column.

@param conf
         Hadoop configuration
@param columnMapper
         Mapping of Hive to Accumulo columns for the query
@param hiveRowIdColumnName
         Name of the hive column mapped to the Accumulo rowid
@param root
         Root of some ExprNodeDesc tree to traverse, the WHERE clause
@return An object representing the result from the ExprNodeDesc tree traversal using the
        AccumuloRangeGenerator
accumulo-handler/src/java/org/apache/hadoop/hive/accumulo/predicate/AccumuloPredicateHandler.java