private static void removeAllCandidates(OpWalkerInfo owi) {
    for (FilterOperator operator : owi.getCandidateFilterOps()) {
      removeOperator(operator);
    }
    owi.getCandidateFilterOps().clear();
  }
Operator factory for predicate pushdown processing of operator graph Each
operator determines the pushdown predicates by walking the expression tree.
Each operator merges its own pushdown predicates with those of its children
Finally the TableScan operator gathers all the predicates and inserts a
filter operator after itself. TODO: Further optimizations 1) Multi-insert
case 2) Create a filter operator for those predicates that couldn't be pushed
to the previous operators in the data flow 3) Merge multiple sequential
filter predicates into so that plans are more readable 4) Remove predicates
from filter operators that have been pushed. Currently these pushed
predicates are evaluated twice.
ql/src/java/org/apache/hadoop/hive/ql/ppd/OpProcFactory.java