Repository: drill
Updated Branches:
  refs/heads/master 07dae3c34 -> f30200812


http://git-wip-us.apache.org/repos/asf/drill/blob/f3020081/exec/java-exec/src/test/java/org/apache/drill/exec/store/parquet/TestParquetMetadataCache.java
----------------------------------------------------------------------
diff --git 
a/exec/java-exec/src/test/java/org/apache/drill/exec/store/parquet/TestParquetMetadataCache.java
 
b/exec/java-exec/src/test/java/org/apache/drill/exec/store/parquet/TestParquetMetadataCache.java
index f721ee4..a56c8c6 100644
--- 
a/exec/java-exec/src/test/java/org/apache/drill/exec/store/parquet/TestParquetMetadataCache.java
+++ 
b/exec/java-exec/src/test/java/org/apache/drill/exec/store/parquet/TestParquetMetadataCache.java
@@ -23,7 +23,9 @@ import org.apache.commons.io.filefilter.TrueFileFilter;
 import org.apache.drill.PlanTestBase;
 import org.apache.drill.categories.UnlikelyTest;
 import org.apache.commons.io.FileUtils;
+import org.apache.drill.exec.record.BatchSchema;
 import org.apache.drill.exec.planner.physical.PlannerSettings;
+import org.apache.drill.test.rowSet.SchemaBuilder;
 import org.junit.Assert;
 import org.junit.BeforeClass;
 import org.junit.Test;
@@ -209,21 +211,15 @@ public class TestParquetMetadataCache extends 
PlanTestBase {
   @Test //DRILL-4511
   @Category(UnlikelyTest.class)
   public void testTableDoesNotExistWithEmptyDirectory() throws Exception {
-    String dirName = "empty_directory";
-    File path = new File(dirTestWatcher.getRootDir(), dirName);
-    path.mkdirs();
+    final String emptyDirName = "empty_directory";
+    dirTestWatcher.makeTestTmpSubDir(Paths.get(emptyDirName));
 
-    try {
-      path.mkdir();
-      testBuilder()
-          .sqlQuery("refresh table metadata dfs.`%s`", dirName)
-          .unOrdered()
-          .baselineColumns("ok", "summary")
-          .baselineValues(false, String.format("Table %s does not exist.", 
dirName))
-          .go();
-    } finally {
-      FileUtils.deleteQuietly(path);
-    }
+    testBuilder()
+        .sqlQuery("refresh table metadata dfs.tmp.`%s`", emptyDirName)
+        .unOrdered()
+        .baselineColumns("ok", "summary")
+        .baselineValues(false, String.format("Table %s is empty and doesn't 
contain any parquet files.", emptyDirName))
+        .go();
   }
 
   @Test //DRILL-4511
@@ -929,6 +925,42 @@ public class TestParquetMetadataCache extends PlanTestBase 
{
     }
   }
 
+  @Test
+  public void testEmptyDirectoryWithMetadataFile() throws Exception {
+    final String emptyDirNameWithMetadataFile = "empty_directory";
+    dirTestWatcher.makeTestTmpSubDir(Paths.get(emptyDirNameWithMetadataFile));
+    dirTestWatcher.copyResourceToTestTmp(
+        Paths.get("parquet", "metadata_files_with_old_versions", "v3_1", 
"metadata_table.requires_replace.txt"),
+        Paths.get(emptyDirNameWithMetadataFile, Metadata.METADATA_FILENAME));
+
+    final BatchSchema expectedSchema = new SchemaBuilder().build();
+
+    testBuilder()
+        .sqlQuery("select * from dfs.tmp.`%s`", emptyDirNameWithMetadataFile)
+        .schemaBaseLine(expectedSchema)
+        .build()
+        .run();
+  }
+
+  @Test
+  public void testEmptyDirectoryWithMetadataDirFile() throws Exception {
+    final String emptyDirNameWithMetadataFile = "empty_directory";
+    dirTestWatcher.makeTestTmpSubDir(Paths.get(emptyDirNameWithMetadataFile));
+    dirTestWatcher.makeTestTmpSubDir(Paths.get(emptyDirNameWithMetadataFile, 
"t2"));
+    dirTestWatcher.makeTestTmpSubDir(Paths.get(emptyDirNameWithMetadataFile, 
"t1"));
+    dirTestWatcher.copyResourceToTestTmp(
+            Paths.get("parquet", "metadata_files_with_old_versions", "v3_1", 
"metadata_directories.requires_replace.txt"),
+            Paths.get(emptyDirNameWithMetadataFile, 
Metadata.METADATA_DIRECTORIES_FILENAME));
+
+    final BatchSchema expectedSchema = new SchemaBuilder().build();
+
+    testBuilder()
+            .sqlQuery("select * from dfs.tmp.`%s`", 
emptyDirNameWithMetadataFile)
+            .schemaBaseLine(expectedSchema)
+            .build()
+            .run();
+  }
+
   /**
    * Helper method for checking the metadata file existence
    *

http://git-wip-us.apache.org/repos/asf/drill/blob/f3020081/exec/java-exec/src/test/java/org/apache/drill/test/BaseDirTestWatcher.java
----------------------------------------------------------------------
diff --git 
a/exec/java-exec/src/test/java/org/apache/drill/test/BaseDirTestWatcher.java 
b/exec/java-exec/src/test/java/org/apache/drill/test/BaseDirTestWatcher.java
index fe7e6a6..b595869 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/test/BaseDirTestWatcher.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/test/BaseDirTestWatcher.java
@@ -68,7 +68,7 @@ public class BaseDirTestWatcher extends DirTestWatcher {
 
   /**
    * Creates a {@link BaseDirTestWatcher}.
-   * @param deleteDirAtEnd If true, temp directories are deleted at the end of 
tests. If fals, temp directories are not deleted at the end of tests.
+   * @param deleteDirAtEnd If true, temp directories are deleted at the end of 
tests. If false, temp directories are not deleted at the end of tests.
    */
   public BaseDirTestWatcher(boolean deleteDirAtEnd) {
     super(deleteDirAtEnd);

http://git-wip-us.apache.org/repos/asf/drill/blob/f3020081/exec/java-exec/src/test/java/org/apache/drill/test/rowSet/SchemaBuilder.java
----------------------------------------------------------------------
diff --git 
a/exec/java-exec/src/test/java/org/apache/drill/test/rowSet/SchemaBuilder.java 
b/exec/java-exec/src/test/java/org/apache/drill/test/rowSet/SchemaBuilder.java
index f0b3321..9223ef4 100644
--- 
a/exec/java-exec/src/test/java/org/apache/drill/test/rowSet/SchemaBuilder.java
+++ 
b/exec/java-exec/src/test/java/org/apache/drill/test/rowSet/SchemaBuilder.java
@@ -141,13 +141,14 @@ public class SchemaBuilder {
   protected TupleSchema schema = new TupleSchema();
   private SelectionVectorMode svMode = SelectionVectorMode.NONE;
 
-  public SchemaBuilder() { }
-
   /**
-   * Create a new schema starting with the base schema. Allows appending
-   * additional columns to an additional schema.
+   * Create a new empty schema. Allows appending columns to it.
    */
+  public SchemaBuilder() {}
 
+  /**
+   * Create a new schema starting with the base schema. Allows appending 
additional columns to the actual schema.
+   */
   public SchemaBuilder(BatchSchema baseSchema) {
     for (MaterializedField field : baseSchema) {
       add(field);

Reply via email to