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 800de168db [Chore](function) clean some unused function symbols 
(#19649)
800de168db is described below

commit 800de168db9f075c0be166cb3e6b944dd7495d1d
Author: Pxl <[email protected]>
AuthorDate: Wed May 17 15:31:51 2023 +0800

    [Chore](function) clean some unused function symbols (#19649)
    
    clean some unused function symbols
---
 be/src/util/thrift_rpc_helper.cpp                  |   2 +-
 .../org/apache/doris/analysis/ArithmeticExpr.java  | 106 +--
 .../java/org/apache/doris/analysis/CastExpr.java   |  41 +-
 .../org/apache/doris/analysis/FunctionArgs.java    |  51 --
 .../org/apache/doris/analysis/InPredicate.java     |  33 +-
 .../org/apache/doris/analysis/IsNullPredicate.java |  20 +-
 .../apache/doris/catalog/AggregateFunction.java    |  51 +-
 .../java/org/apache/doris/catalog/Function.java    | 110 +--
 .../java/org/apache/doris/catalog/FunctionSet.java | 902 +--------------------
 .../org/apache/doris/catalog/ScalarFunction.java   | 207 +----
 10 files changed, 111 insertions(+), 1412 deletions(-)

diff --git a/be/src/util/thrift_rpc_helper.cpp 
b/be/src/util/thrift_rpc_helper.cpp
index 309d2fcedf..bc0861d7ff 100644
--- a/be/src/util/thrift_rpc_helper.cpp
+++ b/be/src/util/thrift_rpc_helper.cpp
@@ -93,7 +93,7 @@ Status ThriftRpcHelper::rpc(const std::string& ip, const 
int32_t port,
                 
std::chrono::milliseconds(config::thrift_client_retry_interval_ms * 2));
         // just reopen to disable this connection
         client.reopen(timeout_ms);
-        return Status::RpcError("failed to call frontend service");
+        return Status::RpcError("failed to call frontend service, reason: {}", 
e.what());
     }
     return Status::OK();
 }
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/analysis/ArithmeticExpr.java 
b/fe/fe-core/src/main/java/org/apache/doris/analysis/ArithmeticExpr.java
index 0efc993d1e..c863f06194 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/ArithmeticExpr.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/ArithmeticExpr.java
@@ -104,68 +104,6 @@ public class ArithmeticExpr extends Expr {
     }
 
     public static void initBuiltins(FunctionSet functionSet) {
-        for (Type t : Type.getNumericTypes()) {
-            NullableMode mode = t.isDecimalV3() ? NullableMode.CUSTOM : 
NullableMode.DEPEND_ON_ARGUMENT;
-            functionSet.addBuiltin(ScalarFunction.createBuiltinOperator(
-                    Operator.MULTIPLY.getName(), Lists.newArrayList(t, t), t, 
mode));
-            functionSet.addBuiltin(ScalarFunction.createBuiltinOperator(
-                    Operator.ADD.getName(), Lists.newArrayList(t, t), t, 
mode));
-            functionSet.addBuiltin(ScalarFunction.createBuiltinOperator(
-                    Operator.SUBTRACT.getName(), Lists.newArrayList(t, t), t, 
mode));
-        }
-        functionSet.addBuiltin(ScalarFunction.createBuiltinOperator(
-                Operator.DIVIDE.getName(),
-                Lists.<Type>newArrayList(Type.DOUBLE, Type.DOUBLE),
-                Type.DOUBLE, Function.NullableMode.ALWAYS_NULLABLE));
-        functionSet.addBuiltin(ScalarFunction.createBuiltinOperator(
-                Operator.DIVIDE.getName(),
-                Lists.<Type>newArrayList(Type.MAX_DECIMALV2_TYPE, 
Type.MAX_DECIMALV2_TYPE),
-                Type.MAX_DECIMALV2_TYPE, 
Function.NullableMode.ALWAYS_NULLABLE));
-        functionSet.addBuiltin(ScalarFunction.createBuiltinOperator(
-                Operator.DIVIDE.getName(),
-                Lists.<Type>newArrayList(Type.DECIMAL32, Type.DECIMAL32),
-                Type.DECIMAL32, Function.NullableMode.ALWAYS_NULLABLE));
-        functionSet.addBuiltin(ScalarFunction.createBuiltinOperator(
-                Operator.DIVIDE.getName(),
-                Lists.<Type>newArrayList(Type.DECIMAL32, Type.DECIMAL64),
-                Type.DECIMAL32, Function.NullableMode.ALWAYS_NULLABLE));
-        functionSet.addBuiltin(ScalarFunction.createBuiltinOperator(
-                Operator.DIVIDE.getName(),
-                Lists.<Type>newArrayList(Type.DECIMAL32, Type.DECIMAL128),
-                Type.DECIMAL32, Function.NullableMode.ALWAYS_NULLABLE));
-        functionSet.addBuiltin(ScalarFunction.createBuiltinOperator(
-                Operator.DIVIDE.getName(),
-                Lists.<Type>newArrayList(Type.DECIMAL64, Type.DECIMAL64),
-                Type.DECIMAL64, Function.NullableMode.ALWAYS_NULLABLE));
-        functionSet.addBuiltin(ScalarFunction.createBuiltinOperator(
-                Operator.DIVIDE.getName(),
-                Lists.<Type>newArrayList(Type.DECIMAL64, Type.DECIMAL32),
-                Type.DECIMAL64, Function.NullableMode.ALWAYS_NULLABLE));
-        functionSet.addBuiltin(ScalarFunction.createBuiltinOperator(
-                Operator.DIVIDE.getName(),
-                Lists.<Type>newArrayList(Type.DECIMAL64, Type.DECIMAL128),
-                Type.DECIMAL64, Function.NullableMode.ALWAYS_NULLABLE));
-        functionSet.addBuiltin(ScalarFunction.createBuiltinOperator(
-                Operator.DIVIDE.getName(),
-                Lists.<Type>newArrayList(Type.DECIMAL128, Type.DECIMAL128),
-                Type.DECIMAL128, Function.NullableMode.ALWAYS_NULLABLE));
-        functionSet.addBuiltin(ScalarFunction.createBuiltinOperator(
-                Operator.DIVIDE.getName(),
-                Lists.<Type>newArrayList(Type.DECIMAL128, Type.DECIMAL32),
-                Type.DECIMAL128, Function.NullableMode.ALWAYS_NULLABLE));
-        functionSet.addBuiltin(ScalarFunction.createBuiltinOperator(
-                Operator.DIVIDE.getName(),
-                Lists.<Type>newArrayList(Type.DECIMAL128, Type.DECIMAL64),
-                Type.DECIMAL128, Function.NullableMode.ALWAYS_NULLABLE));
-
-        // MOD(), FACTORIAL(), BITAND(), BITOR(), BITXOR(), and BITNOT() are 
registered as
-        // builtins, see palo_functions.py
-        for (Type t : Type.getIntegerTypes()) {
-            functionSet.addBuiltin(ScalarFunction.createBuiltinOperator(
-                    Operator.INT_DIVIDE.getName(), Lists.newArrayList(t, t),
-                    t, Function.NullableMode.ALWAYS_NULLABLE));
-        }
-
         // init vec build function
         for (int i = 0; i < Type.getNumericTypes().size(); i++) {
             Type t1 = Type.getNumericTypes().get(i);
@@ -174,81 +112,81 @@ public class ArithmeticExpr extends Expr {
 
                 Type retType = 
Type.getNextNumType(Type.getAssignmentCompatibleType(t1, t2, false));
                 NullableMode mode = retType.isDecimalV3() ? 
NullableMode.CUSTOM : NullableMode.DEPEND_ON_ARGUMENT;
-                functionSet.addBuiltin(ScalarFunction.createVecBuiltinOperator(
+                functionSet.addBuiltin(ScalarFunction.createBuiltinOperator(
                         Operator.MULTIPLY.getName(), Lists.newArrayList(t1, 
t2), retType, mode));
-                functionSet.addBuiltin(ScalarFunction.createVecBuiltinOperator(
+                functionSet.addBuiltin(ScalarFunction.createBuiltinOperator(
                         Operator.ADD.getName(), Lists.newArrayList(t1, t2), 
retType, mode));
-                functionSet.addBuiltin(ScalarFunction.createVecBuiltinOperator(
+                functionSet.addBuiltin(ScalarFunction.createBuiltinOperator(
                         Operator.SUBTRACT.getName(), Lists.newArrayList(t1, 
t2), retType, mode));
             }
         }
 
-        functionSet.addBuiltin(ScalarFunction.createVecBuiltinOperator(
+        functionSet.addBuiltin(ScalarFunction.createBuiltinOperator(
                 Operator.DIVIDE.getName(),
                 Lists.<Type>newArrayList(Type.DOUBLE, Type.DOUBLE),
                 Type.DOUBLE, Function.NullableMode.ALWAYS_NULLABLE));
-        functionSet.addBuiltin(ScalarFunction.createVecBuiltinOperator(
+        functionSet.addBuiltin(ScalarFunction.createBuiltinOperator(
                 Operator.DIVIDE.getName(),
                 Lists.<Type>newArrayList(Type.MAX_DECIMALV2_TYPE, 
Type.MAX_DECIMALV2_TYPE),
                 Type.MAX_DECIMALV2_TYPE, 
Function.NullableMode.ALWAYS_NULLABLE));
-        functionSet.addBuiltin(ScalarFunction.createVecBuiltinOperator(
+        functionSet.addBuiltin(ScalarFunction.createBuiltinOperator(
                 Operator.DIVIDE.getName(),
                 Lists.<Type>newArrayList(Type.DECIMAL32, Type.DECIMAL32),
                 Type.DECIMAL32, Function.NullableMode.ALWAYS_NULLABLE));
-        functionSet.addBuiltin(ScalarFunction.createVecBuiltinOperator(
+        functionSet.addBuiltin(ScalarFunction.createBuiltinOperator(
                 Operator.DIVIDE.getName(),
                 Lists.<Type>newArrayList(Type.DECIMAL32, Type.DECIMAL64),
                 Type.DECIMAL32, Function.NullableMode.ALWAYS_NULLABLE));
-        functionSet.addBuiltin(ScalarFunction.createVecBuiltinOperator(
+        functionSet.addBuiltin(ScalarFunction.createBuiltinOperator(
                 Operator.DIVIDE.getName(),
                 Lists.<Type>newArrayList(Type.DECIMAL32, Type.DECIMAL128),
                 Type.DECIMAL32, Function.NullableMode.ALWAYS_NULLABLE));
-        functionSet.addBuiltin(ScalarFunction.createVecBuiltinOperator(
+        functionSet.addBuiltin(ScalarFunction.createBuiltinOperator(
                 Operator.DIVIDE.getName(),
                 Lists.<Type>newArrayList(Type.DECIMAL64, Type.DECIMAL64),
                 Type.DECIMAL64, Function.NullableMode.ALWAYS_NULLABLE));
-        functionSet.addBuiltin(ScalarFunction.createVecBuiltinOperator(
+        functionSet.addBuiltin(ScalarFunction.createBuiltinOperator(
                 Operator.DIVIDE.getName(),
                 Lists.<Type>newArrayList(Type.DECIMAL64, Type.DECIMAL128),
                 Type.DECIMAL64, Function.NullableMode.ALWAYS_NULLABLE));
-        functionSet.addBuiltin(ScalarFunction.createVecBuiltinOperator(
+        functionSet.addBuiltin(ScalarFunction.createBuiltinOperator(
                 Operator.DIVIDE.getName(),
                 Lists.<Type>newArrayList(Type.DECIMAL128, Type.DECIMAL128),
                 Type.DECIMAL128, Function.NullableMode.ALWAYS_NULLABLE));
-        functionSet.addBuiltin(ScalarFunction.createVecBuiltinOperator(
+        functionSet.addBuiltin(ScalarFunction.createBuiltinOperator(
                 Operator.DIVIDE.getName(),
                 Lists.<Type>newArrayList(Type.DECIMAL64, Type.DECIMAL32),
                 Type.DECIMAL32, Function.NullableMode.ALWAYS_NULLABLE));
-        functionSet.addBuiltin(ScalarFunction.createVecBuiltinOperator(
+        functionSet.addBuiltin(ScalarFunction.createBuiltinOperator(
                 Operator.DIVIDE.getName(),
                 Lists.<Type>newArrayList(Type.DECIMAL128, Type.DECIMAL64),
                 Type.DECIMAL64, Function.NullableMode.ALWAYS_NULLABLE));
-        functionSet.addBuiltin(ScalarFunction.createVecBuiltinOperator(
+        functionSet.addBuiltin(ScalarFunction.createBuiltinOperator(
                 Operator.DIVIDE.getName(),
                 Lists.<Type>newArrayList(Type.DECIMAL128, Type.DECIMAL32),
                 Type.DECIMAL128, Function.NullableMode.ALWAYS_NULLABLE));
 
-        functionSet.addBuiltin(ScalarFunction.createVecBuiltinOperator(
+        functionSet.addBuiltin(ScalarFunction.createBuiltinOperator(
                 Operator.MOD.getName(),
                 Lists.<Type>newArrayList(Type.FLOAT, Type.FLOAT),
                 Type.FLOAT, Function.NullableMode.ALWAYS_NULLABLE));
-        functionSet.addBuiltin(ScalarFunction.createVecBuiltinOperator(
+        functionSet.addBuiltin(ScalarFunction.createBuiltinOperator(
                 Operator.MOD.getName(),
                 Lists.<Type>newArrayList(Type.DOUBLE, Type.DOUBLE),
                 Type.DOUBLE, Function.NullableMode.ALWAYS_NULLABLE));
-        functionSet.addBuiltin(ScalarFunction.createVecBuiltinOperator(
+        functionSet.addBuiltin(ScalarFunction.createBuiltinOperator(
                 Operator.MOD.getName(),
                 Lists.<Type>newArrayList(Type.MAX_DECIMALV2_TYPE, 
Type.MAX_DECIMALV2_TYPE),
                 Type.MAX_DECIMALV2_TYPE, 
Function.NullableMode.ALWAYS_NULLABLE));
-        functionSet.addBuiltin(ScalarFunction.createVecBuiltinOperator(
+        functionSet.addBuiltin(ScalarFunction.createBuiltinOperator(
                 Operator.MOD.getName(),
                 Lists.<Type>newArrayList(Type.DECIMAL32, Type.DECIMAL32),
                 Type.DECIMAL32, Function.NullableMode.ALWAYS_NULLABLE));
-        functionSet.addBuiltin(ScalarFunction.createVecBuiltinOperator(
+        functionSet.addBuiltin(ScalarFunction.createBuiltinOperator(
                 Operator.MOD.getName(),
                 Lists.<Type>newArrayList(Type.DECIMAL64, Type.DECIMAL64),
                 Type.DECIMAL64, Function.NullableMode.ALWAYS_NULLABLE));
-        functionSet.addBuiltin(ScalarFunction.createVecBuiltinOperator(
+        functionSet.addBuiltin(ScalarFunction.createBuiltinOperator(
                 Operator.MOD.getName(),
                 Lists.<Type>newArrayList(Type.DECIMAL128, Type.DECIMAL128),
                 Type.DECIMAL128, Function.NullableMode.ALWAYS_NULLABLE));
@@ -258,11 +196,11 @@ public class ArithmeticExpr extends Expr {
             for (int j = 0; j < Type.getIntegerTypes().size(); j++) {
                 Type t2 = Type.getIntegerTypes().get(j);
 
-                functionSet.addBuiltin(ScalarFunction.createVecBuiltinOperator(
+                functionSet.addBuiltin(ScalarFunction.createBuiltinOperator(
                         Operator.INT_DIVIDE.getName(), Lists.newArrayList(t1, 
t2),
                         Type.getAssignmentCompatibleType(t1, t2, false),
                         Function.NullableMode.ALWAYS_NULLABLE));
-                functionSet.addBuiltin(ScalarFunction.createVecBuiltinOperator(
+                functionSet.addBuiltin(ScalarFunction.createBuiltinOperator(
                         Operator.MOD.getName(), Lists.newArrayList(t1, t2),
                         Type.getAssignmentCompatibleType(t1, t2, false),
                         Function.NullableMode.ALWAYS_NULLABLE));
diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/CastExpr.java 
b/fe/fe-core/src/main/java/org/apache/doris/analysis/CastExpr.java
index f07a3f48fc..8cc25b9b27 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/CastExpr.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/CastExpr.java
@@ -181,51 +181,16 @@ public class CastExpr extends Expr {
         return targetTypeDef;
     }
 
-    private static boolean disableRegisterCastingFunction(Type fromType, Type 
toType) {
-        // Disable casting from boolean to decimal or datetime or date
-        if (fromType.isBoolean() && toType.isDateType()) {
-            return true;
-        }
-
-        // Disable casting operation of hll/bitmap/quantile_state
-        if (fromType.isObjectStored() || toType.isObjectStored()) {
-            return true;
-        }
-        // Disable no-op casting
-        return fromType.equals(toType) && !fromType.isDecimalV3() && 
!fromType.isDatetimeV2();
-    }
-
     public static void initBuiltins(FunctionSet functionSet) {
-        for (Type fromType : Type.getSupportedTypes()) {
+        for (Type fromType : Type.getTrivialTypes()) {
             if (fromType.isNull()) {
                 continue;
             }
-            for (Type toType : Type.getSupportedTypes()) {
-                if (toType.isNull() || 
disableRegisterCastingFunction(fromType, toType)) {
-                    continue;
-                }
-                String beClass = toType.isDecimalV2() || fromType.isDecimalV2()
-                        ? "DecimalV2Operators" : "CastFunctions";
-                if (fromType.isTime()) {
-                    beClass = "TimeOperators";
-                }
-                String typeName = 
Function.getUdfTypeName(toType.getPrimitiveType());
-                // only refactor date/datetime for vectorized engine.
-                if (toType.getPrimitiveType() == PrimitiveType.DATE) {
-                    typeName = "date_val";
-                }
-                if (toType.getPrimitiveType() == PrimitiveType.DATEV2) {
-                    typeName = "datev2_val";
-                }
-                if (toType.getPrimitiveType() == PrimitiveType.DATETIMEV2) {
-                    typeName = "datetimev2_val";
-                }
-                String beSymbol = "doris::" + beClass + "::cast_to_"
-                        + typeName;
+            for (Type toType : Type.getTrivialTypes()) {
                 
functionSet.addBuiltinBothScalaAndVectorized(ScalarFunction.createBuiltin(getFnName(toType),
                         toType, TYPE_NULLABLE_MODE.get(Pair.of(fromType, 
toType)),
                         Lists.newArrayList(fromType), false,
-                        beSymbol, null, null, true));
+                        null, null, null, true));
             }
         }
     }
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/analysis/FunctionArgs.java 
b/fe/fe-core/src/main/java/org/apache/doris/analysis/FunctionArgs.java
deleted file mode 100644
index cb00b06923..0000000000
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/FunctionArgs.java
+++ /dev/null
@@ -1,51 +0,0 @@
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements.  See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership.  The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License.  You may obtain a copy of the License at
-//
-//   http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied.  See the License for the
-// specific language governing permissions and limitations
-// under the License.
-// This file is copied from
-// 
https://github.com/apache/impala/blob/branch-2.9.0/fe/src/main/java/org/apache/impala/FunctionArgs.java
-// and modified by Doris
-
-package org.apache.doris.analysis;
-
-import org.apache.doris.catalog.Type;
-
-import com.google.common.base.Preconditions;
-import com.google.common.collect.Lists;
-
-import java.util.ArrayList;
-
-// Wrapper class around argument types and if it has varArgs
-public class FunctionArgs {
-    public final ArrayList<Type> argTypes;
-    public       boolean                  hasVarArgs;
-
-    public FunctionArgs() {
-        argTypes = Lists.newArrayList();
-        hasVarArgs = false;
-    }
-
-    public FunctionArgs(ArrayList<Type> argTypes, boolean varArgs) {
-        this.argTypes = argTypes;
-        this.hasVarArgs = varArgs;
-        if (varArgs) {
-            Preconditions.checkState(argTypes.size() > 0);
-        }
-    }
-
-    public void setHasVarArgs(boolean b) {
-        hasVarArgs = b;
-    }
-}
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/analysis/InPredicate.java 
b/fe/fe-core/src/main/java/org/apache/doris/analysis/InPredicate.java
index 2608c060d5..dcc8c694b5 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/InPredicate.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/InPredicate.java
@@ -54,8 +54,6 @@ public class InPredicate extends Predicate {
     private static final String IN_ITERATE = "in_iterate";
     private static final String NOT_IN_ITERATE = "not_in_iterate";
     private final boolean isNotIn;
-    private static final String IN = "in";
-    private static final String NOT_IN = "not_in";
 
     private static final NullLiteral NULL_LITERAL = new NullLiteral();
 
@@ -64,31 +62,29 @@ public class InPredicate extends Predicate {
             if (t.isNull()) {
                 continue;
             }
-            // TODO we do not support codegen for CHAR and the In predicate 
must be codegened
+            // TODO we do not support codegen for CHAR and the In predicate 
must be
+            // codegened
             // because it has variable number of arguments. This will force 
CHARs to be
-            // cast up to strings; meaning that "in" comparisons will not have 
CHAR comparison
+            // cast up to strings; meaning that "in" comparisons will not have 
CHAR
+            // comparison
             // semantics.
             if (t.getPrimitiveType() == PrimitiveType.CHAR) {
                 continue;
             }
 
-            String typeString = Function.getUdfTypeName(t.getPrimitiveType());
-
             
functionSet.addBuiltinBothScalaAndVectorized(ScalarFunction.createBuiltin(IN_ITERATE,
                     Type.BOOLEAN, Lists.newArrayList(t, t), true,
-                    "doris::InPredicate::in_iterate", null, null, false));
+                    null, null, null, false));
             
functionSet.addBuiltinBothScalaAndVectorized(ScalarFunction.createBuiltin(NOT_IN_ITERATE,
                     Type.BOOLEAN, Lists.newArrayList(t, t), true,
-                    "doris::InPredicate::not_in_iterate", null, null, false));
+                    null, null, null, false));
 
-            String prepareFn = "doris::InPredicate::set_lookup_prepare_" + 
typeString;
-            String closeFn = "doris::InPredicate::set_lookup_close_" + 
typeString;
             functionSet.addBuiltin(ScalarFunction.createBuiltin(IN_SET_LOOKUP,
                     Type.BOOLEAN, Lists.newArrayList(t, t), true,
-                    "doris::InPredicate::in_set_lookup", prepareFn, closeFn, 
false));
+                    null, null, null, false));
             
functionSet.addBuiltin(ScalarFunction.createBuiltin(NOT_IN_SET_LOOKUP,
                     Type.BOOLEAN, Lists.newArrayList(t, t), true,
-                    "doris::InPredicate::not_in_set_lookup", prepareFn, 
closeFn, false));
+                    null, null, null, false));
 
         }
     }
@@ -150,7 +146,7 @@ public class InPredicate extends Predicate {
     }
 
     public List<Expr> getListChildren() {
-        return  children.subList(1, children.size());
+        return children.subList(1, children.size());
     }
 
     public boolean isNotIn() {
@@ -176,7 +172,8 @@ public class InPredicate extends Predicate {
         super.analyzeImpl(analyzer);
 
         if (contains(Subquery.class)) {
-            // An [NOT] IN predicate with a subquery must contain two 
children, the second of
+            // An [NOT] IN predicate with a subquery must contain two 
children, the second
+            // of
             // which is a Subquery.
             if (children.size() != 2 || !(getChild(1) instanceof Subquery)) {
                 throw new AnalysisException("Unsupported IN predicate with a 
subquery: " + toSql());
@@ -219,12 +216,14 @@ public class InPredicate extends Predicate {
             }
         }
         boolean useSetLookup = allConstant;
-        // Only lookup fn_ if all subqueries have been rewritten. If the 
second child is a
+        // Only lookup fn_ if all subqueries have been rewritten. If the 
second child is
+        // a
         // subquery, it will have type ArrayType, which cannot be resolved to 
a builtin
         // function and will fail analysis.
-        Type[] argTypes = {getChild(0).type, getChild(1).type};
+        Type[] argTypes = { getChild(0).type, getChild(1).type };
         if (useSetLookup) {
-            // fn = getBuiltinFunction(analyzer, isNotIn ? NOT_IN_SET_LOOKUP : 
IN_SET_LOOKUP,
+            // fn = getBuiltinFunction(analyzer, isNotIn ? NOT_IN_SET_LOOKUP :
+            // IN_SET_LOOKUP,
             // argTypes, Function.CompareMode.IS_NONSTRICT_SUPERTYPE_OF);
             opcode = isNotIn ? TExprOpcode.FILTER_NOT_IN : 
TExprOpcode.FILTER_IN;
         } else {
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/analysis/IsNullPredicate.java 
b/fe/fe-core/src/main/java/org/apache/doris/analysis/IsNullPredicate.java
index 545bfc5185..087b4a7c39 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/IsNullPredicate.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/IsNullPredicate.java
@@ -41,38 +41,26 @@ public class IsNullPredicate extends Predicate {
             if (t.isNull()) {
                 continue;
             }
-            String isNullSymbol;
-            if (t == Type.BOOLEAN) {
-                isNullSymbol = 
"_ZN5doris15IsNullPredicate7is_nullIN9doris_udf10BooleanValE"
-                        + "EES3_PNS2_15FunctionContextERKT_";
-            } else {
-                String udfType = Function.getUdfType(t.getPrimitiveType());
-                isNullSymbol = "_ZN5doris15IsNullPredicate7is_nullIN9doris_udf"
-                        + udfType.length() + udfType
-                        + "EEENS2_10BooleanValEPNS2_15FunctionContextERKT_";
-            }
 
-            
functionSet.addBuiltinBothScalaAndVectorized(ScalarFunction.createBuiltinOperator(IS_NULL,
 isNullSymbol,
+            
functionSet.addBuiltinBothScalaAndVectorized(ScalarFunction.createBuiltinOperator(IS_NULL,
 null,
                     Lists.newArrayList(t), Type.BOOLEAN, 
NullableMode.ALWAYS_NOT_NULLABLE));
 
-            String isNotNullSymbol = isNullSymbol.replace("7is_null", 
"11is_not_null");
             
functionSet.addBuiltinBothScalaAndVectorized(ScalarFunction.createBuiltinOperator(IS_NOT_NULL,
-                    isNotNullSymbol, Lists.newArrayList(t), Type.BOOLEAN, 
NullableMode.ALWAYS_NOT_NULLABLE));
+                    null, Lists.newArrayList(t), Type.BOOLEAN, 
NullableMode.ALWAYS_NOT_NULLABLE));
 
             // for array type
             for (Type complexType : Lists.newArrayList(Type.ARRAY, Type.MAP, 
Type.GENERIC_STRUCT)) {
-                
functionSet.addBuiltinBothScalaAndVectorized(ScalarFunction.createBuiltinOperator(IS_NULL,
 isNullSymbol,
+                
functionSet.addBuiltinBothScalaAndVectorized(ScalarFunction.createBuiltinOperator(IS_NULL,
 null,
                         Lists.newArrayList(complexType), Type.BOOLEAN, 
NullableMode.ALWAYS_NOT_NULLABLE));
 
                 
functionSet.addBuiltinBothScalaAndVectorized(ScalarFunction.createBuiltinOperator(IS_NOT_NULL,
-                        isNotNullSymbol, Lists.newArrayList(complexType), 
Type.BOOLEAN,
+                        null, Lists.newArrayList(complexType), Type.BOOLEAN,
                         NullableMode.ALWAYS_NOT_NULLABLE));
             }
 
         }
     }
 
-
     private final boolean isNotNull;
 
     public IsNullPredicate(Expr e, boolean isNotNull) {
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/catalog/AggregateFunction.java 
b/fe/fe-core/src/main/java/org/apache/doris/catalog/AggregateFunction.java
index c3ae7709ed..7e3179da6e 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/catalog/AggregateFunction.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/AggregateFunction.java
@@ -215,16 +215,6 @@ public class AggregateFunction extends Function {
         this.returnsNonNullOnEmpty = returnsNonNullOnEmpty;
     }
 
-    public static AggregateFunction createBuiltin(String name,
-            List<Type> argTypes, Type retType, Type intermediateType,
-            String initFnSymbol, String updateFnSymbol, String mergeFnSymbol,
-            String serializeFnSymbol, String finalizeFnSymbol, boolean 
ignoresDistinct,
-            boolean isAnalyticFn, boolean returnsNonNullOnEmpty) {
-        return createBuiltin(name, argTypes, retType, intermediateType,
-                initFnSymbol, updateFnSymbol, mergeFnSymbol,
-                serializeFnSymbol, finalizeFnSymbol, ignoresDistinct, 
isAnalyticFn, returnsNonNullOnEmpty, false);
-    }
-
     public static AggregateFunction createBuiltin(String name,
             List<Type> argTypes, Type retType, Type intermediateType,
             String initFnSymbol, String updateFnSymbol, String mergeFnSymbol,
@@ -235,18 +225,6 @@ public class AggregateFunction extends Function {
                 ignoresDistinct, isAnalyticFn, returnsNonNullOnEmpty, 
vectorized);
     }
 
-    public static AggregateFunction createBuiltin(String name,
-            List<Type> argTypes, Type retType, Type intermediateType,
-            String initFnSymbol, String updateFnSymbol, String mergeFnSymbol,
-            String serializeFnSymbol, String getValueFnSymbol, String 
removeFnSymbol,
-            String finalizeFnSymbol, boolean ignoresDistinct, boolean 
isAnalyticFn,
-            boolean returnsNonNullOnEmpty) {
-        return createBuiltin(name, argTypes, retType, intermediateType,
-                initFnSymbol, updateFnSymbol, mergeFnSymbol,
-                serializeFnSymbol, getValueFnSymbol, removeFnSymbol,
-                finalizeFnSymbol, ignoresDistinct, isAnalyticFn, 
returnsNonNullOnEmpty, false);
-    }
-
     public static AggregateFunction createBuiltin(String name,
             List<Type> argTypes, Type retType, Type intermediateType,
             String initFnSymbol, String updateFnSymbol, String mergeFnSymbol,
@@ -259,17 +237,6 @@ public class AggregateFunction extends Function {
                 finalizeFnSymbol, ignoresDistinct, isAnalyticFn, 
returnsNonNullOnEmpty, vectorized);
     }
 
-    public static AggregateFunction createBuiltin(String name,
-            List<Type> argTypes, Type retType, Type intermediateType, boolean 
hasVarArgs,
-            String initFnSymbol, String updateFnSymbol, String mergeFnSymbol,
-            String serializeFnSymbol, String getValueFnSymbol, String 
removeFnSymbol,
-            String finalizeFnSymbol, boolean ignoresDistinct, boolean 
isAnalyticFn,
-            boolean returnsNonNullOnEmpty) {
-        return createBuiltin(name, argTypes, retType, intermediateType, 
hasVarArgs, initFnSymbol, updateFnSymbol,
-                mergeFnSymbol, serializeFnSymbol, getValueFnSymbol, 
removeFnSymbol, finalizeFnSymbol, ignoresDistinct,
-                isAnalyticFn, returnsNonNullOnEmpty, false);
-    }
-
     public static AggregateFunction createBuiltin(String name,
             List<Type> argTypes, Type retType, Type intermediateType, boolean 
hasVarArgs,
             String initFnSymbol, String updateFnSymbol, String mergeFnSymbol,
@@ -300,7 +267,7 @@ public class AggregateFunction extends Function {
             String getValueFnSymbol, String finalizeFnSymbol) {
         return createAnalyticBuiltin(name, argTypes, retType, intermediateType,
                 initFnSymbol, updateFnSymbol, removeFnSymbol, 
getValueFnSymbol, finalizeFnSymbol,
-                true, false);
+                true, true);
     }
 
     public static AggregateFunction createAnalyticBuiltin(String name,
@@ -328,6 +295,22 @@ public class AggregateFunction extends Function {
         return fn;
     }
 
+    public AggregateFunction(AggregateFunction other) {
+        super(other);
+        if (other == null) {
+            return;
+        }
+        ignoresDistinct = other.ignoresDistinct;
+        isAnalyticFn = other.isAnalyticFn;
+        isAggregateFn = other.isAggregateFn;
+        returnsNonNullOnEmpty = other.returnsNonNullOnEmpty;
+    }
+
+    @Override
+    public Function clone() {
+        return new AggregateFunction(this);
+    }
+
     // Used to create UDAF
     public AggregateFunction(FunctionName fnName, Type[] argTypes,
             Type retType, boolean hasVarArgs, Type intermediateType, URI 
location,
diff --git a/fe/fe-core/src/main/java/org/apache/doris/catalog/Function.java 
b/fe/fe-core/src/main/java/org/apache/doris/catalog/Function.java
index ce3f77cb09..0ae8247579 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/catalog/Function.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/Function.java
@@ -122,7 +122,7 @@ public class Function implements Writable {
 
     protected NullableMode nullableMode = NullableMode.DEPEND_ON_ARGUMENT;
 
-    protected boolean vectorized = false;
+    protected boolean vectorized = true;
 
     // library's checksum to make sure all backends use one library to serve 
user's request
     protected String checksum = "";
@@ -135,7 +135,7 @@ public class Function implements Writable {
     }
 
     public Function(FunctionName name, List<Type> args, Type retType, boolean 
varArgs) {
-        this(0, name, args, retType, varArgs, false, 
NullableMode.DEPEND_ON_ARGUMENT);
+        this(0, name, args, retType, varArgs, true, 
NullableMode.DEPEND_ON_ARGUMENT);
     }
 
     public Function(FunctionName name, List<Type> args, Type retType, boolean 
varArgs, boolean vectorized) {
@@ -189,6 +189,10 @@ public class Function implements Writable {
         this.checksum = other.checksum;
     }
 
+    public Function clone() {
+        return new Function(this);
+    }
+
     public FunctionName getFunctionName() {
         return name;
     }
@@ -540,108 +544,6 @@ public class Function implements Writable {
         return "";
     }
 
-    public static String getUdfTypeName(PrimitiveType t) {
-        switch (t) {
-            case BOOLEAN:
-                return "boolean_val";
-            case TINYINT:
-                return "tiny_int_val";
-            case SMALLINT:
-                return "small_int_val";
-            case INT:
-                return "int_val";
-            case BIGINT:
-                return "big_int_val";
-            case LARGEINT:
-                return "large_int_val";
-            case FLOAT:
-                return "float_val";
-            case DOUBLE:
-            case TIME:
-            case TIMEV2:
-                return "double_val";
-            case VARCHAR:
-            case CHAR:
-            case HLL:
-            case BITMAP:
-            case QUANTILE_STATE:
-            case STRING:
-                return "string_val";
-            case JSONB:
-                return "jsonb_val";
-            case DATE:
-            case DATETIME:
-                return "datetime_val";
-            case DATEV2:
-                return "datev2_val";
-            case DATETIMEV2:
-                return "datetimev2_val";
-            case DECIMALV2:
-                return "decimalv2_val";
-            case DECIMAL32:
-                return "decimal32_val";
-            case DECIMAL64:
-                return "decimal64_val";
-            case DECIMAL128:
-                return "decimal128_val";
-            default:
-                Preconditions.checkState(false, t.toString());
-                return "";
-        }
-    }
-
-    public static String getUdfType(PrimitiveType t) {
-        switch (t) {
-            case NULL_TYPE:
-                return "AnyVal";
-            case BOOLEAN:
-                return "BooleanVal";
-            case TINYINT:
-                return "TinyIntVal";
-            case SMALLINT:
-                return "SmallIntVal";
-            case INT:
-                return "IntVal";
-            case BIGINT:
-                return "BigIntVal";
-            case LARGEINT:
-                return "LargeIntVal";
-            case FLOAT:
-                return "FloatVal";
-            case DOUBLE:
-            case TIME:
-            case TIMEV2:
-                return "DoubleVal";
-            case VARCHAR:
-            case CHAR:
-            case HLL:
-            case BITMAP:
-            case QUANTILE_STATE:
-            case STRING:
-                return "StringVal";
-            case JSONB:
-                return "JsonbVal";
-            case DATE:
-            case DATETIME:
-                return "DateTimeVal";
-            case DATEV2:
-                return "DateV2Val";
-            case DATETIMEV2:
-                return "DateTimeV2Val";
-            case DECIMALV2:
-                return "DecimalV2Val";
-            case DECIMAL32:
-                return "Decimal32Val";
-            case DECIMAL64:
-                return "Decimal64Val";
-            case DECIMAL128:
-                return "Decimal128Val";
-            default:
-                Preconditions.checkState(false, t.toString());
-                return "";
-        }
-    }
-
     public static Function getFunction(List<Function> fns, Function desc, 
CompareMode mode) {
         if (fns == null) {
             return null;
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 3b8818bc95..a879c14ae3 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
@@ -51,7 +51,6 @@ public class FunctionSet<T> {
     // This includes both UDFs and UDAs. Updates are made thread safe by 
synchronizing
     // on this map. Functions are sorted in a canonical order defined by
     // FunctionResolutionOrder.
-    private final HashMap<String, List<Function>> functions;
     private final HashMap<String, List<Function>> vectorizedFunctions;
     private final HashMap<String, List<Function>> tableFunctions;
     // For most build-in functions, it will return NullLiteral when params 
contain NullLiteral.
@@ -69,7 +68,6 @@ public class FunctionSet<T> {
     private boolean inited = false;
 
     public FunctionSet() {
-        functions = Maps.newHashMap();
         vectorizedFunctions = Maps.newHashMap();
         tableFunctions = Maps.newHashMap();
     }
@@ -248,69 +246,6 @@ public class FunctionSet<T> {
                     
"3maxIN9doris_udf11LargeIntValEEEvPNS2_15FunctionContextERKT_PS6_")
                .build();
 
-    private static final Map<Type, String> ANY_INIT_SYMBOL =
-            ImmutableMap.<Type, String>builder()
-                    .put(Type.BOOLEAN,
-                            
"8any_initIN9doris_udf10BooleanValEEEvPNS2_15FunctionContextEPT_")
-                    .put(Type.TINYINT,
-                            
"8any_initIN9doris_udf10TinyIntValEEEvPNS2_15FunctionContextEPT_")
-                    .put(Type.SMALLINT,
-                            
"8any_initIN9doris_udf11SmallIntValEEEvPNS2_15FunctionContextEPT_")
-                    .put(Type.INT,
-                            
"8any_initIN9doris_udf6IntValEEEvPNS2_15FunctionContextEPT_")
-                    .put(Type.BIGINT,
-                            
"8any_initIN9doris_udf9BigIntValEEEvPNS2_15FunctionContextEPT_")
-                    .put(Type.FLOAT,
-                            
"8any_initIN9doris_udf8FloatValEEEvPNS2_15FunctionContextEPT_")
-                    .put(Type.DOUBLE,
-                            
"8any_initIN9doris_udf9DoubleValEEEvPNS2_15FunctionContextEPT_")
-                    // .put(Type.CHAR,
-                    //     
"3anyIN9doris_udf9StringValEEEvPNS2_15FunctionContextERKT_PS6_")
-                    .put(Type.VARCHAR,
-                            
"8any_initIN9doris_udf9StringValEEEvPNS2_15FunctionContextEPT_")
-                    .put(Type.STRING,
-                            
"8any_initIN9doris_udf9StringValEEEvPNS2_15FunctionContextEPT_")
-                    .put(Type.DATE,
-                            
"8any_initIN9doris_udf11DateTimeValEEEvPNS2_15FunctionContextEPT_")
-                    .put(Type.DATETIME,
-                            
"8any_initIN9doris_udf11DateTimeValEEEvPNS2_15FunctionContextEPT_")
-                    .put(Type.MAX_DECIMALV2_TYPE,
-                            
"8any_initIN9doris_udf12DecimalV2ValEEEvPNS2_15FunctionContextEPT_")
-                    .put(Type.LARGEINT,
-                            
"8any_initIN9doris_udf11LargeIntValEEEvPNS2_15FunctionContextEPT_")
-                    .build();
-
-    private static final Map<Type, String> ANY_UPDATE_SYMBOL =
-            ImmutableMap.<Type, String>builder()
-                    .put(Type.BOOLEAN,
-                            
"3anyIN9doris_udf10BooleanValEEEvPNS2_15FunctionContextERKT_PS6_")
-                    .put(Type.TINYINT,
-                            
"3anyIN9doris_udf10TinyIntValEEEvPNS2_15FunctionContextERKT_PS6_")
-                    .put(Type.SMALLINT,
-                            
"3anyIN9doris_udf11SmallIntValEEEvPNS2_15FunctionContextERKT_PS6_")
-                    .put(Type.INT,
-                            
"3anyIN9doris_udf6IntValEEEvPNS2_15FunctionContextERKT_PS6_")
-                    .put(Type.BIGINT,
-                            
"3anyIN9doris_udf9BigIntValEEEvPNS2_15FunctionContextERKT_PS6_")
-                    .put(Type.FLOAT,
-                            
"3anyIN9doris_udf8FloatValEEEvPNS2_15FunctionContextERKT_PS6_")
-                    .put(Type.DOUBLE,
-                            
"3anyIN9doris_udf9DoubleValEEEvPNS2_15FunctionContextERKT_PS6_")
-                    // .put(Type.CHAR,
-                    //    
"3anyIN9doris_udf9StringValEEEvPNS2_15FunctionContextERKT_PS6_")
-                    .put(Type.VARCHAR,
-                            
"3anyIN9doris_udf9StringValEEEvPNS2_15FunctionContextERKT_PS6_")
-                    .put(Type.STRING,
-                            
"3anyIN9doris_udf9StringValEEEvPNS2_15FunctionContextERKT_PS6_")
-                    .put(Type.DATE,
-                            
"3anyIN9doris_udf11DateTimeValEEEvPNS2_15FunctionContextERKT_PS6_")
-                    .put(Type.DATETIME,
-                            
"3anyIN9doris_udf11DateTimeValEEEvPNS2_15FunctionContextERKT_PS6_")
-                    .put(Type.MAX_DECIMALV2_TYPE,
-                            
"3anyIN9doris_udf12DecimalV2ValEEEvPNS2_15FunctionContextERKT_PS6_")
-                    .put(Type.LARGEINT,
-                            
"3anyIN9doris_udf11LargeIntValEEEvPNS2_15FunctionContextERKT_PS6_")
-                    .build();
 
     private static final Map<Type, Type> MULTI_DISTINCT_SUM_RETURN_TYPE =
              ImmutableMap.<Type, Type>builder()
@@ -480,24 +415,6 @@ public class FunctionSet<T> {
                         
"16knuth_var_updateEPN9doris_udf15FunctionContextERKNS1_12DecimalV2ValEPNS1_9StringValE")
                 .build();
 
-
-    private static final Map<Type, String> STDDEV_REMOVE_SYMBOL =
-            ImmutableMap.<Type, String>builder()
-                .put(Type.TINYINT,
-                        
"16knuth_var_removeIN9doris_udf10TinyIntValEEEvPNS2_15FunctionContextERKT_PNS2_9StringValE")
-                .put(Type.SMALLINT,
-                        
"16knuth_var_removeIN9doris_udf11SmallIntValEEEvPNS2_15FunctionContextERKT_PNS2_9StringValE")
-                .put(Type.INT,
-                        
"16knuth_var_removeIN9doris_udf6IntValEEEvPNS2_15FunctionContextERKT_PNS2_9StringValE")
-                .put(Type.BIGINT,
-                        
"16knuth_var_removeIN9doris_udf9BigIntValEEEvPNS2_15FunctionContextERKT_PNS2_9StringValE")
-                .put(Type.FLOAT,
-                        
"16knuth_var_removeIN9doris_udf8FloatValEEEvPNS2_15FunctionContextERKT_PNS2_9StringValE")
-                .put(Type.DOUBLE,
-                        
"16knuth_var_removeIN9doris_udf9DoubleValEEEvPNS2_15FunctionContextERKT_PNS2_9StringValE")
-                .put(Type.MAX_DECIMALV2_TYPE,
-                        
"16knuth_var_removeEPN9doris_udf15FunctionContextERKNS1_12DecimalV2ValEPNS1_9StringValE")
-                .build();
     private static final Map<Type, String> STDDEV_MERGE_SYMBOL =
             ImmutableMap.<Type, String>builder()
                 .put(Type.TINYINT,
@@ -534,24 +451,6 @@ public class FunctionSet<T> {
                         
"31decimalv2_knuth_stddev_finalizeEPN9doris_udf15FunctionContextERKNS1_9StringValE")
                 .build();
 
-    private static final Map<Type, String> STDDEV_GET_VALUE_SYMBOL =
-            ImmutableMap.<Type, String>builder()
-                .put(Type.TINYINT,
-                        
"22knuth_stddev_get_valueEPN9doris_udf15FunctionContextERKNS1_9StringValE")
-                .put(Type.SMALLINT,
-                        
"22knuth_stddev_get_valueEPN9doris_udf15FunctionContextERKNS1_9StringValE")
-                .put(Type.INT,
-                        
"22knuth_stddev_get_valueEPN9doris_udf15FunctionContextERKNS1_9StringValE")
-                .put(Type.BIGINT,
-                        
"22knuth_stddev_get_valueEPN9doris_udf15FunctionContextERKNS1_9StringValE")
-                .put(Type.FLOAT,
-                        
"22knuth_stddev_get_valueEPN9doris_udf15FunctionContextERKNS1_9StringValE")
-                .put(Type.DOUBLE,
-                        
"22knuth_stddev_get_valueEPN9doris_udf15FunctionContextERKNS1_9StringValE")
-                .put(Type.MAX_DECIMALV2_TYPE,
-                        
"32decimalv2_knuth_stddev_get_valueEPN9doris_udf15FunctionContextERKNS1_9StringValE")
-                .build();
-
     private static final Map<Type, String> STDDEV_POP_FINALIZE_SYMBOL =
             ImmutableMap.<Type, String>builder()
                     .put(Type.TINYINT,
@@ -570,23 +469,6 @@ public class FunctionSet<T> {
                             
"35decimalv2_knuth_stddev_pop_finalizeEPN9doris_udf15FunctionContextERKNS1_9StringValE")
                     .build();
 
-    private static final Map<Type, String> STDDEV_POP_GET_VALUE_SYMBOL =
-            ImmutableMap.<Type, String>builder()
-                .put(Type.TINYINT,
-                
"26knuth_stddev_pop_get_valueEPN9doris_udf15FunctionContextERKNS1_9StringValE")
-                .put(Type.SMALLINT,
-                
"26knuth_stddev_pop_get_valueEPN9doris_udf15FunctionContextERKNS1_9StringValE")
-                .put(Type.INT,
-                
"26knuth_stddev_pop_get_valueEPN9doris_udf15FunctionContextERKNS1_9StringValE")
-                .put(Type.BIGINT,
-                
"26knuth_stddev_pop_get_valueEPN9doris_udf15FunctionContextERKNS1_9StringValE")
-                .put(Type.FLOAT,
-                
"26knuth_stddev_pop_get_valueEPN9doris_udf15FunctionContextERKNS1_9StringValE")
-                .put(Type.DOUBLE,
-                
"26knuth_stddev_pop_get_valueEPN9doris_udf15FunctionContextERKNS1_9StringValE")
-                .put(Type.MAX_DECIMALV2_TYPE,
-                
"36decimalv2_knuth_stddev_pop_get_valueEPN9doris_udf15FunctionContextERKNS1_9StringValE")
-                .build();
 
     private static final Map<Type, String> VAR_FINALIZE_SYMBOL =
             ImmutableMap.<Type, String>builder()
@@ -606,23 +488,6 @@ public class FunctionSet<T> {
                         
"28decimalv2_knuth_var_finalizeEPN9doris_udf15FunctionContextERKNS1_9StringValE")
                 .build();
 
-    private static final Map<Type, String> VAR_GET_VALUE_SYMBOL =
-            ImmutableMap.<Type, String>builder()
-                .put(Type.TINYINT,
-                        
"19knuth_var_get_valueEPN9doris_udf15FunctionContextERKNS1_9StringValE")
-                .put(Type.SMALLINT,
-                        
"19knuth_var_get_valueEPN9doris_udf15FunctionContextERKNS1_9StringValE")
-                .put(Type.INT,
-                        
"19knuth_var_get_valueEPN9doris_udf15FunctionContextERKNS1_9StringValE")
-                .put(Type.BIGINT,
-                        
"19knuth_var_get_valueEPN9doris_udf15FunctionContextERKNS1_9StringValE")
-                .put(Type.FLOAT,
-                        
"19knuth_var_get_valueEPN9doris_udf15FunctionContextERKNS1_9StringValE")
-                .put(Type.DOUBLE,
-                        
"19knuth_var_get_valueEPN9doris_udf15FunctionContextERKNS1_9StringValE")
-                .put(Type.MAX_DECIMALV2_TYPE,
-                        
"29decimalv2_knuth_var_get_valueEPN9doris_udf15FunctionContextERKNS1_9StringValE")
-                .build();
 
     private static final Map<Type, String> VAR_POP_FINALIZE_SYMBOL =
             ImmutableMap.<Type, String>builder()
@@ -642,23 +507,6 @@ public class FunctionSet<T> {
                         
"32decimalv2_knuth_var_pop_finalizeEPN9doris_udf15FunctionContextERKNS1_9StringValE")
                 .build();
 
-    private static final Map<Type, String> VAR_POP_GET_VALUE_SYMBOL =
-            ImmutableMap.<Type, String>builder()
-                .put(Type.TINYINT,
-                        
"23knuth_var_pop_get_valueEPN9doris_udf15FunctionContextERKNS1_9StringValE")
-                .put(Type.SMALLINT,
-                        
"23knuth_var_pop_get_valueEPN9doris_udf15FunctionContextERKNS1_9StringValE")
-                .put(Type.INT,
-                        
"23knuth_var_pop_get_valueEPN9doris_udf15FunctionContextERKNS1_9StringValE")
-                .put(Type.BIGINT,
-                        
"23knuth_var_pop_get_valueEPN9doris_udf15FunctionContextERKNS1_9StringValE")
-                .put(Type.FLOAT,
-                        
"23knuth_var_pop_get_valueEPN9doris_udf15FunctionContextERKNS1_9StringValE")
-                .put(Type.DOUBLE,
-                        
"23knuth_var_pop_get_valueEPN9doris_udf15FunctionContextERKNS1_9StringValE")
-                .put(Type.MAX_DECIMALV2_TYPE,
-                        
"33decimalv2_knuth_var_pop_get_valueEPN9doris_udf15FunctionContextERKNS1_9StringValE")
-                .build();
 
     public static final String HLL_HASH = "hll_hash";
     public static final String HLL_UNION = "hll_union";
@@ -698,17 +546,6 @@ public class FunctionSet<T> {
                     
"10hll_updateIN9doris_udf11LargeIntValEEEvPNS2_15FunctionContextERKT_PNS2_9StringValE")
                 .build();
 
-
-    private static final Map<Type, String> HLL_UNION_AGG_UPDATE_SYMBOL =
-            ImmutableMap.<Type, String>builder()
-                .put(Type.VARCHAR,
-                        
"_ZN5doris12HllFunctions9hll_mergeEPN9doris_udf15FunctionContextERKNS1_9StringValEPS4_")
-                .put(Type.STRING,
-                        
"_ZN5doris12HllFunctions9hll_mergeEPN9doris_udf15FunctionContextERKNS1_9StringValEPS4_")
-                .put(Type.HLL,
-                        
"_ZN5doris12HllFunctions9hll_mergeEPN9doris_udf15FunctionContextERKNS1_9StringValEPS4_")
-                .build();
-
     private static final Map<Type, String> OFFSET_FN_INIT_SYMBOL =
             ImmutableMap.<Type, String>builder()
                 .put(Type.BOOLEAN,
@@ -946,92 +783,6 @@ public class FunctionSet<T> {
     public static final String HISTOGRAM = "histogram";
     public static final String HIST = "hist";
 
-    private static final Map<Type, String> 
ORTHOGONAL_BITMAP_INTERSECT_INIT_SYMBOL =
-            ImmutableMap.<Type, String>builder()
-                    .put(Type.TINYINT,
-                            
"_ZN5doris15BitmapFunctions32orthogonal_bitmap_intersect_initIaN9doris_udf10TinyIntValEEEvPNS2_15FunctionContextEPNS2_9StringValE")
-                    .put(Type.SMALLINT,
-                            
"_ZN5doris15BitmapFunctions32orthogonal_bitmap_intersect_initIsN9doris_udf11SmallIntValEEEvPNS2_15FunctionContextEPNS2_9StringValE")
-                    .put(Type.INT,
-                            
"_ZN5doris15BitmapFunctions32orthogonal_bitmap_intersect_initIiN9doris_udf6IntValEEEvPNS2_15FunctionContextEPNS2_9StringValE")
-                    .put(Type.BIGINT,
-                            
"_ZN5doris15BitmapFunctions32orthogonal_bitmap_intersect_initIlN9doris_udf9BigIntValEEEvPNS2_15FunctionContextEPNS2_9StringValE")
-                    .put(Type.FLOAT,
-                            
"_ZN5doris15BitmapFunctions32orthogonal_bitmap_intersect_initIfN9doris_udf8FloatValEEEvPNS2_15FunctionContextEPNS2_9StringValE")
-                    .put(Type.DOUBLE,
-                            
"_ZN5doris15BitmapFunctions32orthogonal_bitmap_intersect_initIdN9doris_udf9DoubleValEEEvPNS2_15FunctionContextEPNS2_9StringValE")
-                    .put(Type.CHAR,
-                            
"_ZN5doris15BitmapFunctions32orthogonal_bitmap_intersect_initINS_11StringValueEN9doris_udf9StringValEEEvPNS3_15FunctionContextEPS4_")
-                    .put(Type.VARCHAR,
-                            
"_ZN5doris15BitmapFunctions32orthogonal_bitmap_intersect_initINS_11StringValueEN9doris_udf9StringValEEEvPNS3_15FunctionContextEPS4_")
-                    .put(Type.STRING,
-                            
"_ZN5doris15BitmapFunctions32orthogonal_bitmap_intersect_initINS_11StringValueEN9doris_udf9StringValEEEvPNS3_15FunctionContextEPS4_")
-                    .build();
-
-    private static final Map<Type, String> 
ORTHOGONAL_BITMAP_INTERSECT_SERIALIZE_SYMBOL =
-            ImmutableMap.<Type, String>builder()
-                    .put(Type.TINYINT,
-                            
"_ZN5doris15BitmapFunctions37orthogonal_bitmap_intersect_serializeIaEEN9doris_udf9StringValEPNS2_15FunctionContextERKS3_")
-                    .put(Type.SMALLINT,
-                            
"_ZN5doris15BitmapFunctions37orthogonal_bitmap_intersect_serializeIsEEN9doris_udf9StringValEPNS2_15FunctionContextERKS3_")
-                    .put(Type.INT,
-                            
"_ZN5doris15BitmapFunctions37orthogonal_bitmap_intersect_serializeIiEEN9doris_udf9StringValEPNS2_15FunctionContextERKS3_")
-                    .put(Type.BIGINT,
-                            
"_ZN5doris15BitmapFunctions37orthogonal_bitmap_intersect_serializeIlEEN9doris_udf9StringValEPNS2_15FunctionContextERKS3_")
-                    .put(Type.FLOAT,
-                            
"_ZN5doris15BitmapFunctions37orthogonal_bitmap_intersect_serializeIfEEN9doris_udf9StringValEPNS2_15FunctionContextERKS3_")
-                    .put(Type.DOUBLE,
-                            
"_ZN5doris15BitmapFunctions37orthogonal_bitmap_intersect_serializeIdEEN9doris_udf9StringValEPNS2_15FunctionContextERKS3_")
-                    .put(Type.CHAR,
-                            
"_ZN5doris15BitmapFunctions37orthogonal_bitmap_intersect_serializeINS_11StringValueEEEN9doris_udf9StringValEPNS3_15FunctionContextERKS4_")
-                    .put(Type.VARCHAR,
-                            
"_ZN5doris15BitmapFunctions37orthogonal_bitmap_intersect_serializeINS_11StringValueEEEN9doris_udf9StringValEPNS3_15FunctionContextERKS4_")
-                    .put(Type.STRING,
-                            
"_ZN5doris15BitmapFunctions37orthogonal_bitmap_intersect_serializeINS_11StringValueEEEN9doris_udf9StringValEPNS3_15FunctionContextERKS4_")
-                    .build();
-    private static final Map<Type, String> 
ORTHOGONAL_BITMAP_INTERSECT_COUNT_INIT_SYMBOL =
-            ImmutableMap.<Type, String>builder()
-                    .put(Type.TINYINT,
-                            
"_ZN5doris15BitmapFunctions38orthogonal_bitmap_intersect_count_initIaN9doris_udf10TinyIntValEEEvPNS2_15FunctionContextEPNS2_9StringValE")
-                    .put(Type.SMALLINT,
-                            
"_ZN5doris15BitmapFunctions38orthogonal_bitmap_intersect_count_initIsN9doris_udf11SmallIntValEEEvPNS2_15FunctionContextEPNS2_9StringValE")
-                    .put(Type.INT,
-                            
"_ZN5doris15BitmapFunctions38orthogonal_bitmap_intersect_count_initIiN9doris_udf6IntValEEEvPNS2_15FunctionContextEPNS2_9StringValE")
-                    .put(Type.BIGINT,
-                            
"_ZN5doris15BitmapFunctions38orthogonal_bitmap_intersect_count_initIlN9doris_udf9BigIntValEEEvPNS2_15FunctionContextEPNS2_9StringValE")
-                    .put(Type.FLOAT,
-                            
"_ZN5doris15BitmapFunctions38orthogonal_bitmap_intersect_count_initIfN9doris_udf8FloatValEEEvPNS2_15FunctionContextEPNS2_9StringValE")
-                    .put(Type.DOUBLE,
-                            
"_ZN5doris15BitmapFunctions38orthogonal_bitmap_intersect_count_initIdN9doris_udf9DoubleValEEEvPNS2_15FunctionContextEPNS2_9StringValE")
-                    .put(Type.CHAR,
-                            
"_ZN5doris15BitmapFunctions38orthogonal_bitmap_intersect_count_initINS_11StringValueEN9doris_udf9StringValEEEvPNS3_15FunctionContextEPS4_")
-                    .put(Type.VARCHAR,
-                            
"_ZN5doris15BitmapFunctions38orthogonal_bitmap_intersect_count_initINS_11StringValueEN9doris_udf9StringValEEEvPNS3_15FunctionContextEPS4_")
-                    .put(Type.STRING,
-                            
"_ZN5doris15BitmapFunctions38orthogonal_bitmap_intersect_count_initINS_11StringValueEN9doris_udf9StringValEEEvPNS3_15FunctionContextEPS4_")
-                    .build();
-    private static final Map<Type, String> 
ORTHOGONAL_BITMAP_INTERSECT_COUNT_SERIALIZE_SYMBOL =
-            ImmutableMap.<Type, String>builder()
-                    .put(Type.TINYINT,
-                            
"_ZN5doris15BitmapFunctions43orthogonal_bitmap_intersect_count_serializeIaEEN9doris_udf9StringValEPNS2_15FunctionContextERKS3_")
-                    .put(Type.SMALLINT,
-                            
"_ZN5doris15BitmapFunctions43orthogonal_bitmap_intersect_count_serializeIsEEN9doris_udf9StringValEPNS2_15FunctionContextERKS3_")
-                    .put(Type.INT,
-                            
"_ZN5doris15BitmapFunctions43orthogonal_bitmap_intersect_count_serializeIiEEN9doris_udf9StringValEPNS2_15FunctionContextERKS3_")
-                    .put(Type.BIGINT,
-                            
"_ZN5doris15BitmapFunctions43orthogonal_bitmap_intersect_count_serializeIlEEN9doris_udf9StringValEPNS2_15FunctionContextERKS3_")
-                    .put(Type.FLOAT,
-                            
"_ZN5doris15BitmapFunctions43orthogonal_bitmap_intersect_count_serializeIfEEN9doris_udf9StringValEPNS2_15FunctionContextERKS3_")
-                    .put(Type.DOUBLE,
-                            
"_ZN5doris15BitmapFunctions43orthogonal_bitmap_intersect_count_serializeIdEEN9doris_udf9StringValEPNS2_15FunctionContextERKS3_")
-                    .put(Type.CHAR,
-                            
"_ZN5doris15BitmapFunctions43orthogonal_bitmap_intersect_count_serializeINS_11StringValueEEEN9doris_udf9StringValEPNS3_15FunctionContextERKS4_")
-                    .put(Type.VARCHAR,
-                            
"_ZN5doris15BitmapFunctions43orthogonal_bitmap_intersect_count_serializeINS_11StringValueEEEN9doris_udf9StringValEPNS3_15FunctionContextERKS4_")
-                    .put(Type.STRING,
-                            
"_ZN5doris15BitmapFunctions43orthogonal_bitmap_intersect_count_serializeINS_11StringValueEEEN9doris_udf9StringValEPNS3_15FunctionContextERKS4_")
-                    .build();
-
     private static final Map<Type, String> BITMAP_UNION_INT_SYMBOL =
             ImmutableMap.<Type, String>builder()
                     .put(Type.TINYINT,
@@ -1220,10 +971,8 @@ public class FunctionSet<T> {
         List<Function> fns;
         if (isTableFunction) {
             fns = tableFunctions.get(desc.functionName());
-        } else if (desc.isVectorized()) {
-            fns = vectorizedFunctions.get(desc.functionName());
         } else {
-            fns = functions.get(desc.functionName());
+            fns = vectorizedFunctions.get(desc.functionName());
         }
         if (fns == null) {
             return null;
@@ -1454,7 +1203,7 @@ public class FunctionSet<T> {
     }
 
     public Function getFunction(String signatureString, boolean vectorized) {
-        for (List<Function> fns : vectorized ? vectorizedFunctions.values() : 
functions.values()) {
+        for (List<Function> fns : vectorizedFunctions.values()) {
             for (Function f : fns) {
                 if (f.signatureString().equals(signatureString)) {
                     return f;
@@ -1469,14 +1218,10 @@ public class FunctionSet<T> {
         if (getFunction(fn, Function.CompareMode.IS_INDISTINGUISHABLE) != 
null) {
             return false;
         }
-        List<Function> fns = fn.isVectorized() ? 
vectorizedFunctions.get(fn.functionName()) : functions.get(fn.functionName());
+        List<Function> fns = vectorizedFunctions.get(fn.functionName());
         if (fns == null) {
             fns = Lists.newArrayList();
-            if (fn.isVectorized()) {
-                vectorizedFunctions.put(fn.functionName(), fns);
-            } else {
-                functions.put(fn.functionName(), fns);
-            }
+            vectorizedFunctions.put(fn.functionName(), fns);
         }
         fns.add(fn);
         return true;
@@ -1525,15 +1270,6 @@ public class FunctionSet<T> {
         if (getFunction(fn, Function.CompareMode.IS_INDISTINGUISHABLE) != 
null) {
             return;
         }
-        Preconditions.checkState(!fn.isVectorized());
-
-        // add scala function
-        List<Function> fns = functions.get(fn.functionName());
-        if (fns == null) {
-            fns = Lists.newArrayList();
-            functions.put(fn.functionName(), fns);
-        }
-        fns.add(fn);
 
         // add vectorized function
         List<Function> vecFns = vectorizedFunctions.get(fn.functionName());
@@ -1541,12 +1277,7 @@ public class FunctionSet<T> {
             vecFns = Lists.newArrayList();
             vectorizedFunctions.put(fn.functionName(), vecFns);
         }
-        ScalarFunction scalarFunction = (ScalarFunction) fn;
-        
vecFns.add(ScalarFunction.createVecBuiltin(scalarFunction.functionName(), 
scalarFunction.getPrepareFnSymbol(),
-                scalarFunction.getSymbolName(), 
scalarFunction.getCloseFnSymbol(),
-                    Lists.newArrayList(scalarFunction.getArgs()), 
scalarFunction.hasVarArgs(),
-                    scalarFunction.getReturnType(), 
scalarFunction.isUserVisible(),
-                    scalarFunction.getNullableMode()));
+        vecFns.add(fn);
     }
 
 
@@ -1578,14 +1309,6 @@ public class FunctionSet<T> {
 
         // Type stringType[] = {Type.CHAR, Type.VARCHAR};
         // count(*)
-        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));
         // vectorized
         addBuiltin(AggregateFunction.createBuiltin(FunctionSet.COUNT,
                 new ArrayList<Type>(), Type.BIGINT, Type.BIGINT,
@@ -1617,21 +1340,6 @@ public class FunctionSet<T> {
                     null, false, true, true, true));
         }
 
-        // windowFunnel
-        addBuiltin(AggregateFunction.createBuiltin(FunctionSet.WINDOW_FUNNEL,
-                Lists.newArrayList(Type.BIGINT, Type.STRING, Type.DATETIME, 
Type.BOOLEAN),
-                Type.INT,
-                Type.VARCHAR,
-                true,
-                prefix + 
"18window_funnel_initEPN9doris_udf15FunctionContextEPNS1_9StringValE",
-                prefix + 
"20window_funnel_updateEPN9doris_udf15FunctionContextERKNS1_9BigIntValERKNS1_9StringValERKNS1_11DateTimeValEiPKNS1_10BooleanValEPS7_",
-                prefix + 
"19window_funnel_mergeEPN9doris_udf15FunctionContextERKNS1_9StringValEPS4_",
-                prefix + 
"23window_funnel_serializeEPN9doris_udf15FunctionContextERKNS1_9StringValE",
-                "",
-                "",
-                prefix + 
"22window_funnel_finalizeEPN9doris_udf15FunctionContextERKNS1_9StringValE",
-                true, false, true));
-
         // Vectorization does not need symbol any more, we should clean it in 
the future.
         addBuiltin(AggregateFunction.createBuiltin(FunctionSet.WINDOW_FUNNEL,
                 Lists.newArrayList(Type.BIGINT, Type.STRING, Type.DATETIME, 
Type.BOOLEAN),
@@ -1761,7 +1469,34 @@ public class FunctionSet<T> {
                 "",
                 true, false, true, true));
 
-        for (Type t : Type.getSupportedTypes()) {
+        addBuiltin(AggregateFunction.createBuiltin("hll_union_agg",
+                        Lists.newArrayList(Type.HLL), Type.BIGINT, 
Type.VARCHAR,
+                        "",
+                        "",
+                        "",
+                        "",
+                        "",
+                        null,
+                        "",
+                        true, true, true, true));
+        addBuiltin(AggregateFunction.createBuiltin(HLL_UNION,
+                        Lists.newArrayList(Type.HLL), Type.HLL, Type.HLL,
+                        "",
+                        "",
+                        "",
+                        "",
+                        "",
+                        true, false, true, true));
+        addBuiltin(AggregateFunction.createBuiltin("hll_raw_agg",
+                        Lists.newArrayList(Type.HLL), Type.HLL, Type.HLL,
+                        "",
+                        "",
+                        "",
+                        "",
+                        "",
+                        true, false, true, true));
+
+        for (Type t : Type.getTrivialTypes()) {
             if (t.isNull()) {
                 continue; // NULL is handled through type promotion.
             }
@@ -1769,14 +1504,6 @@ public class FunctionSet<T> {
                 continue; // promoted to STRING
             }
             // Count
-            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));
             // vectorized
             addBuiltin(AggregateFunction.createBuiltin(FunctionSet.COUNT,
                     Lists.newArrayList(t), Type.BIGINT, Type.BIGINT,
@@ -1789,17 +1516,6 @@ public class FunctionSet<T> {
 
             // count in multi distinct
             if (t.equals(Type.CHAR) || t.equals(Type.VARCHAR)) {
-                
addBuiltin(AggregateFunction.createBuiltin("multi_distinct_count", 
Lists.newArrayList(t),
-                        Type.BIGINT,
-                        Type.VARCHAR,
-                        prefix + 
"26count_distinct_string_initEPN9doris_udf15FunctionContextEPNS1_9StringValE",
-                        prefix + 
"28count_distinct_string_updateEPN9doris_udf15FunctionContextERNS1_9StringValEPS4_",
-                        prefix + 
"27count_distinct_string_mergeEPN9doris_udf15FunctionContextERNS1_9StringValEPS4_",
-                        prefix + 
"31count_distinct_string_serializeEPN9doris_udf15FunctionContextERKNS1_9StringValE",
-                        null,
-                        null,
-                        prefix + 
"30count_distinct_string_finalizeEPN9doris_udf15FunctionContextERKNS1_9StringValE",
-                        false, true, true));
                 // vectorized
                 
addBuiltin(AggregateFunction.createBuiltin("multi_distinct_count", 
Lists.newArrayList(t),
                         Type.BIGINT,
@@ -1813,18 +1529,6 @@ public class FunctionSet<T> {
                         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 + 
"26count_distinct_string_initEPN9doris_udf15FunctionContextEPNS1_9StringValE",
-                        prefix + 
"28count_distinct_string_updateEPN9doris_udf15FunctionContextERNS1_9StringValEPS4_",
-                        prefix + 
"27count_distinct_string_mergeEPN9doris_udf15FunctionContextERNS1_9StringValEPS4_",
-                        prefix + 
"31count_distinct_string_serializeEPN9doris_udf15FunctionContextERKNS1_9StringValE",
-                        null,
-                        null,
-                        prefix + 
"30count_distinct_string_finalizeEPN9doris_udf15FunctionContextERKNS1_9StringValE",
-                        false, true, true));
-                // vectorized
                 
addBuiltin(AggregateFunction.createBuiltin("multi_distinct_count", 
Lists.newArrayList(t),
                         Type.BIGINT,
                         Type.STRING,
@@ -1838,17 +1542,6 @@ public class FunctionSet<T> {
                         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)) {
-                
addBuiltin(AggregateFunction.createBuiltin("multi_distinct_count", 
Lists.newArrayList(t),
-                        Type.BIGINT,
-                        Type.VARCHAR,
-                        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));
                 // vectorized
                 
addBuiltin(AggregateFunction.createBuiltin("multi_distinct_count", 
Lists.newArrayList(t),
                         Type.BIGINT,
@@ -1862,31 +1555,8 @@ public class FunctionSet<T> {
                         prefix + MULTI_DISTINCT_COUNT_FINALIZE_SYMBOL.get(t),
                         false, true, true, true));
             } else if (t.equals(Type.DATE) || t.equals(Type.DATETIME)) {
-                
addBuiltin(AggregateFunction.createBuiltin("multi_distinct_count", 
Lists.newArrayList(t),
-                        Type.BIGINT,
-                        Type.VARCHAR,
-                        prefix + 
"24count_distinct_date_initEPN9doris_udf15FunctionContextEPNS1_9StringValE",
-                        prefix + 
"26count_distinct_date_updateEPN9doris_udf15FunctionContextERNS1_11DateTimeValEPNS1_9StringValE",
-                        prefix + 
"25count_distinct_date_mergeEPN9doris_udf15FunctionContextERNS1_9StringValEPS4_",
-                        prefix + 
"29count_distinct_date_serializeEPN9doris_udf15FunctionContextERKNS1_9StringValE",
-                        null,
-                        null,
-                        prefix + 
"28count_distinct_date_finalizeEPN9doris_udf15FunctionContextERKNS1_9StringValE",
-                        false, true, true));
-                // vectorized
                 // now we don't support datetime distinct
             } else if (t.equals(Type.MAX_DECIMALV2_TYPE)) {
-                
addBuiltin(AggregateFunction.createBuiltin("multi_distinct_count", 
Lists.newArrayList(t),
-                        Type.BIGINT,
-                        Type.VARCHAR,
-                        prefix + 
"36count_or_sum_distinct_decimalv2_initEPN9doris_udf15FunctionContextEPNS1_9StringValE",
-                        prefix + 
"38count_or_sum_distinct_decimalv2_updateEPN9doris_udf15FunctionContextERNS1_12DecimalV2ValEPNS1_9StringValE",
-                        prefix + 
"37count_or_sum_distinct_decimalv2_mergeEPN9doris_udf15FunctionContextERNS1_9StringValEPS4_",
-                        prefix + 
"41count_or_sum_distinct_decimalv2_serializeEPN9doris_udf15FunctionContextERKNS1_9StringValE",
-                        null,
-                        null,
-                        prefix + 
"33count_distinct_decimalv2_finalizeEPN9doris_udf15FunctionContextERKNS1_9StringValE",
-                        false, true, true));
                 // vectorized
                 
addBuiltin(AggregateFunction.createBuiltin("multi_distinct_count", 
Lists.newArrayList(t),
                         Type.BIGINT,
@@ -1942,19 +1612,6 @@ public class FunctionSet<T> {
 
             // sum in multi distinct
             if (t.equals(Type.BIGINT) || t.equals(Type.LARGEINT) || 
t.equals(Type.DOUBLE)) {
-                
addBuiltin(AggregateFunction.createBuiltin("multi_distinct_sum", 
Lists.newArrayList(t),
-                        t,
-                        Type.VARCHAR,
-                        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));
-
-                // vectorized
                 
addBuiltin(AggregateFunction.createBuiltin("multi_distinct_sum", 
Lists.newArrayList(t),
                         t,
                         t,
@@ -1967,17 +1624,6 @@ public class FunctionSet<T> {
                         prefix + MULTI_DISTINCT_SUM_FINALIZE_SYMBOL.get(t),
                         false, true, true, true));
             }  else if (t.equals(Type.MAX_DECIMALV2_TYPE)) {
-                
addBuiltin(AggregateFunction.createBuiltin("multi_distinct_sum", 
Lists.newArrayList(t),
-                        MULTI_DISTINCT_SUM_RETURN_TYPE.get(t),
-                        Type.VARCHAR,
-                        prefix + 
"36count_or_sum_distinct_decimalv2_initEPN9doris_udf15FunctionContextEPNS1_9StringValE",
-                        prefix + 
"38count_or_sum_distinct_decimalv2_updateEPN9doris_udf15FunctionContextERNS1_12DecimalV2ValEPNS1_9StringValE",
-                        prefix + 
"37count_or_sum_distinct_decimalv2_mergeEPN9doris_udf15FunctionContextERNS1_9StringValEPS4_",
-                        prefix + 
"41count_or_sum_distinct_decimalv2_serializeEPN9doris_udf15FunctionContextERKNS1_9StringValE",
-                        null,
-                        null,
-                        prefix + 
"31sum_distinct_decimalv2_finalizeEPN9doris_udf15FunctionContextERKNS1_9StringValE",
-                        false, true, true));
                 // vectorized
                 
addBuiltin(AggregateFunction.createBuiltin("multi_distinct_sum", 
Lists.newArrayList(t),
                         MULTI_DISTINCT_SUM_RETURN_TYPE.get(t),
@@ -2031,13 +1677,6 @@ public class FunctionSet<T> {
             // 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));
-            // vectorized
             addBuiltin(AggregateFunction.createBuiltin("min",
                     Lists.newArrayList(t), t, t, prefix + 
MIN_INIT_SYMBOL.get(t),
                     prefix + MIN_UPDATE_SYMBOL.get(t),
@@ -2046,13 +1685,6 @@ public class FunctionSet<T> {
                     null, minMaxSerializeOrFinalize, 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));
-            // vectorized
             addBuiltin(AggregateFunction.createBuiltin("max",
                     Lists.newArrayList(t), t, t, prefix + 
MAX_INIT_SYMBOL.get(t),
                     prefix + MAX_UPDATE_SYMBOL.get(t),
@@ -2061,28 +1693,14 @@ public class FunctionSet<T> {
                     null, minMaxSerializeOrFinalize, true, true, false, true));
 
             // Any
-            addBuiltin(AggregateFunction.createBuiltin("any",
-                    Lists.newArrayList(t), t, t, prefix + 
ANY_INIT_SYMBOL.get(t),
-                    prefix + ANY_UPDATE_SYMBOL.get(t),
-                    prefix + ANY_UPDATE_SYMBOL.get(t),
-                    minMaxSerializeOrFinalize, minMaxGetValue,
-                    null, minMaxSerializeOrFinalize, true, true, false));
-            // vectorized
             addBuiltin(AggregateFunction.createBuiltin("any", 
Lists.newArrayList(t), t, t, null, null, null, null, null,
                     null, null, true, false, false, true));
             // Any_Value
-            addBuiltin(AggregateFunction.createBuiltin("any_value",
-                    Lists.newArrayList(t), t, t, prefix + 
ANY_INIT_SYMBOL.get(t),
-                    prefix + ANY_UPDATE_SYMBOL.get(t),
-                    prefix + ANY_UPDATE_SYMBOL.get(t),
-                    minMaxSerializeOrFinalize, minMaxGetValue,
-                    null, minMaxSerializeOrFinalize, true, true, false));
-            // vectorized
             addBuiltin(AggregateFunction.createBuiltin("any_value", 
Lists.newArrayList(t), t, t, null, null, null, null,
                     null, null, null, true, false, false, true));
 
             // vectorized
-            for (Type kt : Type.getSupportedTypes()) {
+            for (Type kt : Type.getTrivialTypes()) {
                 if (kt.isNull()) {
                     continue;
                 }
@@ -2094,17 +1712,6 @@ public class FunctionSet<T> {
                         true, true, false, true));
             }
 
-
-            // NDV
-            // ndv return string
-            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, false, true));
-
             // vectorized
             addBuiltin(AggregateFunction.createBuiltin("ndv", 
Lists.newArrayList(t), Type.BIGINT, Type.VARCHAR,
                             
"_ZN5doris12HllFunctions8hll_initEPN9doris_udf15FunctionContextEPNS1_9StringValE",
@@ -2114,17 +1721,6 @@ public class FunctionSet<T> {
                             
"_ZN5doris12HllFunctions12hll_finalizeEPN9doris_udf15FunctionContextERKNS1_9StringValE",
                             true, true, true, true));
 
-            // APPROX_COUNT_DISTINCT
-            // alias of ndv, compute approx count distinct use HyperLogLog
-            
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, false, true));
-
             // vectorized
             
addBuiltin(AggregateFunction.createBuiltin("approx_count_distinct", 
Lists.newArrayList(t), Type.BIGINT,
                             Type.VARCHAR,
@@ -2135,15 +1731,6 @@ public class FunctionSet<T> {
                             
"_ZN5doris12HllFunctions12hll_finalizeEPN9doris_udf15FunctionContextERKNS1_9StringValE",
                             true, true, true, true));
 
-            // BITMAP_UNION_INT
-            addBuiltin(AggregateFunction.createBuiltin(BITMAP_UNION_INT,
-                    Lists.newArrayList(t), Type.BIGINT, Type.VARCHAR,
-                    
"_ZN5doris15BitmapFunctions11bitmap_initEPN9doris_udf15FunctionContextEPNS1_9StringValE",
-                    BITMAP_UNION_INT_SYMBOL.get(t),
-                    
"_ZN5doris15BitmapFunctions12bitmap_unionEPN9doris_udf15FunctionContextERKNS1_9StringValEPS4_",
-                    
"_ZN5doris15BitmapFunctions16bitmap_serializeEPN9doris_udf15FunctionContextERKNS1_9StringValE",
-                    
"_ZN5doris15BitmapFunctions15bitmap_finalizeEPN9doris_udf15FunctionContextERKNS1_9StringValE",
-                    true, false, true));
             // vectorized
             addBuiltin(AggregateFunction.createBuiltin(BITMAP_UNION_INT,
                     Lists.newArrayList(t), Type.BIGINT, t,
@@ -2154,19 +1741,6 @@ public class FunctionSet<T> {
                     "",
                     true, false, true, true));
 
-
-            // 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));
-
             // VEC_INTERSECT_COUNT
             addBuiltin(
                     AggregateFunction.createBuiltin(INTERSECT_COUNT, 
Lists.newArrayList(Type.BITMAP, t, t), Type.BIGINT,
@@ -2175,88 +1749,8 @@ public class FunctionSet<T> {
                             BITMAP_INTERSECT_SERIALIZE_SYMBOL.get(t), null, 
null,
                             BITMAP_INTERSECT_FINALIZE_SYMBOL.get(t), true, 
false, true, true));
 
-            // HLL_UNION_AGG
-            addBuiltin(AggregateFunction.createBuiltin("hll_union_agg",
-                    Lists.newArrayList(t), Type.BIGINT, Type.VARCHAR,
-                    
"_ZN5doris12HllFunctions8hll_initEPN9doris_udf15FunctionContextEPNS1_9StringValE",
-                     HLL_UNION_AGG_UPDATE_SYMBOL.get(t),
-                    
"_ZN5doris12HllFunctions9hll_mergeEPN9doris_udf15FunctionContextERKNS1_9StringValEPS4_",
-                    
"_ZN5doris12HllFunctions13hll_serializeEPN9doris_udf15FunctionContextERKNS1_9StringValE",
-                    
"_ZN5doris12HllFunctions13hll_get_valueEPN9doris_udf15FunctionContextERKNS1_9StringValE",
-                    null,
-                    
"_ZN5doris12HllFunctions12hll_finalizeEPN9doris_udf15FunctionContextERKNS1_9StringValE",
-                    true, true, true));
-
-            // HLL_UNION_AGG vectorized
-            addBuiltin(AggregateFunction.createBuiltin("hll_union_agg",
-                    Lists.newArrayList(t), Type.BIGINT, Type.VARCHAR,
-                    
"_ZN5doris12HllFunctions8hll_initEPN9doris_udf15FunctionContextEPNS1_9StringValE",
-                    HLL_UNION_AGG_UPDATE_SYMBOL.get(t),
-                    
"_ZN5doris12HllFunctions9hll_mergeEPN9doris_udf15FunctionContextERKNS1_9StringValEPS4_",
-                    
"_ZN5doris12HllFunctions13hll_serializeEPN9doris_udf15FunctionContextERKNS1_9StringValE",
-                    
"_ZN5doris12HllFunctions13hll_get_valueEPN9doris_udf15FunctionContextERKNS1_9StringValE",
-                    null,
-                    
"_ZN5doris12HllFunctions12hll_finalizeEPN9doris_udf15FunctionContextERKNS1_9StringValE",
-                    true, true, true, true));
-
-            // HLL_UNION
-            addBuiltin(AggregateFunction.createBuiltin(HLL_UNION,
-                    Lists.newArrayList(t), Type.HLL, Type.HLL,
-                    
"_ZN5doris12HllFunctions8hll_initEPN9doris_udf15FunctionContextEPNS1_9StringValE",
-                    
"_ZN5doris12HllFunctions9hll_mergeEPN9doris_udf15FunctionContextERKNS1_9StringValEPS4_",
-                    
"_ZN5doris12HllFunctions9hll_mergeEPN9doris_udf15FunctionContextERKNS1_9StringValEPS4_",
-                    
"_ZN5doris12HllFunctions13hll_serializeEPN9doris_udf15FunctionContextERKNS1_9StringValE",
-                    
"_ZN5doris12HllFunctions13hll_serializeEPN9doris_udf15FunctionContextERKNS1_9StringValE",
-                    true, false, true));
-
-            // HLL_UNION vectorized
-            addBuiltin(AggregateFunction.createBuiltin(HLL_UNION,
-                    Lists.newArrayList(t), Type.HLL, Type.HLL,
-                    
"_ZN5doris12HllFunctions8hll_initEPN9doris_udf15FunctionContextEPNS1_9StringValE",
-                    
"_ZN5doris12HllFunctions9hll_mergeEPN9doris_udf15FunctionContextERKNS1_9StringValEPS4_",
-                    
"_ZN5doris12HllFunctions9hll_mergeEPN9doris_udf15FunctionContextERKNS1_9StringValEPS4_",
-                    
"_ZN5doris12HllFunctions13hll_serializeEPN9doris_udf15FunctionContextERKNS1_9StringValE",
-                    
"_ZN5doris12HllFunctions13hll_serializeEPN9doris_udf15FunctionContextERKNS1_9StringValE",
-                    true, false, true, true));
-
-            // HLL_RAW_AGG is alias of HLL_UNION
-            addBuiltin(AggregateFunction.createBuiltin("hll_raw_agg",
-                    Lists.newArrayList(t), Type.HLL, Type.HLL,
-                    
"_ZN5doris12HllFunctions8hll_initEPN9doris_udf15FunctionContextEPNS1_9StringValE",
-                    
"_ZN5doris12HllFunctions9hll_mergeEPN9doris_udf15FunctionContextERKNS1_9StringValEPS4_",
-                    
"_ZN5doris12HllFunctions9hll_mergeEPN9doris_udf15FunctionContextERKNS1_9StringValEPS4_",
-                    
"_ZN5doris12HllFunctions13hll_serializeEPN9doris_udf15FunctionContextERKNS1_9StringValE",
-                    
"_ZN5doris12HllFunctions13hll_serializeEPN9doris_udf15FunctionContextERKNS1_9StringValE",
-                    true, false, true));
-
-            // HLL_RAW_AGG is alias of HLL_UNION vectorized
-            addBuiltin(AggregateFunction.createBuiltin("hll_raw_agg",
-                    Lists.newArrayList(t), Type.HLL, Type.HLL,
-                    
"_ZN5doris12HllFunctions8hll_initEPN9doris_udf15FunctionContextEPNS1_9StringValE",
-                    
"_ZN5doris12HllFunctions9hll_mergeEPN9doris_udf15FunctionContextERKNS1_9StringValEPS4_",
-                    
"_ZN5doris12HllFunctions9hll_mergeEPN9doris_udf15FunctionContextERKNS1_9StringValEPS4_",
-                    
"_ZN5doris12HllFunctions13hll_serializeEPN9doris_udf15FunctionContextERKNS1_9StringValE",
-                    
"_ZN5doris12HllFunctions13hll_serializeEPN9doris_udf15FunctionContextERKNS1_9StringValE",
-                    true, false, true, true));
-
             // TopN
             if (TOPN_UPDATE_SYMBOL.containsKey(t)) {
-                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));
-                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));
                 // vectorized
                 addBuiltin(AggregateFunction.createBuiltin("topn", 
Lists.newArrayList(t, Type.INT), Type.VARCHAR,
                         Type.VARCHAR,
@@ -2277,33 +1771,6 @@ public class FunctionSet<T> {
             }
 
             if (STDDEV_UPDATE_SYMBOL.containsKey(t)) {
-                addBuiltin(AggregateFunction.createBuiltin("stddev",
-                        Lists.newArrayList(t), STDDEV_RETTYPE_SYMBOL.get(t), 
Type.VARCHAR,
-                        prefix + STDDEV_INIT_SYMBOL.get(t),
-                        prefix + STDDEV_UPDATE_SYMBOL.get(t),
-                        prefix + STDDEV_MERGE_SYMBOL.get(t),
-                        null, prefix + STDDEV_POP_GET_VALUE_SYMBOL.get(t), 
prefix + STDDEV_REMOVE_SYMBOL.get(t),
-                        prefix + STDDEV_POP_FINALIZE_SYMBOL.get(t),
-                        false, true, false));
-
-                addBuiltin(AggregateFunction.createBuiltin("stddev_samp",
-                        Lists.newArrayList(t), STDDEV_RETTYPE_SYMBOL.get(t), 
Type.VARCHAR,
-                        prefix + STDDEV_INIT_SYMBOL.get(t),
-                        prefix + STDDEV_UPDATE_SYMBOL.get(t),
-                        prefix + STDDEV_MERGE_SYMBOL.get(t),
-                        null, prefix + STDDEV_GET_VALUE_SYMBOL.get(t), prefix 
+ STDDEV_REMOVE_SYMBOL.get(t),
-                        prefix + STDDEV_FINALIZE_SYMBOL.get(t),
-                        false, true, false));
-
-                addBuiltin(AggregateFunction.createBuiltin("stddev_pop",
-                        Lists.newArrayList(t), STDDEV_RETTYPE_SYMBOL.get(t), 
Type.VARCHAR,
-                        prefix + STDDEV_INIT_SYMBOL.get(t),
-                        prefix + STDDEV_UPDATE_SYMBOL.get(t),
-                        prefix + STDDEV_MERGE_SYMBOL.get(t),
-                        null, prefix + STDDEV_POP_GET_VALUE_SYMBOL.get(t), 
prefix + STDDEV_REMOVE_SYMBOL.get(t),
-                        prefix + STDDEV_POP_FINALIZE_SYMBOL.get(t),
-                        false, true, false));
-
                 //vec stddev stddev_samp stddev_pop
                 addBuiltin(AggregateFunction.createBuiltin("stddev",
                         Lists.newArrayList(t), STDDEV_RETTYPE_SYMBOL.get(t), t,
@@ -2372,51 +1839,6 @@ public class FunctionSet<T> {
                         prefix + VAR_FINALIZE_SYMBOL.get(t),
                         false, true, false, true));
 
-                addBuiltin(AggregateFunction.createBuiltin("variance",
-                        Lists.newArrayList(t), STDDEV_RETTYPE_SYMBOL.get(t), 
Type.VARCHAR,
-                        prefix + STDDEV_INIT_SYMBOL.get(t),
-                        prefix + STDDEV_UPDATE_SYMBOL.get(t),
-                        prefix + STDDEV_MERGE_SYMBOL.get(t),
-                        null, prefix + VAR_POP_GET_VALUE_SYMBOL.get(t), prefix 
+ STDDEV_REMOVE_SYMBOL.get(t),
-                        prefix + VAR_POP_FINALIZE_SYMBOL.get(t),
-                        false, true, false));
-
-                addBuiltin(AggregateFunction.createBuiltin("variance_samp",
-                        Lists.newArrayList(t), STDDEV_RETTYPE_SYMBOL.get(t), 
Type.VARCHAR,
-                        prefix + STDDEV_INIT_SYMBOL.get(t),
-                        prefix + STDDEV_UPDATE_SYMBOL.get(t),
-                        prefix + STDDEV_MERGE_SYMBOL.get(t),
-                        null, prefix + VAR_GET_VALUE_SYMBOL.get(t), prefix + 
STDDEV_REMOVE_SYMBOL.get(t),
-                        prefix + VAR_FINALIZE_SYMBOL.get(t),
-                        false, true, false));
-
-                addBuiltin(AggregateFunction.createBuiltin("var_samp",
-                        Lists.newArrayList(t), STDDEV_RETTYPE_SYMBOL.get(t), 
Type.VARCHAR,
-                        prefix + STDDEV_INIT_SYMBOL.get(t),
-                        prefix + STDDEV_UPDATE_SYMBOL.get(t),
-                        prefix + STDDEV_MERGE_SYMBOL.get(t),
-                        null, prefix + VAR_GET_VALUE_SYMBOL.get(t), prefix + 
STDDEV_REMOVE_SYMBOL.get(t),
-                        prefix + VAR_FINALIZE_SYMBOL.get(t),
-                        false, true, false));
-
-                addBuiltin(AggregateFunction.createBuiltin("variance_pop",
-                        Lists.newArrayList(t), STDDEV_RETTYPE_SYMBOL.get(t), 
Type.VARCHAR,
-                        prefix + STDDEV_INIT_SYMBOL.get(t),
-                        prefix + STDDEV_UPDATE_SYMBOL.get(t),
-                        prefix + STDDEV_MERGE_SYMBOL.get(t),
-                        null, prefix + VAR_POP_GET_VALUE_SYMBOL.get(t), prefix 
+ STDDEV_REMOVE_SYMBOL.get(t),
-                        prefix + VAR_POP_FINALIZE_SYMBOL.get(t),
-                        false, true, false));
-
-                addBuiltin(AggregateFunction.createBuiltin("var_pop",
-                        Lists.newArrayList(t), STDDEV_RETTYPE_SYMBOL.get(t), 
Type.VARCHAR,
-                        prefix + STDDEV_INIT_SYMBOL.get(t),
-                        prefix + STDDEV_UPDATE_SYMBOL.get(t),
-                        prefix + STDDEV_MERGE_SYMBOL.get(t),
-                        null, prefix + VAR_POP_GET_VALUE_SYMBOL.get(t), prefix 
+ STDDEV_REMOVE_SYMBOL.get(t),
-                        prefix + VAR_POP_FINALIZE_SYMBOL.get(t),
-                        false, true, false));
-
                 addBuiltin(AggregateFunction.createBuiltin("avg_weighted",
                         Lists.<Type>newArrayList(t, Type.DOUBLE), Type.DOUBLE, 
Type.DOUBLE,
                         "", "", "", "", "", "", "",
@@ -2427,43 +1849,6 @@ public class FunctionSet<T> {
         // Sum
         String []sumNames = {"sum", "sum_distinct"};
         for (String name : sumNames) {
-            addBuiltin(AggregateFunction.createBuiltin(name,
-                    Lists.<Type>newArrayList(Type.BIGINT), Type.BIGINT, 
Type.BIGINT, prefix + 
"14init_zero_nullIN9doris_udf9BigIntValEEEvPNS2_15FunctionContextEPT_",
-                    prefix + 
"3sumIN9doris_udf9BigIntValES3_EEvPNS2_15FunctionContextERKT_PT0_",
-                    prefix + 
"3sumIN9doris_udf9BigIntValES3_EEvPNS2_15FunctionContextERKT_PT0_",
-                    null, null,
-                    prefix + 
"10sum_removeIN9doris_udf9BigIntValES3_EEvPNS2_15FunctionContextERKT_PT0_",
-                    null, false, true, false));
-            addBuiltin(AggregateFunction.createBuiltin(name,
-                    Lists.<Type>newArrayList(Type.DOUBLE), Type.DOUBLE, 
Type.DOUBLE, prefix + 
"14init_zero_nullIN9doris_udf9DoubleValEEEvPNS2_15FunctionContextEPT_",
-                    prefix + 
"3sumIN9doris_udf9DoubleValES3_EEvPNS2_15FunctionContextERKT_PT0_",
-                    prefix + 
"3sumIN9doris_udf9DoubleValES3_EEvPNS2_15FunctionContextERKT_PT0_",
-                    null, null,
-                    prefix + 
"10sum_removeIN9doris_udf9DoubleValES3_EEvPNS2_15FunctionContextERKT_PT0_",
-                    null, false, true, false));
-            addBuiltin(AggregateFunction.createBuiltin(name,
-                    Lists.<Type>newArrayList(Type.MAX_DECIMALV2_TYPE), 
Type.MAX_DECIMALV2_TYPE, Type.MAX_DECIMALV2_TYPE, prefix + 
"14init_zero_nullIN9doris_udf12DecimalV2ValEEEvPNS2_15FunctionContextEPT_",
-                    prefix + 
"3sumIN9doris_udf12DecimalV2ValES3_EEvPNS2_15FunctionContextERKT_PT0_",
-                    prefix + 
"3sumIN9doris_udf12DecimalV2ValES3_EEvPNS2_15FunctionContextERKT_PT0_",
-                    null, null,
-                    prefix + 
"10sum_removeIN9doris_udf12DecimalV2ValES3_EEvPNS2_15FunctionContextERKT_PT0_",
-                    null, false, true, false));
-            addBuiltin(AggregateFunction.createBuiltin(name,
-                    Lists.<Type>newArrayList(Type.LARGEINT), Type.LARGEINT, 
Type.LARGEINT, prefix + 
"14init_zero_nullIN9doris_udf11LargeIntValEEEvPNS2_15FunctionContextEPT_",
-                    prefix + 
"3sumIN9doris_udf11LargeIntValES3_EEvPNS2_15FunctionContextERKT_PT0_",
-                    prefix + 
"3sumIN9doris_udf11LargeIntValES3_EEvPNS2_15FunctionContextERKT_PT0_",
-                    null, null,
-                    prefix + 
"10sum_removeIN9doris_udf11LargeIntValES3_EEvPNS2_15FunctionContextERKT_PT0_",
-                    null, false, true, false));
-
-            // vectorized
-            addBuiltin(AggregateFunction.createBuiltin(name,
-                    Lists.<Type>newArrayList(Type.BOOLEAN), Type.BIGINT, 
Type.BIGINT, initNull,
-                    "",
-                    "",
-                    null, null,
-                    "",
-                    null, false, true, false, true));
             addBuiltin(AggregateFunction.createBuiltin(name,
                     Lists.<Type>newArrayList(Type.TINYINT), Type.BIGINT, 
Type.BIGINT, initNull,
                     prefix + 
"3sumIN9doris_udf9BigIntValES3_EEvPNS2_15FunctionContextERKT_PT0_",
@@ -2539,33 +1924,6 @@ public class FunctionSet<T> {
         Type[] types = {Type.SMALLINT, Type.TINYINT, Type.INT, Type.BIGINT, 
Type.FLOAT, Type.DOUBLE, Type.CHAR,
                 Type.VARCHAR, Type.STRING};
         for (Type t : types) {
-            
addBuiltin(AggregateFunction.createBuiltin(ORTHOGONAL_BITMAP_INTERSECT,
-                    Lists.newArrayList(Type.BITMAP, t, t),
-                    Type.BITMAP,
-                    Type.VARCHAR,
-                    true,
-                    ORTHOGONAL_BITMAP_INTERSECT_INIT_SYMBOL.get(t),
-                    BITMAP_INTERSECT_UPDATE_SYMBOL.get(t),
-                    
"_ZN5doris15BitmapFunctions12bitmap_unionEPN9doris_udf15FunctionContextERKNS1_9StringValEPS4_",
-                    ORTHOGONAL_BITMAP_INTERSECT_SERIALIZE_SYMBOL.get(t),
-                    "",
-                    "",
-                    
"_ZN5doris15BitmapFunctions16bitmap_serializeEPN9doris_udf15FunctionContextERKNS1_9StringValE",
-                    true, false, true));
-            
addBuiltin(AggregateFunction.createBuiltin(ORTHOGONAL_BITMAP_INTERSECT_COUNT,
-                    Lists.newArrayList(Type.BITMAP, t, t),
-                    Type.BIGINT,
-                    Type.VARCHAR,
-                    true,
-                    ORTHOGONAL_BITMAP_INTERSECT_COUNT_INIT_SYMBOL.get(t),
-                    BITMAP_INTERSECT_UPDATE_SYMBOL.get(t),
-                    
"_ZN5doris15BitmapFunctions29orthogonal_bitmap_count_mergeEPN9doris_udf15FunctionContextERKNS1_9StringValEPS4_",
-                    ORTHOGONAL_BITMAP_INTERSECT_COUNT_SERIALIZE_SYMBOL.get(t),
-                    "",
-                    "",
-                    
"_ZN5doris15BitmapFunctions32orthogonal_bitmap_count_finalizeEPN9doris_udf15FunctionContextERKNS1_9StringValE",
-                    true, false, true));
-
             //vec ORTHOGONAL_BITMAP_INTERSECT and 
ORTHOGONAL_BITMAP_INTERSECT_COUNT
             addBuiltin(
                     
AggregateFunction.createBuiltin(ORTHOGONAL_BITMAP_INTERSECT, 
Lists.newArrayList(Type.BITMAP, t, t),
@@ -2578,34 +1936,6 @@ public class FunctionSet<T> {
 
         Type[] ntypes = {Type.CHAR, Type.VARCHAR, Type.STRING};
         for (Type t : ntypes) {
-            
addBuiltin(AggregateFunction.createBuiltin(ORTHOGONAL_BITMAP_EXPR_CALCULATE,
-                    Lists.newArrayList(Type.BITMAP, t, Type.STRING),
-                    Type.BITMAP,
-                    Type.VARCHAR,
-                    true,
-                    
"_ZN5doris15BitmapFunctions37orthogonal_bitmap_expr_calculate_initEPN9doris_udf15FunctionContextEPNS1_9StringValE",
-                    
"_ZN5doris15BitmapFunctions39orthogonal_bitmap_expr_calculate_updateEPN9doris_udf15FunctionContextERKNS1_9StringValES6_iPS5_S7_",
-                    
"_ZN5doris15BitmapFunctions12bitmap_unionEPN9doris_udf15FunctionContextERKNS1_9StringValEPS4_",
-                    
"_ZN5doris15BitmapFunctions42orthogonal_bitmap_expr_calculate_serializeEPN9doris_udf15FunctionContextERKNS1_9StringValE",
-                    "",
-                    "",
-                    
"_ZN5doris15BitmapFunctions16bitmap_serializeEPN9doris_udf15FunctionContextERKNS1_9StringValE",
-                    true, false, true));
-
-            
addBuiltin(AggregateFunction.createBuiltin(ORTHOGONAL_BITMAP_EXPR_CALCULATE_COUNT,
-                    Lists.newArrayList(Type.BITMAP, t, Type.STRING),
-                    Type.BIGINT,
-                    Type.VARCHAR,
-                    true,
-                    
"_ZN5doris15BitmapFunctions43orthogonal_bitmap_expr_calculate_count_initEPN9doris_udf15FunctionContextEPNS1_9StringValE",
-                    
"_ZN5doris15BitmapFunctions39orthogonal_bitmap_expr_calculate_updateEPN9doris_udf15FunctionContextERKNS1_9StringValES6_iPS5_S7_",
-                    
"_ZN5doris15BitmapFunctions29orthogonal_bitmap_count_mergeEPN9doris_udf15FunctionContextERKNS1_9StringValEPS4_",
-                    
"_ZN5doris15BitmapFunctions48orthogonal_bitmap_expr_calculate_count_serializeEPN9doris_udf15FunctionContextERKNS1_9StringValE",
-                    "",
-                    "",
-                    
"_ZN5doris15BitmapFunctions32orthogonal_bitmap_count_finalizeEPN9doris_udf15FunctionContextERKNS1_9StringValE",
-                    true, false, true));
-
             //vec ORTHOGONAL_BITMAP_EXPR_CALCULATE and 
ORTHOGONAL_BITMAP_EXPR_CALCULATE_COUNT
             addBuiltin(
                     
AggregateFunction.createBuiltin(ORTHOGONAL_BITMAP_EXPR_CALCULATE, 
Lists.newArrayList(Type.BITMAP, t, Type.STRING),
@@ -2616,17 +1946,6 @@ public class FunctionSet<T> {
                     true, false, true, true));
         }
 
-        // bitmap
-        addBuiltin(AggregateFunction.createBuiltin(BITMAP_UNION, 
Lists.newArrayList(Type.BITMAP),
-                Type.BITMAP,
-                Type.VARCHAR,
-                
"_ZN5doris15BitmapFunctions11bitmap_initEPN9doris_udf15FunctionContextEPNS1_9StringValE",
-                
"_ZN5doris15BitmapFunctions12bitmap_unionEPN9doris_udf15FunctionContextERKNS1_9StringValEPS4_",
-                
"_ZN5doris15BitmapFunctions12bitmap_unionEPN9doris_udf15FunctionContextERKNS1_9StringValEPS4_",
-                
"_ZN5doris15BitmapFunctions16bitmap_serializeEPN9doris_udf15FunctionContextERKNS1_9StringValE",
-                
"_ZN5doris15BitmapFunctions16bitmap_serializeEPN9doris_udf15FunctionContextERKNS1_9StringValE",
-                true, false, true));
-
         addBuiltin(AggregateFunction.createBuiltin(BITMAP_UNION, 
Lists.newArrayList(Type.BITMAP),
                 Type.BITMAP,
                 Type.BITMAP,
@@ -2636,20 +1955,6 @@ public class FunctionSet<T> {
                 "",
                 "",
                 true, false, true, true));
-
-
-        addBuiltin(AggregateFunction.createBuiltin(BITMAP_UNION_COUNT, 
Lists.newArrayList(Type.BITMAP),
-                Type.BIGINT,
-                Type.VARCHAR,
-                
"_ZN5doris15BitmapFunctions11bitmap_initEPN9doris_udf15FunctionContextEPNS1_9StringValE",
-                
"_ZN5doris15BitmapFunctions12bitmap_unionEPN9doris_udf15FunctionContextERKNS1_9StringValEPS4_",
-                
"_ZN5doris15BitmapFunctions12bitmap_unionEPN9doris_udf15FunctionContextERKNS1_9StringValEPS4_",
-                
"_ZN5doris15BitmapFunctions16bitmap_serializeEPN9doris_udf15FunctionContextERKNS1_9StringValE",
-                
"_ZN5doris15BitmapFunctions16bitmap_get_valueEPN9doris_udf15FunctionContextERKNS1_9StringValE",
-                null,
-                
"_ZN5doris15BitmapFunctions15bitmap_finalizeEPN9doris_udf15FunctionContextERKNS1_9StringValE",
-                true, true, true));
-
         addBuiltin(AggregateFunction.createBuiltin(BITMAP_UNION_COUNT, 
Lists.newArrayList(Type.BITMAP),
                 Type.BIGINT,
                 Type.BITMAP,
@@ -2661,32 +1966,10 @@ public class FunctionSet<T> {
                 null,
                 "",
                 true, true, true, true));
-
-        
addBuiltin(AggregateFunction.createBuiltin(ORTHOGONAL_BITMAP_UNION_COUNT, 
Lists.newArrayList(Type.BITMAP),
-                Type.BIGINT,
-                Type.VARCHAR,
-                
"_ZN5doris15BitmapFunctions34orthogonal_bitmap_union_count_initEPN9doris_udf15FunctionContextEPNS1_9StringValE",
-                
"_ZN5doris15BitmapFunctions12bitmap_unionEPN9doris_udf15FunctionContextERKNS1_9StringValEPS4_",
-                
"_ZN5doris15BitmapFunctions29orthogonal_bitmap_count_mergeEPN9doris_udf15FunctionContextERKNS1_9StringValEPS4_",
-                
"_ZN5doris15BitmapFunctions33orthogonal_bitmap_count_serializeEPN9doris_udf15FunctionContextERKNS1_9StringValE",
-                null,
-                null,
-                
"_ZN5doris15BitmapFunctions32orthogonal_bitmap_count_finalizeEPN9doris_udf15FunctionContextERKNS1_9StringValE",
-                true, true, true));
         // ORTHOGONAL_BITMAP_UNION_COUNT vectorized
         
addBuiltin(AggregateFunction.createBuiltin(ORTHOGONAL_BITMAP_UNION_COUNT, 
Lists.newArrayList(Type.BITMAP),
                 Type.BIGINT, Type.BITMAP, "", "", "", "", null, null, "", 
true, true, true, true));
 
-        // TODO(ml): supply function symbol
-        addBuiltin(AggregateFunction.createBuiltin(BITMAP_INTERSECT, 
Lists.newArrayList(Type.BITMAP),
-                Type.BITMAP, Type.VARCHAR,
-                
"_ZN5doris15BitmapFunctions20nullable_bitmap_initEPN9doris_udf15FunctionContextEPNS1_9StringValE",
-                
"_ZN5doris15BitmapFunctions16bitmap_intersectEPN9doris_udf15FunctionContextERKNS1_9StringValEPS4_",
-                
"_ZN5doris15BitmapFunctions16bitmap_intersectEPN9doris_udf15FunctionContextERKNS1_9StringValEPS4_",
-                
"_ZN5doris15BitmapFunctions16bitmap_serializeEPN9doris_udf15FunctionContextERKNS1_9StringValE",
-                
"_ZN5doris15BitmapFunctions16bitmap_serializeEPN9doris_udf15FunctionContextERKNS1_9StringValE",
-                true, false, true));
-
         addBuiltin(AggregateFunction.createBuiltin(BITMAP_INTERSECT, 
Lists.newArrayList(Type.BITMAP),
                 Type.BITMAP, Type.BITMAP,
                 "",
@@ -2696,15 +1979,6 @@ public class FunctionSet<T> {
                 "",
                 true, false, true, true));
 
-        addBuiltin(AggregateFunction.createBuiltin("group_bitmap_xor", 
Lists.newArrayList(Type.BITMAP),
-                Type.BITMAP, Type.VARCHAR,
-                
"_ZN5doris15BitmapFunctions11bitmap_initEPN9doris_udf15FunctionContextEPNS1_9StringValE",
-                
"_ZN5doris15BitmapFunctions16group_bitmap_xorEPN9doris_udf15FunctionContextERKNS1_9StringValEPS4_",
-                
"_ZN5doris15BitmapFunctions16group_bitmap_xorEPN9doris_udf15FunctionContextERKNS1_9StringValEPS4_",
-                
"_ZN5doris15BitmapFunctions16bitmap_serializeEPN9doris_udf15FunctionContextERKNS1_9StringValE",
-                
"_ZN5doris15BitmapFunctions16bitmap_serializeEPN9doris_udf15FunctionContextERKNS1_9StringValE",
-                true, false, true));
-
         // vec group_bitmap_xor
         addBuiltin(AggregateFunction.createBuiltin("group_bitmap_xor", 
Lists.newArrayList(Type.BITMAP),
                 Type.BITMAP, Type.BITMAP,
@@ -2726,16 +2000,6 @@ public class FunctionSet<T> {
                     Lists.newArrayList(t), t, t, "", "", "", "", "",
                     false, true, false, true));
         }
-        //quantile_state
-        addBuiltin(AggregateFunction.createBuiltin(QUANTILE_UNION, 
Lists.newArrayList(Type.QUANTILE_STATE),
-                Type.QUANTILE_STATE,
-                Type.QUANTILE_STATE,
-                
"_ZN5doris22QuantileStateFunctions19quantile_state_initEPN9doris_udf15FunctionContextEPNS1_9StringValE",
-                
"_ZN5doris22QuantileStateFunctions14quantile_unionEPN9doris_udf15FunctionContextERKNS1_9StringValEPS4_",
-                
"_ZN5doris22QuantileStateFunctions14quantile_unionEPN9doris_udf15FunctionContextERKNS1_9StringValEPS4_",
-                
"_ZN5doris22QuantileStateFunctions24quantile_state_serializeEPN9doris_udf15FunctionContextERKNS1_9StringValE",
-                
"_ZN5doris22QuantileStateFunctions24quantile_state_serializeEPN9doris_udf15FunctionContextERKNS1_9StringValE",
-                true, false, true));
 
         addBuiltin(AggregateFunction.createBuiltin(QUANTILE_UNION, 
Lists.newArrayList(Type.QUANTILE_STATE),
                 Type.QUANTILE_STATE,
@@ -2746,33 +2010,6 @@ public class FunctionSet<T> {
                 "",
                 "",
                 true, false, true, true));
-        //Percentile
-        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, false, false));
-
-        //PercentileApprox
-        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, false, false));
-        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, false, false));
 
         //vec percentile and percentile_approx
         addBuiltin(AggregateFunction.createBuiltin("percentile",
@@ -2864,59 +2101,6 @@ public class FunctionSet<T> {
 
         // Avg
         // TODO: switch to CHAR(sizeof(AvgIntermediateType) when that becomes 
available
-        addBuiltin(AggregateFunction.createBuiltin("avg",
-                Lists.<Type>newArrayList(Type.BIGINT), Type.DOUBLE, 
Type.VARCHAR,
-                prefix + 
"8avg_initEPN9doris_udf15FunctionContextEPNS1_9StringValE",
-                prefix + 
"10avg_updateIN9doris_udf9BigIntValEEEvPNS2_15FunctionContextERKT_PNS2_9StringValE",
-                prefix + 
"9avg_mergeEPN9doris_udf15FunctionContextERKNS1_9StringValEPS4_",
-                stringValSerializeOrFinalize,
-                prefix + 
"13avg_get_valueEPN9doris_udf15FunctionContextERKNS1_9StringValE",
-                prefix + 
"10avg_removeIN9doris_udf9BigIntValEEEvPNS2_15FunctionContextERKT_PNS2_9StringValE",
-                prefix + 
"12avg_finalizeEPN9doris_udf15FunctionContextERKNS1_9StringValE",
-                false, true, false));
-        addBuiltin(AggregateFunction.createBuiltin("avg",
-                Lists.<Type>newArrayList(Type.DOUBLE), Type.DOUBLE, 
Type.VARCHAR,
-                prefix + 
"8avg_initEPN9doris_udf15FunctionContextEPNS1_9StringValE",
-                prefix + 
"10avg_updateIN9doris_udf9DoubleValEEEvPNS2_15FunctionContextERKT_PNS2_9StringValE",
-                prefix + 
"9avg_mergeEPN9doris_udf15FunctionContextERKNS1_9StringValEPS4_",
-                stringValSerializeOrFinalize,
-                prefix + 
"13avg_get_valueEPN9doris_udf15FunctionContextERKNS1_9StringValE",
-                prefix + 
"10avg_removeIN9doris_udf9DoubleValEEEvPNS2_15FunctionContextERKT_PNS2_9StringValE",
-                prefix + 
"12avg_finalizeEPN9doris_udf15FunctionContextERKNS1_9StringValE",
-                false, true, false));
-
-        addBuiltin(AggregateFunction.createBuiltin("avg",
-                Lists.<Type>newArrayList(Type.MAX_DECIMALV2_TYPE), 
Type.MAX_DECIMALV2_TYPE, Type.VARCHAR,
-                prefix + 
"18decimalv2_avg_initEPN9doris_udf15FunctionContextEPNS1_9StringValE",
-                prefix + 
"20decimalv2_avg_updateEPN9doris_udf15FunctionContextERKNS1_12DecimalV2ValEPNS1_9StringValE",
-                prefix + 
"19decimalv2_avg_mergeEPN9doris_udf15FunctionContextERKNS1_9StringValEPS4_",
-                prefix + 
"23decimalv2_avg_serializeEPN9doris_udf15FunctionContextERKNS1_9StringValE",
-                prefix + 
"23decimalv2_avg_get_valueEPN9doris_udf15FunctionContextERKNS1_9StringValE",
-                prefix + 
"20decimalv2_avg_removeEPN9doris_udf15FunctionContextERKNS1_12DecimalV2ValEPNS1_9StringValE",
-                prefix + 
"22decimalv2_avg_finalizeEPN9doris_udf15FunctionContextERKNS1_9StringValE",
-                false, true, false));
-
-        // Avg(Timestamp)
-        addBuiltin(AggregateFunction.createBuiltin("avg",
-                Lists.<Type>newArrayList(Type.DATE), Type.DATE, Type.VARCHAR,
-                prefix + 
"8avg_initEPN9doris_udf15FunctionContextEPNS1_9StringValE",
-                prefix + 
"20timestamp_avg_updateEPN9doris_udf15FunctionContextERKNS1_11DateTimeValEPNS1_9StringValE",
-                prefix + 
"9avg_mergeEPN9doris_udf15FunctionContextERKNS1_9StringValEPS4_",
-                stringValSerializeOrFinalize,
-                prefix + 
"23timestamp_avg_get_valueEPN9doris_udf15FunctionContextERKNS1_9StringValE",
-                prefix + 
"20timestamp_avg_removeEPN9doris_udf15FunctionContextERKNS1_11DateTimeValEPNS1_9StringValE",
-                prefix + 
"22timestamp_avg_finalizeEPN9doris_udf15FunctionContextERKNS1_9StringValE",
-                false, true, false));
-        addBuiltin(AggregateFunction.createBuiltin("avg",
-                Lists.<Type>newArrayList(Type.DATETIME), Type.DATETIME, 
Type.DATETIME,
-                prefix + 
"8avg_initEPN9doris_udf15FunctionContextEPNS1_9StringValE",
-                prefix + 
"20timestamp_avg_updateEPN9doris_udf15FunctionContextERKNS1_11DateTimeValEPNS1_9StringValE",
-                prefix + 
"9avg_mergeEPN9doris_udf15FunctionContextERKNS1_9StringValEPS4_",
-                stringValSerializeOrFinalize,
-                prefix + 
"23timestamp_avg_get_valueEPN9doris_udf15FunctionContextERKNS1_9StringValE",
-                prefix + 
"20timestamp_avg_removeEPN9doris_udf15FunctionContextERKNS1_11DateTimeValEPNS1_9StringValE",
-                prefix + 
"22timestamp_avg_finalizeEPN9doris_udf15FunctionContextERKNS1_9StringValE",
-                false, true, false));
 
         // vectorized avg
         addBuiltin(AggregateFunction.createBuiltin("avg",
@@ -2960,22 +2144,6 @@ public class FunctionSet<T> {
                 "", "", "", "", "", "", "",
                 false, true, false, true));
 
-        // Group_concat(string)
-        addBuiltin(AggregateFunction.createBuiltin("group_concat", 
Lists.<Type>newArrayList(Type.VARCHAR), Type.VARCHAR,
-                        Type.VARCHAR, initNullString,
-                        prefix + 
"20string_concat_updateEPN9doris_udf15FunctionContextERKNS1_9StringValEPS4_",
-                        prefix + 
"19string_concat_mergeEPN9doris_udf15FunctionContextERKNS1_9StringValEPS4_",
-                        stringValSerializeOrFinalize,
-                        prefix + 
"22string_concat_finalizeEPN9doris_udf15FunctionContextERKNS1_9StringValE", 
false,
-                        false, false));
-        // Group_concat(string, string)
-        addBuiltin(AggregateFunction.createBuiltin("group_concat", 
Lists.<Type>newArrayList(Type.VARCHAR, Type.VARCHAR),
-                        Type.VARCHAR, Type.VARCHAR, initNullString,
-                        prefix + 
"20string_concat_updateEPN9doris_udf15FunctionContextERKNS1_9StringValES6_PS4_",
-                        prefix + 
"19string_concat_mergeEPN9doris_udf15FunctionContextERKNS1_9StringValEPS4_",
-                        stringValSerializeOrFinalize,
-                        prefix + 
"22string_concat_finalizeEPN9doris_udf15FunctionContextERKNS1_9StringValE", 
false,
-                        false, false));
         // Group_concat(string) vectorized
         addBuiltin(AggregateFunction.createBuiltin("group_concat", 
Lists.<Type>newArrayList(Type.VARCHAR), Type.VARCHAR,
                 Type.VARCHAR, initNullString, "", "", "", "", false, true, 
false, true));
@@ -3158,7 +2326,7 @@ public class FunctionSet<T> {
 
     public List<Function> getBulitinFunctions() {
         List<Function> builtinFunctions = Lists.newArrayList();
-        for (Map.Entry<String, List<Function>> entry : functions.entrySet()) {
+        for (Map.Entry<String, List<Function>> entry : 
vectorizedFunctions.entrySet()) {
             builtinFunctions.addAll(entry.getValue());
         }
         return builtinFunctions;
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/catalog/ScalarFunction.java 
b/fe/fe-core/src/main/java/org/apache/doris/catalog/ScalarFunction.java
index 6495b8ae70..a8caf28532 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/catalog/ScalarFunction.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/ScalarFunction.java
@@ -22,13 +22,10 @@ import org.apache.doris.analysis.FunctionName;
 import org.apache.doris.common.io.IOUtils;
 import org.apache.doris.common.io.Text;
 import org.apache.doris.common.util.URI;
-import org.apache.doris.common.util.VectorizedUtil;
 import org.apache.doris.thrift.TFunction;
 import org.apache.doris.thrift.TFunctionBinaryType;
 import org.apache.doris.thrift.TScalarFunction;
 
-import com.google.common.base.Preconditions;
-import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
 import com.google.gson.Gson;
 import org.apache.logging.log4j.LogManager;
@@ -61,7 +58,7 @@ public class ScalarFunction extends Function {
 
     public ScalarFunction(FunctionName fnName, List<Type> argTypes, Type 
retType, boolean hasVarArgs,
             boolean userVisible) {
-        this(fnName, argTypes, retType, hasVarArgs, 
TFunctionBinaryType.BUILTIN, userVisible, false);
+        this(fnName, argTypes, retType, hasVarArgs, 
TFunctionBinaryType.BUILTIN, userVisible, true);
     }
 
     public ScalarFunction(FunctionName fnName, List<Type> argTypes, Type 
retType, boolean hasVarArgs,
@@ -110,7 +107,6 @@ public class ScalarFunction extends Function {
             String name, Type retType, NullableMode nullableMode,
             ArrayList<Type> argTypes, boolean hasVarArgs,
             String symbol, String prepareFnSymbol, String closeFnSymbol, 
boolean userVisible) {
-        Preconditions.checkNotNull(symbol);
         ScalarFunction fn = new ScalarFunction(
                 new FunctionName(name), argTypes, retType, hasVarArgs, 
userVisible);
         fn.symbolName = symbol;
@@ -126,164 +122,16 @@ public class ScalarFunction extends Function {
     }
 
     /**
-     * Creates a builtin scalar operator function. This is a helper that wraps 
a few steps
+     * Creates a builtin scalar operator function. This is a helper that wraps 
a few
+     * steps
      * into one call.
      * TODO: this needs to be kept in sync with what generates the be operator
-     * implementations. (gen_functions.py). Is there a better way to 
coordinate this.
+     * implementations. (gen_functions.py). Is there a better way to coordinate
+     * this.
      */
     public static ScalarFunction createBuiltinOperator(
             String name, ArrayList<Type> argTypes, Type retType, NullableMode 
nullableMode) {
-        // Operators have a well defined symbol based on the function name and 
type.
-        // Convert Add(TINYINT, TINYINT) --> Add_TinyIntVal_TinyIntVal
-        String beFn = name;
-        boolean usesDecimal = false;
-        boolean usesDecimalV2 = false;
-        for (int i = 0; i < argTypes.size(); ++i) {
-            switch (argTypes.get(i).getPrimitiveType()) {
-                case BOOLEAN:
-                    beFn += "_boolean_val";
-                    break;
-                case TINYINT:
-                    beFn += "_tiny_int_val";
-                    break;
-                case SMALLINT:
-                    beFn += "_small_int_val";
-                    break;
-                case INT:
-                    beFn += "_int_val";
-                    break;
-                case BIGINT:
-                    beFn += "_big_int_val";
-                    break;
-                case LARGEINT:
-                    beFn += "_large_int_val";
-                    break;
-                case FLOAT:
-                    beFn += "_float_val";
-                    break;
-                case DOUBLE:
-                case TIME:
-                case TIMEV2:
-                    beFn += "_double_val";
-                    break;
-                case CHAR:
-                case VARCHAR:
-                case HLL:
-                case BITMAP:
-                case STRING:
-                case QUANTILE_STATE:
-                    beFn += "_string_val";
-                    break;
-                case DATE:
-                case DATETIME:
-                case DATEV2:
-                case DATETIMEV2:
-                    beFn += "_datetime_val";
-                    break;
-                case DECIMALV2:
-                case DECIMAL32:
-                case DECIMAL64:
-                case DECIMAL128:
-                    beFn += "_decimalv2_val";
-                    usesDecimalV2 = true;
-                    break;
-                case JSONB:
-                    beFn += "_jsonb_val";
-                    break;
-                default:
-                    Preconditions.checkState(false, "Argument type not 
supported: " + argTypes.get(i));
-            }
-        }
-        String beClass = usesDecimal ? "DecimalOperators" : "Operators";
-        if (usesDecimalV2) {
-            beClass = "DecimalV2Operators";
-        }
-        String symbol = "doris::" + beClass + "::" + beFn;
-        return createBuiltinOperator(name, symbol, argTypes, retType, 
nullableMode);
-    }
-
-    public static ScalarFunction createVecBuiltinOperator(
-            String name, ArrayList<Type> argTypes, Type retType) {
-        return createVecBuiltinOperator(name, argTypes, retType, 
NullableMode.DEPEND_ON_ARGUMENT);
-    }
-
-    /**
-     * Creates a builtin scala vec operator function. This is a helper that 
wraps a few steps
-     * into one call.
-     * TODO: this needs to be kept in sync with what generates the be operator
-     * implementations. (gen_functions.py). Is there a better way to 
coordinate this.
-     */
-    public static ScalarFunction createVecBuiltinOperator(
-            String name, ArrayList<Type> argTypes, Type retType, NullableMode 
nullableMode) {
-        StringBuilder beFn = new StringBuilder(name);
-        boolean usesDecimal = false;
-        boolean usesDecimalV2 = false;
-
-        // just mock a fake symbol for vec function, we treat
-        // all argument is same as first argument
-        for (int i = 0; i < argTypes.size(); ++i) {
-            switch (argTypes.get(0).getPrimitiveType()) {
-                case BOOLEAN:
-                    beFn.append("_boolean_val");
-                    break;
-                case TINYINT:
-                    beFn.append("_tiny_int_val");
-                    break;
-                case SMALLINT:
-                    beFn.append("_small_int_val");
-                    break;
-                case INT:
-                    beFn.append("_int_val");
-                    break;
-                case BIGINT:
-                    beFn.append("_big_int_val");
-                    break;
-                case LARGEINT:
-                    beFn.append("_large_int_val");
-                    break;
-                case FLOAT:
-                    beFn.append("_float_val");
-                    break;
-                case DOUBLE:
-                case TIME:
-                case TIMEV2:
-                    beFn.append("_double_val");
-                    break;
-                case CHAR:
-                case VARCHAR:
-                case HLL:
-                case BITMAP:
-                    beFn.append("_string_val");
-                    break;
-                case JSONB:
-                    beFn.append("_jsonb_val");
-                    break;
-                case LAMBDA_FUNCTION:
-                    beFn.append("_lambda_function");
-                    break;
-                case DATE:
-                case DATETIME:
-                case DATEV2:
-                case DATETIMEV2:
-                    beFn.append("_datetime_val");
-                    break;
-                case DECIMALV2:
-                case DECIMAL32:
-                case DECIMAL64:
-                case DECIMAL128:
-                    beFn.append("_decimalv2_val");
-                    usesDecimalV2 = true;
-                    break;
-                default:
-                    Preconditions.checkState(false, "Argument type not 
supported: " + argTypes.get(i));
-            }
-        }
-        String beClass = usesDecimal ? "DecimalOperators" : "Operators";
-        if (usesDecimalV2) {
-            beClass = "DecimalV2Operators";
-        }
-        String symbol = "doris::" + beClass + "::" + beFn;
-        return createVecBuiltinOperator(name, symbol, argTypes, retType, 
nullableMode);
+        return createBuiltinOperator(name, null, argTypes, retType, 
nullableMode);
     }
 
     public static ScalarFunction createBuiltinOperator(
@@ -306,41 +154,6 @@ public class ScalarFunction extends Function {
         return fn;
     }
 
-    public static ScalarFunction createVecBuiltinOperator(
-            String name, String symbol, ArrayList<Type> argTypes, Type 
retType, NullableMode nullableMode) {
-        return createVecBuiltin(name, null, symbol, null, argTypes, false, 
retType, false, nullableMode);
-    }
-
-    // TODO: This method should not be here, move to other place in the future
-    public static ScalarFunction createVecBuiltin(String name, String 
prepareFnSymbolBName, String symbol,
-            String closeFnSymbolName, ArrayList<Type> argTypes, boolean 
hasVarArgs, Type retType, boolean userVisible,
-            NullableMode nullableMode) {
-        ScalarFunction fn = new ScalarFunction(new FunctionName(name), 
argTypes, retType, hasVarArgs, userVisible,
-                true);
-        if (prepareFnSymbolBName != null) {
-            fn.prepareFnSymbol = prepareFnSymbolBName;
-        }
-        fn.symbolName = symbol;
-        if (closeFnSymbolName != null) {
-            fn.closeFnSymbol = closeFnSymbolName;
-        }
-        fn.nullableMode = nullableMode;
-        return fn;
-    }
-
-    /**
-     * Create a function that is used to search the catalog for a matching 
builtin. Only
-     * the fields necessary for matching function prototypes are specified.
-     */
-    public static ScalarFunction createBuiltinSearchDesc(
-            String name, Type[] argTypes, boolean hasVarArgs) {
-        ArrayList<Type> fnArgs =
-                (argTypes == null) ? new ArrayList<Type>() : 
Lists.newArrayList(argTypes);
-        ScalarFunction fn = new ScalarFunction(
-                new FunctionName(name), fnArgs, Type.INVALID, hasVarArgs, 
true);
-        return fn;
-    }
-
     public static ScalarFunction createUdf(
             TFunctionBinaryType binaryType,
             FunctionName name, Type[] args,
@@ -419,14 +232,8 @@ public class ScalarFunction extends Function {
     public TFunction toThrift(Type realReturnType, Type[] realArgTypes) {
         TFunction fn = super.toThrift(realReturnType, realArgTypes);
         fn.setScalarFn(new TScalarFunction());
-        if (getBinaryType() != TFunctionBinaryType.BUILTIN || 
!VectorizedUtil.isPipeline()) {
+        if (getBinaryType() != TFunctionBinaryType.BUILTIN) {
             fn.getScalarFn().setSymbol(symbolName);
-            if (prepareFnSymbol != null) {
-                fn.getScalarFn().setPrepareFnSymbol(prepareFnSymbol);
-            }
-            if (closeFnSymbol != null) {
-                fn.getScalarFn().setCloseFnSymbol(closeFnSymbol);
-            }
         } else {
             fn.getScalarFn().setSymbol("");
         }


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

Reply via email to