fix: [cp2.5.13] fail to get string views due to chunk bound empty loop (#49266)

Cherry-pick of #43483 (backport of #41452, related: #41300) from
`hotfix-2.5.15` to `hotfix-2.5.13`.

## Summary
- Fix failure to get string views caused by empty loop at chunk bound.
- Single-file change in `internal/core/src/exec/expression/Expr.h`
(+4/-2); clean cherry-pick, no conflicts.

## Test plan
- [ ] CI green on `hotfix-2.5.13`

Signed-off-by: MrPresent-Han <chun.han@gmail.com>
Signed-off-by: zhenshan.cao <zhenshan.cao@zilliz.com>
Co-authored-by: Chun Han <116052805+MrPresent-Han@users.noreply.github.com>
Co-authored-by: MrPresent-Han <chun.han@gmail.com>
This commit is contained in:
zhenshan.cao
2026-04-22 15:52:27 -07:00
committed by GitHub
co-authored by Chun Han MrPresent-Han
parent 322b2b4e18
commit 9c2afdbc38
+4 -2
View File
@@ -698,8 +698,9 @@ class SegmentExpr : public Expr {
// if segment is chunked, type won't be growing
int64_t size = segment_->chunk_size(field_id_, i) - 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();
if (!skip_func || !skip_func(skip_index, field_id_, i)) {
@@ -1032,7 +1033,8 @@ class SegmentExpr : public Expr {
}
size = std::min(size, batch_size_ - processed_size);
if (size == 0)
continue; //do not go empty-loop at the bound of the chunk
bool access_sealed_variable_column = false;
if constexpr (std::is_same_v<T, std::string_view> ||
std::is_same_v<T, Json> ||