You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@doris.apache.org by pa...@apache.org on 2023/06/21 05:06:59 UTC

[doris] branch master updated: [Feature](materialized-view) support create mv contain aggstate column (#20812)

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

panxiaolei 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 5f0bb49d46 [Feature](materialized-view) support create mv contain aggstate column (#20812)
5f0bb49d46 is described below

commit 5f0bb49d46260873b8aada594d2f833f4267e894
Author: Pxl <px...@qq.com>
AuthorDate: Wed Jun 21 13:06:52 2023 +0800

    [Feature](materialized-view) support create mv contain aggstate column (#20812)
    
    support create mv contain aggstate column
---
 be/src/olap/task/engine_alter_tablet_task.cpp      |    9 +-
 .../aggregate_function_min_max_by.h                |    4 +
 be/src/vec/data_types/data_type_nullable.cpp       |    8 +-
 .../java/org/apache/doris/analysis/ColumnDef.java  |    3 +-
 .../doris/analysis/CreateMaterializedViewStmt.java |   31 +-
 .../main/java/org/apache/doris/catalog/Column.java |   31 +-
 .../main/java/org/apache/doris/catalog/Env.java    |    4 +
 .../java/org/apache/doris/catalog/FunctionSet.java | 1305 +++++---------------
 .../doris/catalog/MaterializedIndexMeta.java       |    2 +-
 .../doris/catalog/external/HMSExternalTable.java   |    5 +-
 .../doris/external/jdbc/JdbcMySQLClient.java       |    3 +-
 .../data/mv_p0/agg_state/test_agg_state_max_by.out |    8 +
 .../test_agg_state_max_by.groovy}                  |   41 +-
 .../mv_p0/sum_divede_count/sum_devide_count.groovy |    5 -
 .../mv/newMv/sum_devide_count.groovy               |    5 -
 15 files changed, 349 insertions(+), 1115 deletions(-)

diff --git a/be/src/olap/task/engine_alter_tablet_task.cpp b/be/src/olap/task/engine_alter_tablet_task.cpp
index f2df074494..30c3e95809 100644
--- a/be/src/olap/task/engine_alter_tablet_task.cpp
+++ b/be/src/olap/task/engine_alter_tablet_task.cpp
@@ -25,6 +25,7 @@
 #include <string>
 
 #include "common/config.h"
+#include "common/exception.h"
 #include "olap/schema_change.h"
 #include "runtime/memory/mem_tracker_limiter.h"
 #include "runtime/thread_context.h"
@@ -45,8 +46,12 @@ EngineAlterTabletTask::EngineAlterTabletTask(const TAlterTabletReqV2& request)
 Status EngineAlterTabletTask::execute() {
     SCOPED_ATTACH_TASK(_mem_tracker);
     DorisMetrics::instance()->create_rollup_requests_total->increment(1);
-
-    Status res = SchemaChangeHandler::process_alter_tablet_v2(_alter_tablet_req);
+    Status res = Status::OK();
+    try {
+        res = SchemaChangeHandler::process_alter_tablet_v2(_alter_tablet_req);
+    } catch (const Exception& e) {
+        res = e.to_status();
+    }
     if (!res.ok()) {
         DorisMetrics::instance()->create_rollup_requests_failed->increment(1);
         return res;
diff --git a/be/src/vec/aggregate_functions/aggregate_function_min_max_by.h b/be/src/vec/aggregate_functions/aggregate_function_min_max_by.h
index 6fa82fa2a1..ca21db0c11 100644
--- a/be/src/vec/aggregate_functions/aggregate_function_min_max_by.h
+++ b/be/src/vec/aggregate_functions/aggregate_function_min_max_by.h
@@ -188,6 +188,10 @@ template <template <typename> class AggregateFunctionTemplate,
 AggregateFunctionPtr create_aggregate_function_min_max_by(const String& name,
                                                           const DataTypes& argument_types,
                                                           const bool result_is_nullable) {
+    if (argument_types.size() != 2) {
+        return nullptr;
+    }
+
     WhichDataType which(remove_nullable(argument_types[0]));
 #define DISPATCH(TYPE)                                                                    \
     if (which.idx == TypeIndex::TYPE)                                                     \
diff --git a/be/src/vec/data_types/data_type_nullable.cpp b/be/src/vec/data_types/data_type_nullable.cpp
index 40b8b9661f..1a1e302cad 100644
--- a/be/src/vec/data_types/data_type_nullable.cpp
+++ b/be/src/vec/data_types/data_type_nullable.cpp
@@ -165,7 +165,9 @@ bool DataTypeNullable::equals(const IDataType& rhs) const {
 }
 
 DataTypePtr make_nullable(const DataTypePtr& type) {
-    if (type->is_nullable()) return type;
+    if (type->is_nullable()) {
+        return type;
+    }
     return std::make_shared<DataTypeNullable>(type);
 }
 
@@ -178,7 +180,9 @@ DataTypes make_nullable(const DataTypes& types) {
 }
 
 DataTypePtr remove_nullable(const DataTypePtr& type) {
-    if (type->is_nullable()) return static_cast<const DataTypeNullable&>(*type).get_nested_type();
+    if (type->is_nullable()) {
+        return assert_cast<const DataTypeNullable*>(type.get())->get_nested_type();
+    }
     return type;
 }
 
diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/ColumnDef.java b/fe/fe-core/src/main/java/org/apache/doris/analysis/ColumnDef.java
index 8a6bff11f0..9833236a89 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/ColumnDef.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/ColumnDef.java
@@ -518,8 +518,7 @@ public class ColumnDef {
         }
 
         return new Column(name, type, isKey, aggregateType, isAllowNull, isAutoInc, defaultValue.value, comment,
-                visible, defaultValue.defaultValueExprDef, Column.COLUMN_UNIQUE_ID_INIT_VALUE, defaultValue.getValue(),
-                genericAggregationName, typeList, nullableList);
+                visible, defaultValue.defaultValueExprDef, Column.COLUMN_UNIQUE_ID_INIT_VALUE, defaultValue.getValue());
     }
 
     @Override
diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/CreateMaterializedViewStmt.java b/fe/fe-core/src/main/java/org/apache/doris/analysis/CreateMaterializedViewStmt.java
index f1e6d860af..49521172bc 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/CreateMaterializedViewStmt.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/CreateMaterializedViewStmt.java
@@ -19,6 +19,8 @@ package org.apache.doris.analysis;
 
 import org.apache.doris.catalog.AggregateType;
 import org.apache.doris.catalog.Column;
+import org.apache.doris.catalog.Env;
+import org.apache.doris.catalog.Function;
 import org.apache.doris.catalog.FunctionSet;
 import org.apache.doris.catalog.KeysType;
 import org.apache.doris.catalog.MaterializedIndexMeta;
@@ -224,20 +226,6 @@ public class CreateMaterializedViewStmt extends DdlStmt {
             if (selectListItemExpr instanceof FunctionCallExpr
                     && ((FunctionCallExpr) selectListItemExpr).isAggregateFunction()) {
                 FunctionCallExpr functionCallExpr = (FunctionCallExpr) selectListItemExpr;
-                String functionName = functionCallExpr.getFnName().getFunction();
-                // current version not support count(distinct) function in creating materialized
-                // view
-                if (!isReplay) {
-                    MVColumnPattern mvColumnPattern = FN_NAME_TO_PATTERN.get(functionName.toLowerCase());
-                    if (mvColumnPattern == null) {
-                        throw new AnalysisException(
-                                "Materialized view does not support this function:" + functionCallExpr.toSqlImpl());
-                    }
-                    if (!mvColumnPattern.match(functionCallExpr)) {
-                        throw new AnalysisException(
-                                "The function " + functionName + " must match pattern:" + mvColumnPattern.toString());
-                    }
-                }
 
                 if (beginIndexOfAggregation == -1) {
                     beginIndexOfAggregation = i;
@@ -415,7 +403,6 @@ public class CreateMaterializedViewStmt extends DdlStmt {
             throws AnalysisException {
         String functionName = functionCallExpr.getFnName().getFunction();
         List<Expr> childs = functionCallExpr.getChildren();
-        Preconditions.checkArgument(childs.size() == 1);
         Expr defineExpr = childs.get(0);
         Type baseType = defineExpr.getType();
         AggregateType mvAggregateType = null;
@@ -465,7 +452,9 @@ public class CreateMaterializedViewStmt extends DdlStmt {
                 type = Type.BIGINT;
                 break;
             default:
-                throw new AnalysisException("Unsupported function:" + functionName);
+                mvAggregateType = AggregateType.GENERIC_AGGREGATION;
+                defineExpr = Function.convertToStateCombinator(functionCallExpr);
+                type = defineExpr.type;
         }
         if (mvAggregateType == null) {
             mvAggregateType = AggregateType.valueOf(functionName.toUpperCase());
@@ -478,8 +467,8 @@ public class CreateMaterializedViewStmt extends DdlStmt {
             } else if (defineExpr instanceof CastExpr && defineExpr.getChild(0) instanceof SlotRef) {
                 slot = (SlotRef) defineExpr.getChild(0);
             } else {
-                throw new AnalysisException("Aggregate function require single slot argument, invalid argument is: "
-                        + defineExpr.toSql());
+                throw new AnalysisException(
+                        "Aggregate function require single slot argument, invalid argument is: " + defineExpr.toSql());
             }
 
             AggregateType input = slot.getColumn().getAggregationType();
@@ -512,6 +501,12 @@ public class CreateMaterializedViewStmt extends DdlStmt {
                         name = item.getName();
                         break;
                     default:
+                        if (Env.getCurrentEnv()
+                                .isAggFunctionName(functionCallExpr.getFnName().getFunction().toLowerCase())) {
+                            MVColumnItem genericItem = buildMVColumnItem(analyzer, functionCallExpr);
+                            expr = genericItem.getDefineExpr();
+                            name = genericItem.getName();
+                        }
                         break;
                 }
             }
diff --git a/fe/fe-core/src/main/java/org/apache/doris/catalog/Column.java b/fe/fe-core/src/main/java/org/apache/doris/catalog/Column.java
index 0216516f69..e013b113a2 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/catalog/Column.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/Column.java
@@ -69,8 +69,8 @@ public class Column implements Writable, GsonPostProcessable {
     private static final String COLUMN_MAP_KEY = "key";
     private static final String COLUMN_MAP_VALUE = "value";
 
-    public static final Column UNSUPPORTED_COLUMN = new Column("unknown",
-            Type.UNSUPPORTED, true, null, true, false, null, "invalid", true, null, -1, null, null, null, null);
+    public static final Column UNSUPPORTED_COLUMN = new Column("unknown", Type.UNSUPPORTED, true, null, true, false,
+            null, "invalid", true, null, -1, null);
 
     @SerializedName(value = "name")
     private String name;
@@ -170,26 +170,24 @@ public class Column implements Writable, GsonPostProcessable {
     public Column(String name, Type type, boolean isKey, AggregateType aggregateType, boolean isAllowNull,
             String defaultValue, String comment) {
         this(name, type, isKey, aggregateType, isAllowNull, false, defaultValue, comment, true, null,
-                COLUMN_UNIQUE_ID_INIT_VALUE, defaultValue, null, null, null);
+                COLUMN_UNIQUE_ID_INIT_VALUE, defaultValue);
     }
 
     public Column(String name, Type type, boolean isKey, AggregateType aggregateType, boolean isAllowNull,
             String comment, boolean visible, int colUniqueId) {
-        this(name, type, isKey, aggregateType, isAllowNull, false, null, comment, visible, null,
-                colUniqueId, null, null, null, null);
+        this(name, type, isKey, aggregateType, isAllowNull, false, null, comment, visible, null, colUniqueId, null);
     }
 
     public Column(String name, Type type, boolean isKey, AggregateType aggregateType, boolean isAllowNull,
             String defaultValue, String comment, boolean visible, DefaultValueExprDef defaultValueExprDef,
             int colUniqueId, String realDefaultValue) {
         this(name, type, isKey, aggregateType, isAllowNull, false, defaultValue, comment, visible, defaultValueExprDef,
-                colUniqueId, realDefaultValue, null, null, null);
+                colUniqueId, realDefaultValue);
     }
 
     public Column(String name, Type type, boolean isKey, AggregateType aggregateType, boolean isAllowNull,
             boolean isAutoInc, String defaultValue, String comment, boolean visible,
-            DefaultValueExprDef defaultValueExprDef, int colUniqueId, String realDefaultValue,
-            String genericAggregationName, List<Type> genericAggregationArguments, List<Boolean> nullableList) {
+            DefaultValueExprDef defaultValueExprDef, int colUniqueId, String realDefaultValue) {
         this.name = name;
         if (this.name == null) {
             this.name = "";
@@ -215,13 +213,15 @@ public class Column implements Writable, GsonPostProcessable {
         createChildrenColumn(this.type, this);
         this.uniqueId = colUniqueId;
 
-        this.genericAggregationName = genericAggregationName;
-        if (genericAggregationArguments != null) {
-            for (int i = 0; i < genericAggregationArguments.size(); i++) {
-                Column c = new Column(COLUMN_AGG_ARGUMENT_CHILDREN, genericAggregationArguments.get(i));
-                c.setIsAllowNull(nullableList.get(i));
+        if (type.isAggStateType()) {
+            AggStateType aggState = (AggStateType) type;
+            for (int i = 0; i < aggState.getSubTypes().size(); i++) {
+                Column c = new Column(COLUMN_AGG_ARGUMENT_CHILDREN, aggState.getSubTypes().get(i));
+                c.setIsAllowNull(aggState.getSubTypeNullables().get(i));
                 addChildrenColumn(c);
             }
+            this.genericAggregationName = aggState.getFunctionName();
+            this.aggregationType = AggregateType.GENERIC_AGGREGATION;
         }
     }
 
@@ -516,8 +516,9 @@ public class Column implements Writable, GsonPostProcessable {
         tColumn.setColUniqueId(uniqueId);
 
         if (type.isAggStateType()) {
-            tColumn.setAggregation(genericAggregationName);
-            tColumn.setResultIsNullable(((AggStateType) type).getResultIsNullable());
+            AggStateType aggState = (AggStateType) type;
+            tColumn.setAggregation(aggState.getFunctionName());
+            tColumn.setResultIsNullable(aggState.getResultIsNullable());
             for (Column column : children) {
                 tColumn.addToChildrenColumn(column.toThrift());
             }
diff --git a/fe/fe-core/src/main/java/org/apache/doris/catalog/Env.java b/fe/fe-core/src/main/java/org/apache/doris/catalog/Env.java
index ae8a07e79b..b6ffd0985d 100755
--- a/fe/fe-core/src/main/java/org/apache/doris/catalog/Env.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/Env.java
@@ -4743,6 +4743,10 @@ public class Env {
         return functionSet.isNullResultWithOneNullParamFunctions(funcName);
     }
 
+    public boolean isAggFunctionName(String name) {
+        return functionSet.isAggFunctionName(name);
+    }
+
     @Deprecated
     public long loadCluster(DataInputStream dis, long checksum) throws IOException, DdlException {
         return getInternalCatalog().loadCluster(dis, checksum);
diff --git a/fe/fe-core/src/main/java/org/apache/doris/catalog/FunctionSet.java b/fe/fe-core/src/main/java/org/apache/doris/catalog/FunctionSet.java
index 6abff46b6f..aa5bf93e8e 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/catalog/FunctionSet.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/FunctionSet.java
@@ -40,6 +40,7 @@ import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collections;
 import java.util.HashMap;
+import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
@@ -66,6 +67,8 @@ public class FunctionSet<T> {
     // Including now(), curdate(), etc..
     private ImmutableSet<String> nondeterministicFunctions;
 
+    private HashSet<String> aggFunctionNames = new HashSet<>();
+
     private boolean inited = false;
 
     public FunctionSet() {
@@ -119,135 +122,6 @@ public class FunctionSet<T> {
         return nullResultWithOneNullParamFunctions.contains(funcName);
     }
 
-    private static final Map<Type, String> MIN_INIT_SYMBOL =
-            ImmutableMap.<Type, String>builder()
-                    .put(Type.BOOLEAN,
-                            "8min_initIN9doris_udf10BooleanValEEEvPNS2_15FunctionContextEPT_")
-                    .put(Type.TINYINT,
-                            "8min_initIN9doris_udf10TinyIntValEEEvPNS2_15FunctionContextEPT_")
-                    .put(Type.SMALLINT,
-                            "8min_initIN9doris_udf11SmallIntValEEEvPNS2_15FunctionContextEPT_")
-                    .put(Type.INT,
-                            "8min_initIN9doris_udf6IntValEEEvPNS2_15FunctionContextEPT_")
-                    .put(Type.BIGINT,
-                            "8min_initIN9doris_udf9BigIntValEEEvPNS2_15FunctionContextEPT_")
-                    .put(Type.FLOAT,
-                            "8min_initIN9doris_udf8FloatValEEEvPNS2_15FunctionContextEPT_")
-                    .put(Type.DOUBLE,
-                            "8min_initIN9doris_udf9DoubleValEEEvPNS2_15FunctionContextEPT_")
-                    // .put(Type.CHAR,
-                    //     "3minIN9doris_udf9StringValEEEvPNS2_15FunctionContextERKT_PS6_")
-                    .put(Type.VARCHAR,
-                            "8min_initIN9doris_udf9StringValEEEvPNS2_15FunctionContextEPT_")
-                    .put(Type.STRING,
-                            "8min_initIN9doris_udf9StringValEEEvPNS2_15FunctionContextEPT_")
-                    .put(Type.DATE,
-                            "8min_initIN9doris_udf11DateTimeValEEEvPNS2_15FunctionContextEPT_")
-                    .put(Type.DATETIME,
-                            "8min_initIN9doris_udf11DateTimeValEEEvPNS2_15FunctionContextEPT_")
-                    .put(Type.MAX_DECIMALV2_TYPE,
-                            "8min_initIN9doris_udf12DecimalV2ValEEEvPNS2_15FunctionContextEPT_")
-                    .put(Type.LARGEINT,
-                            "8min_initIN9doris_udf11LargeIntValEEEvPNS2_15FunctionContextEPT_")
-                    .build();
-
-    private static final Map<Type, String> MAX_INIT_SYMBOL =
-            ImmutableMap.<Type, String>builder()
-                    .put(Type.BOOLEAN,
-                            "8max_initIN9doris_udf10BooleanValEEEvPNS2_15FunctionContextEPT_")
-                    .put(Type.TINYINT,
-                            "8max_initIN9doris_udf10TinyIntValEEEvPNS2_15FunctionContextEPT_")
-                    .put(Type.SMALLINT,
-                            "8max_initIN9doris_udf11SmallIntValEEEvPNS2_15FunctionContextEPT_")
-                    .put(Type.INT,
-                            "8max_initIN9doris_udf6IntValEEEvPNS2_15FunctionContextEPT_")
-                    .put(Type.BIGINT,
-                            "8max_initIN9doris_udf9BigIntValEEEvPNS2_15FunctionContextEPT_")
-                    .put(Type.FLOAT,
-                            "8max_initIN9doris_udf8FloatValEEEvPNS2_15FunctionContextEPT_")
-                    .put(Type.DOUBLE,
-                            "8max_initIN9doris_udf9DoubleValEEEvPNS2_15FunctionContextEPT_")
-                    // .put(Type.CHAR,
-                    //     "3minIN9doris_udf9StringValEEEvPNS2_15FunctionContextERKT_PS6_")
-                    .put(Type.VARCHAR,
-                            "8max_initIN9doris_udf9StringValEEEvPNS2_15FunctionContextEPT_")
-                    .put(Type.STRING,
-                            "8max_initIN9doris_udf9StringValEEEvPNS2_15FunctionContextEPT_")
-                    .put(Type.DATE,
-                            "8max_initIN9doris_udf11DateTimeValEEEvPNS2_15FunctionContextEPT_")
-                    .put(Type.DATETIME,
-                            "8max_initIN9doris_udf11DateTimeValEEEvPNS2_15FunctionContextEPT_")
-                    .put(Type.MAX_DECIMALV2_TYPE,
-                            "8max_initIN9doris_udf12DecimalV2ValEEEvPNS2_15FunctionContextEPT_")
-                    .put(Type.LARGEINT,
-                            "8max_initIN9doris_udf11LargeIntValEEEvPNS2_15FunctionContextEPT_")
-                    .build();
-
-    private static final Map<Type, String> MIN_UPDATE_SYMBOL =
-            ImmutableMap.<Type, String>builder()
-                    .put(Type.BOOLEAN,
-                            "3minIN9doris_udf10BooleanValEEEvPNS2_15FunctionContextERKT_PS6_")
-                    .put(Type.TINYINT,
-                            "3minIN9doris_udf10TinyIntValEEEvPNS2_15FunctionContextERKT_PS6_")
-                    .put(Type.SMALLINT,
-                            "3minIN9doris_udf11SmallIntValEEEvPNS2_15FunctionContextERKT_PS6_")
-                    .put(Type.INT,
-                            "3minIN9doris_udf6IntValEEEvPNS2_15FunctionContextERKT_PS6_")
-                    .put(Type.BIGINT,
-                            "3minIN9doris_udf9BigIntValEEEvPNS2_15FunctionContextERKT_PS6_")
-                    .put(Type.FLOAT,
-                            "3minIN9doris_udf8FloatValEEEvPNS2_15FunctionContextERKT_PS6_")
-                    .put(Type.DOUBLE,
-                            "3minIN9doris_udf9DoubleValEEEvPNS2_15FunctionContextERKT_PS6_")
-                    // .put(Type.CHAR,
-                    //          "3minIN9doris_udf9StringValEEEvPNS2_15FunctionContextERKT_PS6_")
-                    .put(Type.VARCHAR,
-                            "3minIN9doris_udf9StringValEEEvPNS2_15FunctionContextERKT_PS6_")
-                    .put(Type.STRING,
-                            "3minIN9doris_udf9StringValEEEvPNS2_15FunctionContextERKT_PS6_")
-                    .put(Type.DATE,
-                            "3minIN9doris_udf11DateTimeValEEEvPNS2_15FunctionContextERKT_PS6_")
-                    .put(Type.DATETIME,
-                            "3minIN9doris_udf11DateTimeValEEEvPNS2_15FunctionContextERKT_PS6_")
-                    .put(Type.MAX_DECIMALV2_TYPE,
-                            "3minIN9doris_udf12DecimalV2ValEEEvPNS2_15FunctionContextERKT_PS6_")
-                    .put(Type.LARGEINT,
-                            "3minIN9doris_udf11LargeIntValEEEvPNS2_15FunctionContextERKT_PS6_")
-                    .build();
-
-    private static final Map<Type, String> MAX_UPDATE_SYMBOL =
-            ImmutableMap.<Type, String>builder()
-                .put(Type.BOOLEAN,
-                    "3maxIN9doris_udf10BooleanValEEEvPNS2_15FunctionContextERKT_PS6_")
-                .put(Type.TINYINT,
-                    "3maxIN9doris_udf10TinyIntValEEEvPNS2_15FunctionContextERKT_PS6_")
-                .put(Type.SMALLINT,
-                    "3maxIN9doris_udf11SmallIntValEEEvPNS2_15FunctionContextERKT_PS6_")
-                .put(Type.INT,
-                    "3maxIN9doris_udf6IntValEEEvPNS2_15FunctionContextERKT_PS6_")
-                .put(Type.BIGINT,
-                    "3maxIN9doris_udf9BigIntValEEEvPNS2_15FunctionContextERKT_PS6_")
-                .put(Type.FLOAT,
-                    "3maxIN9doris_udf8FloatValEEEvPNS2_15FunctionContextERKT_PS6_")
-                .put(Type.DOUBLE,
-                    "3maxIN9doris_udf9DoubleValEEEvPNS2_15FunctionContextERKT_PS6_")
-                // .put(Type.CHAR,
-                //    "3maxIN9doris_udf9StringValEEEvPNS2_15FunctionContextERKT_PS6_")
-                .put(Type.VARCHAR,
-                        "3maxIN9doris_udf9StringValEEEvPNS2_15FunctionContextERKT_PS6_")
-                .put(Type.STRING,
-                        "3maxIN9doris_udf9StringValEEEvPNS2_15FunctionContextERKT_PS6_")
-                .put(Type.DATE,
-                    "3maxIN9doris_udf11DateTimeValEEEvPNS2_15FunctionContextERKT_PS6_")
-                .put(Type.DATETIME,
-                    "3maxIN9doris_udf11DateTimeValEEEvPNS2_15FunctionContextERKT_PS6_")
-                .put(Type.MAX_DECIMALV2_TYPE,
-                    "3maxIN9doris_udf12DecimalV2ValEEEvPNS2_15FunctionContextERKT_PS6_")
-                .put(Type.LARGEINT,
-                    "3maxIN9doris_udf11LargeIntValEEEvPNS2_15FunctionContextERKT_PS6_")
-               .build();
-
-
     private static final Map<Type, Type> MULTI_DISTINCT_SUM_RETURN_TYPE =
              ImmutableMap.<Type, Type>builder()
                     .put(Type.TINYINT, Type.BIGINT)
@@ -263,109 +137,6 @@ public class FunctionSet<T> {
                     .put(Type.DECIMAL128, Type.DECIMAL128)
                     .build();
 
-    private static final Map<Type, String> MULTI_DISTINCT_INIT_SYMBOL =
-            ImmutableMap.<Type, String>builder()
-                    .put(Type.TINYINT,
-                            "34count_or_sum_distinct_numeric_initIN9doris_udf10TinyIntValEEEvPNS2_15FunctionContextEPNS2_9StringValE")
-                    .put(Type.SMALLINT,
-                            "34count_or_sum_distinct_numeric_initIN9doris_udf11SmallIntValEEEvPNS2_15FunctionContextEPNS2_9StringValE")
-                    .put(Type.INT,
-                            "34count_or_sum_distinct_numeric_initIN9doris_udf6IntValEEEvPNS2_15FunctionContextEPNS2_9StringValE")
-                    .put(Type.BIGINT,
-                            "34count_or_sum_distinct_numeric_initIN9doris_udf9BigIntValEEEvPNS2_15FunctionContextEPNS2_9StringValE")
-                    .put(Type.FLOAT,
-                            "34count_or_sum_distinct_numeric_initIN9doris_udf8FloatValEEEvPNS2_15FunctionContextEPNS2_9StringValE")
-                    .put(Type.DOUBLE,
-                            "34count_or_sum_distinct_numeric_initIN9doris_udf9DoubleValEEEvPNS2_15FunctionContextEPNS2_9StringValE")
-                    .put(Type.LARGEINT,
-                            "34count_or_sum_distinct_numeric_initIN9doris_udf11LargeIntValEEEvPNS2_15FunctionContextEPNS2_9StringValE")
-                    .build();
-
-    private static final Map<Type, String> MULTI_DISTINCT_UPDATE_SYMBOL =
-            ImmutableMap.<Type, String>builder()
-                    .put(Type.TINYINT,
-                            "36count_or_sum_distinct_numeric_updateIN9doris_udf10TinyIntValEEEvPNS2_15FunctionContextERT_PNS2_9StringValE")
-                    .put(Type.SMALLINT,
-                            "36count_or_sum_distinct_numeric_updateIN9doris_udf11SmallIntValEEEvPNS2_15FunctionContextERT_PNS2_9StringValE")
-                    .put(Type.INT,
-                            "36count_or_sum_distinct_numeric_updateIN9doris_udf6IntValEEEvPNS2_15FunctionContextERT_PNS2_9StringValE")
-                    .put(Type.BIGINT,
-                            "36count_or_sum_distinct_numeric_updateIN9doris_udf9BigIntValEEEvPNS2_15FunctionContextERT_PNS2_9StringValE")
-                    .put(Type.FLOAT,
-                            "36count_or_sum_distinct_numeric_updateIN9doris_udf8FloatValEEEvPNS2_15FunctionContextERT_PNS2_9StringValE")
-                    .put(Type.DOUBLE,
-                            "36count_or_sum_distinct_numeric_updateIN9doris_udf9DoubleValEEEvPNS2_15FunctionContextERT_PNS2_9StringValE")
-                    .put(Type.LARGEINT,
-                            "36count_or_sum_distinct_numeric_updateIN9doris_udf11LargeIntValEEEvPNS2_15FunctionContextERT_PNS2_9StringValE")
-                    .build();
-
-    private static final Map<Type, String> MULTI_DISTINCT_MERGE_SYMBOL =
-            ImmutableMap.<Type, String>builder()
-                    .put(Type.TINYINT,
-                            "35count_or_sum_distinct_numeric_mergeIN9doris_udf10TinyIntValEEEvPNS2_15FunctionContextERNS2_9StringValEPS6_")
-                    .put(Type.SMALLINT,
-                            "35count_or_sum_distinct_numeric_mergeIN9doris_udf11SmallIntValEEEvPNS2_15FunctionContextERNS2_9StringValEPS6_")
-                    .put(Type.INT,
-                            "35count_or_sum_distinct_numeric_mergeIN9doris_udf6IntValEEEvPNS2_15FunctionContextERNS2_9StringValEPS6_")
-                    .put(Type.BIGINT,
-                            "35count_or_sum_distinct_numeric_mergeIN9doris_udf9BigIntValEEEvPNS2_15FunctionContextERNS2_9StringValEPS6_")
-                    .put(Type.FLOAT,
-                            "35count_or_sum_distinct_numeric_mergeIN9doris_udf8FloatValEEEvPNS2_15FunctionContextERNS2_9StringValEPS6_")
-                    .put(Type.DOUBLE,
-                            "35count_or_sum_distinct_numeric_mergeIN9doris_udf9DoubleValEEEvPNS2_15FunctionContextERNS2_9StringValEPS6_")
-                    .put(Type.LARGEINT,
-                            "35count_or_sum_distinct_numeric_mergeIN9doris_udf11LargeIntValEEEvPNS2_15FunctionContextERNS2_9StringValEPS6_")
-                    .build();
-
-    private static final Map<Type, String> MULTI_DISTINCT_SERIALIZE_SYMBOL =
-            ImmutableMap.<Type, String>builder()
-                    .put(Type.TINYINT,
-                            "39count_or_sum_distinct_numeric_serializeIN9doris_udf10TinyIntValEEENS2_9StringValEPNS2_15FunctionContextERKS4_")
-                    .put(Type.SMALLINT,
-                            "39count_or_sum_distinct_numeric_serializeIN9doris_udf11SmallIntValEEENS2_9StringValEPNS2_15FunctionContextERKS4_")
-                    .put(Type.INT,
-                            "39count_or_sum_distinct_numeric_serializeIN9doris_udf6IntValEEENS2_9StringValEPNS2_15FunctionContextERKS4_")
-                    .put(Type.BIGINT,
-                            "39count_or_sum_distinct_numeric_serializeIN9doris_udf9BigIntValEEENS2_9StringValEPNS2_15FunctionContextERKS4_")
-                    .put(Type.FLOAT,
-                            "39count_or_sum_distinct_numeric_serializeIN9doris_udf8FloatValEEENS2_9StringValEPNS2_15FunctionContextERKS4_")
-                    .put(Type.DOUBLE,
-                            "39count_or_sum_distinct_numeric_serializeIN9doris_udf9DoubleValEEENS2_9StringValEPNS2_15FunctionContextERKS4_")
-                    .put(Type.LARGEINT,
-                            "39count_or_sum_distinct_numeric_serializeIN9doris_udf11LargeIntValEEENS2_9StringValEPNS2_15FunctionContextERKS4_")
-                    .build();
-
-    private static final Map<Type, String> MULTI_DISTINCT_COUNT_FINALIZE_SYMBOL =
-            ImmutableMap.<Type, String>builder()
-                    .put(Type.TINYINT,
-                            "38count_or_sum_distinct_numeric_finalizeIN9doris_udf10TinyIntValEEENS2_9BigIntValEPNS2_15FunctionContextERKNS2_9StringValE")
-                    .put(Type.SMALLINT,
-                            "38count_or_sum_distinct_numeric_finalizeIN9doris_udf11SmallIntValEEENS2_9BigIntValEPNS2_15FunctionContextERKNS2_9StringValE")
-                    .put(Type.INT,
-                            "38count_or_sum_distinct_numeric_finalizeIN9doris_udf8FloatValEEENS2_9BigIntValEPNS2_15FunctionContextERKNS2_9StringValE")
-                    .put(Type.BIGINT,
-                            "38count_or_sum_distinct_numeric_finalizeIN9doris_udf9BigIntValEEES3_PNS2_15FunctionContextERKNS2_9StringValE")
-                    .put(Type.FLOAT,
-                            "38count_or_sum_distinct_numeric_finalizeIN9doris_udf8FloatValEEENS2_9BigIntValEPNS2_15FunctionContextERKNS2_9StringValE")
-                    .put(Type.DOUBLE,
-                            "38count_or_sum_distinct_numeric_finalizeIN9doris_udf9DoubleValEEENS2_9BigIntValEPNS2_15FunctionContextERKNS2_9StringValE")
-                    .put(Type.LARGEINT,
-                            "38count_or_sum_distinct_numeric_finalizeIN9doris_udf11LargeIntValEEENS2_9BigIntValEPNS2_15FunctionContextERKNS2_9StringValE")
-                    .build();
-
-
-    private static final Map<Type, String> MULTI_DISTINCT_SUM_FINALIZE_SYMBOL =
-             ImmutableMap.<Type, String>builder()
-                    .put(Type.BIGINT,
-                            "28sum_distinct_bigint_finalizeIN9doris_udf9BigIntValEEES3_PNS2_15FunctionContextERKNS2_9StringValE")
-                    .put(Type.FLOAT,
-                            "28sum_distinct_double_finalizeIN9doris_udf9DoubleValEEES3_PNS2_15FunctionContextERKNS2_9StringValE")
-                    .put(Type.DOUBLE,
-                            "28sum_distinct_double_finalizeIN9doris_udf9DoubleValEEES3_PNS2_15FunctionContextERKNS2_9StringValE")
-                    .put(Type.LARGEINT,
-                            "30sum_distinct_largeint_finalizeIN9doris_udf11LargeIntValEEES3_PNS2_15FunctionContextERKNS2_9StringValE")
-                    .build();
-
     private static final Map<Type, Type> STDDEV_RETTYPE_SYMBOL =
             ImmutableMap.<Type, Type>builder()
                     .put(Type.TINYINT, Type.DOUBLE)
@@ -380,24 +151,6 @@ public class FunctionSet<T> {
                     .put(Type.DECIMAL128, Type.DECIMAL128)
                     .build();
 
-    private static final Map<Type, String> STDDEV_INIT_SYMBOL =
-            ImmutableMap.<Type, String>builder()
-                .put(Type.TINYINT,
-                        "14knuth_var_initEPN9doris_udf15FunctionContextEPNS1_9StringValE")
-                .put(Type.SMALLINT,
-                        "14knuth_var_initEPN9doris_udf15FunctionContextEPNS1_9StringValE")
-                .put(Type.INT,
-                        "14knuth_var_initEPN9doris_udf15FunctionContextEPNS1_9StringValE")
-                .put(Type.BIGINT,
-                        "14knuth_var_initEPN9doris_udf15FunctionContextEPNS1_9StringValE")
-                .put(Type.FLOAT,
-                        "14knuth_var_initEPN9doris_udf15FunctionContextEPNS1_9StringValE")
-                .put(Type.DOUBLE,
-                        "14knuth_var_initEPN9doris_udf15FunctionContextEPNS1_9StringValE")
-                .put(Type.MAX_DECIMALV2_TYPE,
-                        "24decimalv2_knuth_var_initEPN9doris_udf15FunctionContextEPNS1_9StringValE")
-                .build();
-
     private static final Map<Type, String> STDDEV_UPDATE_SYMBOL =
             ImmutableMap.<Type, String>builder()
                 .put(Type.TINYINT,
@@ -416,348 +169,12 @@ public class FunctionSet<T> {
                         "16knuth_var_updateEPN9doris_udf15FunctionContextERKNS1_12DecimalV2ValEPNS1_9StringValE")
                 .build();
 
-    private static final Map<Type, String> STDDEV_MERGE_SYMBOL =
-            ImmutableMap.<Type, String>builder()
-                .put(Type.TINYINT,
-                        "15knuth_var_mergeEPN9doris_udf15FunctionContextERKNS1_9StringValEPS4_")
-                .put(Type.SMALLINT,
-                        "15knuth_var_mergeEPN9doris_udf15FunctionContextERKNS1_9StringValEPS4_")
-                .put(Type.INT,
-                        "15knuth_var_mergeEPN9doris_udf15FunctionContextERKNS1_9StringValEPS4_")
-                .put(Type.BIGINT,
-                        "15knuth_var_mergeEPN9doris_udf15FunctionContextERKNS1_9StringValEPS4_")
-                .put(Type.FLOAT,
-                        "15knuth_var_mergeEPN9doris_udf15FunctionContextERKNS1_9StringValEPS4_")
-                .put(Type.DOUBLE,
-                        "15knuth_var_mergeEPN9doris_udf15FunctionContextERKNS1_9StringValEPS4_")
-                .put(Type.MAX_DECIMALV2_TYPE,
-                        "25decimalv2_knuth_var_mergeEPN9doris_udf15FunctionContextERKNS1_9StringValEPS4_")
-                .build();
-
-    private static final Map<Type, String> STDDEV_FINALIZE_SYMBOL =
-            ImmutableMap.<Type, String>builder()
-                .put(Type.TINYINT,
-                        "21knuth_stddev_finalizeEPN9doris_udf15FunctionContextERKNS1_9StringValE")
-                .put(Type.SMALLINT,
-                        "21knuth_stddev_finalizeEPN9doris_udf15FunctionContextERKNS1_9StringValE")
-                .put(Type.INT,
-                        "21knuth_stddev_finalizeEPN9doris_udf15FunctionContextERKNS1_9StringValE")
-                .put(Type.BIGINT,
-                        "21knuth_stddev_finalizeEPN9doris_udf15FunctionContextERKNS1_9StringValE")
-                .put(Type.FLOAT,
-                        "21knuth_stddev_finalizeEPN9doris_udf15FunctionContextERKNS1_9StringValE")
-                .put(Type.DOUBLE,
-                        "21knuth_stddev_finalizeEPN9doris_udf15FunctionContextERKNS1_9StringValE")
-                .put(Type.MAX_DECIMALV2_TYPE,
-                        "31decimalv2_knuth_stddev_finalizeEPN9doris_udf15FunctionContextERKNS1_9StringValE")
-                .build();
-
-    private static final Map<Type, String> STDDEV_POP_FINALIZE_SYMBOL =
-            ImmutableMap.<Type, String>builder()
-                    .put(Type.TINYINT,
-                            "25knuth_stddev_pop_finalizeEPN9doris_udf15FunctionContextERKNS1_9StringValE")
-                    .put(Type.SMALLINT,
-                            "25knuth_stddev_pop_finalizeEPN9doris_udf15FunctionContextERKNS1_9StringValE")
-                    .put(Type.INT,
-                            "25knuth_stddev_pop_finalizeEPN9doris_udf15FunctionContextERKNS1_9StringValE")
-                    .put(Type.BIGINT,
-                            "25knuth_stddev_pop_finalizeEPN9doris_udf15FunctionContextERKNS1_9StringValE")
-                    .put(Type.FLOAT,
-                            "25knuth_stddev_pop_finalizeEPN9doris_udf15FunctionContextERKNS1_9StringValE")
-                    .put(Type.DOUBLE,
-                            "25knuth_stddev_pop_finalizeEPN9doris_udf15FunctionContextERKNS1_9StringValE")
-                    .put(Type.MAX_DECIMALV2_TYPE,
-                            "35decimalv2_knuth_stddev_pop_finalizeEPN9doris_udf15FunctionContextERKNS1_9StringValE")
-                    .build();
-
-
-    private static final Map<Type, String> VAR_FINALIZE_SYMBOL =
-            ImmutableMap.<Type, String>builder()
-                .put(Type.TINYINT,
-                        "18knuth_var_finalizeEPN9doris_udf15FunctionContextERKNS1_9StringValE")
-                .put(Type.SMALLINT,
-                        "18knuth_var_finalizeEPN9doris_udf15FunctionContextERKNS1_9StringValE")
-                .put(Type.INT,
-                        "18knuth_var_finalizeEPN9doris_udf15FunctionContextERKNS1_9StringValE")
-                .put(Type.BIGINT,
-                        "18knuth_var_finalizeEPN9doris_udf15FunctionContextERKNS1_9StringValE")
-                .put(Type.FLOAT,
-                        "18knuth_var_finalizeEPN9doris_udf15FunctionContextERKNS1_9StringValE")
-                .put(Type.DOUBLE,
-                        "18knuth_var_finalizeEPN9doris_udf15FunctionContextERKNS1_9StringValE")
-                .put(Type.MAX_DECIMALV2_TYPE,
-                        "28decimalv2_knuth_var_finalizeEPN9doris_udf15FunctionContextERKNS1_9StringValE")
-                .build();
-
-
-    private static final Map<Type, String> VAR_POP_FINALIZE_SYMBOL =
-            ImmutableMap.<Type, String>builder()
-                .put(Type.TINYINT,
-                        "22knuth_var_pop_finalizeEPN9doris_udf15FunctionContextERKNS1_9StringValE")
-                .put(Type.SMALLINT,
-                        "22knuth_var_pop_finalizeEPN9doris_udf15FunctionContextERKNS1_9StringValE")
-                .put(Type.INT,
-                        "22knuth_var_pop_finalizeEPN9doris_udf15FunctionContextERKNS1_9StringValE")
-                .put(Type.BIGINT,
-                        "22knuth_var_pop_finalizeEPN9doris_udf15FunctionContextERKNS1_9StringValE")
-                .put(Type.FLOAT,
-                        "22knuth_var_pop_finalizeEPN9doris_udf15FunctionContextERKNS1_9StringValE")
-                .put(Type.DOUBLE,
-                        "22knuth_var_pop_finalizeEPN9doris_udf15FunctionContextERKNS1_9StringValE")
-                .put(Type.MAX_DECIMALV2_TYPE,
-                        "32decimalv2_knuth_var_pop_finalizeEPN9doris_udf15FunctionContextERKNS1_9StringValE")
-                .build();
-
-
     public static final String HLL_HASH = "hll_hash";
     public static final String HLL_UNION = "hll_union";
     public static final String HLL_UNION_AGG = "hll_union_agg";
     public static final String HLL_RAW_AGG = "hll_raw_agg";
     public static final String HLL_CARDINALITY = "hll_cardinality";
 
-    private static final Map<Type, String> HLL_UPDATE_SYMBOL =
-            ImmutableMap.<Type, String>builder()
-                .put(Type.BOOLEAN,
-                    "10hll_updateIN9doris_udf10BooleanValEEEvPNS2_15FunctionContextERKT_PNS2_9StringValE")
-                .put(Type.TINYINT,
-                    "10hll_updateIN9doris_udf10TinyIntValEEEvPNS2_15FunctionContextERKT_PNS2_9StringValE")
-                .put(Type.SMALLINT,
-                    "10hll_updateIN9doris_udf11SmallIntValEEEvPNS2_15FunctionContextERKT_PNS2_9StringValE")
-                .put(Type.INT,
-                    "10hll_updateIN9doris_udf6IntValEEEvPNS2_15FunctionContextERKT_PNS2_9StringValE")
-                .put(Type.BIGINT,
-                    "10hll_updateIN9doris_udf9BigIntValEEEvPNS2_15FunctionContextERKT_PNS2_9StringValE")
-                .put(Type.FLOAT,
-                    "10hll_updateIN9doris_udf8FloatValEEEvPNS2_15FunctionContextERKT_PNS2_9StringValE")
-                .put(Type.DOUBLE,
-                    "10hll_updateIN9doris_udf9DoubleValEEEvPNS2_15FunctionContextERKT_PNS2_9StringValE")
-                // .put(Type.CHAR,
-                //    "10hll_updateIN9doris_udf9StringValEEEvPNS2_15FunctionContextERKT_PS3_")
-                .put(Type.VARCHAR,
-                    "10hll_updateIN9doris_udf9StringValEEEvPNS2_15FunctionContextERKT_PS3_")
-                .put(Type.STRING,
-                    "10hll_updateIN9doris_udf9StringValEEEvPNS2_15FunctionContextERKT_PS3_")
-                .put(Type.DATE,
-                    "10hll_updateIN9doris_udf11DateTimeValEEEvPNS2_15FunctionContextERKT_PNS2_9StringValE")
-                .put(Type.DATETIME,
-                    "10hll_updateIN9doris_udf11DateTimeValEEEvPNS2_15FunctionContextERKT_PNS2_9StringValE")
-                .put(Type.MAX_DECIMALV2_TYPE,
-                    "10hll_updateIN9doris_udf12DecimalV2ValEEEvPNS2_15FunctionContextERKT_PNS2_9StringValE")
-                .put(Type.LARGEINT,
-                    "10hll_updateIN9doris_udf11LargeIntValEEEvPNS2_15FunctionContextERKT_PNS2_9StringValE")
-                .build();
-
-    private static final Map<Type, String> OFFSET_FN_INIT_SYMBOL =
-            ImmutableMap.<Type, String>builder()
-                .put(Type.BOOLEAN,
-                     "14offset_fn_initIN9doris_udf10BooleanValEEEvPNS2_15FunctionContextEPT_")
-                .put(Type.MAX_DECIMALV2_TYPE,
-                     "14offset_fn_initIN9doris_udf12DecimalV2ValEEEvPNS2_15FunctionContextEPT_")
-                .put(Type.TINYINT,
-                     "14offset_fn_initIN9doris_udf10TinyIntValEEEvPNS2_15FunctionContextEPT_")
-                .put(Type.SMALLINT,
-                     "14offset_fn_initIN9doris_udf11SmallIntValEEEvPNS2_15FunctionContextEPT_")
-                .put(Type.DATE,
-                     "14offset_fn_initIN9doris_udf11DateTimeValEEEvPNS2_15FunctionContextEPT_")
-                .put(Type.DATETIME,
-                     "14offset_fn_initIN9doris_udf11DateTimeValEEEvPNS2_15FunctionContextEPT_")
-                .put(Type.INT,
-                     "14offset_fn_initIN9doris_udf6IntValEEEvPNS2_15FunctionContextEPT_")
-                .put(Type.FLOAT,
-                     "14offset_fn_initIN9doris_udf8FloatValEEEvPNS2_15FunctionContextEPT_")
-                .put(Type.BIGINT,
-                     "14offset_fn_initIN9doris_udf9BigIntValEEEvPNS2_15FunctionContextEPT_")
-                .put(Type.DOUBLE,
-                     "14offset_fn_initIN9doris_udf9DoubleValEEEvPNS2_15FunctionContextEPT_")
-                // .put(Type.CHAR,
-                //     "14offset_fn_initIN9doris_udf9StringValEEEvPNS2_15FunctionContextEPT_")
-                .put(Type.VARCHAR,
-                     "14offset_fn_initIN9doris_udf9StringValEEEvPNS2_15FunctionContextEPT_")
-                .put(Type.STRING,
-                     "14offset_fn_initIN9doris_udf9StringValEEEvPNS2_15FunctionContextEPT_")
-                .put(Type.LARGEINT,
-                     "14offset_fn_initIN9doris_udf11LargeIntValEEEvPNS2_15FunctionContextEPT_")
-
-                .build();
-
-    private static final Map<Type, String> OFFSET_FN_UPDATE_SYMBOL =
-            ImmutableMap.<Type, String>builder()
-                .put(Type.BOOLEAN,
-                     "16offset_fn_updateIN9doris_udf10BooleanValEEEvPNS2_15FunctionContextERKT_RKNS2_9BigIntValES8_PS6_")
-                .put(Type.MAX_DECIMALV2_TYPE,
-                     "16offset_fn_updateIN9doris_udf12DecimalV2ValEEEvPNS2_15FunctionContextERKT_RKNS2_9BigIntValES8_PS6_")
-                .put(Type.TINYINT,
-                     "16offset_fn_updateIN9doris_udf10TinyIntValEEEvPNS2_15"
-                     + "FunctionContextERKT_RKNS2_9BigIntValES8_PS6_")
-                .put(Type.SMALLINT,
-                     "16offset_fn_updateIN9doris_udf11SmallIntValEEEvPNS2_15"
-                     + "FunctionContextERKT_RKNS2_9BigIntValES8_PS6_")
-                .put(Type.DATE,
-                     "16offset_fn_updateIN9doris_udf11DateTimeValEEEvPNS2_15"
-                     + "FunctionContextERKT_RKNS2_9BigIntValES8_PS6_")
-                .put(Type.DATETIME,
-                     "16offset_fn_updateIN9doris_udf11DateTimeValEEEvPNS2_15"
-                     + "FunctionContextERKT_RKNS2_9BigIntValES8_PS6_")
-                .put(Type.INT,
-                     "16offset_fn_updateIN9doris_udf6IntValEEEvPNS2_15FunctionContextERKT_RKNS2_9BigIntValES8_PS6_")
-                .put(Type.FLOAT,
-                     "16offset_fn_updateIN9doris_udf8FloatValEEEvPNS2_15FunctionContextERKT_RKNS2_9BigIntValES8_PS6_")
-                .put(Type.BIGINT,
-                     "16offset_fn_updateIN9doris_udf9BigIntValEEEvPNS2_15FunctionContextERKT_RKS3_S8_PS6_")
-                .put(Type.DOUBLE,
-                     "16offset_fn_updateIN9doris_udf9DoubleValEEEvPNS2_15FunctionContextERKT_RKNS2_9BigIntValES8_PS6_")
-                // .put(Type.CHAR,
-                //     "16offset_fn_updateIN9doris_udf9StringValEEEvPNS2_15FunctionContextERKT_RKNS2_9BigIntValES8_PS6_")
-                .put(Type.VARCHAR,
-                     "16offset_fn_updateIN9doris_udf9StringValEEEvPNS2_15FunctionContextERKT_RKNS2_9BigIntValES8_PS6_")
-                .put(Type.STRING,
-                     "16offset_fn_updateIN9doris_udf9StringValEEEvPNS2_15FunctionContextERKT_RKNS2_9BigIntValES8_PS6_")
-                .put(Type.LARGEINT,
-                     "16offset_fn_updateIN9doris_udf11LargeIntValEEEvPNS2_15"
-                     + "FunctionContextERKT_RKNS2_9BigIntValES8_PS6_")
-                .build();
-
-    private static final Map<Type, String> LAST_VALUE_UPDATE_SYMBOL =
-            ImmutableMap.<Type, String>builder()
-                    .put(Type.BOOLEAN,
-                            "15last_val_updateIN9doris_udf10BooleanValEEEvPNS2_15FunctionContextERKT_PS6_")
-                    .put(Type.MAX_DECIMALV2_TYPE,
-                            "15last_val_updateIN9doris_udf12DecimalV2ValEEEvPNS2_15FunctionContextERKT_PS6_")
-                    .put(Type.TINYINT,
-                            "15last_val_updateIN9doris_udf10TinyIntValEEEvPNS2_15FunctionContextERKT_PS6_")
-                    .put(Type.SMALLINT,
-                            "15last_val_updateIN9doris_udf11SmallIntValEEEvPNS2_15FunctionContextERKT_PS6_")
-                    .put(Type.DATE,
-                            "15last_val_updateIN9doris_udf11DateTimeValEEEvPNS2_15FunctionContextERKT_PS6_")
-                    .put(Type.DATETIME,
-                            "15last_val_updateIN9doris_udf11DateTimeValEEEvPNS2_15FunctionContextERKT_PS6_")
-                    .put(Type.INT,
-                            "15last_val_updateIN9doris_udf6IntValEEEvPNS2_15FunctionContextERKT_PS6_")
-                    .put(Type.FLOAT,
-                             "15last_val_updateIN9doris_udf8FloatValEEEvPNS2_15FunctionContextERKT_PS6_")
-                    .put(Type.BIGINT,
-                             "15last_val_updateIN9doris_udf9BigIntValEEEvPNS2_15FunctionContextERKT_PS6_")
-                    .put(Type.DOUBLE,
-                            "15last_val_updateIN9doris_udf9DoubleValEEEvPNS2_15FunctionContextERKT_PS6_")
-                    // .put(Type.CHAR,
-                    //         "15last_val_updateIN9doris_udf9StringValEEEvPNS2_15FunctionContextERKT_PS6_")
-                    .put(Type.VARCHAR,
-                            "15last_val_updateIN9doris_udf9StringValEEEvPNS2_15FunctionContextERKT_PS6_")
-                    .put(Type.STRING,
-                            "15last_val_updateIN9doris_udf9StringValEEEvPNS2_15FunctionContextERKT_PS6_")
-                    .put(Type.LARGEINT,
-                            "15last_val_updateIN9doris_udf11LargeIntValEEEvPNS2_15FunctionContextERKT_PS6_")
-                    .build();
-
-    private static final Map<Type, String> FIRST_VALUE_REWRITE_UPDATE_SYMBOL =
-            ImmutableMap.<Type, String>builder()
-                    .put(Type.BOOLEAN,
-                            "24first_val_rewrite_updateIN9doris_udf10BooleanValEEEvPNS2_15"
-                                    + "FunctionContextERKT_RKNS2_9BigIntValEPS6_")
-                    .put(Type.MAX_DECIMALV2_TYPE,
-                            "24first_val_rewrite_updateIN9doris_udf12DecimalV2ValEEEvPNS2_15"
-                                    + "FunctionContextERKT_RKNS2_9BigIntValEPS6_")
-                    .put(Type.TINYINT,
-                            "24first_val_rewrite_updateIN9doris_udf10TinyIntValEEEvPNS2_15"
-                                    + "FunctionContextERKT_RKNS2_9BigIntValEPS6_")
-                    .put(Type.SMALLINT,
-                             "24first_val_rewrite_updateIN9doris_udf11SmallIntValEEEvPNS2_15"
-                                    + "FunctionContextERKT_RKNS2_9BigIntValEPS6_")
-                    .put(Type.DATE,
-                            "24first_val_rewrite_updateIN9doris_udf11DateTimeValEEEvPNS2_15"
-                                    + "FunctionContextERKT_RKNS2_9BigIntValEPS6_")
-                    .put(Type.DATETIME,
-                            "24first_val_rewrite_updateIN9doris_udf11DateTimeValEEEvPNS2_15"
-                                    + "FunctionContextERKT_RKNS2_9BigIntValEPS6_")
-                    .put(Type.INT,
-                            "24first_val_rewrite_updateIN9doris_udf6IntValEEEvPNS2_15"
-                                    + "FunctionContextERKT_RKNS2_9BigIntValEPS6_")
-                    .put(Type.FLOAT,
-                            "24first_val_rewrite_updateIN9doris_udf8FloatValEEEvPNS2_15"
-                                    + "FunctionContextERKT_RKNS2_9BigIntValEPS6_")
-                    .put(Type.BIGINT,
-                            "24first_val_rewrite_updateIN9doris_udf9BigIntValEEEvPNS2_15"
-                                    + "FunctionContextERKT_RKS3_PS6_")
-                    .put(Type.DOUBLE,
-                            "24first_val_rewrite_updateIN9doris_udf9DoubleValEEEvPNS2_15"
-                                    + "FunctionContextERKT_RKNS2_9BigIntValEPS6_")
-                    .put(Type.VARCHAR,
-                            "24first_val_rewrite_updateIN9doris_udf9StringValEEEvPNS2_15"
-                                    + "FunctionContextERKT_RKNS2_9BigIntValEPS6_")
-                    .put(Type.STRING,
-                            "24first_val_rewrite_updateIN9doris_udf9StringValEEEvPNS2_15"
-                                    + "FunctionContextERKT_RKNS2_9BigIntValEPS6_")
-                    .put(Type.LARGEINT,
-                            "24first_val_rewrite_updateIN9doris_udf11LargeIntValEEEvPNS2_15"
-                                    + "FunctionContextERKT_RKNS2_9BigIntValEPS6_")
-                    // .put(Type.VARCHAR,
-                    //         "15last_val_updateIN9doris_udf9StringValEEEvPNS2_15FunctionContextERKT_PS6_")
-                    .build();
-
-    private static final Map<Type, String> LAST_VALUE_REMOVE_SYMBOL =
-            ImmutableMap.<Type, String>builder()
-                    .put(Type.BOOLEAN,
-                            "15last_val_removeIN9doris_udf10BooleanValEEEvPNS2_15FunctionContextERKT_PS6_")
-                    .put(Type.MAX_DECIMALV2_TYPE,
-                            "15last_val_removeIN9doris_udf12DecimalV2ValEEEvPNS2_15FunctionContextERKT_PS6_")
-                    .put(Type.TINYINT,
-                            "15last_val_removeIN9doris_udf10TinyIntValEEEvPNS2_15FunctionContextERKT_PS6_")
-                    .put(Type.SMALLINT,
-                            "15last_val_removeIN9doris_udf11SmallIntValEEEvPNS2_15FunctionContextERKT_PS6_")
-                    .put(Type.DATE,
-                             "15last_val_removeIN9doris_udf11DateTimeValEEEvPNS2_15FunctionContextERKT_PS6_")
-                    .put(Type.DATETIME,
-                            "15last_val_removeIN9doris_udf11DateTimeValEEEvPNS2_15FunctionContextERKT_PS6_")
-                    .put(Type.INT,
-                            "15last_val_removeIN9doris_udf6IntValEEEvPNS2_15FunctionContextERKT_PS6_")
-                    .put(Type.FLOAT,
-                            "15last_val_removeIN9doris_udf8FloatValEEEvPNS2_15FunctionContextERKT_PS6_")
-                    .put(Type.BIGINT,
-                            "15last_val_removeIN9doris_udf9BigIntValEEEvPNS2_15FunctionContextERKT_PS6_")
-                    .put(Type.DOUBLE,
-                            "15last_val_removeIN9doris_udf9DoubleValEEEvPNS2_15FunctionContextERKT_PS6_")
-                    // .put(Type.CHAR,
-                    //         "15last_val_removeIN9doris_udf9StringValEEEvPNS2_15FunctionContextERKT_PS6_")
-                    .put(Type.VARCHAR,
-                            "15last_val_removeIN9doris_udf9StringValEEEvPNS2_15FunctionContextERKT_PS6_")
-                    .put(Type.STRING,
-                            "15last_val_removeIN9doris_udf9StringValEEEvPNS2_15FunctionContextERKT_PS6_")
-                    .put(Type.LARGEINT,
-                            "15last_val_removeIN9doris_udf11LargeIntValEEEvPNS2_15FunctionContextERKT_PS6_")
-                    .build();
-
-    private static final Map<Type, String> FIRST_VALUE_UPDATE_SYMBOL =
-            ImmutableMap.<Type, String>builder()
-                    .put(Type.BOOLEAN,
-                            "16first_val_updateIN9doris_udf10BooleanValEEEvPNS2_15FunctionContextERKT_PS6_")
-                    .put(Type.MAX_DECIMALV2_TYPE,
-                            "16first_val_updateIN9doris_udf12DecimalV2ValEEEvPNS2_15FunctionContextERKT_PS6_")
-                    .put(Type.TINYINT,
-                            "16first_val_updateIN9doris_udf10TinyIntValEEEvPNS2_15FunctionContextERKT_PS6_")
-                    .put(Type.SMALLINT,
-                            "16first_val_updateIN9doris_udf11SmallIntValEEEvPNS2_15FunctionContextERKT_PS6_")
-                    .put(Type.DATE,
-                            "16first_val_updateIN9doris_udf11DateTimeValEEEvPNS2_15FunctionContextERKT_PS6_")
-                    .put(Type.DATETIME,
-                            "16first_val_updateIN9doris_udf11DateTimeValEEEvPNS2_15FunctionContextERKT_PS6_")
-                    .put(Type.INT,
-                            "16first_val_updateIN9doris_udf6IntValEEEvPNS2_15FunctionContextERKT_PS6_")
-                    .put(Type.FLOAT,
-                            "16first_val_updateIN9doris_udf8FloatValEEEvPNS2_15FunctionContextERKT_PS6_")
-                    .put(Type.BIGINT,
-                            "16first_val_updateIN9doris_udf9BigIntValEEEvPNS2_15FunctionContextERKT_PS6_")
-                    .put(Type.DOUBLE,
-                            "16first_val_updateIN9doris_udf9DoubleValEEEvPNS2_15FunctionContextERKT_PS6_")
-                    // .put(Type.CHAR,
-                    //         "16first_val_updateIN9doris_udf9StringValEEEvPNS2_15FunctionContextERKT_PS6_")
-                    .put(Type.VARCHAR,
-                            "16first_val_updateIN9doris_udf9StringValEEEvPNS2_15FunctionContextERKT_PS6_")
-                    .put(Type.STRING,
-                            "16first_val_updateIN9doris_udf9StringValEEEvPNS2_15FunctionContextERKT_PS6_")
-                    .put(Type.LARGEINT,
-                            "16first_val_updateIN9doris_udf11LargeIntValEEEvPNS2_15FunctionContextERKT_PS6_")
-                    .build();
-
     public static final String TO_BITMAP = "to_bitmap";
     public static final String TO_BITMAP_WITH_CHECK = "to_bitmap_with_check";
     public static final String BITMAP_HASH = "bitmap_hash";
@@ -784,166 +201,6 @@ public class FunctionSet<T> {
     public static final String HISTOGRAM = "histogram";
     public static final String HIST = "hist";
 
-    private static final Map<Type, String> BITMAP_UNION_INT_SYMBOL =
-            ImmutableMap.<Type, String>builder()
-                    .put(Type.TINYINT,
-                            "_ZN5doris15BitmapFunctions17bitmap_update_intIN9doris_udf10TinyIntValEEEvPNS2_15FunctionContextERKT_PNS2_9StringValE")
-                    .put(Type.SMALLINT,
-                            "_ZN5doris15BitmapFunctions17bitmap_update_intIN9doris_udf11SmallIntValEEEvPNS2_15FunctionContextERKT_PNS2_9StringValE")
-                    .put(Type.INT,
-                            "_ZN5doris15BitmapFunctions17bitmap_update_intIN9doris_udf6IntValEEEvPNS2_15FunctionContextERKT_PNS2_9StringValE")
-                    .build();
-
-    private static final Map<Type, String> BITMAP_INTERSECT_INIT_SYMBOL =
-            ImmutableMap.<Type, String>builder()
-                    .put(Type.TINYINT,
-                            "_ZN5doris15BitmapFunctions21bitmap_intersect_initIaN9doris_udf10TinyIntValEEEvPNS2_15FunctionContextEPNS2_9StringValE")
-                    .put(Type.SMALLINT,
-                            "_ZN5doris15BitmapFunctions21bitmap_intersect_initIsN9doris_udf11SmallIntValEEEvPNS2_15FunctionContextEPNS2_9StringValE")
-                    .put(Type.INT,
-                            "_ZN5doris15BitmapFunctions21bitmap_intersect_initIiN9doris_udf6IntValEEEvPNS2_15FunctionContextEPNS2_9StringValE")
-                    .put(Type.BIGINT,
-                            "_ZN5doris15BitmapFunctions21bitmap_intersect_initIlN9doris_udf9BigIntValEEEvPNS2_15FunctionContextEPNS2_9StringValE")
-                    .put(Type.LARGEINT,
-                            "_ZN5doris15BitmapFunctions21bitmap_intersect_initInN9doris_udf11LargeIntValEEEvPNS2_15FunctionContextEPNS2_9StringValE")
-                    .put(Type.FLOAT,
-                            "_ZN5doris15BitmapFunctions21bitmap_intersect_initIfN9doris_udf8FloatValEEEvPNS2_15FunctionContextEPNS2_9StringValE")
-                    .put(Type.DOUBLE,
-                            "_ZN5doris15BitmapFunctions21bitmap_intersect_initIdN9doris_udf9DoubleValEEEvPNS2_15FunctionContextEPNS2_9StringValE")
-                    .put(Type.DATE,
-                            "_ZN5doris15BitmapFunctions21bitmap_intersect_initINS_13DateTimeValueEN9doris_udf11DateTimeValEEEvPNS3_15FunctionContextEPNS3_9StringValE")
-                    .put(Type.DATETIME,
-                            "_ZN5doris15BitmapFunctions21bitmap_intersect_initINS_13DateTimeValueEN9doris_udf11DateTimeValEEEvPNS3_15FunctionContextEPNS3_9StringValE")
-                    .put(Type.MAX_DECIMALV2_TYPE,
-                            "_ZN5doris15BitmapFunctions21bitmap_intersect_initINS_14DecimalV2ValueEN9doris_udf12DecimalV2ValEEEvPNS3_15FunctionContextEPNS3_9StringValE")
-                    .put(Type.CHAR,
-                            "_ZN5doris15BitmapFunctions21bitmap_intersect_initINS_11StringValueEN9doris_udf9StringValEEEvPNS3_15FunctionContextEPS4_")
-                    .put(Type.VARCHAR,
-                            "_ZN5doris15BitmapFunctions21bitmap_intersect_initINS_11StringValueEN9doris_udf9StringValEEEvPNS3_15FunctionContextEPS4_")
-                    .put(Type.STRING,
-                            "_ZN5doris15BitmapFunctions21bitmap_intersect_initINS_11StringValueEN9doris_udf9StringValEEEvPNS3_15FunctionContextEPS4_")
-                    .build();
-
-    private static final Map<Type, String> BITMAP_INTERSECT_UPDATE_SYMBOL =
-            ImmutableMap.<Type, String>builder()
-                    .put(Type.TINYINT,
-                            "_ZN5doris15BitmapFunctions23bitmap_intersect_updateIaN9doris_udf10TinyIntValEEEvPNS2_15FunctionContextERKNS2_9StringValERKT0_iPSA_PS7_")
-                    .put(Type.SMALLINT,
-                            "_ZN5doris15BitmapFunctions23bitmap_intersect_updateIsN9doris_udf11SmallIntValEEEvPNS2_15FunctionContextERKNS2_9StringValERKT0_iPSA_PS7_")
-                    .put(Type.INT,
-                            "_ZN5doris15BitmapFunctions23bitmap_intersect_updateIiN9doris_udf6IntValEEEvPNS2_15FunctionContextERKNS2_9StringValERKT0_iPSA_PS7_")
-                    .put(Type.BIGINT,
-                            "_ZN5doris15BitmapFunctions23bitmap_intersect_updateIlN9doris_udf9BigIntValEEEvPNS2_15FunctionContextERKNS2_9StringValERKT0_iPSA_PS7_")
-                    .put(Type.LARGEINT,
-                            "_ZN5doris15BitmapFunctions23bitmap_intersect_updateInN9doris_udf11LargeIntValEEEvPNS2_15FunctionContextERKNS2_9StringValERKT0_iPSA_PS7_")
-                    .put(Type.FLOAT,
-                            "_ZN5doris15BitmapFunctions23bitmap_intersect_updateIfN9doris_udf8FloatValEEEvPNS2_15FunctionContextERKNS2_9StringValERKT0_iPSA_PS7_")
-                    .put(Type.DOUBLE,
-                            "_ZN5doris15BitmapFunctions23bitmap_intersect_updateIdN9doris_udf9DoubleValEEEvPNS2_15FunctionContextERKNS2_9StringValERKT0_iPSA_PS7_")
-                    .put(Type.DATE,
-                            "_ZN5doris15BitmapFunctions23bitmap_intersect_updateINS_13DateTimeValueEN9doris_udf11DateTimeValEEEvPNS3_15FunctionContextERKNS3_9StringValERKT0_iPSB_PS8_")
-                    .put(Type.DATETIME,
-                            "_ZN5doris15BitmapFunctions23bitmap_intersect_updateINS_13DateTimeValueEN9doris_udf11DateTimeValEEEvPNS3_15FunctionContextERKNS3_9StringValERKT0_iPSB_PS8_")
-                    .put(Type.MAX_DECIMALV2_TYPE,
-                            "_ZN5doris15BitmapFunctions23bitmap_intersect_updateINS_14DecimalV2ValueEN9doris_udf12DecimalV2ValEEEvPNS3_15FunctionContextERKNS3_9StringValERKT0_iPSB_PS8_")
-                    .put(Type.CHAR,
-                            "_ZN5doris15BitmapFunctions23bitmap_intersect_updateINS_11StringValueEN9doris_udf9StringValEEEvPNS3_15FunctionContextERKS4_RKT0_iPSA_PS7_")
-                    .put(Type.VARCHAR,
-                            "_ZN5doris15BitmapFunctions23bitmap_intersect_updateINS_11StringValueEN9doris_udf9StringValEEEvPNS3_15FunctionContextERKS4_RKT0_iPSA_PS7_")
-                    .put(Type.STRING,
-                            "_ZN5doris15BitmapFunctions23bitmap_intersect_updateINS_11StringValueEN9doris_udf9StringValEEEvPNS3_15FunctionContextERKS4_RKT0_iPSA_PS7_")
-                    .build();
-
-    private static final Map<Type, String> BITMAP_INTERSECT_MERGE_SYMBOL =
-            ImmutableMap.<Type, String>builder()
-                    .put(Type.TINYINT,
-                            "_ZN5doris15BitmapFunctions22bitmap_intersect_mergeIaEEvPN9doris_udf15FunctionContextERKNS2_9StringValEPS6_")
-                    .put(Type.SMALLINT,
-                            "_ZN5doris15BitmapFunctions22bitmap_intersect_mergeIsEEvPN9doris_udf15FunctionContextERKNS2_9StringValEPS6_")
-                    .put(Type.INT,
-                            "_ZN5doris15BitmapFunctions22bitmap_intersect_mergeIiEEvPN9doris_udf15FunctionContextERKNS2_9StringValEPS6_")
-                    .put(Type.BIGINT,
-                            "_ZN5doris15BitmapFunctions22bitmap_intersect_mergeIlEEvPN9doris_udf15FunctionContextERKNS2_9StringValEPS6_")
-                    .put(Type.LARGEINT,
-                            "_ZN5doris15BitmapFunctions22bitmap_intersect_mergeInEEvPN9doris_udf15FunctionContextERKNS2_9StringValEPS6_")
-                    .put(Type.FLOAT,
-                            "_ZN5doris15BitmapFunctions22bitmap_intersect_mergeIfEEvPN9doris_udf15FunctionContextERKNS2_9StringValEPS6_")
-                    .put(Type.DOUBLE,
-                            "_ZN5doris15BitmapFunctions22bitmap_intersect_mergeIdEEvPN9doris_udf15FunctionContextERKNS2_9StringValEPS6_")
-                    .put(Type.DATE,
-                            "_ZN5doris15BitmapFunctions22bitmap_intersect_mergeINS_13DateTimeValueEEEvPN9doris_udf15FunctionContextERKNS3_9StringValEPS7_")
-                    .put(Type.DATETIME,
-                            "_ZN5doris15BitmapFunctions22bitmap_intersect_mergeINS_13DateTimeValueEEEvPN9doris_udf15FunctionContextERKNS3_9StringValEPS7_")
-                    .put(Type.MAX_DECIMALV2_TYPE,
-                            "_ZN5doris15BitmapFunctions22bitmap_intersect_mergeINS_14DecimalV2ValueEEEvPN9doris_udf15FunctionContextERKNS3_9StringValEPS7_")
-                    .put(Type.CHAR,
-                            "_ZN5doris15BitmapFunctions22bitmap_intersect_mergeINS_11StringValueEEEvPN9doris_udf15FunctionContextERKNS3_9StringValEPS7_")
-                    .put(Type.VARCHAR,
-                            "_ZN5doris15BitmapFunctions22bitmap_intersect_mergeINS_11StringValueEEEvPN9doris_udf15FunctionContextERKNS3_9StringValEPS7_")
-                    .put(Type.STRING,
-                            "_ZN5doris15BitmapFunctions22bitmap_intersect_mergeINS_11StringValueEEEvPN9doris_udf15FunctionContextERKNS3_9StringValEPS7_")
-                    .build();
-
-    private static final Map<Type, String> BITMAP_INTERSECT_SERIALIZE_SYMBOL =
-            ImmutableMap.<Type, String>builder()
-                    .put(Type.TINYINT,
-                            "_ZN5doris15BitmapFunctions26bitmap_intersect_serializeIaEEN9doris_udf9StringValEPNS2_15FunctionContextERKS3_")
-                    .put(Type.SMALLINT,
-                            "_ZN5doris15BitmapFunctions26bitmap_intersect_serializeIsEEN9doris_udf9StringValEPNS2_15FunctionContextERKS3_")
-                    .put(Type.INT,
-                            "_ZN5doris15BitmapFunctions26bitmap_intersect_serializeIiEEN9doris_udf9StringValEPNS2_15FunctionContextERKS3_")
-                    .put(Type.BIGINT,
-                            "_ZN5doris15BitmapFunctions26bitmap_intersect_serializeIlEEN9doris_udf9StringValEPNS2_15FunctionContextERKS3_")
-                    .put(Type.LARGEINT,
-                            "_ZN5doris15BitmapFunctions26bitmap_intersect_serializeInEEN9doris_udf9StringValEPNS2_15FunctionContextERKS3_")
-                    .put(Type.FLOAT,
-                            "_ZN5doris15BitmapFunctions26bitmap_intersect_serializeIfEEN9doris_udf9StringValEPNS2_15FunctionContextERKS3_")
-                    .put(Type.DOUBLE,
-                            "_ZN5doris15BitmapFunctions26bitmap_intersect_serializeIdEEN9doris_udf9StringValEPNS2_15FunctionContextERKS3_")
-                    .put(Type.DATE,
-                            "_ZN5doris15BitmapFunctions26bitmap_intersect_serializeINS_13DateTimeValueEEEN9doris_udf9StringValEPNS3_15FunctionContextERKS4_")
-                    .put(Type.DATETIME,
-                            "_ZN5doris15BitmapFunctions26bitmap_intersect_serializeINS_13DateTimeValueEEEN9doris_udf9StringValEPNS3_15FunctionContextERKS4_")
-                    .put(Type.MAX_DECIMALV2_TYPE,
-                            "_ZN5doris15BitmapFunctions26bitmap_intersect_serializeINS_14DecimalV2ValueEEEN9doris_udf9StringValEPNS3_15FunctionContextERKS4_")
-                    .put(Type.CHAR,
-                            "_ZN5doris15BitmapFunctions26bitmap_intersect_serializeINS_11StringValueEEEN9doris_udf9StringValEPNS3_15FunctionContextERKS4_")
-                    .put(Type.VARCHAR,
-                            "_ZN5doris15BitmapFunctions26bitmap_intersect_serializeINS_11StringValueEEEN9doris_udf9StringValEPNS3_15FunctionContextERKS4_")
-                     .put(Type.STRING,
-                            "_ZN5doris15BitmapFunctions26bitmap_intersect_serializeINS_11StringValueEEEN9doris_udf9StringValEPNS3_15FunctionContextERKS4_")
-                    .build();
-
-    private static final Map<Type, String> BITMAP_INTERSECT_FINALIZE_SYMBOL =
-            ImmutableMap.<Type, String>builder()
-                    .put(Type.TINYINT,
-                            "_ZN5doris15BitmapFunctions25bitmap_intersect_finalizeIaEEN9doris_udf9BigIntValEPNS2_15FunctionContextERKNS2_9StringValE")
-                    .put(Type.SMALLINT,
-                            "_ZN5doris15BitmapFunctions25bitmap_intersect_finalizeIsEEN9doris_udf9BigIntValEPNS2_15FunctionContextERKNS2_9StringValE")
-                    .put(Type.INT,
-                            "_ZN5doris15BitmapFunctions25bitmap_intersect_finalizeIiEEN9doris_udf9BigIntValEPNS2_15FunctionContextERKNS2_9StringValE")
-                    .put(Type.BIGINT,
-                            "_ZN5doris15BitmapFunctions25bitmap_intersect_finalizeIlEEN9doris_udf9BigIntValEPNS2_15FunctionContextERKNS2_9StringValE")
-                    .put(Type.LARGEINT,
-                            "_ZN5doris15BitmapFunctions25bitmap_intersect_finalizeInEEN9doris_udf9BigIntValEPNS2_15FunctionContextERKNS2_9StringValE")
-                    .put(Type.FLOAT,
-                            "_ZN5doris15BitmapFunctions25bitmap_intersect_finalizeIfEEN9doris_udf9BigIntValEPNS2_15FunctionContextERKNS2_9StringValE")
-                    .put(Type.DOUBLE,
-                            "_ZN5doris15BitmapFunctions25bitmap_intersect_finalizeIdEEN9doris_udf9BigIntValEPNS2_15FunctionContextERKNS2_9StringValE")
-                    .put(Type.DATE,
-                            "_ZN5doris15BitmapFunctions25bitmap_intersect_finalizeINS_13DateTimeValueEEEN9doris_udf9BigIntValEPNS3_15FunctionContextERKNS3_9StringValE")
-                    .put(Type.DATETIME,
-                            "_ZN5doris15BitmapFunctions25bitmap_intersect_finalizeINS_13DateTimeValueEEEN9doris_udf9BigIntValEPNS3_15FunctionContextERKNS3_9StringValE")
-                    .put(Type.MAX_DECIMALV2_TYPE,
-                            "_ZN5doris15BitmapFunctions25bitmap_intersect_finalizeINS_14DecimalV2ValueEEEN9doris_udf9BigIntValEPNS3_15FunctionContextERKNS3_9StringValE")
-                    .put(Type.CHAR,
-                            "_ZN5doris15BitmapFunctions25bitmap_intersect_finalizeINS_11StringValueEEEN9doris_udf9BigIntValEPNS3_15FunctionContextERKNS3_9StringValE")
-                    .put(Type.VARCHAR,
-                            "_ZN5doris15BitmapFunctions25bitmap_intersect_finalizeINS_11StringValueEEEN9doris_udf9BigIntValEPNS3_15FunctionContextERKNS3_9StringValE")
-                    .put(Type.STRING,
-                            "_ZN5doris15BitmapFunctions25bitmap_intersect_finalizeINS_11StringValueEEEN9doris_udf9BigIntValEPNS3_15FunctionContextERKNS3_9StringValE")
-                    .build();
-
     private static final Map<Type, String> TOPN_UPDATE_SYMBOL =
             ImmutableMap.<Type, String>builder()
                     .put(Type.CHAR,
@@ -954,16 +211,6 @@ public class FunctionSet<T> {
                             "_ZN5doris13TopNFunctions11topn_updateIN9doris_udf9StringValEEEvPNS2_15FunctionContextERKT_RKNS2_6IntValEPS3_")
                     .build();
 
-    private static final Map<Type, String> TOPN_UPDATE_MORE_PARAM_SYMBOL =
-            ImmutableMap.<Type, String>builder()
-                    .put(Type.CHAR,
-                            "_ZN5doris13TopNFunctions11topn_updateIN9doris_udf9StringValEEEvPNS2_15FunctionContextERKT_RKNS2_6IntValESB_PS3_")
-                    .put(Type.VARCHAR,
-                            "_ZN5doris13TopNFunctions11topn_updateIN9doris_udf9StringValEEEvPNS2_15FunctionContextERKT_RKNS2_6IntValESB_PS3_")
-                    .put(Type.STRING,
-                            "_ZN5doris13TopNFunctions11topn_updateIN9doris_udf9StringValEEEvPNS2_15FunctionContextERKT_RKNS2_6IntValESB_PS3_")
-                    .build();
-
     public Function getFunction(Function desc, Function.CompareMode mode) {
         return getFunction(desc, mode, false);
     }
@@ -1224,6 +471,10 @@ public class FunctionSet<T> {
     }
 
     private boolean addFunction(Function fn, boolean isBuiltin) {
+        if (fn instanceof AggregateFunction) {
+            aggFunctionNames.add(fn.functionName());
+        }
+
         // TODO: add this to persistent store
         if (getFunction(fn, Function.CompareMode.IS_INDISTINGUISHABLE) != null) {
             return false;
@@ -1308,45 +559,37 @@ public class FunctionSet<T> {
     // null symbols indicate the function does not need that step of the evaluation.
     // An empty symbol indicates a TODO for the BE to implement the function.
     private void initAggregateBuiltins() {
-        final String prefix = "_ZN5doris18AggregateFunctions";
-        final String initNull = prefix + "9init_nullEPN9doris_udf15FunctionContextEPNS1_6AnyValE";
-        final String initNullString = prefix
-                + "16init_null_stringEPN9doris_udf15FunctionContextEPNS1_9StringValE";
-        final String stringValSerializeOrFinalize = prefix
-                + "32string_val_serialize_or_finalizeEPN9doris_udf15FunctionContextERKNS1_9StringValE";
-        final String stringValGetValue = prefix
-                + "20string_val_get_valueEPN9doris_udf15FunctionContextERKNS1_9StringValE";
 
         // Type stringType[] = {Type.CHAR, Type.VARCHAR};
         // count(*)
         // vectorized
         addBuiltin(AggregateFunction.createBuiltin(FunctionSet.COUNT,
                 new ArrayList<Type>(), Type.BIGINT, Type.BIGINT,
-                prefix + "18init_zero_not_nullIN9doris_udf9BigIntValEEEvPNS2_15FunctionContextEPT_",
-                prefix + "17count_star_updateEPN9doris_udf15FunctionContextEPNS1_9BigIntValE",
-                prefix + "11count_mergeEPN9doris_udf15FunctionContextERKNS1_9BigIntValEPS4_",
+                "",
+                "",
+                "",
                 null, null,
-                prefix + "17count_star_removeEPN9doris_udf15FunctionContextEPNS1_9BigIntValE",
+                "",
                 null, false, true, true, true));
 
         // count(array/map/struct)
         for (Type complexType : Lists.newArrayList(Type.ARRAY, Type.MAP, Type.GENERIC_STRUCT)) {
             addBuiltin(AggregateFunction.createBuiltin(FunctionSet.COUNT,
                     Lists.newArrayList(complexType), Type.BIGINT, Type.BIGINT,
-                    prefix + "18init_zero_not_nullIN9doris_udf9BigIntValEEEvPNS2_15FunctionContextEPT_",
-                    prefix + "12count_updateEPN9doris_udf15FunctionContextERKNS1_6AnyValEPNS1_9BigIntValE",
-                    prefix + "11count_mergeEPN9doris_udf15FunctionContextERKNS1_9BigIntValEPS4_",
+                    "",
+                    "",
+                    "",
                     null, null,
-                    prefix + "12count_removeEPN9doris_udf15FunctionContextERKNS1_6AnyValEPNS1_9BigIntValE",
+                    "",
                     null, false, true, true, true));
 
             addBuiltin(AggregateFunction.createBuiltin(FunctionSet.COUNT,
                     Lists.newArrayList(complexType), Type.BIGINT, Type.BIGINT,
-                    prefix + "18init_zero_not_nullIN9doris_udf9BigIntValEEEvPNS2_15FunctionContextEPT_",
-                    prefix + "12count_updateEPN9doris_udf15FunctionContextERKNS1_6AnyValEPNS1_9BigIntValE",
-                    prefix + "11count_mergeEPN9doris_udf15FunctionContextERKNS1_9BigIntValEPS4_",
+                    "",
+                    "",
+                    "",
                     null, null,
-                    prefix + "12count_removeEPN9doris_udf15FunctionContextERKNS1_6AnyValEPNS1_9BigIntValE",
+                    "",
                     null, false, true, true, true));
         }
 
@@ -1517,11 +760,11 @@ public class FunctionSet<T> {
             // vectorized
             addBuiltin(AggregateFunction.createBuiltin(FunctionSet.COUNT,
                     Lists.newArrayList(t), Type.BIGINT, Type.BIGINT,
-                    prefix + "18init_zero_not_nullIN9doris_udf9BigIntValEEEvPNS2_15FunctionContextEPT_",
-                    prefix + "12count_updateEPN9doris_udf15FunctionContextERKNS1_6AnyValEPNS1_9BigIntValE",
-                    prefix + "11count_mergeEPN9doris_udf15FunctionContextERKNS1_9BigIntValEPS4_",
+                    "",
+                    "",
+                    "",
                     null, null,
-                    prefix + "12count_removeEPN9doris_udf15FunctionContextERKNS1_6AnyValEPNS1_9BigIntValE",
+                    "",
                     null, false, true, true, true));
 
             // count in multi distinct
@@ -1530,25 +773,25 @@ public class FunctionSet<T> {
                 addBuiltin(AggregateFunction.createBuiltin("multi_distinct_count", Lists.newArrayList(t),
                         Type.BIGINT,
                         Type.VARCHAR,
-                        prefix + "",
-                        prefix + "",
-                        prefix + "",
-                        prefix + "",
+                        "",
+                        "",
+                        "",
+                        "",
                         null,
                         null,
-                        prefix + "",
+                        "",
                         false, true, true, true));
             } else if (t.equals(Type.STRING)) {
                 addBuiltin(AggregateFunction.createBuiltin("multi_distinct_count", Lists.newArrayList(t),
                         Type.BIGINT,
                         Type.STRING,
-                        prefix + "",
-                        prefix + "",
-                        prefix + "",
-                        prefix + "",
+                        "",
+                        "",
+                        "",
+                        "",
                         null,
                         null,
-                        prefix + "",
+                        "",
                         false, true, true, true));
             } else if (t.equals(Type.TINYINT) || t.equals(Type.SMALLINT) || t.equals(Type.INT)
                     || t.equals(Type.BIGINT) || t.equals(Type.LARGEINT) || t.equals(Type.DOUBLE)) {
@@ -1556,13 +799,13 @@ public class FunctionSet<T> {
                 addBuiltin(AggregateFunction.createBuiltin("multi_distinct_count", Lists.newArrayList(t),
                         Type.BIGINT,
                         t,
-                        prefix + MULTI_DISTINCT_INIT_SYMBOL.get(t),
-                        prefix + MULTI_DISTINCT_UPDATE_SYMBOL.get(t),
-                        prefix + MULTI_DISTINCT_MERGE_SYMBOL.get(t),
-                        prefix + MULTI_DISTINCT_SERIALIZE_SYMBOL.get(t),
+                        "",
+                        "",
+                        "",
+                        "",
                         null,
                         null,
-                        prefix + MULTI_DISTINCT_COUNT_FINALIZE_SYMBOL.get(t),
+                        "",
                         false, true, true, true));
             } else if (t.equals(Type.DATE) || t.equals(Type.DATETIME)) {
                 // now we don't support datetime distinct
@@ -1571,52 +814,52 @@ public class FunctionSet<T> {
                 addBuiltin(AggregateFunction.createBuiltin("multi_distinct_count", Lists.newArrayList(t),
                         Type.BIGINT,
                         Type.MAX_DECIMALV2_TYPE,
-                        prefix + "",
-                        prefix + "",
-                        prefix + "",
-                        prefix + "",
+                        "",
+                        "",
+                        "",
+                        "",
                         null,
                         null,
-                        prefix + "",
+                        "",
                         false, true, true, true));
             } else if (t.equals(Type.DECIMAL32)) {
                 // vectorized
                 addBuiltin(AggregateFunction.createBuiltin("multi_distinct_count", Lists.newArrayList(t),
                         Type.BIGINT,
                         Type.DECIMAL32,
-                        prefix + "",
-                        prefix + "",
-                        prefix + "",
-                        prefix + "",
+                        "",
+                        "",
+                        "",
+                        "",
                         null,
                         null,
-                        prefix + "",
+                        "",
                         false, true, true, true));
             } else if (t.equals(Type.DECIMAL64)) {
                 // vectorized
                 addBuiltin(AggregateFunction.createBuiltin("multi_distinct_count", Lists.newArrayList(t),
                         Type.BIGINT,
                         Type.DECIMAL64,
-                        prefix + "",
-                        prefix + "",
-                        prefix + "",
-                        prefix + "",
+                        "",
+                        "",
+                        "",
+                        "",
                         null,
                         null,
-                        prefix + "",
+                        "",
                         false, true, true, true));
             } else if (t.equals(Type.DECIMAL128)) {
                 // vectorized
                 addBuiltin(AggregateFunction.createBuiltin("multi_distinct_count", Lists.newArrayList(t),
                         Type.BIGINT,
                         Type.DECIMAL128,
-                        prefix + "",
-                        prefix + "",
-                        prefix + "",
-                        prefix + "",
+                        "",
+                        "",
+                        "",
+                        "",
                         null,
                         null,
-                        prefix + "",
+                        "",
                         false, true, true, true));
             }
 
@@ -1625,82 +868,80 @@ public class FunctionSet<T> {
                 addBuiltin(AggregateFunction.createBuiltin("multi_distinct_sum", Lists.newArrayList(t),
                         t,
                         t,
-                        prefix + MULTI_DISTINCT_INIT_SYMBOL.get(t),
-                        prefix + MULTI_DISTINCT_UPDATE_SYMBOL.get(t),
-                        prefix + MULTI_DISTINCT_MERGE_SYMBOL.get(t),
-                        prefix + MULTI_DISTINCT_SERIALIZE_SYMBOL.get(t),
+                        "",
+                        "",
+                        "",
+                        "",
                         null,
                         null,
-                        prefix + MULTI_DISTINCT_SUM_FINALIZE_SYMBOL.get(t),
+                        "",
                         false, true, true, true));
             }  else if (t.equals(Type.MAX_DECIMALV2_TYPE)) {
                 // vectorized
                 addBuiltin(AggregateFunction.createBuiltin("multi_distinct_sum", Lists.newArrayList(t),
                         MULTI_DISTINCT_SUM_RETURN_TYPE.get(t),
                         Type.MAX_DECIMALV2_TYPE,
-                        prefix + "",
-                        prefix + "",
-                        prefix + "",
-                        prefix + "",
+                        "",
+                        "",
+                        "",
+                        "",
                         null,
                         null,
-                        prefix + "",
+                        "",
                         false, true, true, true));
             } else if (t.equals(Type.DECIMAL32)) {
                 // vectorized
                 addBuiltin(AggregateFunction.createBuiltin("multi_distinct_sum", Lists.newArrayList(t),
                         MULTI_DISTINCT_SUM_RETURN_TYPE.get(t),
                         Type.DECIMAL32,
-                        prefix + "",
-                        prefix + "",
-                        prefix + "",
-                        prefix + "",
+                        "",
+                        "",
+                        "",
+                        "",
                         null,
                         null,
-                        prefix + "",
+                        "",
                         false, true, true, true));
             } else if (t.equals(Type.DECIMAL64)) {
                 addBuiltin(AggregateFunction.createBuiltin("multi_distinct_sum", Lists.newArrayList(t),
                         MULTI_DISTINCT_SUM_RETURN_TYPE.get(t),
                         Type.DECIMAL64,
-                        prefix + "",
-                        prefix + "",
-                        prefix + "",
-                        prefix + "",
+                        "",
+                        "",
+                        "",
+                        "",
                         null,
                         null,
-                        prefix + "",
+                        "",
                         false, true, true, true));
             } else if (t.equals(Type.DECIMAL128)) {
                 addBuiltin(AggregateFunction.createBuiltin("multi_distinct_sum", Lists.newArrayList(t),
                         MULTI_DISTINCT_SUM_RETURN_TYPE.get(t),
                         Type.DECIMAL128,
-                        prefix + "",
-                        prefix + "",
-                        prefix + "",
-                        prefix + "",
+                        "",
+                        "",
+                        "",
+                        "",
                         null,
                         null,
-                        prefix + "",
+                        "",
                         false, true, true, true));
             }
             // Min
-            String minMaxSerializeOrFinalize = t.isStringType() ? stringValSerializeOrFinalize : null;
-            String minMaxGetValue = t.isStringType() ? stringValGetValue : null;
             addBuiltin(AggregateFunction.createBuiltin("min",
-                    Lists.newArrayList(t), t, t, prefix + MIN_INIT_SYMBOL.get(t),
-                    prefix + MIN_UPDATE_SYMBOL.get(t),
-                    prefix + MIN_UPDATE_SYMBOL.get(t),
-                    minMaxSerializeOrFinalize, minMaxGetValue,
-                    null, minMaxSerializeOrFinalize, true, true, false, true));
+                    Lists.newArrayList(t), t, t, "",
+                    "",
+                    "",
+                    null, null,
+                    null, null, true, true, false, true));
 
             // Max
             addBuiltin(AggregateFunction.createBuiltin("max",
-                    Lists.newArrayList(t), t, t, prefix + MAX_INIT_SYMBOL.get(t),
-                    prefix + MAX_UPDATE_SYMBOL.get(t),
-                    prefix + MAX_UPDATE_SYMBOL.get(t),
-                    minMaxSerializeOrFinalize, minMaxGetValue,
-                    null, minMaxSerializeOrFinalize, true, true, false, true));
+                    Lists.newArrayList(t), t, t, "",
+                    "",
+                    "",
+                    null, null,
+                    null, null, true, true, false, true));
 
             // Any
             addBuiltin(AggregateFunction.createBuiltin("any", Lists.newArrayList(t), t, t, null, null, null, null, null,
@@ -1724,28 +965,28 @@ public class FunctionSet<T> {
 
             // vectorized
             addBuiltin(AggregateFunction.createBuiltin("ndv", Lists.newArrayList(t), Type.BIGINT, Type.VARCHAR,
-                            "_ZN5doris12HllFunctions8hll_initEPN9doris_udf15FunctionContextEPNS1_9StringValE",
-                            "_ZN5doris12HllFunctions" + HLL_UPDATE_SYMBOL.get(t),
-                            "_ZN5doris12HllFunctions9hll_mergeEPN9doris_udf15FunctionContextERKNS1_9StringValEPS4_",
-                            "_ZN5doris12HllFunctions13hll_serializeEPN9doris_udf15FunctionContextERKNS1_9StringValE",
-                            "_ZN5doris12HllFunctions12hll_finalizeEPN9doris_udf15FunctionContextERKNS1_9StringValE",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
                             true, true, true, true));
 
             // vectorized
             addBuiltin(AggregateFunction.createBuiltin("approx_count_distinct", Lists.newArrayList(t), Type.BIGINT,
                             Type.VARCHAR,
-                            "_ZN5doris12HllFunctions8hll_initEPN9doris_udf15FunctionContextEPNS1_9StringValE",
-                            "_ZN5doris12HllFunctions" + HLL_UPDATE_SYMBOL.get(t),
-                            "_ZN5doris12HllFunctions9hll_mergeEPN9doris_udf15FunctionContextERKNS1_9StringValEPS4_",
-                            "_ZN5doris12HllFunctions13hll_serializeEPN9doris_udf15FunctionContextERKNS1_9StringValE",
-                            "_ZN5doris12HllFunctions12hll_finalizeEPN9doris_udf15FunctionContextERKNS1_9StringValE",
+                            "",
+                            "",
+                            "",
+                            "",
+                            "",
                             true, true, true, true));
 
             // vectorized
             addBuiltin(AggregateFunction.createBuiltin(BITMAP_UNION_INT,
                     Lists.newArrayList(t), Type.BIGINT, t,
                     "",
-                    BITMAP_UNION_INT_SYMBOL.get(t),
+                    "",
                     "",
                     "",
                     "",
@@ -1754,29 +995,29 @@ public class FunctionSet<T> {
             // VEC_INTERSECT_COUNT
             addBuiltin(
                     AggregateFunction.createBuiltin(INTERSECT_COUNT, Lists.newArrayList(Type.BITMAP, t, t), Type.BIGINT,
-                            Type.VARCHAR, true, BITMAP_INTERSECT_INIT_SYMBOL.get(t),
-                            BITMAP_INTERSECT_UPDATE_SYMBOL.get(t), BITMAP_INTERSECT_MERGE_SYMBOL.get(t),
-                            BITMAP_INTERSECT_SERIALIZE_SYMBOL.get(t), null, null,
-                            BITMAP_INTERSECT_FINALIZE_SYMBOL.get(t), true, false, true, true));
+                            Type.VARCHAR, true, "",
+                            "", "",
+                            "", null, null,
+                            "", true, false, true, true));
 
             // TopN
             if (TOPN_UPDATE_SYMBOL.containsKey(t)) {
                 // vectorized
                 addBuiltin(AggregateFunction.createBuiltin("topn", Lists.newArrayList(t, Type.INT), Type.VARCHAR,
                         Type.VARCHAR,
-                        "_ZN5doris13TopNFunctions9topn_initEPN9doris_udf15FunctionContextEPNS1_9StringValE",
-                        TOPN_UPDATE_SYMBOL.get(t),
-                        "_ZN5doris13TopNFunctions10topn_mergeEPN9doris_udf15FunctionContextERKNS1_9StringValEPS4_",
-                        "_ZN5doris13TopNFunctions14topn_serializeEPN9doris_udf15FunctionContextERKNS1_9StringValE",
-                        "_ZN5doris13TopNFunctions13topn_finalizeEPN9doris_udf15FunctionContextERKNS1_9StringValE",
+                        "",
+                        "",
+                        "",
+                        "",
+                        "",
                         true, false, true, true));
                 addBuiltin(AggregateFunction.createBuiltin("topn", Lists.newArrayList(t, Type.INT, Type.INT),
                         Type.VARCHAR, Type.VARCHAR,
-                        "_ZN5doris13TopNFunctions9topn_initEPN9doris_udf15FunctionContextEPNS1_9StringValE",
-                        TOPN_UPDATE_MORE_PARAM_SYMBOL.get(t),
-                        "_ZN5doris13TopNFunctions10topn_mergeEPN9doris_udf15FunctionContextERKNS1_9StringValEPS4_",
-                        "_ZN5doris13TopNFunctions14topn_serializeEPN9doris_udf15FunctionContextERKNS1_9StringValE",
-                        "_ZN5doris13TopNFunctions13topn_finalizeEPN9doris_udf15FunctionContextERKNS1_9StringValE",
+                        "",
+                        "",
+                        "",
+                        "",
+                        "",
                         true, false, true, true));
             }
 
@@ -1784,69 +1025,69 @@ public class FunctionSet<T> {
                 //vec stddev stddev_samp stddev_pop
                 addBuiltin(AggregateFunction.createBuiltin("stddev",
                         Lists.newArrayList(t), STDDEV_RETTYPE_SYMBOL.get(t), t,
-                        prefix + STDDEV_INIT_SYMBOL.get(t),
-                        prefix + STDDEV_UPDATE_SYMBOL.get(t),
-                        prefix + STDDEV_MERGE_SYMBOL.get(t),
+                        "",
+                        "",
+                        "",
                         null, null, null,
-                        prefix + STDDEV_POP_FINALIZE_SYMBOL.get(t),
+                        "",
                         false, true, false, true));
                 addBuiltin(AggregateFunction.createBuiltin("stddev_samp",
                         Lists.newArrayList(t), STDDEV_RETTYPE_SYMBOL.get(t), t,
-                        prefix + STDDEV_INIT_SYMBOL.get(t),
-                        prefix + STDDEV_UPDATE_SYMBOL.get(t),
-                        prefix + STDDEV_MERGE_SYMBOL.get(t),
+                        "",
+                        "",
+                        "",
                         null, null, null,
-                        prefix + STDDEV_FINALIZE_SYMBOL.get(t),
+                        "",
                         false, true, false, true));
                 addBuiltin(AggregateFunction.createBuiltin("stddev_pop",
                         Lists.newArrayList(t), STDDEV_RETTYPE_SYMBOL.get(t), t,
-                        prefix + STDDEV_INIT_SYMBOL.get(t),
-                        prefix + STDDEV_UPDATE_SYMBOL.get(t),
-                        prefix + STDDEV_MERGE_SYMBOL.get(t),
+                        "",
+                        "",
+                        "",
                         null, null, null,
-                        prefix + STDDEV_POP_FINALIZE_SYMBOL.get(t),
+                        "",
                         false, true, false, true));
 
                 //vec: variance variance_samp var_samp variance_pop var_pop
                 addBuiltin(AggregateFunction.createBuiltin("variance",
                         Lists.newArrayList(t), STDDEV_RETTYPE_SYMBOL.get(t), t,
-                        prefix + STDDEV_INIT_SYMBOL.get(t),
-                        prefix + STDDEV_UPDATE_SYMBOL.get(t),
-                        prefix + STDDEV_MERGE_SYMBOL.get(t),
+                        "",
+                        "",
+                        "",
                         null, null, null,
-                        prefix + VAR_POP_FINALIZE_SYMBOL.get(t),
+                        "",
                         false, true, false, true));
                 addBuiltin(AggregateFunction.createBuiltin("variance_pop",
                         Lists.newArrayList(t), STDDEV_RETTYPE_SYMBOL.get(t), t,
-                        prefix + STDDEV_INIT_SYMBOL.get(t),
-                        prefix + STDDEV_UPDATE_SYMBOL.get(t),
-                        prefix + STDDEV_MERGE_SYMBOL.get(t),
+                        "",
+                        "",
+                        "",
                         null, null, null,
-                        prefix + VAR_POP_FINALIZE_SYMBOL.get(t),
+                        "",
                         false, true, false, true));
                 addBuiltin(AggregateFunction.createBuiltin("var_pop",
                         Lists.newArrayList(t), STDDEV_RETTYPE_SYMBOL.get(t), t,
-                        prefix + STDDEV_INIT_SYMBOL.get(t),
-                        prefix + STDDEV_UPDATE_SYMBOL.get(t),
-                        prefix + STDDEV_MERGE_SYMBOL.get(t),
+                        "",
+                        "",
+                        "",
                         null, null, null,
-                        prefix + VAR_POP_FINALIZE_SYMBOL.get(t),
+                        "",
                         false, true, false, true));
                 addBuiltin(AggregateFunction.createBuiltin("variance_samp",
                         Lists.newArrayList(t), STDDEV_RETTYPE_SYMBOL.get(t), t,
-                        prefix + STDDEV_INIT_SYMBOL.get(t),
-                        prefix + STDDEV_UPDATE_SYMBOL.get(t),
-                        prefix + STDDEV_MERGE_SYMBOL.get(t),
+                        "",
+                        "",
+                        "",
                         null, null, null,
-                        prefix + VAR_FINALIZE_SYMBOL.get(t),
+                        "",
                         false, true, false, true));
                 addBuiltin(AggregateFunction.createBuiltin("var_samp",
                         Lists.newArrayList(t), STDDEV_RETTYPE_SYMBOL.get(t), t,
-                        prefix + STDDEV_INIT_SYMBOL.get(t),
-                        prefix + STDDEV_UPDATE_SYMBOL.get(t),
-                        prefix + STDDEV_MERGE_SYMBOL.get(t),
+                        "",
+                        "",
+                        "",
                         null, null, null,
-                        prefix + VAR_FINALIZE_SYMBOL.get(t),
+                        "",
                         false, true, false, true));
 
                 addBuiltin(AggregateFunction.createBuiltin("avg_weighted",
@@ -1860,74 +1101,74 @@ public class FunctionSet<T> {
         String []sumNames = {"sum", "sum_distinct"};
         for (String name : sumNames) {
             addBuiltin(AggregateFunction.createBuiltin(name,
-                    Lists.<Type>newArrayList(Type.TINYINT), Type.BIGINT, Type.BIGINT, initNull,
-                    prefix + "3sumIN9doris_udf9BigIntValES3_EEvPNS2_15FunctionContextERKT_PT0_",
-                    prefix + "3sumIN9doris_udf9BigIntValES3_EEvPNS2_15FunctionContextERKT_PT0_",
+                    Lists.<Type>newArrayList(Type.TINYINT), Type.BIGINT, Type.BIGINT, "",
+                    "",
+                    "",
                     null, null,
-                    prefix + "10sum_removeIN9doris_udf9BigIntValES3_EEvPNS2_15FunctionContextERKT_PT0_",
+                    "",
                     null, false, true, false, true));
             addBuiltin(AggregateFunction.createBuiltin(name,
-                    Lists.<Type>newArrayList(Type.SMALLINT), Type.BIGINT, Type.BIGINT, initNull,
-                    prefix + "3sumIN9doris_udf9BigIntValES3_EEvPNS2_15FunctionContextERKT_PT0_",
-                    prefix + "3sumIN9doris_udf9BigIntValES3_EEvPNS2_15FunctionContextERKT_PT0_",
+                    Lists.<Type>newArrayList(Type.SMALLINT), Type.BIGINT, Type.BIGINT, "",
+                    "",
+                    "",
                     null, null,
-                    prefix + "10sum_removeIN9doris_udf9BigIntValES3_EEvPNS2_15FunctionContextERKT_PT0_",
+                    "",
                     null, false, true, false, true));
             addBuiltin(AggregateFunction.createBuiltin(name,
-                    Lists.<Type>newArrayList(Type.INT), Type.BIGINT, Type.BIGINT, initNull,
-                    prefix + "3sumIN9doris_udf9BigIntValES3_EEvPNS2_15FunctionContextERKT_PT0_",
-                    prefix + "3sumIN9doris_udf9BigIntValES3_EEvPNS2_15FunctionContextERKT_PT0_",
+                    Lists.<Type>newArrayList(Type.INT), Type.BIGINT, Type.BIGINT, "",
+                    "",
+                    "",
                     null, null,
-                    prefix + "10sum_removeIN9doris_udf9BigIntValES3_EEvPNS2_15FunctionContextERKT_PT0_",
+                    "",
                     null, false, true, false, true));
             addBuiltin(AggregateFunction.createBuiltin(name,
-                    Lists.<Type>newArrayList(Type.BIGINT), Type.BIGINT, Type.BIGINT, initNull,
-                    prefix + "3sumIN9doris_udf9BigIntValES3_EEvPNS2_15FunctionContextERKT_PT0_",
-                    prefix + "3sumIN9doris_udf9BigIntValES3_EEvPNS2_15FunctionContextERKT_PT0_",
+                    Lists.<Type>newArrayList(Type.BIGINT), Type.BIGINT, Type.BIGINT, "",
+                    "",
+                    "",
                     null, null,
-                    prefix + "10sum_removeIN9doris_udf9BigIntValES3_EEvPNS2_15FunctionContextERKT_PT0_",
+                    "",
                     null, false, true, false, true));
             addBuiltin(AggregateFunction.createBuiltin(name,
-                    Lists.<Type>newArrayList(Type.DOUBLE), Type.DOUBLE, Type.DOUBLE, initNull,
-                    prefix + "3sumIN9doris_udf9DoubleValES3_EEvPNS2_15FunctionContextERKT_PT0_",
-                    prefix + "3sumIN9doris_udf9DoubleValES3_EEvPNS2_15FunctionContextERKT_PT0_",
+                    Lists.<Type>newArrayList(Type.DOUBLE), Type.DOUBLE, Type.DOUBLE, "",
+                    "",
+                    "",
                     null, null,
-                    prefix + "10sum_removeIN9doris_udf9DoubleValES3_EEvPNS2_15FunctionContextERKT_PT0_",
+                    "",
                     null, false, true, false, true));
             addBuiltin(AggregateFunction.createBuiltin(name,
-                    Lists.<Type>newArrayList(Type.MAX_DECIMALV2_TYPE), Type.MAX_DECIMALV2_TYPE, Type.MAX_DECIMALV2_TYPE, initNull,
-                    prefix + "3sumIN9doris_udf12DecimalV2ValES3_EEvPNS2_15FunctionContextERKT_PT0_",
-                    prefix + "3sumIN9doris_udf12DecimalV2ValES3_EEvPNS2_15FunctionContextERKT_PT0_",
+                    Lists.<Type>newArrayList(Type.MAX_DECIMALV2_TYPE), Type.MAX_DECIMALV2_TYPE, Type.MAX_DECIMALV2_TYPE, "",
+                    "",
+                    "",
                     null, null,
-                    prefix + "10sum_removeIN9doris_udf12DecimalV2ValES3_EEvPNS2_15FunctionContextERKT_PT0_",
+                    "",
                     null, false, true, false, true));
             addBuiltin(AggregateFunction.createBuiltin(name,
-                    Lists.<Type>newArrayList(Type.DECIMAL32), ScalarType.DECIMAL128, Type.DECIMAL128, initNull,
-                    prefix + "3sumIN9doris_udf12DecimalV2ValES3_EEvPNS2_15FunctionContextERKT_PT0_",
-                    prefix + "3sumIN9doris_udf12DecimalV2ValES3_EEvPNS2_15FunctionContextERKT_PT0_",
+                    Lists.<Type>newArrayList(Type.DECIMAL32), ScalarType.DECIMAL128, Type.DECIMAL128, "",
+                    "",
+                    "",
                     null, null,
-                    prefix + "10sum_removeIN9doris_udf12DecimalV2ValES3_EEvPNS2_15FunctionContextERKT_PT0_",
+                    "",
                     null, false, true, false, true));
             addBuiltin(AggregateFunction.createBuiltin(name,
-                    Lists.<Type>newArrayList(Type.DECIMAL64), Type.DECIMAL128, Type.DECIMAL128, initNull,
-                    prefix + "3sumIN9doris_udf12DecimalV2ValES3_EEvPNS2_15FunctionContextERKT_PT0_",
-                    prefix + "3sumIN9doris_udf12DecimalV2ValES3_EEvPNS2_15FunctionContextERKT_PT0_",
+                    Lists.<Type>newArrayList(Type.DECIMAL64), Type.DECIMAL128, Type.DECIMAL128, "",
+                    "",
+                    "",
                     null, null,
-                    prefix + "10sum_removeIN9doris_udf12DecimalV2ValES3_EEvPNS2_15FunctionContextERKT_PT0_",
+                    "",
                     null, false, true, false, true));
             addBuiltin(AggregateFunction.createBuiltin(name,
-                    Lists.<Type>newArrayList(Type.DECIMAL128), Type.DECIMAL128, Type.DECIMAL128, initNull,
-                    prefix + "3sumIN9doris_udf12DecimalV2ValES3_EEvPNS2_15FunctionContextERKT_PT0_",
-                    prefix + "3sumIN9doris_udf12DecimalV2ValES3_EEvPNS2_15FunctionContextERKT_PT0_",
+                    Lists.<Type>newArrayList(Type.DECIMAL128), Type.DECIMAL128, Type.DECIMAL128, "",
+                    "",
+                    "",
                     null, null,
-                    prefix + "10sum_removeIN9doris_udf12DecimalV2ValES3_EEvPNS2_15FunctionContextERKT_PT0_",
+                    "",
                     null, false, true, false, true));
             addBuiltin(AggregateFunction.createBuiltin(name,
-                    Lists.<Type>newArrayList(Type.LARGEINT), Type.LARGEINT, Type.LARGEINT, initNull,
-                    prefix + "3sumIN9doris_udf11LargeIntValES3_EEvPNS2_15FunctionContextERKT_PT0_",
-                    prefix + "3sumIN9doris_udf11LargeIntValES3_EEvPNS2_15FunctionContextERKT_PT0_",
+                    Lists.<Type>newArrayList(Type.LARGEINT), Type.LARGEINT, Type.LARGEINT, "",
+                    "",
+                    "",
                     null, null,
-                    prefix + "10sum_removeIN9doris_udf11LargeIntValES3_EEvPNS2_15FunctionContextERKT_PT0_",
+                    "",
                     null, false, true, false, true));
         }
 
@@ -2024,29 +1265,29 @@ public class FunctionSet<T> {
         //vec percentile and percentile_approx
         addBuiltin(AggregateFunction.createBuiltin("percentile",
                 Lists.newArrayList(Type.BIGINT, Type.DOUBLE), Type.DOUBLE, Type.VARCHAR,
-                prefix + "15percentile_initEPN9doris_udf15FunctionContextEPNS1_9StringValE",
-                prefix + "17percentile_updateIN9doris_udf9BigIntValEEEvPNS2_15FunctionContextERKT_RKNS2_9DoubleValEPNS2_9StringValE",
-                prefix + "16percentile_mergeEPN9doris_udf15FunctionContextERKNS1_9StringValEPS4_",
-                prefix + "20percentile_serializeEPN9doris_udf15FunctionContextERKNS1_9StringValE",
-                prefix + "19percentile_finalizeEPN9doris_udf15FunctionContextERKNS1_9StringValE",
+                "",
+                "",
+                "",
+                "",
+                "",
                 false, true, false, true));
 
         addBuiltin(AggregateFunction.createBuiltin("percentile_approx",
                 Lists.<Type>newArrayList(Type.DOUBLE, Type.DOUBLE), Type.DOUBLE, Type.VARCHAR,
-                prefix + "22percentile_approx_initEPN9doris_udf15FunctionContextEPNS1_9StringValE",
-                prefix + "24percentile_approx_updateIN9doris_udf9DoubleValEEEvPNS2_15FunctionContextERKT_RKS3_PNS2_9StringValE",
-                prefix + "23percentile_approx_mergeEPN9doris_udf15FunctionContextERKNS1_9StringValEPS4_",
-                prefix + "27percentile_approx_serializeEPN9doris_udf15FunctionContextERKNS1_9StringValE",
-                prefix + "26percentile_approx_finalizeEPN9doris_udf15FunctionContextERKNS1_9StringValE",
+                "",
+                "",
+                "",
+                "",
+                "",
                 false, true, false, true));
 
         addBuiltin(AggregateFunction.createBuiltin("percentile_approx",
                 Lists.<Type>newArrayList(Type.DOUBLE, Type.DOUBLE, Type.DOUBLE), Type.DOUBLE, Type.VARCHAR,
-                prefix + "22percentile_approx_initEPN9doris_udf15FunctionContextEPNS1_9StringValE",
-                prefix + "24percentile_approx_updateIN9doris_udf9DoubleValEEEvPNS2_15FunctionContextERKT_RKS3_SA_PNS2_9StringValE",
-                prefix + "23percentile_approx_mergeEPN9doris_udf15FunctionContextERKNS1_9StringValEPS4_",
-                prefix + "27percentile_approx_serializeEPN9doris_udf15FunctionContextERKNS1_9StringValE",
-                prefix + "26percentile_approx_finalizeEPN9doris_udf15FunctionContextERKNS1_9StringValE",
+                "",
+                "",
+                "",
+                "",
+                "",
                 false, true, false, true));
 
         addBuiltin(AggregateFunction.createBuiltin("percentile_array",
@@ -2156,54 +1397,54 @@ public class FunctionSet<T> {
 
         // Group_concat(string) vectorized
         addBuiltin(AggregateFunction.createBuiltin("group_concat", Lists.<Type>newArrayList(Type.VARCHAR), Type.VARCHAR,
-                Type.VARCHAR, initNullString, "", "", "", "", false, true, false, true));
+                Type.VARCHAR, "", "", "", "", "", false, true, false, true));
         addBuiltin(AggregateFunction.createBuiltin("multi_distinct_group_concat", Lists.<Type>newArrayList(Type.VARCHAR), Type.VARCHAR,
-                Type.VARCHAR, initNullString, "", "", "", "", false, true, false, true));
+                Type.VARCHAR, "", "", "", "", "", false, true, false, true));
         addBuiltin(AggregateFunction.createBuiltin("group_concat", Lists.<Type>newArrayList(Type.CHAR), Type.CHAR,
-                Type.CHAR, initNullString, "", "", "", "", false, true, false, true));
+                Type.CHAR, "", "", "", "", "", false, true, false, true));
         addBuiltin(AggregateFunction.createBuiltin("multi_distinct_group_concat", Lists.<Type>newArrayList(Type.CHAR), Type.CHAR,
-                Type.CHAR, initNullString, "", "", "", "", false, true, false, true));
+                Type.CHAR, "", "", "", "", "", false, true, false, true));
         addBuiltin(AggregateFunction.createBuiltin("group_concat", Lists.<Type>newArrayList(Type.STRING), Type.STRING,
-                Type.STRING, initNullString, "", "", "", "", false, true, false, true));
+                Type.STRING, "", "", "", "", "", false, true, false, true));
         addBuiltin(AggregateFunction.createBuiltin("multi_distinct_group_concat", Lists.<Type>newArrayList(Type.STRING), Type.STRING,
-                Type.STRING, initNullString, "", "", "", "", false, true, false, true));
+                Type.STRING, "", "", "", "", "", false, true, false, true));
         // Group_concat(string, string) vectorized
         addBuiltin(AggregateFunction.createBuiltin("group_concat", Lists.<Type>newArrayList(Type.VARCHAR, Type.VARCHAR),
-                Type.VARCHAR, Type.VARCHAR, initNullString, "", "", "", "", false, true, false, true));
+                Type.VARCHAR, Type.VARCHAR, "", "", "", "", "", false, true, false, true));
         addBuiltin(AggregateFunction.createBuiltin("multi_distinct_group_concat", Lists.<Type>newArrayList(Type.VARCHAR, Type.VARCHAR),
-                Type.VARCHAR, Type.VARCHAR, initNullString, "", "", "", "", false, true, false, true));
+                Type.VARCHAR, Type.VARCHAR, "", "", "", "", "", false, true, false, true));
         addBuiltin(AggregateFunction.createBuiltin("group_concat", Lists.<Type>newArrayList(Type.CHAR, Type.CHAR),
-                Type.CHAR, Type.CHAR, initNullString, "", "", "", "", false, true, false, true));
+                Type.CHAR, Type.CHAR, "", "", "", "", "", false, true, false, true));
         addBuiltin(AggregateFunction.createBuiltin("multi_distinct_group_concat", Lists.<Type>newArrayList(Type.CHAR, Type.CHAR),
-                Type.CHAR, Type.CHAR, initNullString, "", "", "", "", false, true, false, true));
+                Type.CHAR, Type.CHAR, "", "", "", "", "", false, true, false, true));
         addBuiltin(AggregateFunction.createBuiltin("group_concat", Lists.<Type>newArrayList(Type.STRING, Type.STRING),
-                Type.STRING, Type.STRING, initNullString, "", "", "", "", false, true, false, true));
+                Type.STRING, Type.STRING, "", "", "", "", "", false, true, false, true));
         addBuiltin(AggregateFunction.createBuiltin("multi_distinct_group_concat", Lists.<Type>newArrayList(Type.STRING, Type.STRING),
-                Type.STRING, Type.STRING, initNullString, "", "", "", "", false, true, false, true));
+                Type.STRING, Type.STRING, "", "", "", "", "", false, true, false, true));
 
         // analytic functions
         // Rank
         addBuiltin(AggregateFunction.createAnalyticBuiltin("rank",
                 Lists.<Type>newArrayList(), Type.BIGINT, Type.VARCHAR,
-                prefix + "9rank_initEPN9doris_udf15FunctionContextEPNS1_9StringValE",
-                prefix + "11rank_updateEPN9doris_udf15FunctionContextEPNS1_9StringValE",
+                "",
+                "",
                 null,
-                prefix + "14rank_get_valueEPN9doris_udf15FunctionContextERNS1_9StringValE",
-                prefix + "13rank_finalizeEPN9doris_udf15FunctionContextERNS1_9StringValE"));
+                "",
+                ""));
         // Dense rank
         addBuiltin(AggregateFunction.createAnalyticBuiltin("dense_rank",
                 Lists.<Type>newArrayList(), Type.BIGINT, Type.VARCHAR,
-                prefix + "9rank_initEPN9doris_udf15FunctionContextEPNS1_9StringValE",
-                prefix + "17dense_rank_updateEPN9doris_udf15FunctionContextEPNS1_9StringValE",
+                "",
+                "",
                 null,
-                prefix + "20dense_rank_get_valueEPN9doris_udf15FunctionContextERNS1_9StringValE",
-                prefix + "13rank_finalizeEPN9doris_udf15FunctionContextERNS1_9StringValE"));
+                "",
+                ""));
         //row_number
         addBuiltin(AggregateFunction.createAnalyticBuiltin("row_number",
                 new ArrayList<Type>(), Type.BIGINT, Type.BIGINT,
-                prefix + "18init_zero_not_nullIN9doris_udf9BigIntValEEEvPNS2_15FunctionContextEPT_",
-                prefix + "17count_star_updateEPN9doris_udf15FunctionContextEPNS1_9BigIntValE",
-                prefix + "11count_mergeEPN9doris_udf15FunctionContextERKNS1_9BigIntValEPS4_",
+                "",
+                "",
+                "",
                 null, null));
         //ntile, we use rewrite sql for ntile, actually we don't really need this.
         addBuiltin(AggregateFunction.createAnalyticBuiltin("ntile",
@@ -2212,25 +1453,25 @@ public class FunctionSet<T> {
         //vec Rank
         addBuiltin(AggregateFunction.createAnalyticBuiltin("rank",
                 Lists.<Type>newArrayList(), Type.BIGINT, Type.VARCHAR,
-                prefix + "9rank_initEPN9doris_udf15FunctionContextEPNS1_9StringValE",
-                prefix + "11rank_updateEPN9doris_udf15FunctionContextEPNS1_9StringValE",
+                "",
+                "",
                 null,
-                prefix + "14rank_get_valueEPN9doris_udf15FunctionContextERNS1_9StringValE",
-                prefix + "13rank_finalizeEPN9doris_udf15FunctionContextERNS1_9StringValE", true));
+                "",
+                "", true));
         //vec Dense rank
         addBuiltin(AggregateFunction.createAnalyticBuiltin("dense_rank",
                 Lists.<Type>newArrayList(), Type.BIGINT, Type.VARCHAR,
-                prefix + "9rank_initEPN9doris_udf15FunctionContextEPNS1_9StringValE",
-                prefix + "17dense_rank_updateEPN9doris_udf15FunctionContextEPNS1_9StringValE",
+                "",
+                "",
                 null,
-                prefix + "20dense_rank_get_valueEPN9doris_udf15FunctionContextERNS1_9StringValE",
-                prefix + "13rank_finalizeEPN9doris_udf15FunctionContextERNS1_9StringValE", true));
+                "",
+                "", true));
         //vec row_number
         addBuiltin(AggregateFunction.createAnalyticBuiltin("row_number",
                 new ArrayList<Type>(), Type.BIGINT, Type.BIGINT,
-                prefix + "18init_zero_not_nullIN9doris_udf9BigIntValEEEvPNS2_15FunctionContextEPT_",
-                prefix + "17count_star_updateEPN9doris_udf15FunctionContextEPNS1_9BigIntValE",
-                prefix + "11count_mergeEPN9doris_udf15FunctionContextERKNS1_9BigIntValEPS4_",
+                "",
+                "",
+                "",
                 null, null, true));
         //vec ntile
         addBuiltin(AggregateFunction.createAnalyticBuiltin("ntile",
@@ -2245,67 +1486,67 @@ public class FunctionSet<T> {
             }
             addBuiltin(AggregateFunction.createAnalyticBuiltin(
                     "first_value", Lists.newArrayList(t), t, t,
-                    t.isStringType() ? initNullString : initNull,
-                    prefix + FIRST_VALUE_UPDATE_SYMBOL.get(t),
+                    "",
+                    "",
                     null,
-                    t.isStringType()  ? stringValGetValue : null,
-                    t.isStringType()  ? stringValSerializeOrFinalize : null));
+                    "",
+                    ""));
 
             addBuiltin(AggregateFunction.createAnalyticBuiltin(
                     "last_value", Lists.newArrayList(t), t, t,
-                    t.isStringType() ? initNullString : initNull,
-                    prefix + LAST_VALUE_UPDATE_SYMBOL.get(t),
-                    prefix + LAST_VALUE_REMOVE_SYMBOL.get(t),
-                    t.isStringType() ? stringValGetValue : null,
-                    t.isStringType() ? stringValSerializeOrFinalize : null));
+                    "",
+                    "",
+                    "",
+                    "",
+                    ""));
 
             //vec first_value
             addBuiltin(AggregateFunction.createAnalyticBuiltin(
                     "first_value", Lists.newArrayList(t), t, t,
-                    t.isStringType() ? initNullString : initNull,
-                    prefix + FIRST_VALUE_UPDATE_SYMBOL.get(t),
+                    "",
+                    "",
                     null,
-                    t.isStringType()  ? stringValGetValue : null,
-                    t.isStringType()  ? stringValSerializeOrFinalize : null, true));
+                    "",
+                    "", true));
             // Implements FIRST_VALUE for some windows that require rewrites during planning.
             addBuiltin(AggregateFunction.createAnalyticBuiltin(
                     "first_value_rewrite", Lists.newArrayList(t, Type.BIGINT), t, t,
-                    t.isStringType() ? initNullString : initNull,
-                    prefix + FIRST_VALUE_REWRITE_UPDATE_SYMBOL.get(t),
+                    "",
+                    "",
                     null,
-                    t.isStringType() ? stringValGetValue : null,
-                    t.isStringType() ? stringValSerializeOrFinalize : null,
+                    "",
+                    "",
                     false, false));
             //vec last_value
             addBuiltin(AggregateFunction.createAnalyticBuiltin(
                     "last_value", Lists.newArrayList(t), t, t,
-                    t.isStringType() ? initNullString : initNull,
-                    prefix + LAST_VALUE_UPDATE_SYMBOL.get(t),
-                    prefix + LAST_VALUE_REMOVE_SYMBOL.get(t),
-                    t.isStringType() ? stringValGetValue : null,
-                    t.isStringType() ? stringValSerializeOrFinalize : null, true));
+                    "",
+                    "",
+                    "",
+                    "",
+                    "", true));
 
             addBuiltin(AggregateFunction.createAnalyticBuiltin(
                     "lag", Lists.newArrayList(t, Type.BIGINT, t), t, t,
-                    prefix + OFFSET_FN_INIT_SYMBOL.get(t),
-                    prefix + OFFSET_FN_UPDATE_SYMBOL.get(t),
-                    null, t.isStringType() ? stringValGetValue : null, null));
+                    "",
+                    "",
+                    null, "", null));
 
             addBuiltin(AggregateFunction.createAnalyticBuiltin(
                     "lead", Lists.newArrayList(t, Type.BIGINT, t), t, t,
-                    prefix + OFFSET_FN_INIT_SYMBOL.get(t),
-                    prefix + OFFSET_FN_UPDATE_SYMBOL.get(t),
-                    null, t.isStringType() ? stringValGetValue : null, null));
+                    "",
+                    "",
+                    null, "", null));
             //vec
             addBuiltin(AggregateFunction.createAnalyticBuiltin(
                     "lag", Lists.newArrayList(t, Type.BIGINT, t), t, t,
-                    prefix + OFFSET_FN_INIT_SYMBOL.get(t),
-                    prefix + OFFSET_FN_UPDATE_SYMBOL.get(t),
+                    "",
+                    "",
                     null, null, null, true));
             addBuiltin(AggregateFunction.createAnalyticBuiltin(
                     "lead", Lists.newArrayList(t, Type.BIGINT, t), t, t,
-                    prefix + OFFSET_FN_INIT_SYMBOL.get(t),
-                    prefix + OFFSET_FN_UPDATE_SYMBOL.get(t),
+                    "",
+                    "",
                     null, null, null, true));
 
             // lead() and lag() the default offset and the default value should be
