This is an automated email from the ASF dual-hosted git repository.

lihaopeng 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 69821c009e2  [fix](pipeline) fix check failed in StatefulOperator
69821c009e2 is described below

commit 69821c009e2fe74788422b406d98b3116f6024a2
Author: Mryange <59914473+mrya...@users.noreply.github.com>
AuthorDate: Mon Mar 25 14:57:18 2024 +0800

     [fix](pipeline) fix check failed in StatefulOperator
---
 be/src/pipeline/exec/join_probe_operator.cpp | 7 ++++++-
 be/src/vec/exec/join/vjoin_node_base.cpp     | 6 +++++-
 2 files changed, 11 insertions(+), 2 deletions(-)

diff --git a/be/src/pipeline/exec/join_probe_operator.cpp 
b/be/src/pipeline/exec/join_probe_operator.cpp
index 48607309eca..5c89075e8b9 100644
--- a/be/src/pipeline/exec/join_probe_operator.cpp
+++ b/be/src/pipeline/exec/join_probe_operator.cpp
@@ -86,7 +86,12 @@ Status JoinProbeLocalState<SharedStateArg, 
Derived>::_build_output_block(
         // In previous versions, the join node had a separate set of project 
structures,
         // and you could see a 'todo' in the Thrift definition.
         //  Here, we have refactored it, but considering upgrade 
compatibility, we still need to retain the old code.
-        *output_block = *origin_block;
+        if (!output_block->mem_reuse()) {
+            vectorized::MutableBlock tmp(
+                    
vectorized::VectorizedUtils::create_columns_with_type_and_name(p.row_desc()));
+            output_block->swap(tmp.to_block());
+        }
+        output_block->swap(*origin_block);
         return Status::OK();
     }
     SCOPED_TIMER(_build_output_block_timer);
diff --git a/be/src/vec/exec/join/vjoin_node_base.cpp 
b/be/src/vec/exec/join/vjoin_node_base.cpp
index 4697be19b84..9b954811ee9 100644
--- a/be/src/vec/exec/join/vjoin_node_base.cpp
+++ b/be/src/vec/exec/join/vjoin_node_base.cpp
@@ -184,7 +184,11 @@ Status VJoinNodeBase::_build_output_block(Block* 
origin_block, Block* output_blo
         // In previous versions, the join node had a separate set of project 
structures,
         // and you could see a 'todo' in the Thrift definition.
         //  Here, we have refactored it, but considering upgrade 
compatibility, we still need to retain the old code.
-        *output_block = *origin_block;
+        if (!output_block->mem_reuse()) {
+            MutableBlock 
tmp(VectorizedUtils::create_columns_with_type_and_name(row_desc()));
+            output_block->swap(tmp.to_block());
+        }
+        output_block->swap(*origin_block);
         return Status::OK();
     }
     auto is_mem_reuse = output_block->mem_reuse();


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org
For additional commands, e-mail: commits-h...@doris.apache.org

Reply via email to