[Fix](bitmap index) fix is_like_predicate for bitmap index evaluate (#25961)

This commit is contained in:
airborne12
2023-10-27 20:23:42 +08:00
committed by GitHub
parent d953e5c8f4
commit 5e884bc065
3 changed files with 4 additions and 4 deletions

View File

@ -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

View File

@ -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;
}

View File

@ -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;
}