fix: check sparse float before calling get_dim (#37145)

https://github.com/milvus-io/milvus/issues/37146

Signed-off-by: sunby <sunbingyi1992@gmail.com>
pull/37168/head
Bingyi Sun 2024-10-26 16:25:29 +08:00 committed by GitHub
parent fd72151037
commit a2f0092e39
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 12 additions and 8 deletions

View File

@ -453,7 +453,9 @@ ChunkedSegmentSealedImpl::LoadFieldData(FieldId field_id, FieldDataInfo& data) {
while (data.arrow_reader_channel->pop(r)) {
auto chunk =
create_chunk(field_meta,
IsVectorDataType(field_meta.get_data_type())
IsVectorDataType(field_meta.get_data_type()) &&
!IsSparseFloatVectorDataType(
field_meta.get_data_type())
? field_meta.get_dim()
: 1,
r->reader);
@ -549,13 +551,15 @@ ChunkedSegmentSealedImpl::MapFieldData(const FieldId field_id,
// indices,
// element_indices,
// valid_data);
auto chunk = create_chunk(field_meta,
IsVectorDataType(field_meta.get_data_type())
? field_meta.get_dim()
: 1,
file,
file_offset,
r->reader);
auto chunk = create_chunk(
field_meta,
IsVectorDataType(field_meta.get_data_type()) &&
!IsSparseFloatVectorDataType(field_meta.get_data_type())
? field_meta.get_dim()
: 1,
file,
file_offset,
r->reader);
file_offset += chunk->Size();
chunks.push_back(chunk);
}