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

yiguolei 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 ee8dffbfb7 [meta](recover) change dropInfo and RecoverInfo to GSON 
(#13830)
ee8dffbfb7 is described below

commit ee8dffbfb7d00a1f6d715bbabe72a85a2868a056
Author: Mingyu Chen <morningman....@gmail.com>
AuthorDate: Wed Nov 2 13:32:46 2022 +0800

    [meta](recover) change dropInfo and RecoverInfo to GSON (#13830)
---
 .../org/apache/doris/journal/JournalEntity.java    |  9 ++---
 .../java/org/apache/doris/persist/DropInfo.java    | 39 +++++++++++-----------
 .../java/org/apache/doris/persist/RecoverInfo.java | 28 ++++++++++++----
 3 files changed, 44 insertions(+), 32 deletions(-)

diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/journal/JournalEntity.java 
b/fe/fe-core/src/main/java/org/apache/doris/journal/JournalEntity.java
index 51d7f4cec3..11e8ca03dd 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/journal/JournalEntity.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/journal/JournalEntity.java
@@ -196,8 +196,7 @@ public class JournalEntity implements Writable {
                 break;
             }
             case OperationType.OP_DROP_TABLE: {
-                data = new DropInfo();
-                ((DropInfo) data).readFields(in);
+                data = DropInfo.read(in);
                 isRead = true;
                 break;
             }
@@ -238,14 +237,12 @@ public class JournalEntity implements Writable {
             case OperationType.OP_RECOVER_DB:
             case OperationType.OP_RECOVER_TABLE:
             case OperationType.OP_RECOVER_PARTITION: {
-                data = new RecoverInfo();
-                ((RecoverInfo) data).readFields(in);
+                data = RecoverInfo.read(in);
                 isRead = true;
                 break;
             }
             case OperationType.OP_DROP_ROLLUP: {
-                data = new DropInfo();
-                ((DropInfo) data).readFields(in);
+                data = DropInfo.read(in);
                 isRead = true;
                 break;
             }
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 713c7ff051..50ee6adb89 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
@@ -19,18 +19,26 @@ package org.apache.doris.persist;
 
 import org.apache.doris.catalog.Env;
 import org.apache.doris.common.FeMetaVersion;
+import org.apache.doris.common.io.Text;
 import org.apache.doris.common.io.Writable;
+import org.apache.doris.persist.gson.GsonUtils;
+
+import com.google.gson.annotations.SerializedName;
 
 import java.io.DataInput;
 import java.io.DataOutput;
 import java.io.IOException;
 
 public class DropInfo implements Writable {
+    @SerializedName(value = "dbId")
     private long dbId;
+    @SerializedName(value = "tableId")
     private long tableId;
-
+    @SerializedName(value = "indexId")
     private long indexId;
+    @SerializedName(value = "forceDrop")
     private boolean forceDrop = false;
+    @SerializedName(value = "recycleTime")
     private long recycleTime = 0;
 
     public DropInfo() {
@@ -61,24 +69,16 @@ public class DropInfo implements Writable {
     }
 
     public Long getRecycleTime() {
-        return  recycleTime;
+        return recycleTime;
     }
 
     @Override
     public void write(DataOutput out) throws IOException {
-        out.writeLong(dbId);
-        out.writeLong(tableId);
-        out.writeBoolean(forceDrop);
-        if (indexId == -1L) {
-            out.writeBoolean(false);
-        } else {
-            out.writeBoolean(true);
-            out.writeLong(indexId);
-        }
-        out.writeLong(recycleTime);
+        Text.writeString(out, GsonUtils.GSON.toJson(this));
     }
 
-    public void readFields(DataInput in) throws IOException {
+    @Deprecated
+    private void readFields(DataInput in) throws IOException {
         dbId = in.readLong();
         tableId = in.readLong();
         forceDrop = in.readBoolean();
@@ -88,15 +88,16 @@ public class DropInfo implements Writable {
         } else {
             indexId = -1L;
         }
-        if (Env.getCurrentEnvJournalVersion() >= FeMetaVersion.VERSION_114) {
-            recycleTime = in.readLong();
-        }
     }
 
     public static DropInfo read(DataInput in) throws IOException {
-        DropInfo dropInfo = new DropInfo();
-        dropInfo.readFields(in);
-        return dropInfo;
+        if (Env.getCurrentEnvJournalVersion() >= FeMetaVersion.VERSION_114) {
+            return GsonUtils.GSON.fromJson(Text.readString(in), 
DropInfo.class);
+        } else {
+            DropInfo dropInfo = new DropInfo();
+            dropInfo.readFields(in);
+            return dropInfo;
+        }
     }
 
     public boolean equals(Object obj) {
diff --git a/fe/fe-core/src/main/java/org/apache/doris/persist/RecoverInfo.java 
b/fe/fe-core/src/main/java/org/apache/doris/persist/RecoverInfo.java
index 601d282008..9c4302a14d 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/persist/RecoverInfo.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/persist/RecoverInfo.java
@@ -21,17 +21,26 @@ import org.apache.doris.catalog.Env;
 import org.apache.doris.common.FeMetaVersion;
 import org.apache.doris.common.io.Text;
 import org.apache.doris.common.io.Writable;
+import org.apache.doris.persist.gson.GsonUtils;
+
+import com.google.gson.annotations.SerializedName;
 
 import java.io.DataInput;
 import java.io.DataOutput;
 import java.io.IOException;
 
 public class RecoverInfo implements Writable {
+    @SerializedName(value = "dbId")
     private long dbId;
+    @SerializedName(value = "newDbName")
     private String newDbName;
+    @SerializedName(value = "tableId")
     private long tableId;
+    @SerializedName(value = "newTableName")
     private String newTableName;
+    @SerializedName(value = "partitionId")
     private long partitionId;
+    @SerializedName(value = "newPartitionName")
     private String newPartitionName;
 
     public RecoverInfo() {
@@ -83,15 +92,20 @@ public class RecoverInfo implements Writable {
         Text.writeString(out, newPartitionName);
     }
 
-    public void readFields(DataInput in) throws IOException {
-        dbId = in.readLong();
-        tableId = in.readLong();
-        partitionId = in.readLong();
+    public static RecoverInfo read(DataInput in) throws IOException {
         if (Env.getCurrentEnvJournalVersion() >= FeMetaVersion.VERSION_114) {
-            newDbName = Text.readString(in);
-            newTableName = Text.readString(in);
-            newPartitionName = Text.readString(in);
+            return GsonUtils.GSON.fromJson(Text.readString(in), 
RecoverInfo.class);
+        } else {
+            RecoverInfo recoverInfo = new RecoverInfo();
+            recoverInfo.readFields(in);
+            return recoverInfo;
         }
     }
 
+    @Deprecated
+    private void readFields(DataInput in) throws IOException {
+        dbId = in.readLong();
+        tableId = in.readLong();
+        partitionId = in.readLong();
+    }
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org
For additional commands, e-mail: commits-h...@doris.apache.org

Reply via email to