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

tajo git commit: TAJO-1305: With metadata storage of MySQL, columns with the same character but difference case are not allowed.

Repository: tajo
Updated Branches:
  refs/heads/master 4d1006d56 -> e22c1c57b


TAJO-1305: With metadata storage of MySQL, columns with the same character but difference case are not allowed.

Closes #353


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

Branch: refs/heads/master
Commit: e22c1c57bc81e65af6a041e9f5afc9973ca70dae
Parents: 4d1006d
Author: Jihun Kang <ji...@apache.org>
Authored: Tue Jan 20 23:01:44 2015 +0900
Committer: Jihun Kang <ji...@apache.org>
Committed: Tue Jan 20 23:01:44 2015 +0900

----------------------------------------------------------------------
 CHANGES                                         |  3 ++
 .../main/resources/schemas/mariadb/columns.sql  |  4 +-
 .../resources/schemas/mariadb/databases.sql     |  4 +-
 .../main/resources/schemas/mariadb/indexes.sql  |  6 +--
 .../resources/schemas/mariadb/partitions.sql    |  4 +-
 .../schemas/mariadb/table_properties.sql        |  4 +-
 .../main/resources/schemas/mariadb/tables.sql   |  4 +-
 .../resources/schemas/mariadb/tablespaces.sql   |  4 +-
 .../main/resources/schemas/mysql/columns.sql    |  4 +-
 .../main/resources/schemas/mysql/databases.sql  |  4 +-
 .../main/resources/schemas/mysql/indexes.sql    |  6 +--
 .../main/resources/schemas/mysql/partitions.sql |  4 +-
 .../schemas/mysql/table_properties.sql          |  4 +-
 .../src/main/resources/schemas/mysql/tables.sql |  6 +--
 .../resources/schemas/mysql/tablespaces.sql     |  6 +--
 .../org/apache/tajo/catalog/TestCatalog.java    | 53 +++++++++++++++++++-
 16 files changed, 87 insertions(+), 33 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tajo/blob/e22c1c57/CHANGES
----------------------------------------------------------------------
diff --git a/CHANGES b/CHANGES
index eec490b..0849e53 100644
--- a/CHANGES
+++ b/CHANGES
@@ -169,6 +169,9 @@ Release 0.10.0 - unreleased
 
   BUG FIXES
 
+    TAJO-1305: With metadata storage of MySQL, columns with the same 
+    character but difference case are not allowed. (jihun)
+
     TAJO-1257: ORDER BY with NULL FIRST misses some data. (Keuntae Park)
 
     TAJO-1225: Fix wrong schema name in JDBC driver. (jaehwa)

http://git-wip-us.apache.org/repos/asf/tajo/blob/e22c1c57/tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mariadb/columns.sql
----------------------------------------------------------------------
diff --git a/tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mariadb/columns.sql b/tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mariadb/columns.sql
index 51e2a1b..aec1553 100644
--- a/tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mariadb/columns.sql
+++ b/tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mariadb/columns.sql
@@ -1,9 +1,9 @@
 CREATE TABLE COLUMNS (
   TID INT NOT NULL,
-  COLUMN_NAME VARCHAR(255) NOT NULL,
+  COLUMN_NAME VARCHAR(255) BINARY NOT NULL,
   ORDINAL_POSITION INT NOT NULL,
   DATA_TYPE CHAR(16),
   TYPE_LENGTH INTEGER,
   PRIMARY KEY (TID, COLUMN_NAME),
   FOREIGN KEY (TID) REFERENCES TABLES (TID) ON DELETE CASCADE
-)
\ No newline at end of file
+)

http://git-wip-us.apache.org/repos/asf/tajo/blob/e22c1c57/tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mariadb/databases.sql
----------------------------------------------------------------------
diff --git a/tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mariadb/databases.sql b/tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mariadb/databases.sql
index e07e916..2f351cf 100644
--- a/tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mariadb/databases.sql
+++ b/tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mariadb/databases.sql
@@ -1,7 +1,7 @@
 CREATE TABLE DATABASES_ (
   DB_ID INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
-  DB_NAME VARCHAR(128) NOT NULL UNIQUE,
+  DB_NAME VARCHAR(128) BINARY NOT NULL UNIQUE,
   SPACE_ID INT NOT NULL,
   FOREIGN KEY (SPACE_ID) REFERENCES TABLESPACES (SPACE_ID),
   UNIQUE INDEX IDX_NAME (DB_NAME)
-)
\ No newline at end of file
+)

