mirror of
https://gitee.com/milvus-io/milvus.git
synced 2026-01-07 19:31:51 +08:00
enhance: Add assertion preventing reload same field (#43736)
Related to #43725 This patch add assertion preventing segment reloading same field column. Also improve the message info when pk already exists. --------- Signed-off-by: Congqi Xia <congqi.xia@zilliz.com>
This commit is contained in:
parent
4def0255a9
commit
d414f6bd4d
@ -2071,6 +2071,13 @@ ChunkedSegmentSealedImpl::load_field_data_common(
|
||||
bool is_proxy_column) {
|
||||
{
|
||||
std::unique_lock lck(mutex_);
|
||||
AssertInfo(SystemProperty::Instance().IsSystem(field_id) ||
|
||||
!get_bit(field_data_ready_bitset_, field_id),
|
||||
"non system field {} data already loaded",
|
||||
field_id.get());
|
||||
AssertInfo(fields_.count(field_id) == 0,
|
||||
"field {} column already exists",
|
||||
field_id.get());
|
||||
fields_.emplace(field_id, column);
|
||||
if (enable_mmap) {
|
||||
mmap_fields_.insert(field_id);
|
||||
@ -2100,7 +2107,9 @@ ChunkedSegmentSealedImpl::load_field_data_common(
|
||||
// set pks to offset
|
||||
if (schema_->get_primary_field_id() == field_id && !is_sorted_by_pk_) {
|
||||
AssertInfo(field_id.get() != -1, "Primary key is -1");
|
||||
AssertInfo(insert_record_.empty_pks(), "already exists");
|
||||
AssertInfo(insert_record_.empty_pks(),
|
||||
"primary key records already exists, current field id {}",
|
||||
field_id.get());
|
||||
insert_record_.insert_pks(data_type, column.get());
|
||||
insert_record_.seal_pks();
|
||||
}
|
||||
@ -2108,6 +2117,9 @@ ChunkedSegmentSealedImpl::load_field_data_common(
|
||||
bool generated_interim_index = generate_interim_index(field_id, num_rows);
|
||||
|
||||
std::unique_lock lck(mutex_);
|
||||
AssertInfo(!get_bit(field_data_ready_bitset_, field_id),
|
||||
"field {} data already loaded",
|
||||
field_id.get());
|
||||
set_bit(field_data_ready_bitset_, field_id, true);
|
||||
update_row_count(num_rows);
|
||||
if (generated_interim_index) {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user