@@ -2406,4 +1647,8 @@ public class FunctionSet<T> {
                     "_ZN5doris19DummyTableFunctions7explodeEPN9doris_udf15FunctionContextERKNS1_13CollectionValE");
         }
     }
+
+    public boolean isAggFunctionName(String name) {
+        return aggFunctionNames.contains(name);
+    }
 }
diff --git a/fe/fe-core/src/main/java/org/apache/doris/catalog/MaterializedIndexMeta.java b/fe/fe-core/src/main/java/org/apache/doris/catalog/MaterializedIndexMeta.java
index ce1d76e3a0..1d3d353bf3 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/catalog/MaterializedIndexMeta.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/MaterializedIndexMeta.java
@@ -216,7 +216,7 @@ public class MaterializedIndexMeta implements Writable, GsonPostProcessable {
                 }
 
                 if (matchedColumn != null) {
-                    LOG.debug("trans old MV, MV: {},  DefineExpr:{}, DefineName:{}",
+                    LOG.info("trans old MV: {},  DefineExpr:{}, DefineName:{}",
                             matchedColumn.getName(), entry.getValue().toSqlWithoutTbl(), entry.getKey());
                     matchedColumn.setDefineExpr(entry.getValue());
                     matchedColumn.setDefineName(entry.getKey());
diff --git a/fe/fe-core/src/main/java/org/apache/doris/catalog/external/HMSExternalTable.java b/fe/fe-core/src/main/java/org/apache/doris/catalog/external/HMSExternalTable.java
index 487b4a3e61..ebd9da9425 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/catalog/external/HMSExternalTable.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/external/HMSExternalTable.java
@@ -411,9 +411,8 @@ public class HMSExternalTable extends ExternalTable {
             tmpSchema.add(new Column(field.getName(),
                     HiveMetaStoreClientHelper.hiveTypeToDorisType(field.getType(),
                             IcebergExternalTable.ICEBERG_DATETIME_SCALE_MS),
-                    true, null,
-                    true, false, null, field.getComment(), true, null,
-                    schema.caseInsensitiveFindField(field.getName()).fieldId(), null, null, null, null));
+                    true, null, true, false, null, field.getComment(), true, null,
+                    schema.caseInsensitiveFindField(field.getName()).fieldId(), null));
         }
         return tmpSchema;
     }
