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 <maoch...@selectdb.com> 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: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org