You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@impala.apache.org by ta...@apache.org on 2018/04/03 02:11:14 UTC

[8/9] impala git commit: IMPALA-6719: Reset metadata database name case sensitivity

IMPALA-6719: Reset metadata database name case sensitivity

Fix issue with database case name case sensitivity in reset metadata
statement.

Testing:
- Created end-to-end reset metadata tests.

Change-Id: Id880aa559cec0afe8fbb7d33ccce83f7b5e474cb
Reviewed-on: http://gerrit.cloudera.org:8080/9788
Reviewed-by: Alex Behm <al...@cloudera.com>
Tested-by: Impala Public Jenkins


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

Branch: refs/heads/master
Commit: a026f265a260462015d90ad3d3be7686d8486865
Parents: 5a78a30
Author: Fredy wijaya <fw...@cloudera.com>
Authored: Fri Mar 23 11:23:21 2018 -0700
Committer: Impala Public Jenkins <im...@gerrit.cloudera.org>
Committed: Tue Apr 3 01:06:01 2018 +0000

----------------------------------------------------------------------
 .../impala/catalog/CatalogServiceCatalog.java   |  2 +-
 tests/metadata/test_reset_metadata.py           | 34 ++++++++++++++++++++
 2 files changed, 35 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/impala/blob/a026f265/fe/src/main/java/org/apache/impala/catalog/CatalogServiceCatalog.java
----------------------------------------------------------------------
diff --git a/fe/src/main/java/org/apache/impala/catalog/CatalogServiceCatalog.java b/fe/src/main/java/org/apache/impala/catalog/CatalogServiceCatalog.java
index 5bef242..20a3e2f 100644
--- a/fe/src/main/java/org/apache/impala/catalog/CatalogServiceCatalog.java
+++ b/fe/src/main/java/org/apache/impala/catalog/CatalogServiceCatalog.java
@@ -977,7 +977,7 @@ public class CatalogServiceCatalog extends Catalog {
       // Load Java UDFs from HMS into the temporary db.
       loadJavaFunctions(tmpDb, javaFns);
 
-      Db db = dbCache_.get().get(dbName);
+      Db db = getDb(dbName);
       if (db == null) {
         throw new DatabaseNotFoundException("Database does not exist: " + dbName);
       }

http://git-wip-us.apache.org/repos/asf/impala/blob/a026f265/tests/metadata/test_reset_metadata.py
----------------------------------------------------------------------
diff --git a/tests/metadata/test_reset_metadata.py b/tests/metadata/test_reset_metadata.py
new file mode 100644
index 0000000..07ee7f1
--- /dev/null
+++ b/tests/metadata/test_reset_metadata.py
@@ -0,0 +1,34 @@
+# 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.
+
+from test_ddl_base import TestDdlBase
+
+class TestResetMetadata(TestDdlBase):
+  def test_reset_metadata_case_sensitivity(self, unique_database):
+    # IMPALA-6719: Issue with database name case sensitivity in reset metadata.
+    table = 'newtable'
+    self.client.execute('create table %s.%s (i int)' % (unique_database, table))
+
+    self.client.execute('refresh %s.%s' % (unique_database, table))
+    self.client.execute('refresh %s.%s' % (unique_database.upper(), table.upper()))
+
+    self.client.execute('invalidate metadata %s.%s' % (unique_database, table))
+    self.client.execute('invalidate metadata %s.%s' % (unique_database.upper(),
+                                                       table.upper()))
+
+    self.client.execute('refresh functions %s' % unique_database)
+    self.client.execute('refresh functions %s' % unique_database.upper())