diff --git a/internal/core/src/segcore/SegmentGrowingImpl.cpp b/internal/core/src/segcore/SegmentGrowingImpl.cpp index ce2f285eaf..de65712b93 100644 --- a/internal/core/src/segcore/SegmentGrowingImpl.cpp +++ b/internal/core/src/segcore/SegmentGrowingImpl.cpp @@ -108,26 +108,10 @@ SegmentGrowingImpl::Insert(int64_t reserved_offset, auto field_id = FieldId(field.field_id()); AssertInfo(!field_id_to_offset.count(field_id), "duplicate field data"); field_id_to_offset.emplace(field_id, field_offset++); - // may be added field, add the null if has existed data - if (exist_rows > 0 && !insert_record_.is_data_exist(field_id)) { - LOG_WARN( - "heterogeneous insert data found for segment {}, field id {}, " - "data type {}", - id_, - field_id.get(), - field.type()); - schema_->AddField(FieldName(field.field_name()), - field_id, - DataType(field.type()), - true, - std::nullopt); - auto field_meta = schema_->get_fields().at(field_id); - insert_record_.append_field_meta( - field_id, field_meta, size_per_chunk(), mmap_descriptor_); - auto data = bulk_subscript_not_exist_field(field_meta, exist_rows); - insert_record_.get_data_base(field_id)->set_data_raw( - 0, exist_rows, data.get(), field_meta); - } + AssertInfo(exist_rows == 0 || insert_record_.is_data_exist(field_id), + "unexpected new field in growing segment {}, field id {}", + id_, + field.field_id()); } // segment have latest schema while insert used old one