Add PgSQLEndPointsTests.
Project: http://git-wip-us.apache.org/repos/asf/tajo/repo Commit: http://git-wip-us.apache.org/repos/asf/tajo/commit/0ca28025 Tree: http://git-wip-us.apache.org/repos/asf/tajo/tree/0ca28025 Diff: http://git-wip-us.apache.org/repos/asf/tajo/diff/0ca28025 Branch: refs/heads/TAJO-1730 Commit: 0ca28025c6048c4aa847a5b905430e153375d866 Parents: 8b76167 Author: Hyunsik Choi <[email protected]> Authored: Sat Aug 22 01:30:46 2015 +0900 Committer: Hyunsik Choi <[email protected]> Committed: Sat Aug 22 01:30:46 2015 +0900 ---------------------------------------------------------------------- .../org/apache/tajo/catalog/CatalogServer.java | 8 ++- .../java/org/apache/tajo/master/TajoMaster.java | 9 ++++ .../exec/NonForwardQueryResultFileScanner.java | 2 +- .../storage/mysql/TestMysqlJdbcTableSpace.java | 2 +- tajo-storage/tajo-storage-pgsql/pom.xml | 6 +++ .../storage/pgsql/TestPgSQLEndPointTests.java | 53 ++++++++++++++++++++ .../tajo/storage/pgsql/TestPgSQLQueryTests.java | 17 +++++++ .../dataset/TestPgSQLQueryTests/lineitem.csv | 0 .../queries/TestPgSQLQueryTests/select_all.sql | 0 .../TestPgSQLQueryTests/select_all.result | 0 10 files changed, 94 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/tajo/blob/0ca28025/tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/CatalogServer.java ---------------------------------------------------------------------- diff --git a/tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/CatalogServer.java b/tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/CatalogServer.java index 7ec4b7e..88e788c 100644 --- a/tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/CatalogServer.java +++ b/tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/CatalogServer.java @@ -18,6 +18,7 @@ package org.apache.tajo.catalog; +import com.google.common.annotations.VisibleForTesting; import com.google.common.base.Function; import com.google.common.base.Objects; import com.google.common.base.Optional; @@ -84,7 +85,7 @@ public class CatalogServer extends AbstractService { private Map<String, List<FunctionDescProto>> functions = new ConcurrentHashMap<String, List<FunctionDescProto>>(); - private final LinkedMetadataManager linkedMetadataManager; + private LinkedMetadataManager linkedMetadataManager; private final InfoSchemaMetadataDictionary metaDictionary = new InfoSchemaMetadataDictionary(); // RPC variables @@ -188,6 +189,11 @@ public class CatalogServer extends AbstractService { super.serviceStop(); } + @VisibleForTesting + public void refresh(Collection<MetadataProvider> metadataProviders) { + this.linkedMetadataManager = new LinkedMetadataManager(metadataProviders); + } + public CatalogProtocolHandler getHandler() { return this.handler; } http://git-wip-us.apache.org/repos/asf/tajo/blob/0ca28025/tajo-core/src/main/java/org/apache/tajo/master/TajoMaster.java ---------------------------------------------------------------------- diff --git a/tajo-core/src/main/java/org/apache/tajo/master/TajoMaster.java b/tajo-core/src/main/java/org/apache/tajo/master/TajoMaster.java index cb6168e..e6bf94b 100644 --- a/tajo-core/src/main/java/org/apache/tajo/master/TajoMaster.java +++ b/tajo-core/src/main/java/org/apache/tajo/master/TajoMaster.java @@ -19,6 +19,7 @@ package org.apache.tajo.master; import com.codahale.metrics.Gauge; +import com.google.common.annotations.VisibleForTesting; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.hadoop.conf.Configuration; @@ -407,6 +408,14 @@ public class TajoMaster extends CompositeService { LOG.info("Tajo Master main thread exiting"); } + /** + * This is only for unit tests. + */ + @VisibleForTesting + public void refresh() { + catalogServer.refresh(TablespaceManager.getMetadataProviders()); + } + public EventHandler getEventHandler() { return dispatcher.getEventHandler(); } http://git-wip-us.apache.org/repos/asf/tajo/blob/0ca28025/tajo-core/src/main/java/org/apache/tajo/master/exec/NonForwardQueryResultFileScanner.java ---------------------------------------------------------------------- diff --git a/tajo-core/src/main/java/org/apache/tajo/master/exec/NonForwardQueryResultFileScanner.java b/tajo-core/src/main/java/org/apache/tajo/master/exec/NonForwardQueryResultFileScanner.java index 877e32b..5cd4e26 100644 --- a/tajo-core/src/main/java/org/apache/tajo/master/exec/NonForwardQueryResultFileScanner.java +++ b/tajo-core/src/main/java/org/apache/tajo/master/exec/NonForwardQueryResultFileScanner.java @@ -81,7 +81,7 @@ public class NonForwardQueryResultFileScanner implements NonForwardQueryResultSc FileTablespace fileTablespace = TUtil.checkTypeAndGet(tablespace, FileTablespace.class); fragments.addAll(Repartitioner.getFragmentsFromPartitionedTable(fileTablespace, scanNode, tableDesc)); } else { - fragments.addAll(tablespace.getSplits(tableDesc.getName(), tableDesc, scanNode)); + fragments.addAll(tablespace.getSplits(tableDesc.getName(), tableDesc, scanNode.getQual())); } if (!fragments.isEmpty()) { http://git-wip-us.apache.org/repos/asf/tajo/blob/0ca28025/tajo-storage/tajo-storage-mysql/src/test/java/org/apache/tajo/storage/mysql/TestMysqlJdbcTableSpace.java ---------------------------------------------------------------------- diff --git a/tajo-storage/tajo-storage-mysql/src/test/java/org/apache/tajo/storage/mysql/TestMysqlJdbcTableSpace.java b/tajo-storage/tajo-storage-mysql/src/test/java/org/apache/tajo/storage/mysql/TestMysqlJdbcTableSpace.java index 6d2ad1b..f940abc 100644 --- a/tajo-storage/tajo-storage-mysql/src/test/java/org/apache/tajo/storage/mysql/TestMysqlJdbcTableSpace.java +++ b/tajo-storage/tajo-storage-mysql/src/test/java/org/apache/tajo/storage/mysql/TestMysqlJdbcTableSpace.java @@ -30,7 +30,7 @@ import java.net.URI; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; -public class TestMysqlJdbcTableSpace { +public class TestMySQLJdbcTableSpace { static String jdbcUrl = EmbedMySQLServer.getInstance().getJdbcUrl(); http://git-wip-us.apache.org/repos/asf/tajo/blob/0ca28025/tajo-storage/tajo-storage-pgsql/pom.xml ---------------------------------------------------------------------- diff --git a/tajo-storage/tajo-storage-pgsql/pom.xml b/tajo-storage/tajo-storage-pgsql/pom.xml index 69b5c55..074950c 100644 --- a/tajo-storage/tajo-storage-pgsql/pom.xml +++ b/tajo-storage/tajo-storage-pgsql/pom.xml @@ -124,6 +124,12 @@ <artifactId>tajo-storage-jdbc</artifactId> <scope>provided</scope> </dependency> + <dependency> + <groupId>org.apache.tajo</groupId> + <artifactId>tajo-cluster-tests</artifactId> + <type>test-jar</type> + <scope>test</scope> + </dependency> <dependency> <groupId>org.apache.hadoop</groupId> http://git-wip-us.apache.org/repos/asf/tajo/blob/0ca28025/tajo-storage/tajo-storage-pgsql/src/test/java/org/apache/tajo/storage/pgsql/TestPgSQLEndPointTests.java ---------------------------------------------------------------------- diff --git a/tajo-storage/tajo-storage-pgsql/src/test/java/org/apache/tajo/storage/pgsql/TestPgSQLEndPointTests.java b/tajo-storage/tajo-storage-pgsql/src/test/java/org/apache/tajo/storage/pgsql/TestPgSQLEndPointTests.java new file mode 100644 index 0000000..cd48ffd --- /dev/null +++ b/tajo-storage/tajo-storage-pgsql/src/test/java/org/apache/tajo/storage/pgsql/TestPgSQLEndPointTests.java @@ -0,0 +1,53 @@ +package org.apache.tajo.storage.pgsql; + +import com.facebook.presto.hive.shaded.com.google.common.collect.Sets; +import org.apache.tajo.QueryTestCaseBase; +import org.apache.tajo.catalog.TableDesc; +import org.apache.tajo.client.TajoClient; +import org.apache.tajo.exception.UndefinedTableException; +import org.junit.AfterClass; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.util.Set; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +public class TestPgSQLEndPointTests extends QueryTestCaseBase { + private static final String jdbcUrl = EmbedPgSQLServer.getInstance().getJdbcUrl(); + private static TajoClient client; + + + @BeforeClass + public static void setUp() throws Exception { + QueryTestCaseBase.testingCluster.getMaster().refresh(); + client = QueryTestCaseBase.testingCluster.newTajoClient(); + } + + @AfterClass + public static void tearDown() { + client.close(); + } + + @Test + public void testGetAllDatabaseNames() { + Set<String> retrieved = Sets.newHashSet(client.getAllDatabaseNames()); + assertTrue(retrieved.contains(EmbedPgSQLServer.DATABASE_NAME)); + } + + @Test + public void testGetTableList() { + Set<String> retrieved = Sets.newHashSet(client.getTableList("tpch")); + assertEquals(Sets.newHashSet(EmbedPgSQLServer.TPCH_TABLES), retrieved); + } + + @Test + public void testGetTable() throws UndefinedTableException { + for (String tableName: EmbedPgSQLServer.TPCH_TABLES) { + TableDesc retrieved = client.getTableDesc(EmbedPgSQLServer.DATABASE_NAME + "." + tableName); + assertEquals(EmbedPgSQLServer.DATABASE_NAME + "." + tableName, retrieved.getName()); + assertEquals(jdbcUrl + "&table=" + tableName, retrieved.getUri().toASCIIString()); + } + } +} http://git-wip-us.apache.org/repos/asf/tajo/blob/0ca28025/tajo-storage/tajo-storage-pgsql/src/test/java/org/apache/tajo/storage/pgsql/TestPgSQLQueryTests.java ---------------------------------------------------------------------- diff --git a/tajo-storage/tajo-storage-pgsql/src/test/java/org/apache/tajo/storage/pgsql/TestPgSQLQueryTests.java b/tajo-storage/tajo-storage-pgsql/src/test/java/org/apache/tajo/storage/pgsql/TestPgSQLQueryTests.java new file mode 100644 index 0000000..ab725e4 --- /dev/null +++ b/tajo-storage/tajo-storage-pgsql/src/test/java/org/apache/tajo/storage/pgsql/TestPgSQLQueryTests.java @@ -0,0 +1,17 @@ +package org.apache.tajo.storage.pgsql; + +import org.apache.tajo.QueryTestCaseBase; +import org.junit.BeforeClass; +import org.junit.Test; + +public class TestPgSQLQueryTests extends QueryTestCaseBase { + @BeforeClass + public void setUp() { + QueryTestCaseBase.testingCluster.getMaster().refresh(); + } + + @Test + public void testSelectAll() { + //executeString() + } +} http://git-wip-us.apache.org/repos/asf/tajo/blob/0ca28025/tajo-storage/tajo-storage-pgsql/src/test/resources/dataset/TestPgSQLQueryTests/lineitem.csv ---------------------------------------------------------------------- diff --git a/tajo-storage/tajo-storage-pgsql/src/test/resources/dataset/TestPgSQLQueryTests/lineitem.csv b/tajo-storage/tajo-storage-pgsql/src/test/resources/dataset/TestPgSQLQueryTests/lineitem.csv new file mode 100644 index 0000000..e69de29 http://git-wip-us.apache.org/repos/asf/tajo/blob/0ca28025/tajo-storage/tajo-storage-pgsql/src/test/resources/queries/TestPgSQLQueryTests/select_all.sql ---------------------------------------------------------------------- diff --git a/tajo-storage/tajo-storage-pgsql/src/test/resources/queries/TestPgSQLQueryTests/select_all.sql b/tajo-storage/tajo-storage-pgsql/src/test/resources/queries/TestPgSQLQueryTests/select_all.sql new file mode 100644 index 0000000..e69de29 http://git-wip-us.apache.org/repos/asf/tajo/blob/0ca28025/tajo-storage/tajo-storage-pgsql/src/test/resources/results/TestPgSQLQueryTests/select_all.result ---------------------------------------------------------------------- diff --git a/tajo-storage/tajo-storage-pgsql/src/test/resources/results/TestPgSQLQueryTests/select_all.result b/tajo-storage/tajo-storage-pgsql/src/test/resources/results/TestPgSQLQueryTests/select_all.result new file mode 100644 index 0000000..e69de29
