Repository: hive
Updated Branches:
  refs/heads/master c737dbd8f -> fd5f34fdd


HIVE-20916 : Fix typo in JSONCreateDatabaseMessage and add test for alter 
database (Vihang Karajgaonkar, reviewed by Andrew Sherman and Bharathkrishna 
Guruvayoor Murali)


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

Branch: refs/heads/master
Commit: fd5f34fdd9be45b05f7cd7c771b01ff9dd1765fc
Parents: c737dbd
Author: Vihang Karajgaonkar <vihan...@apache.org>
Authored: Fri Nov 16 10:59:41 2018 -0800
Committer: Vihang Karajgaonkar <vihan...@apache.org>
Committed: Fri Nov 16 10:59:58 2018 -0800

----------------------------------------------------------------------
 .../listener/TestDbNotificationListener.java    | 35 ++++++++++++++++++++
 .../json/JSONCreateDatabaseMessage.java         |  2 +-
 2 files changed, 36 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hive/blob/fd5f34fd/itests/hcatalog-unit/src/test/java/org/apache/hive/hcatalog/listener/TestDbNotificationListener.java
----------------------------------------------------------------------
diff --git 
a/itests/hcatalog-unit/src/test/java/org/apache/hive/hcatalog/listener/TestDbNotificationListener.java
 
b/itests/hcatalog-unit/src/test/java/org/apache/hive/hcatalog/listener/TestDbNotificationListener.java
index 3e404df..d4b7b02 100644
--- 
a/itests/hcatalog-unit/src/test/java/org/apache/hive/hcatalog/listener/TestDbNotificationListener.java
+++ 
b/itests/hcatalog-unit/src/test/java/org/apache/hive/hcatalog/listener/TestDbNotificationListener.java
@@ -81,6 +81,7 @@ import org.apache.hadoop.hive.metastore.events.ListenerEvent;
 import org.apache.hadoop.hive.metastore.events.AllocWriteIdEvent;
 import org.apache.hadoop.hive.metastore.events.AcidWriteEvent;
 import org.apache.hadoop.hive.metastore.messaging.AddPartitionMessage;
+import org.apache.hadoop.hive.metastore.messaging.AlterDatabaseMessage;
 import org.apache.hadoop.hive.metastore.messaging.AlterPartitionMessage;
 import org.apache.hadoop.hive.metastore.messaging.AlterTableMessage;
 import org.apache.hadoop.hive.metastore.messaging.CreateDatabaseMessage;
@@ -341,6 +342,7 @@ public class TestDbNotificationListener {
     // Parse the message field
     CreateDatabaseMessage createDbMsg = 
md.getCreateDatabaseMessage(event.getMessage());
     assertEquals(dbName, createDbMsg.getDB());
+    assertEquals(db, createDbMsg.getDatabaseObject());
 
     // Verify the eventID was passed to the non-transactional listener
     
MockMetaStoreEventListener.popAndVerifyLastEventId(EventType.CREATE_DATABASE, 
firstEventId + 1);
@@ -364,6 +366,39 @@ public class TestDbNotificationListener {
   }
 
   @Test
+  public void alterDatabase() throws Exception {
+    String dbName = "alterdb";
+    String dbLocationUri = testTempDir;
+    String dbDescription = "no description";
+    msClient.createDatabase(new Database(dbName, dbDescription, dbLocationUri, 
emptyParameters));
+    // get the db for comparison below since it may include additional 
parameters
+    Database dbBefore = msClient.getDatabase(dbName);
+    // create alter database notification
+    String newDesc = "test database";
+    Database dbAfter = dbBefore.deepCopy();
+    dbAfter.setDescription(newDesc);
+    msClient.alterDatabase(dbName, dbAfter);
+    dbAfter = msClient.getDatabase(dbName);
+
+    // Read notification from metastore
+    NotificationEventResponse rsp = msClient.getNextNotification(firstEventId, 
0, null);
+    assertEquals(2, rsp.getEventsSize());
+    // check the contents of alter database notification
+    NotificationEvent event = rsp.getEvents().get(1);
+    assertEquals(firstEventId + 2, event.getEventId());
+    assertTrue(event.getEventTime() >= startTime);
+    assertEquals(EventType.ALTER_DATABASE.toString(), event.getEventType());
+    assertEquals(dbName, event.getDbName());
+    assertNull(event.getTableName());
+
+    // Parse the message field
+    AlterDatabaseMessage alterDatabaseMessage = 
md.getAlterDatabaseMessage(event.getMessage());
+    assertEquals(dbName, alterDatabaseMessage.getDB());
+    assertEquals(dbBefore, alterDatabaseMessage.getDbObjBefore());
+    assertEquals(dbAfter, alterDatabaseMessage.getDbObjAfter());
+  }
+
+  @Test
   public void dropDatabase() throws Exception {
     String dbName = "dropdb";
     String dbName2 = "dropdb2";

http://git-wip-us.apache.org/repos/asf/hive/blob/fd5f34fd/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/messaging/json/JSONCreateDatabaseMessage.java
----------------------------------------------------------------------
diff --git 
a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/messaging/json/JSONCreateDatabaseMessage.java
 
b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/messaging/json/JSONCreateDatabaseMessage.java
index 1f5c9e8..4ee854a 100644
--- 
a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/messaging/json/JSONCreateDatabaseMessage.java
+++ 
b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/messaging/json/JSONCreateDatabaseMessage.java
@@ -51,7 +51,7 @@ public class JSONCreateDatabaseMessage extends 
CreateDatabaseMessage {
     try {
       this.dbJson = MessageBuilder.createDatabaseObjJson(db);
     } catch (TException ex) {
-      throw new IllegalArgumentException("Could not serialize Function 
object", ex);
+      throw new IllegalArgumentException("Could not serialize database 
object", ex);
     }
     checkValid();
   }

Reply via email to