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]