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

jianliangqi 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 5e884bc0655 [Fix](bitmap index) fix is_like_predicate for bitmap index 
evaluate (#25961)
5e884bc0655 is described below

commit 5e884bc0655aeb7226996de9a9840f79e6156fcf
Author: airborne12 <[email protected]>
AuthorDate: Fri Oct 27 20:23:42 2023 +0800

    [Fix](bitmap index) fix is_like_predicate for bitmap index evaluate (#25961)
---
 be/src/olap/comparison_predicate.h                 | 2 +-
 be/src/olap/in_list_predicate.h                    | 2 +-
 be/src/olap/rowset/segment_v2/segment_iterator.cpp | 4 ++--
 3 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/be/src/olap/comparison_predicate.h 
b/be/src/olap/comparison_predicate.h
index 8ec1504dce5..2fa1d629811 100644
--- a/be/src/olap/comparison_predicate.h
+++ b/be/src/olap/comparison_predicate.h
@@ -380,7 +380,7 @@ private:
                            roaring::Roaring* bitmap) const {
         roaring::Roaring roaring;
 
-        if (status.is<ErrorCode::NOT_FOUND>()) {
+        if (status.is<ErrorCode::ENTRY_NOT_FOUND>()) {
             if constexpr (PT == PredicateType::EQ || PT == PredicateType::GT ||
                           PT == PredicateType::GE) {
                 *bitmap &= roaring; // set bitmap to empty
diff --git a/be/src/olap/in_list_predicate.h b/be/src/olap/in_list_predicate.h
index 73791bbf9ec..cb733ab9b65 100644
--- a/be/src/olap/in_list_predicate.h
+++ b/be/src/olap/in_list_predicate.h
@@ -197,7 +197,7 @@ public:
             bool exact_match;
             Status s = iterator->seek_dictionary(value, &exact_match);
             rowid_t seeked_ordinal = iterator->current_ordinal();
-            if (!s.is<ErrorCode::NOT_FOUND>()) {
+            if (!s.is<ErrorCode::ENTRY_NOT_FOUND>()) {
                 if (!s.ok()) {
                     return s;
                 }
diff --git a/be/src/olap/rowset/segment_v2/segment_iterator.cpp 
b/be/src/olap/rowset/segment_v2/segment_iterator.cpp
index bbacb8137b1..f5ccbef0adc 100644
--- a/be/src/olap/rowset/segment_v2/segment_iterator.cpp
+++ b/be/src/olap/rowset/segment_v2/segment_iterator.cpp
@@ -532,8 +532,8 @@ Status SegmentIterator::_apply_bitmap_index() {
 
     std::vector<ColumnPredicate*> remaining_predicates;
     auto is_like_predicate = [](ColumnPredicate* _pred) {
-        if (static_cast<LikeColumnPredicate<TYPE_CHAR>*>(_pred) != nullptr ||
-            static_cast<LikeColumnPredicate<TYPE_STRING>*>(_pred) != nullptr) {
+        if (dynamic_cast<LikeColumnPredicate<TYPE_CHAR>*>(_pred) != nullptr ||
+            dynamic_cast<LikeColumnPredicate<TYPE_STRING>*>(_pred) != nullptr) 
{
             return true;
         }
 


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to