diff --git a/fe/fe-core/src/main/java/org/apache/doris/external/jdbc/JdbcMySQLClient.java b/fe/fe-core/src/main/java/org/apache/doris/external/jdbc/JdbcMySQLClient.java
index 5c5f33f30e..9863bcc1c2 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/external/jdbc/JdbcMySQLClient.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/external/jdbc/JdbcMySQLClient.java
@@ -196,8 +196,7 @@ public class JdbcMySQLClient extends JdbcClient {
             dorisTableSchema.add(new Column(field.getColumnName(),
                     jdbcTypeToDoris(field), field.isKey(), null,
                     field.isAllowNull(), field.isAutoincrement(), field.getDefaultValue(), field.getRemarks(),
-                    true, null, -1, null,
-                    null, null, null));
+                    true, null, -1, null));
         }
         return dorisTableSchema;
     }
diff --git a/regression-test/data/mv_p0/agg_state/test_agg_state_max_by.out b/regression-test/data/mv_p0/agg_state/test_agg_state_max_by.out
new file mode 100644
index 0000000000..e8082f928a
--- /dev/null
+++ b/regression-test/data/mv_p0/agg_state/test_agg_state_max_by.out
@@ -0,0 +1,8 @@
+-- This file is automatically generated. You should know what you did if you want to edit this
+-- !select_star --
+\N	4	\N	d
+-4	-4	-4	d
+1	1	1	a
+2	2	2	b
+3	-3	\N	c
+
diff --git a/regression-test/suites/mv_p0/sum_divede_count/sum_devide_count.groovy b/regression-test/suites/mv_p0/agg_state/test_agg_state_max_by.groovy
similarity index 55%
copy from regression-test/suites/mv_p0/sum_divede_count/sum_devide_count.groovy
copy to regression-test/suites/mv_p0/agg_state/test_agg_state_max_by.groovy
index 4e045c18c3..071f36bb69 100644
--- a/regression-test/suites/mv_p0/sum_divede_count/sum_devide_count.groovy
+++ b/regression-test/suites/mv_p0/agg_state/test_agg_state_max_by.groovy
@@ -17,7 +17,9 @@
 
 import org.codehaus.groovy.runtime.IOGroovyMethods
 
