diff --git a/be/src/exprs/array_functions.cpp b/be/src/exprs/array_functions.cpp index 32a1639af7..1bb2a59042 100644 --- a/be/src/exprs/array_functions.cpp +++ b/be/src/exprs/array_functions.cpp @@ -41,4 +41,8 @@ void ArrayFunctions::init() {} ARRAY_FUNCTION(IntVal, TYPE_INT); ARRAY_FUNCTION(StringVal, TYPE_VARCHAR); +doris_udf::AnyVal array_fake_function(FunctionContext* context) { + return doris_udf::AnyVal(true); +} + } // namespace doris diff --git a/be/src/exprs/array_functions.h b/be/src/exprs/array_functions.h index 7bceebf429..292e984934 100644 --- a/be/src/exprs/array_functions.h +++ b/be/src/exprs/array_functions.h @@ -32,4 +32,6 @@ public: static CollectionVal array(FunctionContext* context, int num_children, const StringVal* values); }; + +doris_udf::AnyVal array_fake_function(FunctionContext* context); } // namespace doris 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 c03722b0fa..13a4d938ea 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 @@ -1265,6 +1265,11 @@ public class FunctionSet { boolean varArgs, Type ... args) { ArrayList argsType = new ArrayList(); for (Type type : args) { + // only to prevent olap scan node use array expr to find a fake symbol + // TODO: delete the code after we remove origin exec engine + if (type.isArrayType()) { + symbol = "_ZN5doris19array_fake_functionEPN9doris_udf15FunctionContextE"; + } argsType.add(type); } addBuiltinBothScalaAndVectorized(ScalarFunction.createBuiltin(