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

tchoi pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hive.git


The following commit(s) were added to refs/heads/master by this push:
     new 24e835c34f6 HIVE-29511: [hiveACIDRepl] For incremental replication 
newly created UDF data count is not updated in metricCollector (#6372)
24e835c34f6 is described below

commit 24e835c34f69c29b6f0cd464d6be8e977130451b
Author: Shivam Kumar <[email protected]>
AuthorDate: Fri Mar 20 07:58:44 2026 +0530

    HIVE-29511: [hiveACIDRepl] For incremental replication newly created UDF 
data count is not updated in metricCollector (#6372)
---
 ql/src/java/org/apache/hadoop/hive/ql/exec/repl/ReplDumpTask.java      | 3 +++
 ql/src/java/org/apache/hadoop/hive/ql/exec/repl/ReplStateLogWork.java  | 2 ++
 .../hive/ql/exec/repl/incremental/IncrementalLoadTasksBuilder.java     | 1 +
 3 files changed, 6 insertions(+)

diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/repl/ReplDumpTask.java 
b/ql/src/java/org/apache/hadoop/hive/ql/exec/repl/ReplDumpTask.java
index 3b741851945..b211ef294f2 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/repl/ReplDumpTask.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/repl/ReplDumpTask.java
@@ -955,6 +955,7 @@ private Long incrementalDump(Path dumpRoot, DumpMetaData 
dmd, Path cmRoot, Hive
       Map<String, Long> metricMap = new HashMap<>();
       metricMap.put(ReplUtils.MetricName.EVENTS.name(), estimatedNumEvents);
       metricMap.put(ReplUtils.MetricName.TABLES.name(), 0L);
+      metricMap.put(ReplUtils.MetricName.FUNCTIONS.name(), 0L);
       int size = tablesForBootstrap.size();
       if (db != null && db.getParameters()!=null &&
         
Boolean.parseBoolean(db.getParameters().get(REPL_RESUME_STARTED_AFTER_FAILOVER)))
 {
@@ -1299,6 +1300,8 @@ private void dumpEvent(NotificationEvent ev, Path evRoot, 
Path dumpRoot, Path cm
       work.getMetricCollector().reportStageProgress(getName(), 
ReplUtils.MetricName.EVENTS.name(), 1);
       if (eventHandler.dumpType() == DumpType.EVENT_CREATE_TABLE) {
         work.getMetricCollector().reportStageProgress(getName(), 
ReplUtils.MetricName.TABLES.name(), 1);
+      } else if (eventHandler.dumpType() == DumpType.EVENT_CREATE_FUNCTION) {
+        work.getMetricCollector().reportStageProgress(getName(), 
ReplUtils.MetricName.FUNCTIONS.name(), 1);
       }
     }
     work.getReplLogger().eventLog(String.valueOf(ev.getEventId()), 
eventHandler.dumpType().toString());
diff --git 
a/ql/src/java/org/apache/hadoop/hive/ql/exec/repl/ReplStateLogWork.java 
b/ql/src/java/org/apache/hadoop/hive/ql/exec/repl/ReplStateLogWork.java
index 5a31f88a44c..95e9ba24ead 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/repl/ReplStateLogWork.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/repl/ReplStateLogWork.java
@@ -153,6 +153,8 @@ public void replStateLog() throws SemanticException {
       metricCollector.reportStageProgress("REPL_LOAD", 
ReplUtils.MetricName.EVENTS.name(), 1);
       if ("EVENT_CREATE_TABLE".equals(eventType)) {
         metricCollector.reportStageProgress("REPL_LOAD", 
ReplUtils.MetricName.TABLES.name(), 1);
+      } else if ("EVENT_CREATE_FUNCTION".equals(eventType)) {
+        metricCollector.reportStageProgress("REPL_LOAD", 
ReplUtils.MetricName.FUNCTIONS.name(), 1);
       }
       break;
     case END:
diff --git 
a/ql/src/java/org/apache/hadoop/hive/ql/exec/repl/incremental/IncrementalLoadTasksBuilder.java
 
b/ql/src/java/org/apache/hadoop/hive/ql/exec/repl/incremental/IncrementalLoadTasksBuilder.java
index 9e370b49f90..00a3b600fd6 100644
--- 
a/ql/src/java/org/apache/hadoop/hive/ql/exec/repl/incremental/IncrementalLoadTasksBuilder.java
+++ 
b/ql/src/java/org/apache/hadoop/hive/ql/exec/repl/incremental/IncrementalLoadTasksBuilder.java
@@ -100,6 +100,7 @@ public IncrementalLoadTasksBuilder(String dbName, String 
loadPath, IncrementalLo
     Map<String, Long> metricMap = new HashMap<>();
     metricMap.put(ReplUtils.MetricName.EVENTS.name(), (long) 
iterator.getTotalEventsCount());
     metricMap.put(ReplUtils.MetricName.TABLES.name(), 0L);
+    metricMap.put(ReplUtils.MetricName.FUNCTIONS.name(), 0L);
     this.shouldFailover = shouldFailover;
     if (shouldFailover) {
       Database db = null;

Reply via email to