-suite ("sum_devide_count") {
+suite ("test_agg_state_max_by") {
+
+    sql """set enable_nereids_planner=true"""
 
     sql """ DROP TABLE IF EXISTS d_table; """
 
@@ -36,39 +38,18 @@ suite ("sum_devide_count") {
     sql "insert into d_table select 1,1,1,'a';"
     sql "insert into d_table select 2,2,2,'b';"
     sql "insert into d_table select 3,-3,null,'c';"
+    sql "insert into d_table(k4,k2) values('d',4);"
 
-    test {
-        sql "create materialized view kavg as select k1,k4,avg(k2) from d_table group by k1,k4;"
-        exception "errCode = 2,"
-    }
-
-    createMV ("create materialized view kavg as select k1,k4,sum(k2),count(k2) from d_table group by k1,k4;")
+    createMV("create materialized view k1mb as select k1,max_by(k2,k3) from d_table group by k1;")
 
     sql "insert into d_table select -4,-4,-4,'d';"
-    sql "insert into d_table select 3,2,null,'c';"
-    qt_select_star "select * from d_table order by k1,k2,k3,k4;"
-
-    explain {
-        sql("select k1,k4,sum(k2)/count(k2) from d_table group by k1,k4 order by k1,k4;")
-        contains "(kavg)"
-    }
-    qt_select_mv "select k1,k4,sum(k2)/count(k2) from d_table group by k1,k4 order by k1,k4;"
-
-    explain {
-        sql("select k1,sum(k2)/count(k2) from d_table group by k1 order by k1;")
-        contains "(kavg)"
-    }
-    qt_select_mv "select k1,sum(k2)/count(k2) from d_table group by k1 order by k1;"
-
-    explain {
-        sql("select k4,sum(k2)/count(k2) from d_table group by k4 order by k4;")
-        contains "(kavg)"
-    }
-    qt_select_mv "select k4,sum(k2)/count(k2) from d_table group by k4 order by k4;"
 
+    qt_select_star "select * from d_table order by k1;"
+/*
     explain {
-        sql("select sum(k2)/count(k2) from d_table;")
-        contains "(kavg)"
+        sql("select k1,max_by(k2,k3) from d_table group by k1 order by k1;")
+        contains "(k1mb)"
     }
-    qt_select_mv "select sum(k2)/count(k2) from d_table;"
+    qt_select_mv "select k1,max_by(k2,k3) from d_table group by k1 order by k1;"
+*/
 }
diff --git a/regression-test/suites/mv_p0/sum_divede_count/sum_devide_count.groovy b/regression-test/suites/mv_p0/sum_divede_count/sum_devide_count.groovy
index 4e045c18c3..cfe5d22c18 100644
--- a/regression-test/suites/mv_p0/sum_divede_count/sum_devide_count.groovy
+++ b/regression-test/suites/mv_p0/sum_divede_count/sum_devide_count.groovy
@@ -37,11 +37,6 @@ suite ("sum_devide_count") {
     sql "insert into d_table select 2,2,2,'b';"
     sql "insert into d_table select 3,-3,null,'c';"
 
-    test {
-        sql "create materialized view kavg as select k1,k4,avg(k2) from d_table group by k1,k4;"
-        exception "errCode = 2,"
-    }
-
     createMV ("create materialized view kavg as select k1,k4,sum(k2),count(k2) from d_table group by k1,k4;")
 
     sql "insert into d_table select -4,-4,-4,'d';"
diff --git a/regression-test/suites/nereids_syntax_p0/mv/newMv/sum_devide_count.groovy b/regression-test/suites/nereids_syntax_p0/mv/newMv/sum_devide_count.groovy
index 17a08abc11..e881ed3bd8 100644
--- a/regression-test/suites/nereids_syntax_p0/mv/newMv/sum_devide_count.groovy
+++ b/regression-test/suites/nereids_syntax_p0/mv/newMv/sum_devide_count.groovy
@@ -39,11 +39,6 @@ suite ("sum_devide_count") {
     sql "SET experimental_enable_nereids_planner=true"
     sql "SET enable_fallback_to_original_planner=false"
 
-    test {
-        sql "create materialized view kavg as select k1,k4,avg(k2) from sum_devide_count group by k1,k4;"
-        exception "errCode = 2,"
-    }
-
     createMV ("create materialized view kavg as select k1,k4,sum(k2),count(k2) from sum_devide_count group by k1,k4;")
 
     sleep(3000)


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