commit bed24bcb8e07aa0411b60e0d70be1b85347c0b90 Author: Bharath Krishna Date: Tue Feb 5 16:12:01 2019 -0800 HIVE-21205 : Tests for replace flag in insert event messages in Metastore notifications. diff --git itests/hcatalog-unit/src/test/java/org/apache/hive/hcatalog/listener/TestDbNotificationListener.java itests/hcatalog-unit/src/test/java/org/apache/hive/hcatalog/listener/TestDbNotificationListener.java index 0c3e046604ae05154d9df5535a46f08303b67ae5..a2f9f3f0a6ac474b8e84e4bad4c839974a7d234f 100644 --- itests/hcatalog-unit/src/test/java/org/apache/hive/hcatalog/listener/TestDbNotificationListener.java +++ itests/hcatalog-unit/src/test/java/org/apache/hive/hcatalog/listener/TestDbNotificationListener.java @@ -21,6 +21,7 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; +import static org.junit.Assert.assertFalse; import static org.junit.Assert.fail; import java.util.concurrent.TimeUnit; @@ -1080,6 +1081,7 @@ public void insertTable() throws Exception { data.setInsertData(insertData); insertData.addToFilesAdded(fileAdded); insertData.addToFilesAddedChecksum(checksumAdded); + insertData.setReplace(false); FireEventRequest rqst = new FireEventRequest(true, data); rqst.setDbName(defaultDbName); rqst.setTableName(tblName); @@ -1103,6 +1105,7 @@ public void insertTable() throws Exception { assertEquals(defaultDbName, insertMessage.getDB()); assertEquals(tblName, insertMessage.getTable()); assertEquals(TableType.MANAGED_TABLE.toString(), insertMessage.getTableType()); + assertFalse(insertMessage.isReplace()); // Verify the eventID was passed to the non-transactional listener MockMetaStoreEventListener.popAndVerifyLastEventId(EventType.INSERT, firstEventId + 2); @@ -1147,6 +1150,7 @@ public void insertPartition() throws Exception { data.setInsertData(insertData); insertData.addToFilesAdded(fileAdded); insertData.addToFilesAddedChecksum(checksumAdded); + insertData.setReplace(false); FireEventRequest rqst = new FireEventRequest(true, data); rqst.setDbName(defaultDbName); rqst.setTableName(tblName); @@ -1167,7 +1171,7 @@ public void insertPartition() throws Exception { verifyInsert(event, defaultDbName, tblName); InsertMessage insertMessage = md.getInsertMessage(event.getMessage()); List ptnValues = insertMessage.getPtnObj().getValues(); - + assertFalse(insertMessage.isReplace()); assertEquals(partKeyVals, ptnValues); // Verify the eventID was passed to the non-transactional listener @@ -1261,6 +1265,8 @@ public void sqlInsertTable() throws Exception { assertEquals(EventType.INSERT.toString(), event.getEventType()); // Parse the message field verifyInsert(event, defaultDbName, tblName); + InsertMessage insertMsg = md.getInsertMessage(event.getMessage()); + assertFalse(insertMsg.isReplace()); event = rsp.getEvents().get(5); assertEquals(firstEventId + 6, event.getEventId()); @@ -1387,7 +1393,9 @@ public void sqlInsertPartition() throws Exception { assertEquals(EventType.INSERT.toString(), event.getEventType()); // Parse the message field verifyInsert(event, null, tblName); - + // Verify the replace flag. + InsertMessage insertMsg = md.getInsertMessage(event.getMessage()); + assertFalse(insertMsg.isReplace()); event = rsp.getEvents().get(8); assertEquals(firstEventId + 9, event.getEventId()); assertEquals(EventType.INSERT.toString(), event.getEventType()); @@ -1433,6 +1441,9 @@ public void sqlInsertPartition() throws Exception { event = rsp.getEvents().get(28); assertEquals(firstEventId + 29, event.getEventId()); assertEquals(EventType.INSERT.toString(), event.getEventType()); + // Verify the replace flag. + insertMsg = md.getInsertMessage(event.getMessage()); + assertTrue(insertMsg.isReplace()); // replace-overwrite introduces no new files assertTrue(event.getMessage().matches(".*\"files\":\\[\\].*"));