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

dataroaring 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 14253b6a30 [fix](ccr) Add tableName in DropInfo && BatchDropInfo 
(#21736)
14253b6a30 is described below

commit 14253b6a30048cab2d5f21a17ec70c31654ebc44
Author: Jack Drogon <[email protected]>
AuthorDate: Thu Jul 13 11:47:49 2023 +0800

    [fix](ccr) Add tableName in DropInfo && BatchDropInfo (#21736)
    
    Signed-off-by: Jack Drogon <[email protected]>
---
 .../org/apache/doris/alter/MaterializedViewHandler.java     |  6 ++++--
 .../main/java/org/apache/doris/binlog/DropTableRecord.java  |  6 ++++++
 .../java/org/apache/doris/datasource/InternalCatalog.java   |  2 +-
 .../main/java/org/apache/doris/persist/BatchDropInfo.java   | 12 +++++++++++-
 .../src/main/java/org/apache/doris/persist/DropInfo.java    | 13 ++++++++++++-
 .../src/main/java/org/apache/doris/persist/EditLog.java     |  3 ++-
 .../org/apache/doris/persist/DropAndRecoverInfoTest.java    | 10 +++++-----
 7 files changed, 41 insertions(+), 11 deletions(-)

diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/alter/MaterializedViewHandler.java 
b/fe/fe-core/src/main/java/org/apache/doris/alter/MaterializedViewHandler.java
index 5c75eb1509..f51fb31ece 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/alter/MaterializedViewHandler.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/alter/MaterializedViewHandler.java
@@ -911,7 +911,8 @@ public class MaterializedViewHandler extends AlterHandler {
             EditLog editLog = Env.getCurrentEnv().getEditLog();
             long dbId = db.getId();
             long tableId = olapTable.getId();
-            editLog.logBatchDropRollup(new BatchDropInfo(dbId, tableId, 
indexIdSet));
+            String tableName = olapTable.getName();
+            editLog.logBatchDropRollup(new BatchDropInfo(dbId, tableId, 
tableName, indexIdSet));
             LOG.info("finished drop rollup index[{}] in table[{}]",
                     String.join("", rollupNameSet), olapTable.getName());
         } finally {
@@ -931,7 +932,8 @@ public class MaterializedViewHandler extends AlterHandler {
             long mvIndexId = dropMaterializedView(mvName, olapTable);
             // Step3: log drop mv operation
             EditLog editLog = Env.getCurrentEnv().getEditLog();
-            editLog.logDropRollup(new DropInfo(db.getId(), olapTable.getId(), 
mvIndexId, false, 0));
+            editLog.logDropRollup(
+                    new DropInfo(db.getId(), olapTable.getId(), 
olapTable.getName(), mvIndexId, false, 0));
             LOG.info("finished drop materialized view [{}] in table [{}]", 
mvName, olapTable.getName());
         } catch (MetaNotFoundException e) {
             if (dropMaterializedViewStmt.isIfExists()) {
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/binlog/DropTableRecord.java 
b/fe/fe-core/src/main/java/org/apache/doris/binlog/DropTableRecord.java
index dd5adb36c7..155898cbc9 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/binlog/DropTableRecord.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/binlog/DropTableRecord.java
@@ -29,11 +29,17 @@ public class DropTableRecord {
     private long dbId;
     @SerializedName(value = "tableId")
     private long tableId;
+    @SerializedName(value = "tableName")
+    private String tableName;
+    @SerializedName(value = "rawSql")
+    private String rawSql;
 
     public DropTableRecord(long commitSeq, DropInfo info) {
         this.commitSeq = commitSeq;
         this.dbId = info.getDbId();
         this.tableId = info.getTableId();
+        this.tableName = info.getTableName();
+        this.rawSql = String.format("DROP TABLE IF EXISTS `%s`", 
this.tableName);
     }
 
     public long getCommitSeq() {
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/datasource/InternalCatalog.java 
b/fe/fe-core/src/main/java/org/apache/doris/datasource/InternalCatalog.java
index ec2993ab88..e9da68939c 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/datasource/InternalCatalog.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/datasource/InternalCatalog.java
@@ -895,7 +895,7 @@ public class InternalCatalog implements CatalogIf<Database> 
{
             } finally {
                 table.writeUnlock();
             }
-            DropInfo info = new DropInfo(db.getId(), table.getId(), -1L, 
stmt.isForceDrop(), recycleTime);
+            DropInfo info = new DropInfo(db.getId(), table.getId(), tableName, 
-1L, stmt.isForceDrop(), recycleTime);
             Env.getCurrentEnv().getEditLog().logDropTable(info);
             
Env.getCurrentEnv().getQueryStats().clear(Env.getCurrentEnv().getCurrentCatalog().getId(),
                     db.getId(), table.getId());
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 234456dcc1..fdfc44e27b 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
@@ -39,12 +39,15 @@ public class BatchDropInfo implements Writable {
     private long dbId;
     @SerializedName(value = "tableId")
     private long tableId;
+    @SerializedName(value = "tableName")
+    private String tableName; // not used in equals and hashCode
     @SerializedName(value = "indexIdSet")
     private Set<Long> indexIdSet;
 
-    public BatchDropInfo(long dbId, long tableId, Set<Long> indexIdSet) {
+    public BatchDropInfo(long dbId, long tableId, String tableName, Set<Long> 
indexIdSet) {
         this.dbId = dbId;
         this.tableId = tableId;
+        this.tableName = tableName;
         this.indexIdSet = indexIdSet;
     }
 
@@ -87,4 +90,11 @@ public class BatchDropInfo implements Writable {
         return tableId;
     }
 
+    public String getTableName() {
+        return tableName;
+    }
+
+    public String toJson() {
+        return GsonUtils.GSON.toJson(this);
+    }
 }
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 50ee6adb89..b30522e942 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
@@ -34,6 +34,8 @@ public class DropInfo implements Writable {
     private long dbId;
     @SerializedName(value = "tableId")
     private long tableId;
+    @SerializedName(value = "tableName")
+    private String tableName; // not used in equals and hashCode
     @SerializedName(value = "indexId")
     private long indexId;
     @SerializedName(value = "forceDrop")
@@ -44,9 +46,10 @@ public class DropInfo implements Writable {
     public DropInfo() {
     }
 
-    public DropInfo(long dbId, long tableId, long indexId, boolean forceDrop, 
long recycleTime) {
+    public DropInfo(long dbId, long tableId, String tableName, long indexId, 
boolean forceDrop, long recycleTime) {
         this.dbId = dbId;
         this.tableId = tableId;
+        this.tableName = tableName;
         this.indexId = indexId;
         this.forceDrop = forceDrop;
         this.recycleTime = recycleTime;
@@ -60,6 +63,10 @@ public class DropInfo implements Writable {
         return this.tableId;
     }
 
+    public String getTableName() {
+        return this.tableName;
+    }
+
     public long getIndexId() {
         return this.indexId;
     }
@@ -114,4 +121,8 @@ public class DropInfo implements Writable {
         return (dbId == info.dbId) && (tableId == info.tableId) && (indexId == 
info.indexId)
                 && (forceDrop == info.forceDrop) && (recycleTime == 
info.recycleTime);
     }
+
+    public String toJson() {
+        return GsonUtils.GSON.toJson(this);
+    }
 }
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 b92b2cb980..f19d215e30 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
@@ -326,7 +326,8 @@ public class EditLog {
                     BatchDropInfo batchDropInfo = (BatchDropInfo) 
journal.getData();
                     for (long indexId : batchDropInfo.getIndexIdSet()) {
                         env.getMaterializedViewHandler().replayDropRollup(
-                                new DropInfo(batchDropInfo.getDbId(), 
batchDropInfo.getTableId(), indexId, false, 0),
+                                new DropInfo(batchDropInfo.getDbId(), 
batchDropInfo.getTableId(),
+                                        batchDropInfo.getTableName(), indexId, 
false, 0),
                                 env);
                     }
                     break;
diff --git 
a/fe/fe-core/src/test/java/org/apache/doris/persist/DropAndRecoverInfoTest.java 
b/fe/fe-core/src/test/java/org/apache/doris/persist/DropAndRecoverInfoTest.java
index 5b70ff4f80..bdaab002c5 100644
--- 
a/fe/fe-core/src/test/java/org/apache/doris/persist/DropAndRecoverInfoTest.java
+++ 
b/fe/fe-core/src/test/java/org/apache/doris/persist/DropAndRecoverInfoTest.java
@@ -44,7 +44,7 @@ public class DropAndRecoverInfoTest {
         DropInfo info1 = new DropInfo();
         info1.write(dos);
 
-        DropInfo info2 = new DropInfo(1, 2, -1, true, 0);
+        DropInfo info2 = new DropInfo(1, 2, "t2", -1, true, 0);
         info2.write(dos);
 
         dos.flush();
@@ -65,10 +65,10 @@ public class DropAndRecoverInfoTest {
 
         Assert.assertEquals(rInfo2, rInfo2);
         Assert.assertNotEquals(rInfo2, this);
-        Assert.assertNotEquals(info2, new DropInfo(0, 2, -1L, true, 0));
-        Assert.assertNotEquals(info2, new DropInfo(1, 0, -1L, true, 0));
-        Assert.assertNotEquals(info2, new DropInfo(1, 2, -1L, false, 0));
-        Assert.assertEquals(info2, new DropInfo(1, 2, -1L, true, 0));
+        Assert.assertNotEquals(info2, new DropInfo(0, 2, "t2", -1L, true, 0));
+        Assert.assertNotEquals(info2, new DropInfo(1, 0, "t0", -1L, true, 0));
+        Assert.assertNotEquals(info2, new DropInfo(1, 2, "t2", -1L, false, 0));
+        Assert.assertEquals(info2, new DropInfo(1, 2, "t2", -1L, true, 0));
 
         // 3. delete files
         dis.close();


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to