diff --git a/src/sql/engine/ob_operator.cpp b/src/sql/engine/ob_operator.cpp index cb3dd65ffa..14df078a69 100644 --- a/src/sql/engine/ob_operator.cpp +++ b/src/sql/engine/ob_operator.cpp @@ -1332,6 +1332,17 @@ int ObOperator::get_next_batch(const int64_t max_row_cnt, const ObBatchRows *&ba } } + if (brs_.end_ && 0 == brs_.size_) { + FOREACH_CNT_X(e, spec_.output_, OB_SUCC(ret)) { + if (UINT32_MAX != (*e)->vector_header_off_) { + if (OB_FAIL((*e)->init_vector(eval_ctx_, (*e)->is_batch_result() + ? VEC_UNIFORM : VEC_UNIFORM_CONST, brs_.size_))) { + LOG_WARN("failed to init vector", K(ret)); + } + } + } + } + if (OB_SUCC(ret)) { if (brs_.end_ && brs_.size_ >= 0) { batch_reach_end_ = true; // prepare to be end diff --git a/src/sql/engine/px/exchange/ob_px_ms_receive_vec_op.cpp b/src/sql/engine/px/exchange/ob_px_ms_receive_vec_op.cpp index c6c5edccbe..f2915dc89e 100644 --- a/src/sql/engine/px/exchange/ob_px_ms_receive_vec_op.cpp +++ b/src/sql/engine/px/exchange/ob_px_ms_receive_vec_op.cpp @@ -154,7 +154,7 @@ int ObPxMSReceiveVecOp::inner_open() ret = OB_ALLOCATE_MEMORY_FAILED; LOG_WARN("failed to alloc memory for selector", K(ret)); } else if (OB_ISNULL(stored_compact_rows_ = static_cast( - ctx_.get_allocator().alloc(spec_.max_batch_size_ * sizeof(ObCompactRow))))) { + ctx_.get_allocator().alloc(spec_.max_batch_size_ * sizeof(ObCompactRow *))))) { ret = OB_ALLOCATE_MEMORY_FAILED; LOG_WARN("failed to alloc memory for stored compact rows", K(ret)); } else {