From aba2656e68e3f24ef3759d15c89d429e6f714fbd Mon Sep 17 00:00:00 2001 From: yah01 Date: Fri, 12 Jan 2024 14:04:54 +0800 Subject: [PATCH] fix: missing field data after appending scalar index to loaded segment (#29912) related #29843 Signed-off-by: yah01 --- internal/core/src/segcore/SegmentSealedImpl.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/internal/core/src/segcore/SegmentSealedImpl.cpp b/internal/core/src/segcore/SegmentSealedImpl.cpp index 9ec211936a..8f4ecad336 100644 --- a/internal/core/src/segcore/SegmentSealedImpl.cpp +++ b/internal/core/src/segcore/SegmentSealedImpl.cpp @@ -182,9 +182,12 @@ SegmentSealedImpl::LoadScalarIndex(const LoadIndexInfo& info) { set_bit(index_ready_bitset_, field_id, true); update_row_count(row_count); - // release field column - fields_.erase(field_id); - set_bit(field_data_ready_bitset_, field_id, false); + // release field column if the index contains raw data + if (scalar_indexings_[field_id]->HasRawData() && + get_bit(field_data_ready_bitset_, field_id)) { + fields_.erase(field_id); + set_bit(field_data_ready_bitset_, field_id, false); + } lck.unlock(); }