public Map<String, List<ExprNodeDesc>> getResidualPredicates(boolean clear) {
    Map<String, List<ExprNodeDesc>> oldExprs = new HashMap<String, List<ExprNodeDesc>>();
    for (Map.Entry<String, List<ExprNodeDesc>> entry : nonFinalPreds.entrySet()) {
      List<ExprNodeDesc> converted = new ArrayList<ExprNodeDesc>();
      for (ExprNodeDesc newExpr : entry.getValue()) {
        // We should clone it to avoid getting overwritten if two or more operator uses
        // this same expression.
        converted.add(newToOldExprMap.get(newExpr).clone());
      }
      oldExprs.put(entry.getKey(), converted);
    }
    if (clear) {
      nonFinalPreds.clear();
    }
    return oldExprs;
  }
Returns list of non-final candidate predicate for each map.

@return list of non-final candidate predicates
ql/src/java/org/apache/hadoop/hive/ql/ppd/ExprWalkerInfo.java