This is an automated email from the ASF dual-hosted git repository. yiguolei pushed a commit to branch branch-1.1-lts in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/branch-1.1-lts by this push: new 8f6c8ec5cd [Performance] Optimize performance of like expr (#15168) 8f6c8ec5cd is described below commit 8f6c8ec5cd5d2452ce3d1dd7a678028e9bc91c40 Author: weizuo93 <wei...@apache.org> AuthorDate: Mon Dec 19 18:29:42 2022 +0800 [Performance] Optimize performance of like expr (#15168) --- be/src/runtime/string_search.hpp | 8 +++----- be/src/vec/functions/like.cpp | 2 +- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/be/src/runtime/string_search.hpp b/be/src/runtime/string_search.hpp index 3f657b6fa4..14800f2903 100644 --- a/be/src/runtime/string_search.hpp +++ b/be/src/runtime/string_search.hpp @@ -41,13 +41,11 @@ public: return -1; } - auto it = std::search(str->ptr, str->ptr + str->len, - std::default_searcher(_pattern->ptr, _pattern->ptr + _pattern->len)); - if (it == str->ptr + str->len) { + char* occurence = std::strstr(str->ptr, _pattern->ptr); + if (occurence == nullptr) { return -1; - } else { - return it - str->ptr; } + return occurence - str->ptr; } private: diff --git a/be/src/vec/functions/like.cpp b/be/src/vec/functions/like.cpp index c6bf479582..f0c37787ad 100644 --- a/be/src/vec/functions/like.cpp +++ b/be/src/vec/functions/like.cpp @@ -76,7 +76,7 @@ Status FunctionLikeBase::constant_substring_fn(LikeSearchState* state, const Str *result = true; return Status::OK(); } - StringValue pattern_value = StringValue::from_string_val(val.ptr); + StringValue pattern_value(val.ptr, val.len); *result = state->substring_pattern.search(&pattern_value) != -1; return Status::OK(); } --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org