You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tajo.apache.org by hy...@apache.org on 2015/09/02 13:06:46 UTC

[23/39] tajo git commit: Completed initial implementations.

http://git-wip-us.apache.org/repos/asf/tajo/blob/2cf88d02/tajo-storage/tajo-storage-pgsql/src/test/java/org/apache/tajo/storage/pgsql/TestPgSQLJdbcTableSpace.java
----------------------------------------------------------------------
diff --git a/tajo-storage/tajo-storage-pgsql/src/test/java/org/apache/tajo/storage/pgsql/TestPgSQLJdbcTableSpace.java b/tajo-storage/tajo-storage-pgsql/src/test/java/org/apache/tajo/storage/pgsql/TestPgSQLJdbcTableSpace.java
index 577176f..80305f4 100644
--- a/tajo-storage/tajo-storage-pgsql/src/test/java/org/apache/tajo/storage/pgsql/TestPgSQLJdbcTableSpace.java
+++ b/tajo-storage/tajo-storage-pgsql/src/test/java/org/apache/tajo/storage/pgsql/TestPgSQLJdbcTableSpace.java
@@ -18,70 +18,24 @@
 
 package org.apache.tajo.storage.pgsql;
 
-import io.airlift.testing.postgresql.TestingPostgreSqlServer;
-import org.apache.tajo.conf.TajoConf;
 import org.apache.tajo.storage.TablespaceManager;
-import org.junit.BeforeClass;
 import org.junit.Test;
 
-import java.io.IOException;
-import java.net.URI;
-import java.sql.Connection;
-import java.sql.DriverManager;
-import java.sql.ResultSet;
-import java.sql.Statement;
-
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
 
 public class TestPgSQLJdbcTableSpace {
-  @BeforeClass
-  public static void setUp() throws IOException {
-    String mysqlUri = "jdbc:mysql://host1:2171/db1";
-    PgSQLTablespace mysqlTablespace = new PgSQLTablespace("cluster2", URI.create(mysqlUri), null);
-    mysqlTablespace.init(new TajoConf());
-    TablespaceManager.addTableSpaceForTest(mysqlTablespace);
-
-    String pgsqlUri = "jdbc:postgres://host1:2615/db2";
-    PgSQLTablespace pgSQLTablespace = new PgSQLTablespace("cluster3", URI.create(pgsqlUri), null);
-    pgSQLTablespace.init(new TajoConf());
-    TablespaceManager.addTableSpaceForTest(pgSQLTablespace);
-  }
+  static String jdbcUrl = EmbedPgSQLServer.getInstance().getJdbcUrl();
 
   @Test
   public void testTablespaceHandler() throws Exception {
-    assertTrue((TablespaceManager.getByName("cluster2").get()) instanceof PgSQLTablespace);
-    assertEquals("cluster2", (TablespaceManager.getByName("cluster2").get().getName()));
-    assertTrue((TablespaceManager.get(URI.create("jdbc:mysql://host1:2171/db1")).get()) instanceof PgSQLTablespace);
-    assertEquals(URI.create("jdbc:mysql://host1:2171/db1"),
-        TablespaceManager.get(URI.create("jdbc:mysql://host1:2171/db1")).get().getUri());
-
-    assertTrue((TablespaceManager.getByName("cluster3").get()) instanceof PgSQLTablespace);
-    assertEquals("cluster3", (TablespaceManager.getByName("cluster3").get().getName()));
-    assertTrue((TablespaceManager.get(URI.create("jdbc:postgres://host1:2615/db2")).get()) instanceof PgSQLTablespace);
+    assertTrue((TablespaceManager.getByName("pgsql_cluster").get()) instanceof PgSQLTablespace);
+    assertEquals("pgsql_cluster", (TablespaceManager.getByName("pgsql_cluster").get().getName()));
 
-    assertEquals(URI.create("jdbc:postgres://host1:2615/db2"),
-        TablespaceManager.get(URI.create("jdbc:postgres://host1:2615/db2")).get().getUri());
-  }
-
-  @Test
-  public void test() throws Exception {
-    try (TestingPostgreSqlServer server = new TestingPostgreSqlServer("testuser", "testdb")) {
-      assertEquals(server.getUser(), "testuser");
-      assertEquals(server.getDatabase(), "testdb");
-      assertEquals(server.getJdbcUrl().substring(0, 5), "jdbc:");
-      assertEquals(server.getPort(), URI.create(server.getJdbcUrl().substring(5)).getPort());
+    assertTrue((TablespaceManager.get(jdbcUrl).get()) instanceof PgSQLTablespace);
+    assertTrue((TablespaceManager.get(jdbcUrl + "&table=tb1").get()) instanceof PgSQLTablespace);
 
-      try (Connection connection = DriverManager.getConnection(server.getJdbcUrl())) {
-        try (Statement statement = connection.createStatement()) {
-          statement.execute("CREATE TABLE test_table (c1 bigint PRIMARY KEY)");
-          statement.execute("INSERT INTO test_table (c1) VALUES (1)");
-          try (ResultSet resultSet = statement.executeQuery("SELECT count(*) FROM test_table")) {
-            assertTrue(resultSet.next());
-            assertEquals(resultSet.getLong(1), 1L);
-            assertFalse(resultSet.next());
-          }
-        }
-      }
-    }
+    assertEquals(jdbcUrl, TablespaceManager.get(jdbcUrl).get().getUri().toASCIIString());
+    assertTrue(TablespaceManager.get(jdbcUrl).get().getMetadataProvider() instanceof PgSQLMetadataProvider);
   }
 }

