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++) {
|
for (int64_t i = 0; i < backup_datums_.count(); i++) {
|
||||||
ObDatum *datum = all_exprs_->at(i)->locate_batch_datums(merge_join_op_.eval_ctx_);
|
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);
|
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_.size_ = restore_cnt;
|
||||||
brs_.end_ = false;
|
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_) {
|
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))) {
|
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));
|
LOG_WARN("calc equal conds with batch index failed", K(ret));
|
||||||
} else {
|
} else {
|
||||||
@ -1161,7 +1161,6 @@ int ObMergeJoinOp::ChildBatchFetcher::get_next_equal_group(JoinRowList &row_list
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (OB_SUCC(ret) && !all_batch_finished) {
|
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>(
|
if (OB_FAIL(merge_join_op_.calc_equal_conds_with_stored_row<!is_left>(
|
||||||
stored_row, cur_idx_, cmp_res))) {
|
stored_row, cur_idx_, cmp_res))) {
|
||||||
LOG_WARN("calc equal conds failed", K(ret));
|
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)))) {
|
} 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));
|
LOG_WARN("match group push back failed", K(ret));
|
||||||
} else if (!left_brs_fetcher_.iter_end() && !right_brs_fetcher_.iter_end()) {
|
} 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_))) {
|
if (OB_FAIL(calc_equal_conds_with_batch_idx(cmp_res_))) {
|
||||||
LOG_WARN("calc equal cond with batch index failed", K(ret));
|
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;
|
batch_join_state_ = BJS_JOIN_END;
|
||||||
} else if (OB_FAIL(batch_fetcher.brs_holder_.restore())) {
|
} else if (OB_FAIL(batch_fetcher.brs_holder_.restore())) {
|
||||||
LOG_WARN("fetcher restore failed", K(ret));
|
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))) {
|
} else if (OB_FAIL(batch_fetcher.get_next_batch(max_row_cnt))) {
|
||||||
LOG_WARN("get child next batch failed", K(ret));
|
LOG_WARN("get child next batch failed", K(ret));
|
||||||
} else if (OB_UNLIKELY(batch_fetcher.iter_end())) {
|
} else if (OB_UNLIKELY(batch_fetcher.iter_end())) {
|
||||||
|
|||||||
Reference in New Issue
Block a user