http://git-wip-us.apache.org/repos/asf/tajo/blob/e22c1c57/tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mariadb/indexes.sql
----------------------------------------------------------------------
diff --git a/tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mariadb/indexes.sql b/tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mariadb/indexes.sql
index 62feb36..f58b17c 100644
--- a/tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mariadb/indexes.sql
+++ b/tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mariadb/indexes.sql
@@ -1,8 +1,8 @@
 CREATE TABLE INDEXES (
   DB_ID INT NOT NULL,
   TID INT NOT NULL,
-  INDEX_NAME VARCHAR(128) NOT NULL,
-  COLUMN_NAME VARCHAR(128) NOT NULL,
+  INDEX_NAME VARCHAR(128) BINARY NOT NULL,
+  COLUMN_NAME VARCHAR(128) BINARY NOT NULL,
   DATA_TYPE VARCHAR(128) NOT NULL,
   INDEX_TYPE CHAR(32) NOT NULL,
   IS_UNIQUE BOOLEAN NOT NULL,
@@ -13,4 +13,4 @@ CREATE TABLE INDEXES (
   FOREIGN KEY (TID) REFERENCES TABLES (TID) ON DELETE CASCADE,
   UNIQUE INDEX IDX_DB_ID_NAME (DB_ID, INDEX_NAME),
   INDEX IDX_TID_COLUMN_NAME (TID, COLUMN_NAME)
-)
\ No newline at end of file
+)

http://git-wip-us.apache.org/repos/asf/tajo/blob/e22c1c57/tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mariadb/partitions.sql
----------------------------------------------------------------------
diff --git a/tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mariadb/partitions.sql b/tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mariadb/partitions.sql
index 428f5a4..c2672a5 100644
--- a/tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mariadb/partitions.sql
+++ b/tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mariadb/partitions.sql
@@ -1,7 +1,7 @@
 CREATE TABLE PARTITIONS (
   PID INT NOT NULL PRIMARY KEY,
   TID INT NOT NULL,
-  PARTITION_NAME VARCHAR(128),
+  PARTITION_NAME VARCHAR(128) BINARY,
   ORDINAL_POSITION INT NOT NULL,
   PARTITION_VALUE VARCHAR(1024),
   PATH VARCHAR(4096),
@@ -9,4 +9,4 @@ CREATE TABLE PARTITIONS (
   CONSTRAINT C_PARTITION_UNIQUE UNIQUE (TID, PARTITION_NAME),
   INDEX IDX_TID (TID),
   UNIQUE INDEX IDX_TID_NAME (TID, PARTITION_NAME)
-)
\ No newline at end of file
+)

http://git-wip-us.apache.org/repos/asf/tajo/blob/e22c1c57/tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mariadb/table_properties.sql
----------------------------------------------------------------------
diff --git a/tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mariadb/table_properties.sql b/tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mariadb/table_properties.sql
index 78e281e..7ce5362 100644
--- a/tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mariadb/table_properties.sql
+++ b/tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mariadb/table_properties.sql
@@ -1,7 +1,7 @@
 CREATE TABLE OPTIONS (
   TID INT NOT NULL,
-  KEY_ VARCHAR(255) NOT NULL,
+  KEY_ VARCHAR(255) BINARY NOT NULL,
   VALUE_ VARCHAR(255) NOT NULL,
   PRIMARY KEY (TID, KEY_),
   FOREIGN KEY (TID) REFERENCES TABLES (TID) ON DELETE CASCADE
-)
\ No newline at end of file
+)

http://git-wip-us.apache.org/repos/asf/tajo/blob/e22c1c57/tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mariadb/tables.sql
----------------------------------------------------------------------
diff --git a/tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mariadb/tables.sql b/tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mariadb/tables.sql
index e7297f7..a31f0e3 100644
--- a/tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mariadb/tables.sql
+++ b/tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mariadb/tables.sql
@@ -1,11 +1,11 @@
 CREATE TABLE TABLES (
   TID INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
   DB_ID INT NOT NULL,
-  TABLE_NAME VARCHAR(128) NOT NULL,
+  TABLE_NAME VARCHAR(128) BINARY NOT NULL,
   TABLE_TYPE VARCHAR(128) NOT NULL,
   PATH VARCHAR(4096),
   STORE_TYPE CHAR(16),
   FOREIGN KEY (DB_ID) REFERENCES DATABASES_ (DB_ID),
   INDEX IDX_DB_ID (DB_ID),
   UNIQUE INDEX IDX_TABLE_ID (DB_ID, TABLE_NAME)
-)
\ No newline at end of file
+)

