This is an automated email from the ASF dual-hosted git repository.

dkuzmenko pushed a commit to branch branch-4.1
in repository https://gitbox.apache.org/repos/asf/hive.git


The following commit(s) were added to refs/heads/branch-4.1 by this push:
     new 4f494d6cc8a HIVE-29067: insert-select-union-all query fails while 
publishing InsertEvent if source query does not return output (#5948)
4f494d6cc8a is described below

commit 4f494d6cc8a89f416afe7a5b3600913615229d08
Author: Naresh P R <[email protected]>
AuthorDate: Wed Jul 9 17:06:21 2025 -0400

    HIVE-29067: insert-select-union-all query fails while publishing 
InsertEvent if source query does not return output (#5948)
---
 ql/src/java/org/apache/hadoop/hive/ql/metadata/Hive.java     |  5 ++---
 ql/src/test/org/apache/hadoop/hive/ql/metadata/TestHive.java | 11 +++++++++++
 2 files changed, 13 insertions(+), 3 deletions(-)

diff --git a/ql/src/java/org/apache/hadoop/hive/ql/metadata/Hive.java 
b/ql/src/java/org/apache/hadoop/hive/ql/metadata/Hive.java
index cf9c84814f5..e55be0f3e93 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/metadata/Hive.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/metadata/Hive.java
@@ -3963,7 +3963,7 @@ public void fireInsertEvent(String dbName, String tblName,
     }
   }
 
-  private void fireInsertEvent(Table tbl, Map<String, String> partitionSpec, 
boolean replace, List<FileStatus> newFiles)
+  void fireInsertEvent(Table tbl, Map<String, String> partitionSpec, boolean 
replace, List<FileStatus> newFiles)
       throws HiveException {
     if (conf.getBoolVar(ConfVars.FIRE_EVENTS_FOR_DML)) {
       LOG.debug("Firing dml insert event");
@@ -3976,11 +3976,10 @@ private void fireInsertEvent(Table tbl, Map<String, 
String> partitionSpec, boole
         FireEventRequestData data = new FireEventRequestData();
         InsertEventRequestData insertData = new InsertEventRequestData();
         insertData.setReplace(replace);
+        insertData.setFilesAdded(new ArrayList());
         data.setInsertData(insertData);
         if (newFiles != null && !newFiles.isEmpty()) {
           addInsertFileInformation(newFiles, fileSystem, insertData);
-        } else {
-          insertData.setFilesAdded(new ArrayList<String>());
         }
         FireEventRequest rqst = new FireEventRequest(true, data);
         rqst.setDbName(tbl.getDbName());
diff --git a/ql/src/test/org/apache/hadoop/hive/ql/metadata/TestHive.java 
b/ql/src/test/org/apache/hadoop/hive/ql/metadata/TestHive.java
index 2d42ea880ba..a55551357d2 100755
--- a/ql/src/test/org/apache/hadoop/hive/ql/metadata/TestHive.java
+++ b/ql/src/test/org/apache/hadoop/hive/ql/metadata/TestHive.java
@@ -1055,6 +1055,17 @@ public void testFireInsertEvent() throws Throwable {
       Path insertedPath = new Path(insertEvent.getFiles().get(i));
       Assert.assertEquals(expectedCheckSums.get(insertedPath.getName()), 
checkSums.get(i));
     }
+
+    // Fire the InsertEvent with empty folder
+    hiveDb.fireInsertEvent(table, null, false,
+      Lists.newArrayList(new FileStatus(5, true, 1, 64, 100, tablePath)));
+    // Get the last Metastore event
+    InsertEvent insertEvent1 = DummyFireInsertListener.getLastEvent();
+    // Check the event
+    Assert.assertNotNull(insertEvent1);
+    // getFiles should be empty and not null
+    Assert.assertNotNull(insertEvent1.getFiles());
+    Assert.assertTrue(insertEvent1.getFiles().isEmpty());
   }
 
   private String getFileCheckSum(FileSystem fileSystem, Path p) throws 
Exception {

Reply via email to