fix: Skip empty loop for process growing segment (#44606)

issue: #43427 

The GISFunction asserts that the segment_offsets cannot be nullptr. When
size is 0, the segment_offsets is nullptr, so the loop is skiped.

Signed-off-by: Cai Zhang <cai.zhang@zilliz.com>
This commit is contained in:
cai.zhang 2025-09-29 21:15:05 +08:00 committed by GitHub
parent 7438b00108
commit aecb46a08b
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -357,6 +357,8 @@ class SegmentExpr : public Expr {
Assert(num_data_chunk_ == 1);
auto need_size =
std::min(active_count_ - current_data_chunk_pos_, batch_size_);
if (need_size == 0)
return 0; //do not go empty-loop at the bound of the chunk
auto& skip_index = segment_->GetSkipIndex();
auto pw = segment_->get_batch_views<T>(
@ -683,6 +685,8 @@ class SegmentExpr : public Expr {
: size_per_chunk_ - data_pos;
size = std::min(size, batch_size_ - processed_size);
if (size == 0)
continue; //do not go empty-loop at the bound of the chunk
auto& skip_index = segment_->GetSkipIndex();
auto pw = segment_->chunk_data<T>(op_ctx_, field_id_, i);