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);
