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 <[email protected]>
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: [email protected]
For additional commands, e-mail: [email protected]