http://git-wip-us.apache.org/repos/asf/tajo/blob/2cf88d02/tajo-storage/tajo-storage-pgsql/src/test/java/org/apache/tajo/storage/pgsql/TestPgSQLMetadataProvider.java
----------------------------------------------------------------------
diff --git a/tajo-storage/tajo-storage-pgsql/src/test/java/org/apache/tajo/storage/pgsql/TestPgSQLMetadataProvider.java b/tajo-storage/tajo-storage-pgsql/src/test/java/org/apache/tajo/storage/pgsql/TestPgSQLMetadataProvider.java
new file mode 100644
index 0000000..aac25f7
--- /dev/null
+++ b/tajo-storage/tajo-storage-pgsql/src/test/java/org/apache/tajo/storage/pgsql/TestPgSQLMetadataProvider.java
@@ -0,0 +1,81 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.tajo.storage.pgsql;
+
+import com.google.common.collect.Sets;
+import org.apache.tajo.catalog.MetadataProvider;
+import org.apache.tajo.catalog.TableDesc;
+import org.apache.tajo.storage.Tablespace;
+import org.apache.tajo.storage.TablespaceManager;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+import java.util.Set;
+
+import static org.junit.Assert.*;
+
+public class TestPgSQLMetadataProvider {
+  static final String jdbcUrl = EmbedPgSQLServer.getInstance().getJdbcUrl();
+
+  @BeforeClass
+  public static void setUp() throws Exception {
+  }
+
+  @Test
+  public void testGetTablespaceName() throws Exception {
+    Tablespace tablespace = TablespaceManager.get(jdbcUrl).get();
+    MetadataProvider provider = tablespace.getMetadataProvider();
+    assertEquals("pgsql_cluster", provider.getTablespaceName());
+  }
+
+  @Test
+  public void testGetDatabaseName() throws Exception {
+    Tablespace tablespace = TablespaceManager.get(jdbcUrl).get();
+    MetadataProvider provider = tablespace.getMetadataProvider();
+    assertEquals("tpch", provider.getDatabaseName());
+  }
+
+  @Test
+  public void testGetSchemas() throws Exception {
+    Tablespace tablespace = TablespaceManager.get(jdbcUrl).get();
+    MetadataProvider provider = tablespace.getMetadataProvider();
+    assertTrue(provider.getSchemas().isEmpty());
+  }
+
+  @Test
+  public void testGetTables() throws Exception {
+    Tablespace tablespace = TablespaceManager.get(jdbcUrl).get();
+    MetadataProvider provider = tablespace.getMetadataProvider();
+
+    Set<String> found = Sets.newHashSet(provider.getTables(null, null));
+    assertEquals(Sets.newHashSet(EmbedPgSQLServer.TPCH_TABLES), found);
+  }
+
+  @Test
+  public void testGetTableDescriptor() throws Exception {
+    Tablespace tablespace = TablespaceManager.get(jdbcUrl).get();
+    MetadataProvider provider = tablespace.getMetadataProvider();
+
+    for (String tableName : EmbedPgSQLServer.TPCH_TABLES) {
+      TableDesc table = provider.getTableDescriptor(null, tableName);
+      assertEquals("tpch." + tableName, table.getName());
+      assertEquals(jdbcUrl + "&table=" + tableName, table.getUri().toASCIIString());
+    }
+  }
+}