Fix merge join clear evaluated flag by mistake
This commit is contained in:
@ -975,6 +975,7 @@ int ObMergeJoinOp::ChildBatchFetcher::get_next_batch(const int64_t max_row_cnt)
|
||||
for (int64_t i = 0; i < backup_datums_.count(); i++) {
|
||||
ObDatum *datum = all_exprs_->at(i)->locate_batch_datums(merge_join_op_.eval_ctx_);
|
||||
MEMCPY(datum, backup_datums_.at(i) + backup_rows_used_, sizeof(ObDatum) * restore_cnt);
|
||||
all_exprs_->at(i)->set_evaluated_projected(merge_join_op_.eval_ctx_);
|
||||
}
|
||||
brs_.size_ = restore_cnt;
|
||||
brs_.end_ = false;
|
||||
@ -1117,7 +1118,6 @@ int ObMergeJoinOp::ChildBatchFetcher::get_next_small_group(int64_t &cmp_res)
|
||||
}
|
||||
}
|
||||
if (OB_SUCC(ret) && cur_idx_ < brs_.size_) {
|
||||
merge_join_op_.clear_evaluated_flag();
|
||||
if (OB_FAIL(merge_join_op_.calc_equal_conds_with_batch_idx(cmp_res))) {
|
||||
LOG_WARN("calc equal conds with batch index failed", K(ret));
|
||||
} else {
|
||||
@ -1161,7 +1161,6 @@ int ObMergeJoinOp::ChildBatchFetcher::get_next_equal_group(JoinRowList &row_list
|
||||
}
|
||||
|
||||
if (OB_SUCC(ret) && !all_batch_finished) {
|
||||
merge_join_op_.clear_evaluated_flag();
|
||||
if (OB_FAIL(merge_join_op_.calc_equal_conds_with_stored_row<!is_left>(
|
||||
stored_row, cur_idx_, cmp_res))) {
|
||||
LOG_WARN("calc equal conds failed", K(ret));
|
||||
@ -1383,7 +1382,6 @@ int ObMergeJoinOp::iterate_both_chidren(ObEvalCtx::BatchInfoScopeGuard &guard)
|
||||
} else if (OB_FAIL(match_groups_.push_back(std::make_pair(l_row_list, r_row_list)))) {
|
||||
LOG_WARN("match group push back failed", K(ret));
|
||||
} else if (!left_brs_fetcher_.iter_end() && !right_brs_fetcher_.iter_end()) {
|
||||
clear_evaluated_flag();
|
||||
if (OB_FAIL(calc_equal_conds_with_batch_idx(cmp_res_))) {
|
||||
LOG_WARN("calc equal cond with batch index failed", K(ret));
|
||||
}
|
||||
@ -1730,6 +1728,7 @@ int ObMergeJoinOp::output_side_rows(ChildBatchFetcher &batch_fetcher,
|
||||
batch_join_state_ = BJS_JOIN_END;
|
||||
} else if (OB_FAIL(batch_fetcher.brs_holder_.restore())) {
|
||||
LOG_WARN("fetcher restore failed", K(ret));
|
||||
} else if (FALSE_IT(clear_evaluated_flag())) {
|
||||
} else if (OB_FAIL(batch_fetcher.get_next_batch(max_row_cnt))) {
|
||||
LOG_WARN("get child next batch failed", K(ret));
|
||||
} else if (OB_UNLIKELY(batch_fetcher.iter_end())) {
|
||||
|
||||
Reference in New Issue
Block a user