public static Path backupOutputPath(FileSystem fs, Path outpath, JobConf job)
      throws IOException, HiveException {
    if (fs.exists(outpath)) {
      Path backupPath = new Path(outpath.getParent(), BACKUP_PREFIX
          + outpath.getName());
      Utilities.rename(fs, outpath, backupPath);
      return backupPath;
    } else {
      return null;
    }
  }
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