You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@doris.apache.org by pa...@apache.org on 2022/07/09 08:22:07 UTC

[doris] branch master updated: [Bug][Vectorized] Support array function in where pre in volap_scan_node (#10467)

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 1f08f2d144 [Bug][Vectorized] Support array function in where pre in volap_scan_node (#10467)
1f08f2d144 is described below

commit 1f08f2d14489d0fe6f39d2b14e7057ad1909041a
Author: HappenLee <ha...@hotmail.com>
AuthorDate: Sat Jul 9 16:22:01 2022 +0800

    [Bug][Vectorized] Support array function in where pre in volap_scan_node (#10467)
    
    Co-authored-by: lihaopeng <li...@baidu.com>
    Support array function in where pre in volap_scan_node
---
 be/src/exprs/array_functions.cpp                                   | 4 ++++
 be/src/exprs/array_functions.h                                     | 2 ++
 fe/fe-core/src/main/java/org/apache/doris/catalog/FunctionSet.java | 5 +++++
 3 files changed, 11 insertions(+)

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<T> {
                                               boolean varArgs, Type ... args) {
         ArrayList<Type> argsType = new ArrayList<Type>();
         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(


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