This is an automated email from the ASF dual-hosted git repository.
w41ter pushed a commit to branch branch-3.0
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/branch-3.0 by this push:
new c914d8044a0 [opt] (binlog) Support Modify ViewDef binlog #41167
(#44115)
c914d8044a0 is described below
commit c914d8044a0128203c4a58c0c8e36a4cf3521c8d
Author: walter <[email protected]>
AuthorDate: Tue Nov 19 10:19:43 2024 +0800
[opt] (binlog) Support Modify ViewDef binlog #41167 (#44115)
cherry pick from #41167
Co-authored-by: yanmingfu <[email protected]>
Co-authored-by: yanmingfu <[email protected]>
---
.../main/java/org/apache/doris/binlog/BinlogManager.java | 13 +++++++++++++
.../main/java/org/apache/doris/persist/AlterViewInfo.java | 4 ++++
.../src/main/java/org/apache/doris/persist/EditLog.java | 7 ++++++-
gensrc/thrift/FrontendService.thrift | 4 ++--
4 files changed, 25 insertions(+), 3 deletions(-)
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/binlog/BinlogManager.java
b/fe/fe-core/src/main/java/org/apache/doris/binlog/BinlogManager.java
index 35588568511..6d483a41314 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/binlog/BinlogManager.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/binlog/BinlogManager.java
@@ -25,6 +25,7 @@ import org.apache.doris.common.Pair;
import org.apache.doris.common.proc.BaseProcResult;
import org.apache.doris.common.proc.ProcResult;
import org.apache.doris.persist.AlterDatabasePropertyInfo;
+import org.apache.doris.persist.AlterViewInfo;
import org.apache.doris.persist.BarrierLog;
import org.apache.doris.persist.BatchModifyPartitionsInfo;
import org.apache.doris.persist.BinlogGcInfo;
@@ -354,6 +355,18 @@ public class BinlogManager {
addBinlog(dbId, tableIds, commitSeq, timestamp, type, data, false,
info);
}
+ // add Modify view
+ public void addModifyViewDef(AlterViewInfo alterViewInfo, long commitSeq) {
+ long dbId = alterViewInfo.getDbId();
+ List<Long> tableIds = Lists.newArrayList();
+ tableIds.add(alterViewInfo.getTableId());
+ long timestamp = -1;
+ TBinlogType type = TBinlogType.MODIFY_VIEW_DEF;
+ String data = alterViewInfo.toJson();
+
+ addBinlog(dbId, tableIds, commitSeq, timestamp, type, data, false,
alterViewInfo);
+ }
+
// get binlog by dbId, return first binlog.version > version
public Pair<TStatus, TBinlog> getBinlog(long dbId, long tableId, long
prevCommitSeq) {
TStatus status = new TStatus(TStatusCode.OK);
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/persist/AlterViewInfo.java
b/fe/fe-core/src/main/java/org/apache/doris/persist/AlterViewInfo.java
index df1fb5696c6..c54dfcf7c31 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/persist/AlterViewInfo.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/persist/AlterViewInfo.java
@@ -105,4 +105,8 @@ public class AlterViewInfo implements Writable {
String json = Text.readString(in);
return GsonUtils.GSON.fromJson(json, AlterViewInfo.class);
}
+
+ 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 10a22dc0bcc..a982bf6d694 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
@@ -312,6 +312,7 @@ public class EditLog {
case OperationType.OP_MODIFY_VIEW_DEF: {
AlterViewInfo info = (AlterViewInfo) journal.getData();
env.getAlterInstance().replayModifyViewDef(info);
+ env.getBinlogManager().addModifyViewDef(info, logId);
break;
}
case OperationType.OP_RENAME_PARTITION: {
@@ -1577,7 +1578,11 @@ public class EditLog {
}
public void logModifyViewDef(AlterViewInfo alterViewInfo) {
- logEdit(OperationType.OP_MODIFY_VIEW_DEF, alterViewInfo);
+ long logId = logEdit(OperationType.OP_MODIFY_VIEW_DEF, alterViewInfo);
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("log modify view, logId : {}, infos: {}", logId,
alterViewInfo);
+ }
+ Env.getCurrentEnv().getBinlogManager().addModifyViewDef(alterViewInfo,
logId);
}
public void logRollupRename(TableInfo tableInfo) {
diff --git a/gensrc/thrift/FrontendService.thrift
b/gensrc/thrift/FrontendService.thrift
index daf02cdf46b..5bce845beaa 100644
--- a/gensrc/thrift/FrontendService.thrift
+++ b/gensrc/thrift/FrontendService.thrift
@@ -1189,6 +1189,7 @@ enum TBinlogType {
RENAME_TABLE = 14,
RENAME_COLUMN = 15,
MODIFY_COMMENT = 16,
+ MODIFY_VIEW_DEF = 17,
// Keep some IDs for allocation so that when new binlog types are added in
the
// future, the changes can be picked back to the old versions without
breaking
@@ -1205,8 +1206,7 @@ enum TBinlogType {
// MODIFY_XXX = 17,
// MIN_UNKNOWN = 18,
// UNKNOWN_3 = 19,
- MIN_UNKNOWN = 17,
- UNKNOWN_2 = 18,
+ MIN_UNKNOWN = 18,
UNKNOWN_3 = 19,
UNKNOWN_4 = 20,
UNKNOWN_5 = 21,
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]