This is an automated email from the ASF dual-hosted git repository.
zhangstar333 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 f413ec422a8 [bug](meta) fix can't deserialize meta from gson about
polymorphic function class (#36847)
f413ec422a8 is described below
commit f413ec422a86a817d4f392cd80a00cc062930fbb
Author: zhangstar333 <[email protected]>
AuthorDate: Wed Jun 26 18:14:34 2024 +0800
[bug](meta) fix can't deserialize meta from gson about polymorphic function
class (#36847)
in PR #36552, start to serialize meta by Gson
and function class is polymorphic
```
Function.class
---ScalarFunction.class
---AggregateFunction.class
---AliasFunction.class
```
---
.../main/java/org/apache/doris/persist/gson/GsonUtils.java | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/persist/gson/GsonUtils.java
b/fe/fe-core/src/main/java/org/apache/doris/persist/gson/GsonUtils.java
index 28e7cbc1a13..90a1c507011 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/persist/gson/GsonUtils.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/persist/gson/GsonUtils.java
@@ -61,6 +61,8 @@ import org.apache.doris.analysis.VirtualSlotRef;
import org.apache.doris.backup.BackupJob;
import org.apache.doris.backup.RestoreJob;
import org.apache.doris.catalog.AggStateType;
+import org.apache.doris.catalog.AggregateFunction;
+import org.apache.doris.catalog.AliasFunction;
import org.apache.doris.catalog.AnyElementType;
import org.apache.doris.catalog.AnyStructType;
import org.apache.doris.catalog.AnyType;
@@ -71,6 +73,7 @@ import org.apache.doris.catalog.DistributionInfo;
import org.apache.doris.catalog.Env;
import org.apache.doris.catalog.EsResource;
import org.apache.doris.catalog.EsTable;
+import org.apache.doris.catalog.Function;
import org.apache.doris.catalog.FunctionGenTable;
import org.apache.doris.catalog.HMSResource;
import org.apache.doris.catalog.HashDistributionInfo;
@@ -99,6 +102,7 @@ import org.apache.doris.catalog.RangePartitionItem;
import org.apache.doris.catalog.Replica;
import org.apache.doris.catalog.Resource;
import org.apache.doris.catalog.S3Resource;
+import org.apache.doris.catalog.ScalarFunction;
import org.apache.doris.catalog.ScalarType;
import org.apache.doris.catalog.SchemaTable;
import org.apache.doris.catalog.SinglePartitionInfo;
@@ -486,6 +490,13 @@ public class GsonUtils {
.registerSubtype(FrontendHbResponse.class,
FrontendHbResponse.class.getSimpleName())
.registerSubtype(BrokerHbResponse.class,
BrokerHbResponse.class.getSimpleName());
+ // runtime adapter for class "Function"
+ private static RuntimeTypeAdapterFactory<Function> functionAdapterFactory
+ = RuntimeTypeAdapterFactory.of(Function.class, "clazz")
+ .registerSubtype(ScalarFunction.class,
ScalarFunction.class.getSimpleName())
+ .registerSubtype(AggregateFunction.class,
AggregateFunction.class.getSimpleName())
+ .registerSubtype(AliasFunction.class,
AliasFunction.class.getSimpleName());
+
// runtime adapter for class "CloudReplica".
private static RuntimeTypeAdapterFactory<Replica>
replicaTypeAdapterFactory = RuntimeTypeAdapterFactory
.of(Replica.class, "clazz")
@@ -585,6 +596,7 @@ public class GsonUtils {
.registerTypeAdapterFactory(partitionTypeAdapterFactory)
.registerTypeAdapterFactory(partitionInfoTypeAdapterFactory)
.registerTypeAdapterFactory(hbResponseTypeAdapterFactory)
+ .registerTypeAdapterFactory(functionAdapterFactory)
.registerTypeAdapterFactory(rdsTypeAdapterFactory)
.registerTypeAdapterFactory(jobExecutorRuntimeTypeAdapterFactory)
.registerTypeAdapterFactory(mtmvSnapshotTypeAdapterFactory)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]