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

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


The following commit(s) were added to refs/heads/branch-2.1 by this push:
     new 3ca0fc3784a branch-2.1: [fix](external catalog) Persisting the 
External Catalog comment field… (#47569)
3ca0fc3784a is described below

commit 3ca0fc3784a9c01174e625aa991bb48b14b4794f
Author: zy-kkk <[email protected]>
AuthorDate: Wed Feb 12 09:20:30 2025 +0800

    branch-2.1: [fix](external catalog) Persisting the External Catalog comment 
field… (#47569)
    
    cherry-pick (#46946)
---
 .../apache/doris/datasource/ExternalCatalog.java   |  4 ++-
 .../doris/datasource/ExternalCatalogTest.java      | 34 ++++++++++++++++++++++
 2 files changed, 37 insertions(+), 1 deletion(-)

diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/datasource/ExternalCatalog.java 
b/fe/fe-core/src/main/java/org/apache/doris/datasource/ExternalCatalog.java
index 90e64f8b377..831d48a38be 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/datasource/ExternalCatalog.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/datasource/ExternalCatalog.java
@@ -134,6 +134,9 @@ public abstract class ExternalCatalog
     protected Map<Long, ExternalDatabase<? extends ExternalTable>> idToDb = 
Maps.newConcurrentMap();
     @SerializedName(value = "lastUpdateTime")
     protected long lastUpdateTime;
+    @SerializedName(value = "comment")
+    private String comment;
+
     // db name does not contains "default_cluster"
     protected Map<String, Long> dbNameToId = Maps.newConcurrentMap();
     private boolean objectCreated = false;
@@ -142,7 +145,6 @@ public abstract class ExternalCatalog
     protected TransactionManager transactionManager;
 
     private ExternalSchemaCache schemaCache;
-    private String comment;
     // A cached and being converted properties for external catalog.
     // generated from catalog properties.
     private byte[] propLock = new byte[0];
diff --git 
a/fe/fe-core/src/test/java/org/apache/doris/datasource/ExternalCatalogTest.java 
b/fe/fe-core/src/test/java/org/apache/doris/datasource/ExternalCatalogTest.java
index 70e5e5f37af..ebf69c6df52 100644
--- 
a/fe/fe-core/src/test/java/org/apache/doris/datasource/ExternalCatalogTest.java
+++ 
b/fe/fe-core/src/test/java/org/apache/doris/datasource/ExternalCatalogTest.java
@@ -282,4 +282,38 @@ public class ExternalCatalogTest extends TestWithFeService 
{
             file.delete();
         }
     }
+
+    @Test
+    public void testSerializationWithComment() throws Exception {
+        MetaContext metaContext = new MetaContext();
+        metaContext.setMetaVersion(FeMetaVersion.VERSION_CURRENT);
+        metaContext.setThreadLocalInfo();
+
+        // 1. Write objects to file
+        File file = new File("./external_catalog_with_comment_test.dat");
+        file.createNewFile();
+        DataOutputStream dos = new 
DataOutputStream(Files.newOutputStream(file.toPath()));
+
+        TestExternalCatalog ctl = (TestExternalCatalog) 
mgr.getCatalog("test1");
+        String testComment = "This is a test comment for serialization";
+        ctl.setComment(testComment); // Set a custom comment value
+        ctl.write(dos);
+        dos.flush();
+        dos.close();
+
+        // 2. Read objects from file
+        DataInputStream dis = new 
DataInputStream(Files.newInputStream(file.toPath()));
+
+        String json = Text.readString(dis);
+        TestExternalCatalog ctl2 = GsonUtils.GSON.fromJson(json, 
TestExternalCatalog.class);
+        Configuration conf = ctl2.getConfiguration();
+        Assertions.assertNotNull(conf);
+
+        // Verify the comment is properly serialized and deserialized
+        Assertions.assertEquals(testComment, ctl2.getComment());
+
+        // 3. delete files
+        dis.close();
+        file.delete();
+    }
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to