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

morningman pushed a commit to branch dev-1.0.0
in repository https://gitbox.apache.org/repos/asf/incubator-doris.git

commit 3c872f2fccbe25db3e98137c49bb2271dda19d24
Author: Zhengguo Yang <yangz...@gmail.com>
AuthorDate: Tue Mar 1 11:11:42 2022 +0800

    [refactor] remove unused new_in_predicate code (#8263)
    
    remove unused code of new_in_predicate.h/cpp
---
 be/src/common/daemon.cpp          |   2 -
 be/src/exprs/CMakeLists.txt       |   1 -
 be/src/exprs/new_in_predicate.cpp | 185 --------------------
 be/src/exprs/new_in_predicate.h   | 348 --------------------------------------
 4 files changed, 536 deletions(-)

diff --git a/be/src/common/daemon.cpp b/be/src/common/daemon.cpp
index 044feda..04625e3 100644
--- a/be/src/common/daemon.cpp
+++ b/be/src/common/daemon.cpp
@@ -37,7 +37,6 @@
 #include "exprs/json_functions.h"
 #include "exprs/like_predicate.h"
 #include "exprs/math_functions.h"
-#include "exprs/new_in_predicate.h"
 #include "exprs/operators.h"
 #include "exprs/string_functions.h"
 #include "exprs/table_function/dummy_table_functions.h"
@@ -250,7 +249,6 @@ void Daemon::init(int argc, char** argv, const 
std::vector<StorePath>& paths) {
     StringFunctions::init();
     ArrayFunctions::init();
     CastFunctions::init();
-    InPredicate::init();
     MathFunctions::init();
     EncryptionFunctions::init();
     TimestampFunctions::init();
diff --git a/be/src/exprs/CMakeLists.txt b/be/src/exprs/CMakeLists.txt
index c71f23e..f266fd9 100644
--- a/be/src/exprs/CMakeLists.txt
+++ b/be/src/exprs/CMakeLists.txt
@@ -41,7 +41,6 @@ add_library(Exprs
   expr.cpp
   expr_context.cpp
   in_predicate.cpp
-  new_in_predicate.cpp
   bloomfilter_predicate.cpp
   block_bloom_filter_avx_impl.cc
   block_bloom_filter_impl.cc
diff --git a/be/src/exprs/new_in_predicate.cpp 
b/be/src/exprs/new_in_predicate.cpp
deleted file mode 100644
index b0a6390..0000000
--- a/be/src/exprs/new_in_predicate.cpp
+++ /dev/null
@@ -1,185 +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.
-
-#include "exprs/new_in_predicate.h"
-
-#include <sstream>
-
-#include "exprs/anyval_util.h"
-#include "runtime/string_value.hpp"
-
-namespace doris {
-
-void InPredicate::init() {}
-
-// Templated getter functions for extracting 'SetType' values from AnyVals
-template <typename T, typename SetType>
-SetType get_val(const FunctionContext::TypeDesc* type, const T& x) {
-    DCHECK(!x.is_null);
-    return x.val;
-}
-
-template <>
-StringValue get_val(const FunctionContext::TypeDesc* type, const StringVal& x) 
{
-    DCHECK(!x.is_null);
-    return StringValue::from_string_val(x);
-}
-
-template <>
-DateTimeValue get_val(const FunctionContext::TypeDesc* type, const 
DateTimeVal& x) {
-    return DateTimeValue::from_datetime_val(x);
-}
-
-template <>
-DecimalV2Value get_val(const FunctionContext::TypeDesc* type, const 
DecimalV2Val& x) {
-    return DecimalV2Value::from_decimal_val(x);
-}
-
-template <typename T, typename SetType>
-void InPredicate::set_lookup_prepare(FunctionContext* ctx,
-                                     FunctionContext::FunctionStateScope 
scope) {
-    if (scope != FunctionContext::FRAGMENT_LOCAL) {
-        return;
-    }
-
-    SetLookupState<SetType>* state = new SetLookupState<SetType>;
-    state->type = ctx->get_arg_type(0);
-    state->contains_null = false;
-    for (int i = 1; i < ctx->get_num_args(); ++i) {
-        DCHECK(ctx->is_arg_constant(i));
-        T* arg = reinterpret_cast<T*>(ctx->get_constant_arg(i));
-        if (arg->is_null) {
-            state->contains_null = true;
-        } else {
-            state->val_set.insert(get_val<T, SetType>(state->type, *arg));
-        }
-    }
-    ctx->set_function_state(scope, state);
-}
-
-template <typename SetType>
-void InPredicate::set_lookup_close(FunctionContext* ctx,
-                                   FunctionContext::FunctionStateScope scope) {
-    if (scope != FunctionContext::FRAGMENT_LOCAL) {
-        return;
-    }
-    SetLookupState<SetType>* state =
-            
reinterpret_cast<SetLookupState<SetType>*>(ctx->get_function_state(scope));
-    delete state;
-}
-
-template <typename T, typename SetType, bool not_in, InPredicate::Strategy 
strategy>
-BooleanVal InPredicate::templated_in(FunctionContext* ctx, const T& val, int 
num_args,
-                                     const T* args) {
-    if (val.is_null) {
-        return BooleanVal::null();
-    }
-
-    BooleanVal found;
-    if (strategy == SET_LOOKUP) {
-        SetLookupState<SetType>* state = 
reinterpret_cast<SetLookupState<SetType>*>(
-                ctx->get_function_state(FunctionContext::FRAGMENT_LOCAL));
-        DCHECK(state != nullptr);
-        found = set_lookup(state, val);
-    } else {
-        DCHECK_EQ(strategy, ITERATE);
-        found = iterate(ctx->get_arg_type(0), val, num_args, args);
-    }
-    if (found.is_null) {
-        return BooleanVal::null();
-    }
-    return BooleanVal(found.val ^ not_in);
-}
-
-template <typename T, typename SetType>
-BooleanVal InPredicate::set_lookup(SetLookupState<SetType>* state, const T& v) 
{
-    DCHECK(state != nullptr);
-    SetType val = get_val<T, SetType>(state->type, v);
-    bool found = state->val_set.find(val) != state->val_set.end();
-    if (found) {
-        return BooleanVal(true);
-    }
-    if (state->contains_null) {
-        return BooleanVal::null();
-    }
-    return BooleanVal(false);
-}
-
-template <typename T>
-BooleanVal InPredicate::iterate(const FunctionContext::TypeDesc* type, const 
T& val, int num_args,
-                                const T* args) {
-    bool found_null = false;
-    for (int i = 0; i < num_args; ++i) {
-        if (args[i].is_null) {
-            found_null = true;
-        } else if (AnyValUtil::equals(*type, val, args[i])) {
-            return BooleanVal(true);
-        }
-    }
-    if (found_null) {
-        return BooleanVal::null();
-    }
-    return BooleanVal(false);
-}
-
-#define IN_FUNCTIONS(AnyValType, SetType, type_name)                           
                    \
-    BooleanVal InPredicate::in_set_lookup(FunctionContext* context, const 
AnyValType& val,         \
-                                          int num_args, const AnyValType* 
args) {                  \
-        return templated_in<AnyValType, SetType, false, SET_LOOKUP>(context, 
val, num_args, args); \
-    }                                                                          
                    \
-                                                                               
                    \
-    BooleanVal InPredicate::not_in_set_lookup(FunctionContext* context, const 
AnyValType& val,     \
-                                              int num_args, const AnyValType* 
args) {              \
-        return templated_in<AnyValType, SetType, true, SET_LOOKUP>(context, 
val, num_args, args);  \
-    }                                                                          
                    \
-                                                                               
                    \
-    BooleanVal InPredicate::in_iterate(FunctionContext* context, const 
AnyValType& val,            \
-                                       int num_args, const AnyValType* args) { 
                    \
-        return templated_in<AnyValType, SetType, false, ITERATE>(context, val, 
num_args, args);    \
-    }                                                                          
                    \
-                                                                               
                    \
-    BooleanVal InPredicate::not_in_iterate(FunctionContext* context, const 
AnyValType& val,        \
-                                           int num_args, const AnyValType* 
args) {                 \
-        return templated_in<AnyValType, SetType, true, ITERATE>(context, val, 
num_args, args);     \
-    }                                                                          
                    \
-                                                                               
                    \
-    void InPredicate::set_lookup_prepare_##type_name(FunctionContext* ctx,     
                    \
-                                                     
FunctionContext::FunctionStateScope scope) {  \
-        set_lookup_prepare<AnyValType, SetType>(ctx, scope);                   
                    \
-    }                                                                          
                    \
-                                                                               
                    \
-    void InPredicate::set_lookup_close_##type_name(FunctionContext* ctx,       
                    \
-                                                   
FunctionContext::FunctionStateScope scope) {    \
-        set_lookup_close<SetType>(ctx, scope);                                 
                    \
-    }
-
-IN_FUNCTIONS(BooleanVal, bool, boolean_val)
-IN_FUNCTIONS(TinyIntVal, int8_t, tiny_int_val)
-IN_FUNCTIONS(SmallIntVal, int16_t, small_int_val)
-IN_FUNCTIONS(IntVal, int32_t, int_val)
-IN_FUNCTIONS(BigIntVal, int64_t, big_int_val)
-IN_FUNCTIONS(FloatVal, float, float_val)
-IN_FUNCTIONS(DoubleVal, double, double_val)
-IN_FUNCTIONS(StringVal, StringValue, string_val)
-IN_FUNCTIONS(DateTimeVal, DateTimeValue, datetime_val)
-IN_FUNCTIONS(DecimalV2Val, DecimalV2Value, decimalv2_val)
-IN_FUNCTIONS(LargeIntVal, __int128, large_int_val)
-
-// Needed for in-predicate-benchmark to build
-template BooleanVal InPredicate::iterate<IntVal>(const 
FunctionContext::TypeDesc*, const IntVal&,
-                                                 int, const IntVal*);
-} // namespace doris
diff --git a/be/src/exprs/new_in_predicate.h b/be/src/exprs/new_in_predicate.h
deleted file mode 100644
index 6238894..0000000
--- a/be/src/exprs/new_in_predicate.h
+++ /dev/null
@@ -1,348 +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.
-
-#ifndef DORIS_BE_SRC_QUERY_EXPRS_NEW_IN_PREDICATE_H
-#define DORIS_BE_SRC_QUERY_EXPRS_NEW_IN_PREDICATE_H
-
-#include <string>
-
-#include "exprs/predicate.h"
-#include "udf/udf.h"
-
-/* added by lide */
-#define IN_FUNCTIONS_STMT(AnyValType, SetType, type_name)                      
                    \
-    static doris_udf::BooleanVal in_set_lookup(doris_udf::FunctionContext* 
context,                \
-                                               const doris_udf::AnyValType& 
val, int num_args,     \
-                                               const doris_udf::AnyValType* 
args);                 \
-                                                                               
                    \
-    static doris_udf::BooleanVal not_in_set_lookup(doris_udf::FunctionContext* 
context,            \
-                                                   const 
doris_udf::AnyValType& val, int num_args, \
-                                                   const 
doris_udf::AnyValType* args);             \
-                                                                               
                    \
-    static doris_udf::BooleanVal in_iterate(doris_udf::FunctionContext* 
context,                   \
-                                            const doris_udf::AnyValType& val, 
int num_args,        \
-                                            const doris_udf::AnyValType* 
args);                    \
-                                                                               
                    \
-    static doris_udf::BooleanVal not_in_iterate(doris_udf::FunctionContext* 
context,               \
-                                                const doris_udf::AnyValType& 
val, int num_args,    \
-                                                const doris_udf::AnyValType* 
args);                \
-                                                                               
                    \
-    static void set_lookup_prepare_##type_name(                                
                    \
-            doris_udf::FunctionContext* ctx,                                   
                    \
-            doris_udf::FunctionContext::FunctionStateScope scope);             
                    \
