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]