@Override
  public ParseContext transform(ParseContext pctx) throws SemanticException {
    // Make sure semijoin is not enabled. If it is, then do not remove the dynamic partition pruning predicates.
    if (!pctx.getConf().getBoolVar(HiveConf.ConfVars.TEZ_DYNAMIC_SEMIJOIN_REDUCTION)) {
      Map<SemanticRule, SemanticNodeProcessor> opRules = new LinkedHashMap<SemanticRule, SemanticNodeProcessor>();
      opRules.put(new RuleRegExp("R1", TableScanOperator.getOperatorName() + "%" +
              FilterOperator.getOperatorName() + "%"), new FilterTransformer());

      SemanticDispatcher disp = new DefaultRuleDispatcher(null, opRules, null);
      SemanticGraphWalker ogw = new DefaultGraphWalker(disp);

      List<Node> topNodes = new ArrayList<Node>();
      topNodes.addAll(pctx.getTopOps().values());
      ogw.startWalking(topNodes, null);
    }
    return pctx;
  }
Transform the query tree.

@param pctx the current parse context
ql/src/java/org/apache/hadoop/hive/ql/optimizer/RedundantDynamicPruningConditionsRemoval.java