Repository: tajo Updated Branches: refs/heads/branch-0.8.0 6d80c7838 -> 655c2c058
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/655c2c05 Tree: http://git-wip-us.apache.org/repos/asf/tajo/tree/655c2c05 Diff: http://git-wip-us.apache.org/repos/asf/tajo/diff/655c2c05 Branch: refs/heads/branch-0.8.0 Commit: 655c2c058bc6cd9cd6f68d6b9fe3ac037e0f1db8 Parents: 6d80c78 Author: Hyunsik Choi <[email protected]> Authored: Tue Apr 22 12:33:41 2014 +0900 Committer: Hyunsik Choi <[email protected]> Committed: Tue Apr 22 16:38:36 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/655c2c05/CHANGES.txt ---------------------------------------------------------------------- diff --git a/CHANGES.txt b/CHANGES.txt index 52806ed..b564579 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -327,6 +327,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/655c2c05/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/655c2c05/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/655c2c05/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/655c2c05/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/655c2c05/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/655c2c05/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/655c2c05/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/655c2c05/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/655c2c05/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