http://git-wip-us.apache.org/repos/asf/tajo/blob/e22c1c57/tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mariadb/tablespaces.sql
----------------------------------------------------------------------
diff --git a/tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mariadb/tablespaces.sql b/tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mariadb/tablespaces.sql
index f2e2299..ab3edaa 100644
--- a/tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mariadb/tablespaces.sql
+++ b/tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mariadb/tablespaces.sql
@@ -1,7 +1,7 @@
 CREATE TABLE TABLESPACES (
   SPACE_ID INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
-  SPACE_NAME VARCHAR(128) NOT NULL UNIQUE,
+  SPACE_NAME VARCHAR(128) BINARY NOT NULL UNIQUE,
   SPACE_HANDLER VARCHAR (1024) DEFAULT 'HDFS',
   SPACE_URI VARCHAR (4096) NOT NULL,
   UNIQUE INDEX IDX_NAME (SPACE_NAME)
-)
\ No newline at end of file
+)

http://git-wip-us.apache.org/repos/asf/tajo/blob/e22c1c57/tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/columns.sql
----------------------------------------------------------------------
diff --git a/tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/columns.sql b/tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/columns.sql
index 51e2a1b..aec1553 100644
--- a/tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/columns.sql
+++ b/tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/columns.sql
@@ -1,9 +1,9 @@
 CREATE TABLE COLUMNS (
   TID INT NOT NULL,
-  COLUMN_NAME VARCHAR(255) NOT NULL,
+  COLUMN_NAME VARCHAR(255) BINARY NOT NULL,
   ORDINAL_POSITION INT NOT NULL,
   DATA_TYPE CHAR(16),
   TYPE_LENGTH INTEGER,
   PRIMARY KEY (TID, COLUMN_NAME),
   FOREIGN KEY (TID) REFERENCES TABLES (TID) ON DELETE CASCADE
-)
\ No newline at end of file
+)

http://git-wip-us.apache.org/repos/asf/tajo/blob/e22c1c57/tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/databases.sql
----------------------------------------------------------------------
diff --git a/tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/databases.sql b/tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/databases.sql
index e07e916..2f351cf 100644
--- a/tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/databases.sql
+++ b/tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/databases.sql
@@ -1,7 +1,7 @@
 CREATE TABLE DATABASES_ (
   DB_ID INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
-  DB_NAME VARCHAR(128) NOT NULL UNIQUE,
+  DB_NAME VARCHAR(128) BINARY NOT NULL UNIQUE,
   SPACE_ID INT NOT NULL,
   FOREIGN KEY (SPACE_ID) REFERENCES TABLESPACES (SPACE_ID),
   UNIQUE INDEX IDX_NAME (DB_NAME)
-)
\ No newline at end of file
+)

http://git-wip-us.apache.org/repos/asf/tajo/blob/e22c1c57/tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/indexes.sql
----------------------------------------------------------------------
diff --git a/tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/indexes.sql b/tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/indexes.sql
index 62feb36..f58b17c 100644
--- a/tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/indexes.sql
+++ b/tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/indexes.sql
@@ -1,8 +1,8 @@
 CREATE TABLE INDEXES (
   DB_ID INT NOT NULL,
   TID INT NOT NULL,
-  INDEX_NAME VARCHAR(128) NOT NULL,
-  COLUMN_NAME VARCHAR(128) NOT NULL,
+  INDEX_NAME VARCHAR(128) BINARY NOT NULL,
+  COLUMN_NAME VARCHAR(128) BINARY NOT NULL,
   DATA_TYPE VARCHAR(128) NOT NULL,
   INDEX_TYPE CHAR(32) NOT NULL,
   IS_UNIQUE BOOLEAN NOT NULL,
@@ -13,4 +13,4 @@ CREATE TABLE INDEXES (
   FOREIGN KEY (TID) REFERENCES TABLES (TID) ON DELETE CASCADE,
   UNIQUE INDEX IDX_DB_ID_NAME (DB_ID, INDEX_NAME),
   INDEX IDX_TID_COLUMN_NAME (TID, COLUMN_NAME)
-)
\ No newline at end of file
+)

