@Override
    protected void generatePredicate(NodeProcessorCtx procCtx, FilterOperator fop,
        TableScanOperator top) throws SemanticException {
      LBOpWalkerCtx owc = (LBOpWalkerCtx) procCtx;
      // Otherwise this is not a sampling predicate and we need to
      ExprNodeDesc predicate = fop.getConf().getPredicate();
      String alias = top.getConf().getAlias();

      // Generate the list bucketing pruning predicate
      ExprNodeDesc lbprPred = LBExprProcFactory.genPruner(alias, predicate, owc.getPart());

      /*
       * add list bucketing predicate to to the table scan operator
       */
      addPruningPred(owc.getOpToPartToLBPruner(), top, lbprPred, owc.getPart());
    }
Determines the list bucketing pruner for the filter. This is called only when
the filter follows a table scan operator.
ql/src/java/org/apache/hadoop/hive/ql/optimizer/listbucketingpruner/LBProcFactory.java