[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.
This commit is contained in:
Mryange
2024-04-19 15:43:17 +08:00
committed by yiguolei
parent 7e91e69eb9
commit 74590e4836
3 changed files with 26 additions and 6 deletions

View File

@ -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;