This is an automated email from the ASF dual-hosted git repository. yiguolei pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/master by this push: new 93f5e440eb [Bug](execute) fix get next non stop for eos on streaming preagg (#15611) 93f5e440eb is described below commit 93f5e440eba18940bb389ad38b0ee8ef5df60668 Author: Pxl <pxl...@qq.com> AuthorDate: Thu Jan 5 09:36:11 2023 +0800 [Bug](execute) fix get next non stop for eos on streaming preagg (#15611) * fix get nnext non stop for eos on streaming preagg * update --- be/src/vec/exec/vaggregation_node.cpp | 12 +++++------- be/src/vec/exec/vaggregation_node.h | 1 + 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/be/src/vec/exec/vaggregation_node.cpp b/be/src/vec/exec/vaggregation_node.cpp index 6884d7b17d..2e3330f0a5 100644 --- a/be/src/vec/exec/vaggregation_node.cpp +++ b/be/src/vec/exec/vaggregation_node.cpp @@ -522,21 +522,19 @@ Status AggregationNode::get_next(RuntimeState* state, Block* block, bool* eos) { SCOPED_TIMER(_runtime_profile->total_time_counter()); if (_is_streaming_preagg) { - bool child_eos = false; - RETURN_IF_CANCELLED(state); - do { - release_block_memory(_preagg_block); + release_block_memory(_preagg_block); + while (_preagg_block.rows() == 0 && !_child_eos) { RETURN_IF_ERROR_AND_CHECK_SPAN( _children[0]->get_next_after_projects( - state, &_preagg_block, &child_eos, + state, &_preagg_block, &_child_eos, std::bind((Status(ExecNode::*)(RuntimeState*, vectorized::Block*, bool*)) & ExecNode::get_next, _children[0], std::placeholders::_1, std::placeholders::_2, std::placeholders::_3)), - _children[0]->get_next_span(), child_eos); - } while (_preagg_block.rows() == 0 && !child_eos); + _children[0]->get_next_span(), _child_eos); + }; { SCOPED_CONSUME_MEM_TRACKER(mem_tracker_growh()); if (_preagg_block.rows() != 0) { diff --git a/be/src/vec/exec/vaggregation_node.h b/be/src/vec/exec/vaggregation_node.h index bb40c7f509..520e6b1511 100644 --- a/be/src/vec/exec/vaggregation_node.h +++ b/be/src/vec/exec/vaggregation_node.h @@ -845,6 +845,7 @@ private: bool _is_streaming_preagg; Block _preagg_block = Block(); bool _should_expand_hash_table = true; + bool _child_eos = false; bool _should_limit_output = false; bool _reach_limit = false; --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org