Github user ravipesala commented on a diff in the pull request: https://github.com/apache/carbondata/pull/2207#discussion_r185525800 --- Diff: core/src/main/java/org/apache/carbondata/core/metadata/SegmentFileStore.java --- @@ -162,21 +167,44 @@ public static String writeSegmentFile(String tablePath, String segmentId, String for (CarbonFile file : indexFiles) { folderDetails.getFiles().add(file.getName()); } - String segmentRelativePath = segmentPath.substring(tablePath.length(), segmentPath.length()); + String segmentRelativePath = "/"; + if (!supportFlatFolder) { + segmentRelativePath = segmentPath.substring(tablePath.length(), segmentPath.length()); + } segmentFile.addPath(segmentRelativePath, folderDetails); - String segmentFileFolder = CarbonTablePath.getSegmentFilesLocation(tablePath); + String segmentFileFolder = CarbonTablePath.getSegmentFilesLocation(tablePath); CarbonFile carbonFile = FileFactory.getCarbonFile(segmentFileFolder); if (!carbonFile.exists()) { carbonFile.mkdirs(segmentFileFolder, FileFactory.getFileType(segmentFileFolder)); } String segmentFileName = genSegmentFileName(segmentId, UUID) + CarbonTablePath.SEGMENT_EXT; // write segment info to new file. writeSegmentFile(segmentFile, segmentFileFolder + File.separator + segmentFileName); + + // Move all files to table path from segment folder. + if (supportFlatFolder) { + moveFromTempFolder(segmentPath, tablePath); + } + return segmentFileName; } return null; } + /** + * Move the loaded data from temp folder to respective partition folder. + * @param tablePath --- End diff -- ok
---