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

dataroaring pushed a commit to branch branch-2.1
in repository https://gitbox.apache.org/repos/asf/doris.git


The following commit(s) were added to refs/heads/branch-2.1 by this push:
     new bd14d864ef4 branch-2.1: [fix](editlog) Fix replay BatchDropInfo #45077 
(#45102)
bd14d864ef4 is described below

commit bd14d864ef49f7d0b11a18591d14f6f5c3e74b9a
Author: github-actions[bot] 
<41898282+github-actions[bot]@users.noreply.github.com>
AuthorDate: Fri Dec 6 22:36:40 2024 +0800

    branch-2.1: [fix](editlog) Fix replay BatchDropInfo #45077 (#45102)
    
    Cherry-picked from #45077
    
    Co-authored-by: walter <maoch...@selectdb.com>
---
 .../org/apache/doris/persist/BatchDropInfo.java    |  4 ++++
 .../java/org/apache/doris/persist/DropInfo.java    |  2 +-
 .../java/org/apache/doris/persist/EditLog.java     | 22 +++++++++++++++-------
 3 files changed, 20 insertions(+), 8 deletions(-)

diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/persist/BatchDropInfo.java 
b/fe/fe-core/src/main/java/org/apache/doris/persist/BatchDropInfo.java
index 260ad316d3c..8e4e9b9af8e 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/persist/BatchDropInfo.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/persist/BatchDropInfo.java
@@ -86,6 +86,10 @@ public class BatchDropInfo implements Writable {
         return indexIdSet;
     }
 
+    public boolean hasIndexNameMap() {
+        return indexNameMap != null;
+    }
+
     public Map<Long, String> getIndexNameMap() {
         return indexNameMap;
     }
diff --git a/fe/fe-core/src/main/java/org/apache/doris/persist/DropInfo.java 
b/fe/fe-core/src/main/java/org/apache/doris/persist/DropInfo.java
index 69994caf23d..db0688bd6ad 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/persist/DropInfo.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/persist/DropInfo.java
@@ -52,7 +52,7 @@ public class DropInfo implements Writable {
 
     public DropInfo(long dbId, long tableId, String tableName, boolean isView, 
boolean forceDrop,
             long recycleTime) {
-        this(dbId, tableId, tableName, -1, "", isView, forceDrop, recycleTime);
+        this(dbId, tableId, tableName, -1L, "", isView, forceDrop, 
recycleTime);
     }
 
     public DropInfo(long dbId, long tableId, String tableName, long indexId, 
String indexName, boolean isView,
diff --git a/fe/fe-core/src/main/java/org/apache/doris/persist/EditLog.java 
b/fe/fe-core/src/main/java/org/apache/doris/persist/EditLog.java
index 3ac992e6edf..ddb6557ab6b 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/persist/EditLog.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/persist/EditLog.java
@@ -343,13 +343,21 @@ public class EditLog {
                 }
                 case OperationType.OP_BATCH_DROP_ROLLUP: {
                     BatchDropInfo batchDropInfo = (BatchDropInfo) 
journal.getData();
-                    for (Map.Entry<Long, String> entry : 
batchDropInfo.getIndexNameMap().entrySet()) {
-                        long indexId = entry.getKey();
-                        String indexName = entry.getValue();
-                        DropInfo info = new DropInfo(batchDropInfo.getDbId(), 
batchDropInfo.getTableId(),
-                                        batchDropInfo.getTableName(), indexId, 
indexName, false, false, 0);
-                        
env.getMaterializedViewHandler().replayDropRollup(info, env);
-                        env.getBinlogManager().addDropRollup(info, logId);
+                    if (batchDropInfo.hasIndexNameMap()) {
+                        for (Map.Entry<Long, String> entry : 
batchDropInfo.getIndexNameMap().entrySet()) {
+                            long indexId = entry.getKey();
+                            String indexName = entry.getValue();
+                            DropInfo info = new 
DropInfo(batchDropInfo.getDbId(), batchDropInfo.getTableId(),
+                                            batchDropInfo.getTableName(), 
indexId, indexName, false, false, 0);
+                            
env.getMaterializedViewHandler().replayDropRollup(info, env);
+                            env.getBinlogManager().addDropRollup(info, logId);
+                        }
+                    } else {
+                        for (Long indexId : batchDropInfo.getIndexIdSet()) {
+                            DropInfo info = new 
DropInfo(batchDropInfo.getDbId(), batchDropInfo.getTableId(),
+                                    batchDropInfo.getTableName(), indexId, "", 
false, false, 0);
+                            
env.getMaterializedViewHandler().replayDropRollup(info, env);
+                        }
                     }
                     break;
                 }


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org
For additional commands, e-mail: commits-h...@doris.apache.org

Reply via email to