-                                                                               
                    \
-    static void set_lookup_close_##type_name(                                  
                    \
-            doris_udf::FunctionContext* ctx,                                   
                    \
-            doris_udf::FunctionContext::FunctionStateScope scope);
-
-namespace doris {
-
-/// Predicate for evaluating expressions of the form "val [NOT] IN (x1, x2, 
x3...)".
-//
-/// There are two strategies for evaluating the IN predicate:
-//
-/// 1) SET_LOOKUP: This strategy is for when all the values in the IN list are 
constant. In
-///    the prepare function, we create a set of the constant values from the 
IN list, and
-///    use this set to lookup a given 'val'.
-//
-/// 2) ITERATE: This is the fallback strategy for when their are non-constant 
IN list
-///    values, or very few values in the IN list. We simply iterate through 
every
-///    expression and compare it to val. This strategy has no prepare function.
-//
-/// The FE chooses which strategy we should use by choosing the appropriate 
function (e.g.,
-/// in_iterate() or in_set_lookup()). If it chooses SET_LOOKUP, it also sets 
the appropriate
-/// set_lookup_prepare and set_lookup_close functions.
-//
-/// TODO: the set lookup logic is not yet implemented for DateTimeVals or 
DecimalVals
-class InPredicate {
-public:
-    static void init();
-
-    /// Functions for every type
-    static doris_udf::BooleanVal in_iterate(doris_udf::FunctionContext* 
context,
-                                            const doris_udf::BooleanVal& val, 
int num_args,
-                                            const doris_udf::BooleanVal* args);
-
-    static doris_udf::BooleanVal not_in_iterate(doris_udf::FunctionContext* 
context,
-                                                const doris_udf::BooleanVal& 
val, int num_args,
-                                                const doris_udf::BooleanVal* 
args);
-
-    static void set_lookup_prepare_boolean_val(
-            doris_udf::FunctionContext* ctx, 
doris_udf::FunctionContext::FunctionStateScope scope);
-
-    static void set_lookup_close_boolean_val(doris_udf::FunctionContext* ctx,
-                                             
doris_udf::FunctionContext::FunctionStateScope scope);
-
-    static doris_udf::BooleanVal in_set_lookup(doris_udf::FunctionContext* 
context,
-                                               const doris_udf::BooleanVal& 
val, int num_args,
-                                               const doris_udf::BooleanVal* 
args);
-
-    static doris_udf::BooleanVal not_in_set_lookup(doris_udf::FunctionContext* 
context,
-                                                   const 
doris_udf::BooleanVal& val, int num_args,
-                                                   const 
doris_udf::BooleanVal* args);
-
-    static doris_udf::BooleanVal in_iterate(doris_udf::FunctionContext* 
context,
-                                            const doris_udf::TinyIntVal& val, 
int num_args,
-                                            const doris_udf::TinyIntVal* args);
-
-    static doris_udf::BooleanVal not_in_iterate(doris_udf::FunctionContext* 
context,
-                                                const doris_udf::TinyIntVal& 
val, int num_args,
-                                                const doris_udf::TinyIntVal* 
args);
-
-    static void set_lookup_prepare_tiny_int_val(
-            doris_udf::FunctionContext* ctx, 
doris_udf::FunctionContext::FunctionStateScope scope);
-
-    static void set_lookup_close_tiny_int_val(doris_udf::FunctionContext* ctx,
-                                              
doris_udf::FunctionContext::FunctionStateScope scope);
-
-    static doris_udf::BooleanVal in_set_lookup(doris_udf::FunctionContext* 
context,
-                                               const doris_udf::TinyIntVal& 
val, int num_args,
-                                               const doris_udf::TinyIntVal* 
args);
-
-    static doris_udf::BooleanVal not_in_set_lookup(doris_udf::FunctionContext* 
context,
-                                                   const 
doris_udf::TinyIntVal& val, int num_args,
-                                                   const 
doris_udf::TinyIntVal* args);
-
-    static doris_udf::BooleanVal in_iterate(doris_udf::FunctionContext* 
context,
-                                            const doris_udf::SmallIntVal& val, 
int num_args,
-                                            const doris_udf::SmallIntVal* 
args);
-
-    static doris_udf::BooleanVal not_in_iterate(doris_udf::FunctionContext* 
context,
-                                                const doris_udf::SmallIntVal& 
val, int num_args,
-                                                const doris_udf::SmallIntVal* 
args);
-
-    static void set_lookup_prepare_small_int_val(
-            doris_udf::FunctionContext* ctx, 
doris_udf::FunctionContext::FunctionStateScope scope);
-
-    static void set_lookup_close_small_int_val(
-            doris_udf::FunctionContext* ctx, 
doris_udf::FunctionContext::FunctionStateScope scope);
-
-    static doris_udf::BooleanVal in_set_lookup(doris_udf::FunctionContext* 
context,
-                                               const doris_udf::SmallIntVal& 
val, int num_args,
-                                               const doris_udf::SmallIntVal* 
args);
-
-    static doris_udf::BooleanVal not_in_set_lookup(doris_udf::FunctionContext* 
context,
-                                                   const 
doris_udf::SmallIntVal& val, int num_args,
-                                                   const 
doris_udf::SmallIntVal* args);
-
-    static doris_udf::BooleanVal in_iterate(doris_udf::FunctionContext* 
context,
-                                            const doris_udf::IntVal& val, int 
num_args,
-                                            const doris_udf::IntVal* args);
-
-    static doris_udf::BooleanVal not_in_iterate(doris_udf::FunctionContext* 
context,
-                                                const doris_udf::IntVal& val, 
int num_args,
-                                                const doris_udf::IntVal* args);
-
-    static void set_lookup_prepare_int_val(doris_udf::FunctionContext* ctx,
-                                           
doris_udf::FunctionContext::FunctionStateScope scope);
-
-    static void set_lookup_close_int_val(doris_udf::FunctionContext* ctx,
-                                         
doris_udf::FunctionContext::FunctionStateScope scope);
-
-    static doris_udf::BooleanVal in_set_lookup(doris_udf::FunctionContext* 
context,
-                                               const doris_udf::IntVal& val, 
int num_args,
-                                               const doris_udf::IntVal* args);
-
-    static doris_udf::BooleanVal not_in_set_lookup(doris_udf::FunctionContext* 
context,
-                                                   const doris_udf::IntVal& 
val, int num_args,
-                                                   const doris_udf::IntVal* 
args);
-
-    static doris_udf::BooleanVal in_iterate(doris_udf::FunctionContext* 
context,
-                                            const doris_udf::BigIntVal& val, 
int num_args,
-                                            const doris_udf::BigIntVal* args);
-
-    static doris_udf::BooleanVal not_in_iterate(doris_udf::FunctionContext* 
context,
-                                                const doris_udf::BigIntVal& 
val, int num_args,
-                                                const doris_udf::BigIntVal* 
args);
-
-    static void set_lookup_prepare_big_int_val(
-            doris_udf::FunctionContext* ctx, 
doris_udf::FunctionContext::FunctionStateScope scope);
-
-    static void set_lookup_close_big_int_val(doris_udf::FunctionContext* ctx,
-                                             
doris_udf::FunctionContext::FunctionStateScope scope);
-
-    static doris_udf::BooleanVal in_set_lookup(doris_udf::FunctionContext* 
context,
-                                               const doris_udf::BigIntVal& 
val, int num_args,
-                                               const doris_udf::BigIntVal* 
args);
-
-    static doris_udf::BooleanVal not_in_set_lookup(doris_udf::FunctionContext* 
context,
-                                                   const doris_udf::BigIntVal& 
val, int num_args,
-                                                   const doris_udf::BigIntVal* 
args);
-
-    static doris_udf::BooleanVal in_iterate(doris_udf::FunctionContext* 
context,
-                                            const doris_udf::FloatVal& val, 
int num_args,
-                                            const doris_udf::FloatVal* args);
-
-    static doris_udf::BooleanVal not_in_iterate(doris_udf::FunctionContext* 
context,
-                                                const doris_udf::FloatVal& 
val, int num_args,
-                                                const doris_udf::FloatVal* 
args);
-
-    static void set_lookup_prepare_float_val(doris_udf::FunctionContext* ctx,
-                                             
doris_udf::FunctionContext::FunctionStateScope scope);
-
-    static void set_lookup_close_float_val(doris_udf::FunctionContext* ctx,
-                                           
doris_udf::FunctionContext::FunctionStateScope scope);
-
-    static doris_udf::BooleanVal in_set_lookup(doris_udf::FunctionContext* 
context,
-                                               const doris_udf::FloatVal& val, 
int num_args,
-                                               const doris_udf::FloatVal* 
args);
-
-    static doris_udf::BooleanVal not_in_set_lookup(doris_udf::FunctionContext* 
context,
-                                                   const doris_udf::FloatVal& 
val, int num_args,
-                                                   const doris_udf::FloatVal* 
args);
-
-    static doris_udf::BooleanVal in_iterate(doris_udf::FunctionContext* 
context,
-                                            const doris_udf::DoubleVal& val, 
int num_args,
-                                            const doris_udf::DoubleVal* args);
-
-    static doris_udf::BooleanVal not_in_iterate(doris_udf::FunctionContext* 
context,
-                                                const doris_udf::DoubleVal& 
val, int num_args,
-                                                const doris_udf::DoubleVal* 
args);
-
-    static void set_lookup_prepare_double_val(doris_udf::FunctionContext* ctx,
-                                              
doris_udf::FunctionContext::FunctionStateScope scope);
-
-    static void set_lookup_close_double_val(doris_udf::FunctionContext* ctx,
-                                            
doris_udf::FunctionContext::FunctionStateScope scope);
-
-    static doris_udf::BooleanVal in_set_lookup(doris_udf::FunctionContext* 
context,
-                                               const doris_udf::DoubleVal& 
val, int num_args,
-                                               const doris_udf::DoubleVal* 
args);
-
-    static doris_udf::BooleanVal not_in_set_lookup(doris_udf::FunctionContext* 
context,
-                                                   const doris_udf::DoubleVal& 
val, int num_args,
-                                                   const doris_udf::DoubleVal* 
args);
-
-    static doris_udf::BooleanVal in_iterate(doris_udf::FunctionContext* 
context,
-                                            const doris_udf::StringVal& val, 
int num_args,
-                                            const doris_udf::StringVal* args);
-
-    static doris_udf::BooleanVal not_in_iterate(doris_udf::FunctionContext* 
context,
-                                                const doris_udf::StringVal& 
val, int num_args,
-                                                const doris_udf::StringVal* 
args);
-
-    static void set_lookup_prepare_string_val(doris_udf::FunctionContext* ctx,
-                                              
doris_udf::FunctionContext::FunctionStateScope scope);
-
-    static void set_lookup_close_string_val(doris_udf::FunctionContext* ctx,
-                                            
doris_udf::FunctionContext::FunctionStateScope scope);
-
-    static doris_udf::BooleanVal in_set_lookup(doris_udf::FunctionContext* 
context,
-                                               const doris_udf::StringVal& 
val, int num_args,
-                                               const doris_udf::StringVal* 
args);
-
-    static doris_udf::BooleanVal not_in_set_lookup(doris_udf::FunctionContext* 
context,
-                                                   const doris_udf::StringVal& 
val, int num_args,
-                                                   const doris_udf::StringVal* 
args);
-
-    static doris_udf::BooleanVal in_iterate(doris_udf::FunctionContext* 
context,
-                                            const doris_udf::DateTimeVal& val, 
int num_args,
-                                            const doris_udf::DateTimeVal* 
args);
-
-    static doris_udf::BooleanVal not_in_iterate(doris_udf::FunctionContext* 
context,
-                                                const doris_udf::DateTimeVal& 
val, int num_args,
-                                                const doris_udf::DateTimeVal* 
args);
-
-    static void set_lookup_prepare_datetime_val(
-            doris_udf::FunctionContext* ctx, 
doris_udf::FunctionContext::FunctionStateScope scope);
-
-    static void set_lookup_close_datetime_val(doris_udf::FunctionContext* ctx,
-                                              
doris_udf::FunctionContext::FunctionStateScope scope);
-
-    static doris_udf::BooleanVal in_set_lookup(doris_udf::FunctionContext* 
context,
-                                               const doris_udf::DateTimeVal& 
val, int num_args,
-                                               const doris_udf::DateTimeVal* 
args);
-
-    static doris_udf::BooleanVal not_in_set_lookup(doris_udf::FunctionContext* 
context,
-                                                   const 
doris_udf::DateTimeVal& val, int num_args,
-                                                   const 
doris_udf::DateTimeVal* args);
-
-    static doris_udf::BooleanVal in_iterate(doris_udf::FunctionContext* 
context,
-                                            const doris_udf::DecimalV2Val& 
val, int num_args,
-                                            const doris_udf::DecimalV2Val* 
args);
-
-    static doris_udf::BooleanVal not_in_iterate(doris_udf::FunctionContext* 
context,
-                                                const doris_udf::DecimalV2Val& 
val, int num_args,
-                                                const doris_udf::DecimalV2Val* 
args);
-
-    static void set_lookup_prepare_decimalv2_val(
-            doris_udf::FunctionContext* ctx, 
doris_udf::FunctionContext::FunctionStateScope scope);
-
-    static void set_lookup_close_decimalv2_val(
-            doris_udf::FunctionContext* ctx, 
doris_udf::FunctionContext::FunctionStateScope scope);
-
-    static doris_udf::BooleanVal in_set_lookup(doris_udf::FunctionContext* 
context,
-                                               const doris_udf::DecimalV2Val& 
val, int num_args,
-                                               const doris_udf::DecimalV2Val* 
args);
-
-    static doris_udf::BooleanVal not_in_set_lookup(doris_udf::FunctionContext* 
context,
-                                                   const 
doris_udf::DecimalV2Val& val, int num_args,
-                                                   const 
doris_udf::DecimalV2Val* args);
-
-    /* added by lide */
-    IN_FUNCTIONS_STMT(LargeIntVal, __int128, large_int_val)
-
-private:
-    friend class InPredicateBenchmark;
-
-    enum Strategy {
-        /// Indicates we should use SetLookUp().
-        SET_LOOKUP,
-        /// Indicates we should use Iterate().
-        ITERATE
-    };
-
-    template <typename SetType>
-    struct SetLookupState {
-        /// If true, there is at least one nullptr constant in the IN list.
-        bool contains_null;
-
-        /// The set of all non-nullptr constant values in the IN list.
-        /// Note: std::unordered_set and std::binary_search performed worse 
based on the
-        /// in-predicate-benchmark
-        std::set<SetType> val_set;
-
-        /// The type of the arguments
-        const FunctionContext::TypeDesc* type;
-    };
-
-    /// The templated function that provides the implementation for all the 
In() and NotIn()
-    /// functions.
-    template <typename T, typename SetType, bool not_in, Strategy strategy>
-    static inline doris_udf::BooleanVal 
templated_in(doris_udf::FunctionContext* context,
-                                                     const T& val, int 
num_args, const T* args);
-
-    /// Initializes an SetLookupState in ctx.
-    template <typename T, typename SetType>
-    static void set_lookup_prepare(FunctionContext* ctx, 
FunctionContext::FunctionStateScope scope);
-
-    template <typename SetType>
-    static void set_lookup_close(FunctionContext* ctx, 
FunctionContext::FunctionStateScope scope);
-
-    /// Looks up v in state->val_set.
-    template <typename T, typename SetType>
-    static BooleanVal set_lookup(SetLookupState<SetType>* state, const T& v);
-
-    /// Iterates through each vararg looking for val. 'type' is the type of 
'val' and 'args'.
-    template <typename T>
-    static BooleanVal iterate(const FunctionContext::TypeDesc* type, const T& 
val, int num_args,
-                              const T* args);
-};
-
-} // namespace doris
-
-#endif

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

Reply via email to