This is an automated email from the ASF dual-hosted git repository. yiguolei pushed a commit to branch spill_and_reserve in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/spill_and_reserve by this push: new 20b22bb0744 [fix](spill) MultiCastDataStreamer returns data with partial loss (#47191) 20b22bb0744 is described below commit 20b22bb074418787335ccd225e4955275f57d39b Author: Jerry Hu <hushengg...@selectdb.com> AuthorDate: Sat Jan 18 18:53:37 2025 +0800 [fix](spill) MultiCastDataStreamer returns data with partial loss (#47191) --- be/src/pipeline/exec/multi_cast_data_streamer.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/be/src/pipeline/exec/multi_cast_data_streamer.cpp b/be/src/pipeline/exec/multi_cast_data_streamer.cpp index 733092bf458..ae98f9a4f44 100644 --- a/be/src/pipeline/exec/multi_cast_data_streamer.cpp +++ b/be/src/pipeline/exec/multi_cast_data_streamer.cpp @@ -64,7 +64,15 @@ Status MultiCastDataStreamer::pull(RuntimeState* state, int sender_idx, vectoriz *block = std::move(_cached_blocks[sender_idx].front()); _cached_blocks[sender_idx].erase(_cached_blocks[sender_idx].begin()); - *eos = _cached_blocks[sender_idx].empty() && _spill_readers[sender_idx].empty() && _eos; + /** Eos: + * 1. `_eos` is true means no more data will be added into queue. + * 2. `_cached_blocks[sender_idx]` blocks recovered from spill. + * 3. `_spill_readers[sender_idx].empty()` means there are no blocks on disk. + * 4. `_sender_pos_to_read[sender_idx] == _multi_cast_blocks.end()` means no more blocks in queue. + */ + *eos = _eos && _cached_blocks[sender_idx].empty() && + _spill_readers[sender_idx].empty() && + _sender_pos_to_read[sender_idx] == _multi_cast_blocks.end(); return Status::OK(); } --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org