private void insertRowResolvers(
      Operator<? extends OperatorDesc> op,
      Operator<? extends OperatorDesc> opClone,
      SkewJoinOptProcCtx ctx) {

      if (op instanceof TableScanOperator) {
        ctx.getCloneTSOpMap().put((TableScanOperator)opClone, (TableScanOperator)op);
      }

      List<Operator<? extends OperatorDesc>> parents = op.getParentOperators();
      List<Operator<? extends OperatorDesc>> parentClones = opClone.getParentOperators();
      if ((parents != null) && (!parents.isEmpty()) &&
        (parentClones != null) && (!parentClones.isEmpty())) {
        for (int pos = 0; pos < parents.size(); pos++) {
          insertRowResolvers(parents.get(pos), parentClones.get(pos), ctx);
        }
      }
    }
Converts the skewedValue available as a string in the metadata to the appropriate object
by using the type of the column from the join key.
@param skewedValue
@param keyCol
@return an expression node descriptor of the appropriate constant
ql/src/java/org/apache/hadoop/hive/ql/optimizer/SkewJoinOptimizer.java