DRILL-537: Add a unittest that reads from a Hive table which has all supported data types in Hive->Drill.
Project: http://git-wip-us.apache.org/repos/asf/incubator-drill/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-drill/commit/9f3b9d29 Tree: http://git-wip-us.apache.org/repos/asf/incubator-drill/tree/9f3b9d29 Diff: http://git-wip-us.apache.org/repos/asf/incubator-drill/diff/9f3b9d29 Branch: refs/heads/master Commit: 9f3b9d298d68bc6cfc1aae512a0d1addc27810b6 Parents: 72084e3 Author: vkorukanti <[email protected]> Authored: Tue Jun 10 16:09:08 2014 -0700 Committer: Jacques Nadeau <[email protected]> Committed: Wed Jun 11 16:07:07 2014 -0700 ---------------------------------------------------------------------- .../exec/store/hive/HiveTestDataGenerator.java | 39 ++++++++++++++------ .../apache/drill/jdbc/test/TestJdbcQuery.java | 1 + .../apache/drill/jdbc/test/TestMetadataDDL.java | 2 + 3 files changed, 30 insertions(+), 12 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/9f3b9d29/exec/java-exec/src/test/java/org/apache/drill/exec/store/hive/HiveTestDataGenerator.java ---------------------------------------------------------------------- diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/store/hive/HiveTestDataGenerator.java b/exec/java-exec/src/test/java/org/apache/drill/exec/store/hive/HiveTestDataGenerator.java index 5a511c0..6aa68b4 100644 --- a/exec/java-exec/src/test/java/org/apache/drill/exec/store/hive/HiveTestDataGenerator.java +++ b/exec/java-exec/src/test/java/org/apache/drill/exec/store/hive/HiveTestDataGenerator.java @@ -88,6 +88,13 @@ public class HiveTestDataGenerator { // create a table with no data executeQuery("CREATE TABLE IF NOT EXISTS default.empty_table(a INT, b STRING)"); + // create a table that has all supported types in Drill + testDataFile = generateAllTypesDataFile(); + executeQuery("CREATE TABLE IF NOT EXISTS alltypes (c1 INT, c2 BOOLEAN, c3 DOUBLE, c4 STRING, " + + "c9 TINYINT, c10 SMALLINT, c11 FLOAT, c12 BIGINT, c19 BINARY) " + + "ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' STORED AS TEXTFILE"); + executeQuery(String.format("LOAD DATA LOCAL INPATH '%s' OVERWRITE INTO TABLE default.alltypes", testDataFile)); + ss.close(); } @@ -98,7 +105,7 @@ public class HiveTestDataGenerator { executeQuery(String.format("LOAD DATA LOCAL INPATH '%s' OVERWRITE INTO TABLE %s.%s", dataFile, dbName, tblName)); } - private String generateTestDataFile() throws Exception { + private File getTempFile() throws Exception { File file = null; while (true) { file = File.createTempFile("drill-hive-test", ".txt"); @@ -111,6 +118,12 @@ public class HiveTestDataGenerator { logger.debug("retry creating tmp file"); } + return file; + } + + private String generateTestDataFile() throws Exception { + File file = getTempFile(); + PrintWriter printWriter = new PrintWriter(file); for (int i=1; i<=5; i++) printWriter.println (String.format("%d, key_%d", i, i)); @@ -120,17 +133,7 @@ public class HiveTestDataGenerator { } private String generateTestDataFileWithDate() throws Exception { - File file = null; - while (true) { - file = File.createTempFile("drill-hive-test-date", ".txt"); - if (file.exists()) { - boolean success = file.delete(); - if (success) { - break; - } - } - logger.debug("retry creating tmp file"); - } + File file = getTempFile(); PrintWriter printWriter = new PrintWriter(file); for (int i=1; i<=5; i++) { @@ -143,6 +146,18 @@ public class HiveTestDataGenerator { return file.getPath(); } + private String generateAllTypesDataFile() throws Exception { + File file = getTempFile(); + + PrintWriter printWriter = new PrintWriter(file); + printWriter.println("\\N,\\N,\\N,\\N,\\N,\\N,\\N,\\N,\\N"); + printWriter.println("-1,false,-1.1,,-1,-1,-1.0,-1,\\N"); + printWriter.println("1,true,1.1,1,1,1,1.0,1,YWJjZA=="); + printWriter.close(); + + return file.getPath(); + } + private void executeQuery(String query) { CommandProcessorResponse response = null; boolean failed = false; http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/9f3b9d29/exec/jdbc/src/test/java/org/apache/drill/jdbc/test/TestJdbcQuery.java ---------------------------------------------------------------------- diff --git a/exec/jdbc/src/test/java/org/apache/drill/jdbc/test/TestJdbcQuery.java b/exec/jdbc/src/test/java/org/apache/drill/jdbc/test/TestJdbcQuery.java index 2a69469..bf4e12e 100644 --- a/exec/jdbc/src/test/java/org/apache/drill/jdbc/test/TestJdbcQuery.java +++ b/exec/jdbc/src/test/java/org/apache/drill/jdbc/test/TestJdbcQuery.java @@ -80,6 +80,7 @@ public class TestJdbcQuery extends JdbcTest{ public void testHiveReadWithDb() throws Exception{ testQuery("select * from hive.`default`.kv"); testQuery("select key from hive.`default`.kv group by key"); + testQuery("select * from hive.`default`.alltypes"); } @Test http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/9f3b9d29/exec/jdbc/src/test/java/org/apache/drill/jdbc/test/TestMetadataDDL.java ---------------------------------------------------------------------- diff --git a/exec/jdbc/src/test/java/org/apache/drill/jdbc/test/TestMetadataDDL.java b/exec/jdbc/src/test/java/org/apache/drill/jdbc/test/TestMetadataDDL.java index 5299bb5..3975ead 100644 --- a/exec/jdbc/src/test/java/org/apache/drill/jdbc/test/TestMetadataDDL.java +++ b/exec/jdbc/src/test/java/org/apache/drill/jdbc/test/TestMetadataDDL.java @@ -50,6 +50,7 @@ public class TestMetadataDDL extends TestJdbcQuery { .sql("SHOW TABLES") .returns( "TABLE_SCHEMA=hive.default; TABLE_NAME=empty_table\n" + + "TABLE_SCHEMA=hive.default; TABLE_NAME=alltypes\n" + "TABLE_SCHEMA=hive.default; TABLE_NAME=kv\n" + "TABLE_SCHEMA=hive.default; TABLE_NAME=foodate\n" ); @@ -71,6 +72,7 @@ public class TestMetadataDDL extends TestJdbcQuery { .sql("SHOW TABLES IN hive.`default`") .returns( "TABLE_SCHEMA=hive.default; TABLE_NAME=empty_table\n" + + "TABLE_SCHEMA=hive.default; TABLE_NAME=alltypes\n" + "TABLE_SCHEMA=hive.default; TABLE_NAME=kv\n" + "TABLE_SCHEMA=hive.default; TABLE_NAME=foodate\n"); }
