From 5dc300c4a9bc36e2a2e894b3ab4009e24a08484d Mon Sep 17 00:00:00 2001 From: "cai.zhang" Date: Sun, 7 Jan 2024 19:36:48 +0800 Subject: [PATCH] fix: Fix bug for pk index doesn't have raw data (#29711) issue: #29697 Signed-off-by: Cai Zhang --- .../core/src/segcore/SegmentSealedImpl.cpp | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/internal/core/src/segcore/SegmentSealedImpl.cpp b/internal/core/src/segcore/SegmentSealedImpl.cpp index a8f2d45f5e..72f4fa0998 100644 --- a/internal/core/src/segcore/SegmentSealedImpl.cpp +++ b/internal/core/src/segcore/SegmentSealedImpl.cpp @@ -150,21 +150,26 @@ SegmentSealedImpl::LoadScalarIndex(const LoadIndexInfo& info) { case DataType::INT64: { auto int64_index = dynamic_cast*>( scalar_indexings_[field_id].get()); - for (int i = 0; i < row_count; ++i) { - insert_record_.insert_pk(int64_index->Reverse_Lookup(i), i); + if (int64_index->HasRawData()) { + for (int i = 0; i < row_count; ++i) { + insert_record_.insert_pk(int64_index->Reverse_Lookup(i), + i); + } + insert_record_.seal_pks(); } - insert_record_.seal_pks(); break; } case DataType::VARCHAR: { auto string_index = dynamic_cast*>( scalar_indexings_[field_id].get()); - for (int i = 0; i < row_count; ++i) { - insert_record_.insert_pk(string_index->Reverse_Lookup(i), - i); + if (string_index->HasRawData()) { + for (int i = 0; i < row_count; ++i) { + insert_record_.insert_pk( + string_index->Reverse_Lookup(i), i); + } + insert_record_.seal_pks(); } - insert_record_.seal_pks(); break; } default: {