http://git-wip-us.apache.org/repos/asf/tajo/blob/e22c1c57/tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/partitions.sql
----------------------------------------------------------------------
diff --git a/tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/partitions.sql b/tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/partitions.sql
index 428f5a4..c2672a5 100644
--- a/tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/partitions.sql
+++ b/tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/partitions.sql
@@ -1,7 +1,7 @@
 CREATE TABLE PARTITIONS (
   PID INT NOT NULL PRIMARY KEY,
   TID INT NOT NULL,
-  PARTITION_NAME VARCHAR(128),
+  PARTITION_NAME VARCHAR(128) BINARY,
   ORDINAL_POSITION INT NOT NULL,
   PARTITION_VALUE VARCHAR(1024),
   PATH VARCHAR(4096),
@@ -9,4 +9,4 @@ CREATE TABLE PARTITIONS (
   CONSTRAINT C_PARTITION_UNIQUE UNIQUE (TID, PARTITION_NAME),
   INDEX IDX_TID (TID),
   UNIQUE INDEX IDX_TID_NAME (TID, PARTITION_NAME)
-)
\ No newline at end of file
+)

http://git-wip-us.apache.org/repos/asf/tajo/blob/e22c1c57/tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/table_properties.sql
----------------------------------------------------------------------
diff --git a/tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/table_properties.sql b/tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/table_properties.sql
index 78e281e..7ce5362 100644
--- a/tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/table_properties.sql
+++ b/tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/table_properties.sql
@@ -1,7 +1,7 @@
 CREATE TABLE OPTIONS (
   TID INT NOT NULL,
-  KEY_ VARCHAR(255) NOT NULL,
+  KEY_ VARCHAR(255) BINARY NOT NULL,
   VALUE_ VARCHAR(255) NOT NULL,
   PRIMARY KEY (TID, KEY_),
   FOREIGN KEY (TID) REFERENCES TABLES (TID) ON DELETE CASCADE
-)
\ No newline at end of file
+)

http://git-wip-us.apache.org/repos/asf/tajo/blob/e22c1c57/tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/tables.sql
----------------------------------------------------------------------
diff --git a/tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/tables.sql b/tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/tables.sql
index e7297f7..0fe8bf2 100644
--- a/tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/tables.sql
+++ b/tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/tables.sql
@@ -1,11 +1,11 @@
 CREATE TABLE TABLES (
   TID INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
   DB_ID INT NOT NULL,
-  TABLE_NAME VARCHAR(128) NOT NULL,
+  TABLE_NAME VARCHAR(128) BINARY NOT NULL,
   TABLE_TYPE VARCHAR(128) NOT NULL,
-  PATH VARCHAR(4096),
+  PATH VARCHAR(4096) BINARY,
   STORE_TYPE CHAR(16),
   FOREIGN KEY (DB_ID) REFERENCES DATABASES_ (DB_ID),
   INDEX IDX_DB_ID (DB_ID),
   UNIQUE INDEX IDX_TABLE_ID (DB_ID, TABLE_NAME)
-)
\ No newline at end of file
+)

http://git-wip-us.apache.org/repos/asf/tajo/blob/e22c1c57/tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/tablespaces.sql
----------------------------------------------------------------------
diff --git a/tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/tablespaces.sql b/tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/tablespaces.sql
index f2e2299..3cfbb40 100644
--- a/tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/tablespaces.sql
+++ b/tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/tablespaces.sql
@@ -1,7 +1,7 @@
 CREATE TABLE TABLESPACES (
   SPACE_ID INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
-  SPACE_NAME VARCHAR(128) NOT NULL UNIQUE,
+  SPACE_NAME VARCHAR(128) BINARY NOT NULL UNIQUE,
   SPACE_HANDLER VARCHAR (1024) DEFAULT 'HDFS',
-  SPACE_URI VARCHAR (4096) NOT NULL,
+  SPACE_URI VARCHAR (4096) BINARY NOT NULL,
   UNIQUE INDEX IDX_NAME (SPACE_NAME)
-)
\ No newline at end of file
+)

