This is an automated email from the ASF dual-hosted git repository.
w41ter pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/master by this push:
new 6eca02307df [fix](editlog) Fix replay BatchDropInfo (#45077)
6eca02307df is described below
commit 6eca02307df0fb89bf1612b704934994567bb4ee
Author: walter <[email protected]>
AuthorDate: Fri Dec 6 14:43:16 2024 +0800
[fix](editlog) Fix replay BatchDropInfo (#45077)
introduced by #44677
The new field `indexNameMap` does not exist in the former version of the
persisted metadata, and should be skipped during replaying.
---
.../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 7d1f2127eec..f1377e9daeb 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
@@ -347,13 +347,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: [email protected]
For additional commands, e-mail: [email protected]