From 02c5a649cfb2c83fa88d4afa9641ed73cd50ad65 Mon Sep 17 00:00:00 2001 From: yah01 Date: Tue, 21 Nov 2023 09:28:22 +0800 Subject: [PATCH] enhance: store system fields in segcore (#28524) we need the system fields info for some usacase fix: #28523 --------- Signed-off-by: yah01 --- internal/core/src/common/Schema.cpp | 1 - internal/core/src/segcore/SegmentGrowingImpl.cpp | 6 +++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/internal/core/src/common/Schema.cpp b/internal/core/src/common/Schema.cpp index 7265ba1087..fae2cb6ed4 100644 --- a/internal/core/src/common/Schema.cpp +++ b/internal/core/src/common/Schema.cpp @@ -46,7 +46,6 @@ Schema::ParseFrom(const milvus::proto::schema::CollectionSchema& schema_proto) { AssertInfo(is_system, "invalid system type: name(" + name.get() + "), id(" + std::to_string(field_id.get()) + ")"); - continue; } auto data_type = DataType(child.data_type()); diff --git a/internal/core/src/segcore/SegmentGrowingImpl.cpp b/internal/core/src/segcore/SegmentGrowingImpl.cpp index 22b9f6cc62..37c2a0de55 100644 --- a/internal/core/src/segcore/SegmentGrowingImpl.cpp +++ b/internal/core/src/segcore/SegmentGrowingImpl.cpp @@ -103,7 +103,11 @@ SegmentGrowingImpl::Insert(int64_t reserved_offset, reserved_offset, timestamps_raw, num_rows); insert_record_.row_ids_.set_data_raw(reserved_offset, row_ids, num_rows); for (auto [field_id, field_meta] : schema_->get_fields()) { - AssertInfo(field_id_to_offset.count(field_id), "Cannot find field_id"); + if (field_id.get() < START_USER_FIELDID) { + continue; + } + AssertInfo(field_id_to_offset.count(field_id), + fmt::format("can't find field {}", field_id.get())); auto data_offset = field_id_to_offset[field_id]; if (!indexing_record_.SyncDataWithIndex(field_id)) { insert_record_.get_field_data_base(field_id)->set_data_raw(