Repository: tajo
Updated Branches:
  refs/heads/master cbe1d6e94 -> 9cd8dac35


TAJO-786: TajoDataMetaDatabase::getSchemas creates invalid MetaDataTuple.


Project: http://git-wip-us.apache.org/repos/asf/tajo/repo
Commit: http://git-wip-us.apache.org/repos/asf/tajo/commit/9cd8dac3
Tree: http://git-wip-us.apache.org/repos/asf/tajo/tree/9cd8dac3
Diff: http://git-wip-us.apache.org/repos/asf/tajo/diff/9cd8dac3

Branch: refs/heads/master
Commit: 9cd8dac357a2d8c33943211ca18f3837a293c489
Parents: cbe1d6e
Author: Hyunsik Choi <[email protected]>
Authored: Tue Apr 22 12:33:41 2014 +0900
Committer: Hyunsik Choi <[email protected]>
Committed: Tue Apr 22 16:16:46 2014 +0900

----------------------------------------------------------------------
 CHANGES.txt                                     |   3 +
 .../tajo/jdbc/TestTajoDatabaseMetaData.java     | 298 +++++++++++--------
 .../java/org/apache/tajo/jdbc/TestTajoJdbc.java |  13 +
 .../TestTajoDatabaseMetaData/getSchemas1.result |   3 +
 .../TestTajoDatabaseMetaData/getSchemas2.result |   3 +
 .../getTableTypes.result                        |   3 +
 .../TestTajoDatabaseMetaData/getTables1.result  |   4 +-
 .../TestTajoDatabaseMetaData/getTables2.result  |   4 +-
 .../apache/tajo/jdbc/TajoDatabaseMetaData.java  |   9 +-
 .../java/org/apache/tajo/jdbc/TajoDriver.java   |   4 +-
 10 files changed, 206 insertions(+), 138 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tajo/blob/9cd8dac3/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index eaf81a5..a193a1e 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -336,6 +336,9 @@ Release 0.8.0 - unreleased
 
   BUG FIXES
 
+    TAJO-786: TajoDataMetaDatabase::getSchemas creates invalid MetaDataTuple.
+    (hyunsik)
+
     TAJO-652: logical planner cannot handle alias on partition columns.
     (Hyoungjun Kim via hyunsik)
 

http://git-wip-us.apache.org/repos/asf/tajo/blob/9cd8dac3/tajo-core/src/test/java/org/apache/tajo/jdbc/TestTajoDatabaseMetaData.java
----------------------------------------------------------------------
diff --git 
a/tajo-core/src/test/java/org/apache/tajo/jdbc/TestTajoDatabaseMetaData.java 
b/tajo-core/src/test/java/org/apache/tajo/jdbc/TestTajoDatabaseMetaData.java
index 295a39f..c23a7a1 100644
--- a/tajo-core/src/test/java/org/apache/tajo/jdbc/TestTajoDatabaseMetaData.java
+++ b/tajo-core/src/test/java/org/apache/tajo/jdbc/TestTajoDatabaseMetaData.java
@@ -21,6 +21,7 @@ package org.apache.tajo.jdbc;
 import com.google.common.collect.Sets;
 import org.apache.tajo.QueryTestCaseBase;
 import org.apache.tajo.TajoConstants;
+import org.apache.tajo.catalog.CatalogUtil;
 import org.apache.tajo.util.TUtil;
 import org.junit.BeforeClass;
 import org.junit.Test;
@@ -50,7 +51,7 @@ public class TestTajoDatabaseMetaData extends 
QueryTestCaseBase {
   }
 
   @Test
