This is an automated email from the ASF dual-hosted git repository. kxiao pushed a commit to branch branch-2.0 in repository https://gitbox.apache.org/repos/asf/doris.git
commit 46e7c2c7e37dc702faeb5aa7ca95d4cc335a60c4 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 af1915b6fe..db7768a3f6 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 @@ -900,7 +900,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 { @@ -920,7 +921,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 4f70c919f2..bb60ae2d50 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 @@ -893,7 +893,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]
