You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@doris.apache.org by da...@apache.org on 2025/04/25 10:10:45 UTC
(doris) 02/03: branch-3.0: [fix](serDe) global function could not deserialization from image #50279 (#50347)
This is an automated email from the ASF dual-hosted git repository.
dataroaring pushed a commit to branch branch-3.0.5
in repository https://gitbox.apache.org/repos/asf/doris.git
commit 268d6716dadd38a3c1b59b6faf9b56f0109ed349
Author: github-actions[bot] <41...@users.noreply.github.com>
AuthorDate: Thu Apr 24 19:41:39 2025 +0800
branch-3.0: [fix](serDe) global function could not deserialization from image #50279 (#50347)
Cherry-picked from #50279
Co-authored-by: morrySnow <zh...@selectdb.com>
---
.../main/java/org/apache/doris/catalog/GlobalFunctionMgr.java | 2 +-
.../org/apache/doris/nereids/trees/expressions/UdfTest.java | 10 +++++++++-
2 files changed, 10 insertions(+), 2 deletions(-)
diff --git a/fe/fe-core/src/main/java/org/apache/doris/catalog/GlobalFunctionMgr.java b/fe/fe-core/src/main/java/org/apache/doris/catalog/GlobalFunctionMgr.java
index fbb8a525a36..2e3f81d93ee 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/catalog/GlobalFunctionMgr.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/GlobalFunctionMgr.java
@@ -61,7 +61,7 @@ public class GlobalFunctionMgr extends MetaObject implements GsonPostProcessable
@Override
public void write(DataOutput out) throws IOException {
// write functions
- Text.writeString(out, GsonUtils.GSON.toJson(name2Function));
+ Text.writeString(out, GsonUtils.GSON.toJson(this, GlobalFunctionMgr.class));
}
@Override
diff --git a/fe/fe-core/src/test/java/org/apache/doris/nereids/trees/expressions/UdfTest.java b/fe/fe-core/src/test/java/org/apache/doris/nereids/trees/expressions/UdfTest.java
index 635a3300dfe..39fd3a22336 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/nereids/trees/expressions/UdfTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/nereids/trees/expressions/UdfTest.java
@@ -18,6 +18,8 @@
package org.apache.doris.nereids.trees.expressions;
import org.apache.doris.catalog.Env;
+import org.apache.doris.catalog.Function;
+import org.apache.doris.catalog.GlobalFunctionMgr;
import org.apache.doris.common.Config;
import org.apache.doris.nereids.trees.expressions.functions.scalar.DateFormat;
import org.apache.doris.nereids.trees.expressions.functions.scalar.DateTrunc;
@@ -49,6 +51,7 @@ import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
+import java.util.List;
public class UdfTest extends TestWithFeService implements PlanPatternMatchSupported {
@Override
@@ -192,8 +195,13 @@ public class UdfTest extends TestWithFeService implements PlanPatternMatchSuppor
Env.getCurrentEnv().getGlobalFunctionMgr().write(new DataOutputStream(outputStream));
byte[] buffer = outputStream.toByteArray();
ByteArrayInputStream inputStream = new ByteArrayInputStream(buffer);
- Env.getCurrentEnv().getGlobalFunctionMgr().readFields(new DataInputStream(inputStream));
+ GlobalFunctionMgr newMgr = GlobalFunctionMgr.read(new DataInputStream(inputStream));
+ List<Function> functions = newMgr.getFunctions();
+ Assertions.assertEquals(1, functions.stream()
+ .map(f -> f.getFunctionName().getFunction())
+ .filter(name -> name.equals("f8"))
+ .count());
Assertions.assertEquals(1, Env.getCurrentEnv().getFunctionRegistry()
.findUdfBuilder(connectContext.getDatabase(), "f8").size());
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org