http://git-wip-us.apache.org/repos/asf/tajo/blob/e22c1c57/tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestCatalog.java
----------------------------------------------------------------------
diff --git a/tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestCatalog.java b/tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestCatalog.java
index 43c6f7d..305742f 100644
--- a/tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestCatalog.java
+++ b/tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestCatalog.java
@@ -26,7 +26,6 @@ import org.apache.tajo.catalog.dictionary.InfoSchemaMetadataDictionary;
 import org.apache.tajo.catalog.exception.CatalogException;
 import org.apache.tajo.catalog.exception.NoSuchFunctionException;
 import org.apache.tajo.catalog.store.PostgreSQLStore;
-import org.apache.tajo.function.Function;
 import org.apache.tajo.catalog.partition.PartitionMethodDesc;
 import org.apache.tajo.catalog.proto.CatalogProtos;
 import org.apache.tajo.catalog.proto.CatalogProtos.FunctionType;
@@ -39,6 +38,7 @@ import org.apache.tajo.catalog.store.OracleStore;
 import org.apache.tajo.common.TajoDataTypes;
 import org.apache.tajo.common.TajoDataTypes.Type;
 import org.apache.tajo.conf.TajoConf;
+import org.apache.tajo.function.Function;
 import org.apache.tajo.util.CommonTestingUtil;
 import org.apache.tajo.util.KeyValueSet;
 import org.apache.tajo.util.TUtil;
@@ -208,6 +208,20 @@ public class TestCatalog {
     assertTrue(catalog.existDatabase("testCreateAndDropDatabases"));
     assertTrue(catalog.dropDatabase("testCreateAndDropDatabases"));
   }
+  
+  @Test
+  public void testCreateAndDropDatabaseWithCharacterSensitivity() throws Exception {
+    assertFalse(catalog.existDatabase("TestDatabase1"));
+    assertFalse(catalog.existDatabase("testDatabase1"));
+    assertTrue(catalog.createDatabase("TestDatabase1", TajoConstants.DEFAULT_TABLESPACE_NAME));
+    assertTrue(catalog.existDatabase("TestDatabase1"));
+    assertFalse(catalog.existDatabase("testDatabase1"));
+    assertTrue(catalog.createDatabase("testDatabase1", TajoConstants.DEFAULT_TABLESPACE_NAME));
+    assertTrue(catalog.existDatabase("TestDatabase1"));
+    assertTrue(catalog.existDatabase("testDatabase1"));
+    assertTrue(catalog.dropDatabase("TestDatabase1"));
+    assertTrue(catalog.dropDatabase("testDatabase1"));
+  }
 
   @Test
   public void testCreateAndDropManyDatabases() throws Exception {
@@ -285,6 +299,43 @@ public class TestCatalog {
     assertTrue(catalog.dropDatabase("tmpdb2"));
     assertFalse(catalog.existDatabase("tmpdb2"));
   }
+  
+  @Test
+  public void testCreateAndDropTableWithCharacterSensivity() throws Exception {
+    String databaseName = "TestDatabase1";
+    assertTrue(catalog.createDatabase(databaseName, TajoConstants.DEFAULT_TABLESPACE_NAME));
+    assertTrue(catalog.existDatabase(databaseName));
+    
+    String tableName = "TestTable1";
+    Schema schema = new Schema();
+    schema.addColumn("Column", Type.BLOB);
+    schema.addColumn("column", Type.INT4);
+    schema.addColumn("cOlumn", Type.INT8);
+    Path path = new Path(CommonTestingUtil.getTestDir(), tableName);
+    TableDesc table = new TableDesc(
+        CatalogUtil.buildFQName(databaseName, tableName),
+        schema,
+        new TableMeta(StoreType.CSV, new KeyValueSet()),
+        path.toUri(), true);
+    
+    assertTrue(catalog.createTable(table));
+    
+    tableName = "testTable1";
+    schema = new Schema();
+    schema.addColumn("Column", Type.BLOB);
+    schema.addColumn("column", Type.INT4);
+    schema.addColumn("cOlumn", Type.INT8);
+    path = new Path(CommonTestingUtil.getTestDir(), tableName);
+    table = new TableDesc(
+        CatalogUtil.buildFQName(databaseName, tableName),
+        schema,
+        new TableMeta(StoreType.CSV, new KeyValueSet()),
+        path.toUri(), true);
+    
+    assertTrue(catalog.createTable(table));
+    
+    assertTrue(catalog.dropDatabase(databaseName));
+  }
 
   static String dbPrefix = "db_";
   static String tablePrefix = "tb_";