@Override
  public void close() throws IOException {
    // close writer
    if (outWriter == null) {
      return;
    }

    outWriter.close();
    outWriter = null;

    if (!exception) {
      FileStatus fss = fs.getFileStatus(outPath);
      LOG.info("renamed path " + outPath + " to " + finalPath
          + " . File size is " + fss.getLen());
      if (!fs.rename(outPath, finalPath)) {
        throw new IOException("Unable to rename output to " + finalPath);
      }
    } else {
      if (!autoDelete) {
        fs.delete(outPath, true);
      }
    }
  }
Fixes tmpPath to point to the correct list bucketing sub-directories.
Before this is called, tmpPath will default to the root tmp table dir
Reason to add a new method instead of changing fixTmpPath()
Reason 1: logic has slightly difference
fixTmpPath(..) needs 2 variables in order to decide path delta which is in variable newPath.
1. inputPath.depth()
2. tmpPath.depth()
fixTmpPathConcatenate needs 2 variables too but one of them is different from fixTmpPath(..)
1. inputPath.depth()
2. listBucketingDepth
Reason 2: less risks
The existing logic is a little not trivial around map() and fixTmpPath(). In order to ensure
minimum impact on existing flow, we try to avoid change on existing code/flow but add new code
for new feature.

@param inputPath
@throws HiveException
@throws IOException
ql/src/java/org/apache/hadoop/hive/ql/io/rcfile/truncate/ColumnTruncateMapper.java