You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by jv...@apache.org on 2011/10/26 03:00:55 UTC

svn commit: r1188986 - in /hive/trunk/ql/src: java/org/apache/hadoop/hive/ql/metadata/Hive.java test/org/apache/hadoop/hive/ql/metadata/TestHive.java

Author: jvs
Date: Wed Oct 26 01:00:54 2011
New Revision: 1188986

URL: http://svn.apache.org/viewvc?rev=1188986&view=rev
Log:
HIVE-2501. When new instance of Hive (class) is created, the current database
is reset to default.
(Robert Surowka via jvs)


Modified:
    hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/metadata/Hive.java
    hive/trunk/ql/src/test/org/apache/hadoop/hive/ql/metadata/TestHive.java

Modified: hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/metadata/Hive.java
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/metadata/Hive.java?rev=1188986&r1=1188985&r2=1188986&view=diff
==============================================================================
--- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/metadata/Hive.java (original)
+++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/metadata/Hive.java Wed Oct 26 01:00:54 2011
@@ -154,8 +154,12 @@ public class Hive {
     if (db == null || needsRefresh) {
       closeCurrent();
       c.set("fs.scheme.class", "dfs");
-      db = new Hive(c);
-      hiveDB.set(db);
+      Hive newdb = new Hive(c);
+      if (db != null && db.getCurrentDatabase() != null){
+        newdb.setCurrentDatabase(db.getCurrentDatabase());
+      }
+      hiveDB.set(newdb);
+      return newdb;
     }
     return db;
   }

Modified: hive/trunk/ql/src/test/org/apache/hadoop/hive/ql/metadata/TestHive.java
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/org/apache/hadoop/hive/ql/metadata/TestHive.java?rev=1188986&r1=1188985&r2=1188986&view=diff
==============================================================================
--- hive/trunk/ql/src/test/org/apache/hadoop/hive/ql/metadata/TestHive.java (original)
+++ hive/trunk/ql/src/test/org/apache/hadoop/hive/ql/metadata/TestHive.java Wed Oct 26 01:00:54 2011
@@ -372,4 +372,14 @@ public class TestHive extends TestCase {
       throw e;
     }
   }
+
+  public void testHiveRefreshDatabase() throws Throwable{
+    String testDatabaseName = "test_database";
+    Database testDatabase = new Database();
+    testDatabase.setName(testDatabaseName);
+    hm.createDatabase(testDatabase, true);
+    hm.setCurrentDatabase(testDatabaseName);
+    hm = Hive.get(hiveConf, true); //refresh Hive instance
+    assertEquals(testDatabaseName, hm.getCurrentDatabase());
+  }
 }