diff --git a/be/src/exec/exec_node.cpp b/be/src/exec/exec_node.cpp index c8f46b2ed124e0..10178fa59ca28f 100644 --- a/be/src/exec/exec_node.cpp +++ b/be/src/exec/exec_node.cpp @@ -559,7 +559,14 @@ Status ExecNode::do_projections(vectorized::Block* origin_block, vectorized::Blo if (rows != 0) { auto& mutable_columns = mutable_block.mutable_columns(); - DCHECK(mutable_columns.size() == _projections.size()); + + if (mutable_columns.size() != _projections.size()) { + return Status::InternalError( + "Logical error during processing {}, output of projections {} mismatches with " + "exec node output {}", + this->get_name(), _projections.size(), mutable_columns.size()); + } + for (int i = 0; i < mutable_columns.size(); ++i) { auto result_column_id = -1; RETURN_IF_ERROR(_projections[i]->execute(origin_block, &result_column_id));