fix merge except sanity core because of last left index is not assigned
This commit is contained in:
@ -162,8 +162,8 @@ int ObMergeExceptOp::inner_get_next_batch(const int64_t max_row_cnt)
|
|||||||
//we will compare inside a batch
|
//we will compare inside a batch
|
||||||
last_row_.store_row_ = nullptr;
|
last_row_.store_row_ = nullptr;
|
||||||
brs_.skip_->unset(curr_left_idx);
|
brs_.skip_->unset(curr_left_idx);
|
||||||
if (right_iter_end_) {
|
|
||||||
last_left_idx = curr_left_idx;
|
last_left_idx = curr_left_idx;
|
||||||
|
if (right_iter_end_) {
|
||||||
++curr_left_idx;
|
++curr_left_idx;
|
||||||
}
|
}
|
||||||
while (OB_SUCC(ret) && !right_iter_end_) {
|
while (OB_SUCC(ret) && !right_iter_end_) {
|
||||||
@ -227,6 +227,9 @@ int ObMergeExceptOp::inner_get_next_batch(const int64_t max_row_cnt)
|
|||||||
brs_.end_ = true;
|
brs_.end_ = true;
|
||||||
} else if (last_left_idx == left_brs->size_) {
|
} else if (last_left_idx == left_brs->size_) {
|
||||||
// empty batch
|
// empty batch
|
||||||
|
} else if (OB_UNLIKELY(left_brs->skip_->at(last_left_idx))) {
|
||||||
|
ret = OB_ERR_UNEXPECTED;
|
||||||
|
LOG_WARN("get wrong last row", K(last_left_idx), K(curr_left_idx), K(ret));
|
||||||
} else {
|
} else {
|
||||||
ObEvalCtx::BatchInfoScopeGuard batch_info_guard(eval_ctx_);
|
ObEvalCtx::BatchInfoScopeGuard batch_info_guard(eval_ctx_);
|
||||||
batch_info_guard.set_batch_idx(last_left_idx);
|
batch_info_guard.set_batch_idx(last_left_idx);
|
||||||
|
|||||||
Reference in New Issue
Block a user