public MapJoinOperator generateMapJoinOperator(ParseContext pctx, JoinOperator op,
      int mapJoinPos) throws SemanticException {
    HiveConf hiveConf = pctx.getConf();
    boolean noCheckOuterJoin = HiveConf.getBoolVar(hiveConf,
        HiveConf.ConfVars.HIVE_OPT_SORT_MERGE_BUCKET_MAPJOIN)
        && HiveConf.getBoolVar(hiveConf, HiveConf.ConfVars.HIVE_OPT_BUCKET_MAPJOIN);

    MapJoinOperator mapJoinOp = convertMapJoin(pctx.getConf(), op,
        op.getConf().isLeftInputJoin(), op.getConf().getBaseSrc(),
        op.getConf().getMapAliases(), mapJoinPos, noCheckOuterJoin, true);
    if (mapJoinOp == null) {
      return null;
    }

    // create a dummy select to select all columns
    genSelectPlan(pctx, mapJoinOp);
    return mapJoinOp;
  }
convert a sortmerge join to a a map-side join.

@param smbJoinOp
         join operator
@param bigTablePos
         position of the source to be read as part of map-reduce framework. All other sources
         are cached in memory
@param noCheckOuterJoin
ql/src/java/org/apache/hadoop/hive/ql/optimizer/MapJoinProcessor.java