dvjyothsna commented on a change in pull request #1723: DRILL-7063: Seperate
metadata cache file into summary, file metadata
URL: https://github.com/apache/drill/pull/1723#discussion_r272463250
##########
File path:
exec/java-exec/src/main/java/org/apache/drill/exec/store/parquet/ParquetTableMetadataProviderImpl.java
##########
@@ -109,19 +109,59 @@ public Path getSelectionRoot() {
return selectionRoot;
}
+ /**
+ * Returns list of metadata cache files
+ * @param p directory path of the cache file
+ * @param fs
+ * @return list of cache files found in the given directory path
+ */
+ public List<Path> populateMetaPaths(Path p, DrillFileSystem fs) throws
IOException {
+ List<Path> metaFilepaths = new ArrayList<>();
+ for (String filename : Metadata.CURRENT_METADATA_FILENAMES) {
+ metaFilepaths.add(new Path(p, filename));
+ }
+
+ //Read the older version of metadata file if the current version of
metadata cache files donot exist.
+ for (String filename : Metadata.OLD_METADATA_FILENAMES) {
+ if (fileExists(fs, metaFilepaths)) {
+ return metaFilepaths;
+ }
+ metaFilepaths.clear();
+ metaFilepaths.add(new Path(p, filename));
+ }
+
+ if (fileExists(fs, metaFilepaths)) {
+ return metaFilepaths;
+ }
+
+ return new ArrayList<>();
+ }
+
+ public boolean fileExists(DrillFileSystem fs, List<Path> paths) throws
IOException {
+ if (paths.isEmpty()) {
+ return false;
+ }
+ for (Path path : paths) {
+ if (!fs.exists(path)) {
+ return false;
+ }
+ }
+ return true;
+ }
+
@Override
protected void initInternal() throws IOException {
try (FileSystem processUserFileSystem =
ImpersonationUtil.createFileSystem(ImpersonationUtil.getProcessUserName(),
fs.getConf())) {
- Path metaPath = null;
+ List<Path> metaPaths = new ArrayList<>();
Review comment:
Added a comment.
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
With regards,
Apache Git Services