[refactor](mem_reuse) refactor mem_reuse in MutableBlock (#21564)

This commit is contained in:
Mryange
2023-07-20 22:53:19 +08:00
committed by GitHub
parent f3d9a843dd
commit 6875ef4b8b
8 changed files with 60 additions and 106 deletions

View File

@ -528,11 +528,8 @@ std::string ExecNode::get_name() {
Status ExecNode::do_projections(vectorized::Block* origin_block, vectorized::Block* output_block) {
SCOPED_TIMER(_projection_timer);
using namespace vectorized;
auto is_mem_reuse = output_block->mem_reuse();
MutableBlock mutable_block =
is_mem_reuse ? MutableBlock(output_block)
: MutableBlock(VectorizedUtils::create_empty_columnswithtypename(
*_output_row_descriptor));
VectorizedUtils::build_mutable_mem_reuse_block(output_block, *_output_row_descriptor);
auto rows = origin_block->rows();
if (rows != 0) {
@ -552,9 +549,7 @@ Status ExecNode::do_projections(vectorized::Block* origin_block, vectorized::Blo
mutable_columns[i]->insert_range_from(*column_ptr, 0, rows);
}
}
if (!is_mem_reuse) output_block->swap(mutable_block.to_block());
DCHECK(output_block->rows() == rows);
DCHECK(mutable_block.rows() == rows);
}
return Status::OK();