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

w41ter pushed a commit to branch branch-2.0
in repository https://gitbox.apache.org/repos/asf/doris.git


The following commit(s) were added to refs/heads/branch-2.0 by this push:
     new e8d29186007 [opt] (binlog) Support Modify ViewDef binlog #41167 
(#44520)
e8d29186007 is described below

commit e8d29186007a6ed8a6fb8c47cbe55a9eb68727ff
Author: walter <[email protected]>
AuthorDate: Mon Nov 25 15:46:50 2024 +0800

    [opt] (binlog) Support Modify ViewDef binlog #41167 (#44520)
    
    cherry pick from #41167
    
    Co-authored-by: yanmingfu <[email protected]>
    Co-authored-by: yanmingfu <[email protected]>
---
 .../org/apache/doris/binlog/BinlogManager.java     | 65 +++++++++++++---------
 .../org/apache/doris/persist/AlterViewInfo.java    |  4 ++
 .../java/org/apache/doris/persist/EditLog.java     |  7 ++-
 gensrc/thrift/FrontendService.thrift               |  4 +-
 4 files changed, 50 insertions(+), 30 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 ee89c14b40c..d4be686a14b 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;
@@ -322,6 +323,43 @@ public class BinlogManager {
         addBinlog(dbId, tableIds, commitSeq, timestamp, type, data, false, 
record);
     }
 
+    public void addTableRename(TableInfo info, long commitSeq) {
+        long dbId = info.getDbId();
+        long tableId = info.getTableId();
+        TBinlogType type = TBinlogType.RENAME_TABLE;
+        String data = info.toJson();
+        BarrierLog log = new BarrierLog(dbId, tableId, type, data);
+        addBarrierLog(log, commitSeq);
+    }
+
+    public void addColumnRename(TableRenameColumnInfo info, long commitSeq) {
+        long dbId = info.getDbId();
+        long tableId = info.getTableId();
+        TBinlogType type = TBinlogType.RENAME_COLUMN;
+        String data = info.toJson();
+        BarrierLog log = new BarrierLog(dbId, tableId, type, data);
+        addBarrierLog(log, commitSeq);
+    }
+
+    public void addModifyComment(ModifyCommentOperationLog info, long 
commitSeq) {
+        long dbId = info.getDbId();
+        long tableId = info.getTblId();
+        TBinlogType type = TBinlogType.MODIFY_COMMENT;
+        String data = info.toJson();
+        BarrierLog log = new BarrierLog(dbId, tableId, type, data);
+        addBarrierLog(log, commitSeq);
+    }
+
+    // add Modify view
+    public void addModifyViewDef(AlterViewInfo alterViewInfo, long commitSeq) {
+        long dbId = alterViewInfo.getDbId();
+        long tableId = alterViewInfo.getTableId();
+        TBinlogType type = TBinlogType.MODIFY_VIEW_DEF;
+        String data = alterViewInfo.toJson();
+        BarrierLog log = new BarrierLog(dbId, tableId, type, data);
+        addBarrierLog(log, commitSeq);
+    }
+
     // 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);
@@ -358,33 +396,6 @@ public class BinlogManager {
         }
     }
 
-    public void addTableRename(TableInfo info, long commitSeq) {
-        long dbId = info.getDbId();
-        long tableId = info.getTableId();
-        TBinlogType type = TBinlogType.RENAME_TABLE;
-        String data = info.toJson();
-        BarrierLog log = new BarrierLog(dbId, tableId, type, data);
-        addBarrierLog(log, commitSeq);
-    }
-
-    public void addColumnRename(TableRenameColumnInfo info, long commitSeq) {
-        long dbId = info.getDbId();
-        long tableId = info.getTableId();
-        TBinlogType type = TBinlogType.RENAME_COLUMN;
-        String data = info.toJson();
-        BarrierLog log = new BarrierLog(dbId, tableId, type, data);
-        addBarrierLog(log, commitSeq);
-    }
-
-    public void addModifyComment(ModifyCommentOperationLog info, long 
commitSeq) {
-        long dbId = info.getDbId();
-        long tableId = info.getTblId();
-        TBinlogType type = TBinlogType.MODIFY_COMMENT;
-        String data = info.toJson();
-        BarrierLog log = new BarrierLog(dbId, tableId, type, data);
-        addBarrierLog(log, commitSeq);
-    }
-
     // get the dropped partitions of the db.
     public List<Long> getDroppedPartitions(long dbId) {
         lock.readLock().lock();
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 54c12dfd046..4ac9028d985 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
@@ -302,6 +302,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: {
@@ -1444,7 +1445,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 b58f8a42e89..3636a9acf7f 100644
--- a/gensrc/thrift/FrontendService.thrift
+++ b/gensrc/thrift/FrontendService.thrift
@@ -1030,6 +1030,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
@@ -1046,8 +1047,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]

Reply via email to