-  public void testSetAndGetCatalog() throws Exception {
+  public void testSetAndGetCatalogAndSchema() throws Exception {
     String connUri = 
TestTajoJdbc.buildConnectionUri(tajoMasterAddress.getHostName(), 
tajoMasterAddress.getPort(),
         TajoConstants.DEFAULT_DATABASE_NAME);
     Connection conn = DriverManager.getConnection(connUri);
@@ -78,6 +79,18 @@ public class TestTajoDatabaseMetaData extends 
QueryTestCaseBase {
     conn.setCatalog("jdbc_test1");
     assertEquals("jdbc_test1", conn.getCatalog());
 
+    ResultSet resultSet = conn.getMetaData().getSchemas();
+    assertResultSet(resultSet, "getSchemas1.result");
+    resultSet.close();
+
+    resultSet = conn.getMetaData().getSchemas("jdbc_test1", "%");
+    assertResultSet(resultSet, "getSchemas2.result");
+    resultSet.close();
+
+    resultSet = conn.getMetaData().getTableTypes();
+    assertResultSet(resultSet, "getTableTypes.result");
+    resultSet.close();
+
     conn.setCatalog(TajoConstants.DEFAULT_DATABASE_NAME);
     pstmt = conn.prepareStatement("DROP DATABASE jdbc_test1");
     pstmt.executeUpdate();
@@ -101,30 +114,30 @@ public class TestTajoDatabaseMetaData extends 
QueryTestCaseBase {
     List<String> existingDatabases = getListFromResultSet(dbmd.getCatalogs(), 
"TABLE_CAT");
 
     // create database "jdbc_test1" and its tables
-    assertDatabaseNotExists("jdbc_test1");
-    PreparedStatement pstmt = defaultConnect.prepareStatement("CREATE DATABASE 
jdbc_test1");
+    assertDatabaseNotExists("jdbc_test3");
+    PreparedStatement pstmt = defaultConnect.prepareStatement("CREATE DATABASE 
jdbc_test3");
     pstmt.executeUpdate();
-    assertDatabaseExists("jdbc_test1");
+    assertDatabaseExists("jdbc_test3");
     pstmt.close();
-    pstmt = defaultConnect.prepareStatement("CREATE TABLE jdbc_test1.table1 
(age int)");
+    pstmt = defaultConnect.prepareStatement("CREATE TABLE jdbc_test3.table1 
(age int)");
     pstmt.executeUpdate();
     pstmt.close();
-    pstmt = defaultConnect.prepareStatement("CREATE TABLE jdbc_test1.table2 
(age int)");
+    pstmt = defaultConnect.prepareStatement("CREATE TABLE jdbc_test3.table2 
(age int)");
     pstmt.executeUpdate();
     pstmt.close();
 
     if (!testingCluster.isHCatalogStoreRunning()) {
       // create database "jdbc_test2" and its tables
-      assertDatabaseNotExists("Jdbc_Test2");
-      pstmt = defaultConnect.prepareStatement("CREATE DATABASE 
\"Jdbc_Test2\"");
+      assertDatabaseNotExists("Jdbc_Test4");
+      pstmt = defaultConnect.prepareStatement("CREATE DATABASE 
\"Jdbc_Test4\"");
       pstmt.executeUpdate();
-      assertDatabaseExists("Jdbc_Test2");
+      assertDatabaseExists("Jdbc_Test4");
       pstmt.close();
 
-      pstmt = defaultConnect.prepareStatement("CREATE TABLE 
\"Jdbc_Test2\".table3 (age int)");
+      pstmt = defaultConnect.prepareStatement("CREATE TABLE 
\"Jdbc_Test4\".table3 (age int)");
       pstmt.executeUpdate();
       pstmt.close();
-      pstmt = defaultConnect.prepareStatement("CREATE TABLE 
\"Jdbc_Test2\".table4 (age int)");
+      pstmt = defaultConnect.prepareStatement("CREATE TABLE 
\"Jdbc_Test4\".table4 (age int)");
       pstmt.executeUpdate();
       pstmt.close();
     }
@@ -139,18 +152,18 @@ public class TestTajoDatabaseMetaData extends 
QueryTestCaseBase {
     } else {
       assertEquals(1, newDatabases.size());
     }
-    assertTrue(newDatabases.contains("jdbc_test1"));
+    assertTrue(newDatabases.contains("jdbc_test3"));
     if (!testingCluster.isHCatalogStoreRunning()) {
-      assertTrue(newDatabases.contains("Jdbc_Test2"));
+      assertTrue(newDatabases.contains("Jdbc_Test4"));
     }
 
     // verify getTables()
-    ResultSet res = defaultConnect.getMetaData().getTables("jdbc_test1", null, 
null, null);
+    ResultSet res = defaultConnect.getMetaData().getTables("jdbc_test3", null, 
null, null);
     assertResultSet(res, "getTables1.result");
     res.close();
 
     if (!testingCluster.isHCatalogStoreRunning()) {
-      res = defaultConnect.getMetaData().getTables("Jdbc_Test2", null, null, 
null);
+      res = defaultConnect.getMetaData().getTables("Jdbc_Test4", null, null, 
null);
       assertResultSet(res, "getTables2.result");
       res.close();
     }
@@ -159,27 +172,27 @@ public class TestTajoDatabaseMetaData extends 
QueryTestCaseBase {
 
     // jdbc1_test database connection test
     String jdbcTest1ConnUri =
-        TestTajoJdbc.buildConnectionUri(tajoMasterAddress.getHostName(), 
tajoMasterAddress.getPort(), "jdbc_test1");
+        TestTajoJdbc.buildConnectionUri(tajoMasterAddress.getHostName(), 
tajoMasterAddress.getPort(), "jdbc_test3");
     Connection jdbcTest1Conn = DriverManager.getConnection(jdbcTest1ConnUri);
-    assertEquals("jdbc_test1", jdbcTest1Conn.getCatalog());
+    assertEquals("jdbc_test3", jdbcTest1Conn.getCatalog());
     jdbcTest1Conn.close();
 
     client.selectDatabase("default");
-    executeString("DROP TABLE jdbc_test1.table1");
-    executeString("DROP TABLE jdbc_test1.table2");
-    executeString("DROP DATABASE jdbc_test1");
+    executeString("DROP TABLE jdbc_test3.table1");
+    executeString("DROP TABLE jdbc_test3.table2");
+    executeString("DROP DATABASE jdbc_test3");
 
     if (!testingCluster.isHCatalogStoreRunning()) {
       String jdbcTest2ConnUri =
-          TestTajoJdbc.buildConnectionUri(tajoMasterAddress.getHostName(), 
tajoMasterAddress.getPort(), "Jdbc_Test2");
+          TestTajoJdbc.buildConnectionUri(tajoMasterAddress.getHostName(), 
tajoMasterAddress.getPort(), "Jdbc_Test4");
       Connection jdbcTest2Conn = DriverManager.getConnection(jdbcTest2ConnUri);
-      assertEquals("Jdbc_Test2", jdbcTest2Conn.getCatalog());
+      assertEquals("Jdbc_Test4", jdbcTest2Conn.getCatalog());
       jdbcTest2Conn.close();
 
       client.selectDatabase("default");
-      executeString("DROP TABLE \"Jdbc_Test2\".table3");
-      executeString("DROP TABLE \"Jdbc_Test2\".table4");
-      executeString("DROP DATABASE \"Jdbc_Test2\"");
+      executeString("DROP TABLE \"Jdbc_Test4\".table3");
+      executeString("DROP TABLE \"Jdbc_Test4\".table4");
+      executeString("DROP DATABASE \"Jdbc_Test4\"");
     }
   }
 
@@ -245,111 +258,140 @@ public class TestTajoDatabaseMetaData extends 
QueryTestCaseBase {
     executeString("DROP DATABASE db_2");
   }
 
-  @Test
-  public void testGetColumnsWithPattern() throws Exception {
-    String connUri = 
TestTajoJdbc.buildConnectionUri(tajoMasterAddress.getHostName(), 
tajoMasterAddress.getPort(),
-        TajoConstants.DEFAULT_DATABASE_NAME);
-    Connection conn = DriverManager.getConnection(connUri);
-
-    // Below creates the following 12 tables
-    // db<i>.tb<j>, i = {1,2}, 0 <= j < 2
-    // db<i>.table_<j>, i = {1,2}, 0 <= j < 2
-
-    Map<String,List<String>> tables = new HashMap<String,List<String>>();
-    assertDatabaseNotExists("db1");
-    executeString("CREATE DATABASE db1").close();
-    assertDatabaseExists("db1");
-    for (int i = 3; i < 6; i++) {
-      String tableName = "tb" + i;
-      TUtil.putToNestedList(tables, "db1", tableName);
-      executeString("CREATE TABLE db1." + tableName +
-          " (db1_" + tableName + "_col1 int, db1_" + tableName + "_col2 
int)").close();
-      assertTableExists("db1." + tableName);
-    }
-    for (int i = 3; i < 6; i++) {
-      String tableName = "table" + i;
-      TUtil.putToNestedList(tables, "db1", tableName);
-      executeString("CREATE TABLE db1." + tableName +
-          " (db1_" + tableName + "_col1 int, db1_" + tableName + "_col2 
int)").close();
-      assertTableExists("db1." + tableName);
+  private static String getTestColName(String dbName, String tableName, int i) 
{
+    if (i % 2 == 1) {
+      return CatalogUtil.denormalizeIdentifier(dbName + "_" + tableName + 
"_col") + " int";
+    } else {
+      return CatalogUtil.denormalizeIdentifier(dbName + "_" + tableName + 
"_COL") + " int";
     }
+  }
 
-    assertDatabaseNotExists("db2");
-    executeString("CREATE DATABASE db2").close();
-    assertDatabaseExists("db2");
-    for (int i = 3; i < 6; i++) {
-      String tableName = "tb" + i;
-      TUtil.putToNestedList(tables, "db2", tableName);
-      executeString("CREATE TABLE db2." + tableName
-          + " (db2_" + tableName + "_col1 int, db2_" + tableName + "_col2 
int)").close();
-      assertTableExists("db2." + tableName);
-    }
-    for (int i = 3; i < 6; i++) {
-      String tableName = "table" + i;
-      TUtil.putToNestedList(tables, "db2", tableName);
-      executeString("CREATE TABLE db2." + tableName +
-          " (db2_" + tableName + "_col1 int, db2_" + tableName + "_col2 
int)").close();
-      assertTableExists("db2." + tableName);
+  @Test
+  public void testGetColumnsWithPattern() throws Exception {
+    if (!testingCluster.isHCatalogStoreRunning()) {
+      String connUri = 
TestTajoJdbc.buildConnectionUri(tajoMasterAddress.getHostName(), 
tajoMasterAddress.getPort(),
+          TajoConstants.DEFAULT_DATABASE_NAME);
+      Connection conn = DriverManager.getConnection(connUri);
+
+      // Below creates the following 12 tables
+      // db<i>.tb<j>, i = {1,2}, 0 <= j < 2
+      // db<i>.table_<j>, i = {1,2}, 0 <= j < 2
+
+      Map<String,List<String>> tables = new HashMap<String,List<String>>();
+      for (int j = 1; j <= 2; j++) {
+        String dbName = "db" + j;
+        assertDatabaseNotExists(dbName);
+        executeString("CREATE DATABASE " + dbName).close();
+        assertDatabaseExists(dbName);
+        for (int i = 3; i < 6; i++) {
+          String tableName = "tb" + i;
+
+
+          if (i % 2 == 0) {
+            tableName = tableName.toUpperCase();
+          }
+
+          TUtil.putToNestedList(tables, dbName, tableName);
+
+          executeString("CREATE TABLE " + dbName + "." + 
CatalogUtil.denormalizeIdentifier(tableName) +
+              " (" + getTestColName(dbName, tableName, 1) +
+              ") PARTITION BY COLUMN (" + getTestColName(dbName, tableName, 2) 
+ ")").close();
+          assertTableExists(dbName + "." + tableName);
+        }
+        for (int i = 3; i < 6; i++) {
+          String tableName = "table" + i;
+
+
+          if (i % 2 == 0) {
+            tableName = tableName.toUpperCase();
+          }
+
+          TUtil.putToNestedList(tables, dbName, tableName);
+
+          executeString("CREATE TABLE " + dbName + "." + 
CatalogUtil.denormalizeIdentifier(tableName) +
+              " (" + getTestColName(dbName, tableName, 1) +
+              ") PARTITION BY COLUMN (" + getTestColName(dbName, tableName, 2) 
+ ")").close();
+          assertTableExists(dbName + "." + tableName);
+        }
+      }
+
+      // all wildcard test on columns
+      Set<String> columnList =
+          
Sets.newHashSet(getListFromResultSet(conn.getMetaData().getColumns("db2", null, 
"tb3", "%"),
+              "COLUMN_NAME"));
+      assertEquals(Sets.newHashSet("db2_tb3_col", "db2_tb3_COL"), columnList);
+
+      // tailing wildcard + case sensitive test on columns
+      columnList = 
Sets.newHashSet(getListFromResultSet(conn.getMetaData().getColumns("db2", null, 
"tb3", "%col"),
+          "COLUMN_NAME"));
+      assertEquals(Sets.newHashSet("db2_tb3_col"), columnList);
+      columnList =
+          
Sets.newHashSet(getListFromResultSet(conn.getMetaData().getColumns("db2", null, 
"tb3", "%COL"),
+              "COLUMN_NAME"));
+      assertEquals(Sets.newHashSet("db2_tb3_COL"), columnList);
+
+      // tailing wildcard test on columns
+      columnList =
+          
Sets.newHashSet(getListFromResultSet(conn.getMetaData().getColumns("db2", null, 
"tb3", "db2\\_tb3\\_%"),
+              "COLUMN_NAME"));
+      assertEquals(Sets.newHashSet("db2_tb3_col", "db2_tb3_COL"), columnList);
+      columnList =
+          
Sets.newHashSet(getListFromResultSet(conn.getMetaData().getColumns("db2", null, 
"%", "db2\\_tb3\\_%"),
+              "COLUMN_NAME"));
+      assertEquals(Sets.newHashSet("db2_tb3_col", "db2_tb3_COL"), columnList);
+
+      // leading wildcard test on tables
+      columnList =
+          
Sets.newHashSet(getListFromResultSet(conn.getMetaData().getColumns("db1", null, 
"%3", "%"),
+              "COLUMN_NAME"));
+      assertEquals(
+          Sets.newHashSet(
+              "db1_tb3_col", "db1_tb3_COL",
+              "db1_table3_col", "db1_table3_COL"),
+          columnList);
+      columnList =
+          
Sets.newHashSet(getListFromResultSet(conn.getMetaData().getColumns("db2", null, 
"%3", "%"),
+              "COLUMN_NAME"));
+      assertEquals(
+          Sets.newHashSet(
+              "db2_tb3_col", "db2_tb3_COL",
+              "db2_table3_col", "db2_table3_COL"),
+          columnList);
+
+      // tailing wildcard + case sensitive test on tables
+      columnList =
+          
Sets.newHashSet(getListFromResultSet(conn.getMetaData().getColumns("db2", null, 
"TABLE%", "%"),
+              "COLUMN_NAME"));
+      assertEquals(
+          Sets.newHashSet(
+              "db2_TABLE4_col", "db2_TABLE4_COL"), columnList);
+
+      columnList =
+          
Sets.newHashSet(getListFromResultSet(conn.getMetaData().getColumns("db2", null, 
"TABLE4", "%"),
+              "COLUMN_NAME"));
+      assertEquals(
+          Sets.newHashSet(
+              "db2_TABLE4_col", "db2_TABLE4_COL"),
+          columnList);
+
+      // tailing wildcard test on tables
+      columnList =
+          
Sets.newHashSet(getListFromResultSet(conn.getMetaData().getColumns("db2", null, 
"table%", "%"),
+              "COLUMN_NAME"));
+      assertEquals(
+          Sets.newHashSet(
+              "db2_table3_col", "db2_table3_COL",
+              "db2_table5_col", "db2_table5_COL"),
+          columnList);
+
+      // wildcard test on database
+      columnList =
+          
Sets.newHashSet(getListFromResultSet(conn.getMetaData().getColumns(null, null, 
"%3", "db1_tb3%"),
+              "COLUMN_NAME"));
+      assertEquals(Sets.newHashSet("db1_tb3_col", "db1_tb3_COL"), columnList);
+
+      executeString("DROP DATABASE db1");
+      executeString("DROP DATABASE db2");
     }
-
-    // all wildcard test on columns
-    Set<String> columnList =
-        
Sets.newHashSet(getListFromResultSet(conn.getMetaData().getColumns("db2", null, 
"tb3", "%"),
-            "COLUMN_NAME"));
-    assertEquals(Sets.newHashSet("db2_tb3_col1", "db2_tb3_col2"), columnList);
-
-    // leading wildcard test on columns
-    columnList =
-        
Sets.newHashSet(getListFromResultSet(conn.getMetaData().getColumns("db2", null, 
"tb3", "%col1"),
-            "COLUMN_NAME"));
-    assertEquals(Sets.newHashSet("db2_tb3_col1"), columnList);
-
-    // tailing wildcard test on columns
-    columnList =
-        
Sets.newHashSet(getListFromResultSet(conn.getMetaData().getColumns("db2", null, 
"tb3", "db2\\_tb3\\_%"),
-            "COLUMN_NAME"));
-    assertEquals(Sets.newHashSet("db2_tb3_col1", "db2_tb3_col2"), columnList);
-    columnList =
-        
Sets.newHashSet(getListFromResultSet(conn.getMetaData().getColumns("db2", null, 
"%", "db2\\_tb3\\_%"),
-            "COLUMN_NAME"));
-    assertEquals(Sets.newHashSet("db2_tb3_col1", "db2_tb3_col2"), columnList);
-
-    // leading wildcard test on tables
-    columnList =
-        
Sets.newHashSet(getListFromResultSet(conn.getMetaData().getColumns("db1", null, 
"%3", "%"),
-            "COLUMN_NAME"));
-    assertEquals(
-        Sets.newHashSet(
-            "db1_tb3_col1", "db1_tb3_col2",
-            "db1_table3_col1", "db1_table3_col2"),
-        columnList);
-    columnList =
-        
Sets.newHashSet(getListFromResultSet(conn.getMetaData().getColumns("db2", null, 
"%3", "%"),
-            "COLUMN_NAME"));
-    assertEquals(
-        Sets.newHashSet(
-            "db2_tb3_col1", "db2_tb3_col2",
-            "db2_table3_col1", "db2_table3_col2"),
-        columnList);
-
-    // tailing wildcard test on tables
-    columnList =
-        
Sets.newHashSet(getListFromResultSet(conn.getMetaData().getColumns("db2", null, 
"table%", "%"),
-            "COLUMN_NAME"));
-    assertEquals(
-        Sets.newHashSet(
-            "db2_table3_col1", "db2_table3_col2",
-            "db2_table4_col1", "db2_table4_col2",
-            "db2_table5_col1", "db2_table5_col2"),
-        columnList);
-
-    // wildcard test on database
-    columnList =
-        
Sets.newHashSet(getListFromResultSet(conn.getMetaData().getColumns(null, null, 
"%3", "db1_tb3%"),
-            "COLUMN_NAME"));
-    assertEquals(Sets.newHashSet("db1_tb3_col1", "db1_tb3_col2"), columnList);
-
-    executeString("DROP DATABASE db1");
-    executeString("DROP DATABASE db2");
   }
 }

http://git-wip-us.apache.org/repos/asf/tajo/blob/9cd8dac3/tajo-core/src/test/java/org/apache/tajo/jdbc/TestTajoJdbc.java
----------------------------------------------------------------------
diff --git a/tajo-core/src/test/java/org/apache/tajo/jdbc/TestTajoJdbc.java 
b/tajo-core/src/test/java/org/apache/tajo/jdbc/TestTajoJdbc.java
index 7343ef7..f922d87 100644
--- a/tajo-core/src/test/java/org/apache/tajo/jdbc/TestTajoJdbc.java
+++ b/tajo-core/src/test/java/org/apache/tajo/jdbc/TestTajoJdbc.java
@@ -59,6 +59,19 @@ public class TestTajoJdbc extends QueryTestCaseBase {
   }
 
   @Test
+  public void testAcceptURL() throws SQLException {
+    TajoDriver driver = new TajoDriver();
+    assertTrue(driver.acceptsURL("jdbc:tajo:"));
+    assertFalse(driver.acceptsURL("jdbc:taju:"));
+  }
+
+  @Test(expected = SQLException.class)
+  public void testGetConnection() throws SQLException {
+    DriverManager.getConnection("jdbc:taju://" + 
tajoMasterAddress.getHostName() + ":" + tajoMasterAddress.getPort()
+        + "/default");
+  }
+
+  @Test
   public void testStatement() throws Exception {
     String connUri = buildConnectionUri(tajoMasterAddress.getHostName(), 
tajoMasterAddress.getPort(),
         DEFAULT_DATABASE_NAME);

http://git-wip-us.apache.org/repos/asf/tajo/blob/9cd8dac3/tajo-core/src/test/resources/results/TestTajoDatabaseMetaData/getSchemas1.result
----------------------------------------------------------------------
diff --git 
a/tajo-core/src/test/resources/results/TestTajoDatabaseMetaData/getSchemas1.result
 
b/tajo-core/src/test/resources/results/TestTajoDatabaseMetaData/getSchemas1.result
new file mode 100644
index 0000000..f922ad7
--- /dev/null
+++ 
b/tajo-core/src/test/resources/results/TestTajoDatabaseMetaData/getSchemas1.result
@@ -0,0 +1,3 @@
+TABLE_SCHEM,TABLE_CATALOG
+-------------------------------
+public,jdbc_test1
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/tajo/blob/9cd8dac3/tajo-core/src/test/resources/results/TestTajoDatabaseMetaData/getSchemas2.result
----------------------------------------------------------------------
diff --git 
a/tajo-core/src/test/resources/results/TestTajoDatabaseMetaData/getSchemas2.result
 
b/tajo-core/src/test/resources/results/TestTajoDatabaseMetaData/getSchemas2.result
new file mode 100644
index 0000000..f922ad7
--- /dev/null
+++ 
b/tajo-core/src/test/resources/results/TestTajoDatabaseMetaData/getSchemas2.result
@@ -0,0 +1,3 @@
+TABLE_SCHEM,TABLE_CATALOG
+-------------------------------
+public,jdbc_test1
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/tajo/blob/9cd8dac3/tajo-core/src/test/resources/results/TestTajoDatabaseMetaData/getTableTypes.result
----------------------------------------------------------------------
diff --git 
a/tajo-core/src/test/resources/results/TestTajoDatabaseMetaData/getTableTypes.result
 
b/tajo-core/src/test/resources/results/TestTajoDatabaseMetaData/getTableTypes.result
new file mode 100644
index 0000000..29b90ab
--- /dev/null
+++ 
b/tajo-core/src/test/resources/results/TestTajoDatabaseMetaData/getTableTypes.result
@@ -0,0 +1,3 @@
+TABLE_TYPE
+-------------------------------
+TABLE
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/tajo/blob/9cd8dac3/tajo-core/src/test/resources/results/TestTajoDatabaseMetaData/getTables1.result
----------------------------------------------------------------------
diff --git 
a/tajo-core/src/test/resources/results/TestTajoDatabaseMetaData/getTables1.result
 
b/tajo-core/src/test/resources/results/TestTajoDatabaseMetaData/getTables1.result
index 2d89f42..2ed02c8 100644
--- 
a/tajo-core/src/test/resources/results/TestTajoDatabaseMetaData/getTables1.result
+++ 
b/tajo-core/src/test/resources/results/TestTajoDatabaseMetaData/getTables1.result
@@ -1,4 +1,4 @@
 TABLE_CAT,TABLE_SCHEM,TABLE_NAME,TABLE_TYPE,REMARKS
 -------------------------------
-jdbc_test1,public,table1,TABLE,
-jdbc_test1,public,table2,TABLE,
\ No newline at end of file
+jdbc_test3,public,table1,TABLE,
+jdbc_test3,public,table2,TABLE,
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/tajo/blob/9cd8dac3/tajo-core/src/test/resources/results/TestTajoDatabaseMetaData/getTables2.result
----------------------------------------------------------------------
diff --git 
a/tajo-core/src/test/resources/results/TestTajoDatabaseMetaData/getTables2.result
 
b/tajo-core/src/test/resources/results/TestTajoDatabaseMetaData/getTables2.result
index 7cc1391..4c8d39f 100644
--- 
a/tajo-core/src/test/resources/results/TestTajoDatabaseMetaData/getTables2.result
+++ 
b/tajo-core/src/test/resources/results/TestTajoDatabaseMetaData/getTables2.result
@@ -1,4 +1,4 @@
 TABLE_CAT,TABLE_SCHEM,TABLE_NAME,TABLE_TYPE,REMARKS
 -------------------------------
-Jdbc_Test2,public,table3,TABLE,
-Jdbc_Test2,public,table4,TABLE,
\ No newline at end of file
+Jdbc_Test4,public,table3,TABLE,
+Jdbc_Test4,public,table4,TABLE,
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/tajo/blob/9cd8dac3/tajo-jdbc/src/main/java/org/apache/tajo/jdbc/TajoDatabaseMetaData.java
----------------------------------------------------------------------
diff --git 
a/tajo-jdbc/src/main/java/org/apache/tajo/jdbc/TajoDatabaseMetaData.java 
b/tajo-jdbc/src/main/java/org/apache/tajo/jdbc/TajoDatabaseMetaData.java
index cbdb38b..c06014d 100644
--- a/tajo-jdbc/src/main/java/org/apache/tajo/jdbc/TajoDatabaseMetaData.java
+++ b/tajo-jdbc/src/main/java/org/apache/tajo/jdbc/TajoDatabaseMetaData.java
@@ -419,7 +419,7 @@ public class TajoDatabaseMetaData implements 
DatabaseMetaData {
       throw new SQLException(e);
     }
 
-    MetaDataTuple tuple = new MetaDataTuple(1);
+    MetaDataTuple tuple = new MetaDataTuple(2);
     tuple.put(0, new TextDatum(DEFAULT_SCHEMA_NAME));
     tuple.put(1, new TextDatum(databaseName));
 
@@ -454,7 +454,7 @@ public class TajoDatabaseMetaData implements 
DatabaseMetaData {
   @Override
   public ResultSet getTableTypes() throws SQLException {
     List<MetaDataTuple> columns = new ArrayList<MetaDataTuple>();
-    MetaDataTuple tuple = new MetaDataTuple(1);
+    MetaDataTuple tuple = new MetaDataTuple(2);
     tuple.put(0, new TextDatum("TABLE"));
     columns.add(tuple);
 
@@ -502,7 +502,8 @@ public class TajoDatabaseMetaData implements 
DatabaseMetaData {
           if (table.matches(regtableNamePattern)) {
             TableDesc tableDesc = 
conn.getTajoClient().getTableDesc(CatalogUtil.buildFQName(databaseName, table));
             int pos = 0;
-            for (Column column: tableDesc.getSchema().getColumns()) {
+
+            for (Column column: tableDesc.getLogicalSchema().getColumns()) {
               if (column.getSimpleName().matches(regcolumnNamePattern)) {
                 MetaDataTuple tuple = new MetaDataTuple(22);
 
@@ -701,7 +702,7 @@ public class TajoDatabaseMetaData implements 
DatabaseMetaData {
       throw new SQLException(e);
     }
 
-    MetaDataTuple tuple = new MetaDataTuple(1);
+    MetaDataTuple tuple = new MetaDataTuple(2);
     tuple.put(0, new TextDatum(DEFAULT_SCHEMA_NAME));
     tuple.put(1, new TextDatum(databaseName));
 

http://git-wip-us.apache.org/repos/asf/tajo/blob/9cd8dac3/tajo-jdbc/src/main/java/org/apache/tajo/jdbc/TajoDriver.java
----------------------------------------------------------------------
diff --git a/tajo-jdbc/src/main/java/org/apache/tajo/jdbc/TajoDriver.java 
b/tajo-jdbc/src/main/java/org/apache/tajo/jdbc/TajoDriver.java
index ffab2dd..cfc5299 100644
--- a/tajo-jdbc/src/main/java/org/apache/tajo/jdbc/TajoDriver.java
+++ b/tajo-jdbc/src/main/java/org/apache/tajo/jdbc/TajoDriver.java
@@ -31,7 +31,7 @@ public class TajoDriver implements Driver, Closeable {
   public static final int JDBC_VERSION_MAJOR = 4;
   public static final int JDBC_VERSION_MINOR = 0;
 
-  public static final String TAJO_JDBC_URL_PREFIX = "jdbc:tajo://";
+  public static final String TAJO_JDBC_URL_PREFIX = "jdbc:tajo:";
 
   protected static TajoConf jdbcTajoConf = new TajoConf();
 
@@ -52,7 +52,7 @@ public class TajoDriver implements Driver, Closeable {
 
   @Override
   public Connection connect(String url, Properties properties) throws 
SQLException {
-    return new TajoConnection(url, properties);
+    return acceptsURL(url) ? new TajoConnection(url, properties) : null;
   }
 
   @Override

Reply via email to