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

panxiaolei 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 0da148ec494 [refine](node) Remove the cse DCHECK from the constructor 
(#33856)
0da148ec494 is described below

commit 0da148ec4946db6ba4250541ce9a8e14e7764182
Author: Mryange <[email protected]>
AuthorDate: Fri Apr 19 15:43:17 2024 +0800

    [refine](node) Remove the cse DCHECK from the constructor (#33856)
    
    It's possible that a failure in the fe caused the check to fail, and at 
that moment, it may not be possible to retrieve the corresponding query ID from 
be.out.
---
 be/src/exec/exec_node.cpp               | 16 +++++++++++++---
 be/src/pipeline/pipeline_x/operator.cpp | 13 +++++++++++++
 be/src/pipeline/pipeline_x/operator.h   |  3 ---
 3 files changed, 26 insertions(+), 6 deletions(-)

diff --git a/be/src/exec/exec_node.cpp b/be/src/exec/exec_node.cpp
index eebb93cf1e7..382deaff6f4 100644
--- a/be/src/exec/exec_node.cpp
+++ b/be/src/exec/exec_node.cpp
@@ -90,10 +90,7 @@ ExecNode::ExecNode(ObjectPool* pool, const TPlanNode& tnode, 
const DescriptorTbl
                 descs, std::vector {tnode.output_tuple_id}, std::vector 
{true});
     }
     if (!tnode.intermediate_output_tuple_id_list.empty()) {
-        DCHECK(tnode.__isset.output_tuple_id) << " no final output tuple id";
         // common subexpression elimination
-        DCHECK_EQ(tnode.intermediate_output_tuple_id_list.size(),
-                  tnode.intermediate_projections_list.size());
         
_intermediate_output_row_descriptor.reserve(tnode.intermediate_output_tuple_id_list.size());
         for (auto output_tuple_id : tnode.intermediate_output_tuple_id_list) {
             _intermediate_output_row_descriptor.push_back(
@@ -108,6 +105,19 @@ ExecNode::~ExecNode() = default;
 
 Status ExecNode::init(const TPlanNode& tnode, RuntimeState* state) {
     init_runtime_profile(get_name());
+    if (!tnode.intermediate_output_tuple_id_list.empty()) {
+        if (!tnode.__isset.output_tuple_id) {
+            return Status::InternalError("no final output tuple id");
+        }
+        if (tnode.intermediate_output_tuple_id_list.size() !=
+            tnode.intermediate_projections_list.size()) {
+            return Status::InternalError(
+                    "intermediate_output_tuple_id_list size:{} not match "
+                    "intermediate_projections_list size:{}",
+                    tnode.intermediate_output_tuple_id_list.size(),
+                    tnode.intermediate_projections_list.size());
+        }
+    }
 
     if (tnode.__isset.vconjunct) {
         vectorized::VExprContextSPtr context;
diff --git a/be/src/pipeline/pipeline_x/operator.cpp 
b/be/src/pipeline/pipeline_x/operator.cpp
index fab80e6ccbd..d5afad15fa0 100644
--- a/be/src/pipeline/pipeline_x/operator.cpp
+++ b/be/src/pipeline/pipeline_x/operator.cpp
@@ -110,6 +110,19 @@ std::string OperatorXBase::debug_string(RuntimeState* 
state, int indentation_lev
 
 Status OperatorXBase::init(const TPlanNode& tnode, RuntimeState* /*state*/) {
     std::string node_name = print_plan_node_type(tnode.node_type);
+    if (!tnode.intermediate_output_tuple_id_list.empty()) {
+        if (!tnode.__isset.output_tuple_id) {
+            return Status::InternalError("no final output tuple id");
+        }
+        if (tnode.intermediate_output_tuple_id_list.size() !=
+            tnode.intermediate_projections_list.size()) {
+            return Status::InternalError(
+                    "intermediate_output_tuple_id_list size:{} not match "
+                    "intermediate_projections_list size:{}",
+                    tnode.intermediate_output_tuple_id_list.size(),
+                    tnode.intermediate_projections_list.size());
+        }
+    }
     auto substr = node_name.substr(0, node_name.find("_NODE"));
     _op_name = substr + "_OPERATOR";
 
diff --git a/be/src/pipeline/pipeline_x/operator.h 
b/be/src/pipeline/pipeline_x/operator.h
index b470c9237e8..efa35b2c2fe 100644
--- a/be/src/pipeline/pipeline_x/operator.h
+++ b/be/src/pipeline/pipeline_x/operator.h
@@ -164,10 +164,7 @@ public:
                     descs, std::vector {tnode.output_tuple_id}, std::vector 
{true});
         }
         if (!tnode.intermediate_output_tuple_id_list.empty()) {
-            DCHECK(tnode.__isset.output_tuple_id) << " no final output tuple 
id";
             // common subexpression elimination
-            DCHECK_EQ(tnode.intermediate_output_tuple_id_list.size(),
-                      tnode.intermediate_projections_list.size());
             _intermediate_output_row_descriptor.reserve(
                     tnode.intermediate_output_tuple_id_list.size());
             for (auto output_tuple_id : 
tnode.intermediate_output_tuple_id_list) {


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to