private ExprNodeDesc getRSColExprFromResidualFilter(ExprNodeDesc childExpr, CommonJoinOperator<JoinDesc> join) {
      ExprNodeColumnDesc colExpr = ExprNodeDescUtils.getColumnExpr(childExpr);

      final String joinColName = colExpr.getColumn();
      // use name to get the alias pos of parent and name in parent
      final int aliasPos = join.getConf().getReversedExprs().get(joinColName);
      final ExprNodeDesc rsColExpr = join.getColumnExprMap().get(joinColName);

      // Get the correct parent
      final ReduceSinkOperator parentRS = (ReduceSinkOperator) (join.getParentOperators().get(aliasPos));

      // Fetch the colExpr from parent
      return parentRS.getColumnExprMap().get(
        ExprNodeDescUtils.extractColName(rsColExpr));
    }
creates synthetic predicates that represent "IN (keylist other table)"
ql/src/java/org/apache/hadoop/hive/ql/ppd/SyntheticJoinPredicate.java