Github user arina-ielchiieva commented on a diff in the pull request:
https://github.com/apache/drill/pull/1083#discussion_r160717181
--- Diff:
exec/java-exec/src/main/java/org/apache/drill/exec/store/parquet/ParquetFormatPlugin.java
---
@@ -250,20 +250,12 @@ private boolean metaDataFileExists(FileSystem fs,
FileStatus dir) throws IOExcep
}
boolean isDirReadable(DrillFileSystem fs, FileStatus dir) {
- Path p = new Path(dir.getPath(),
ParquetFileWriter.PARQUET_METADATA_FILE);
try {
- if (fs.exists(p)) {
- return true;
- } else {
-
- if (metaDataFileExists(fs, dir)) {
- return true;
- }
- List<FileStatus> statuses = DrillFileSystemUtil.listFiles(fs,
dir.getPath(), false);
- return !statuses.isEmpty() && super.isFileReadable(fs,
statuses.get(0));
- }
+ // There should be at least one file, which is readable by Drill
+ List<FileStatus> statuses = DrillFileSystemUtil.listFiles(fs,
dir.getPath(), false);
+ return !statuses.isEmpty() && super.isFileReadable(fs,
statuses.get(0));
--- End diff --
1. How we know that we have file in nested directory if filter checks with
recursive flag false?
2. The `isReadable` method uses implicit assumption that if metadata file
exists, there is some data in folder. Plus comment in this file also points
out that the same logic is used in `isDirReadable`. Since you are removing this
logic from `isDirReadable` please make sure the logic is synced between two
methods or at least comment is updated to reflect new approach.
---