fix merge join bug when use interesting ordering for merge key

This commit is contained in:
chimyue
2023-12-08 08:17:35 +00:00
committed by ob-robot
parent 5406c378bb
commit 044e2b0b81
5 changed files with 33 additions and 9 deletions

View File

@ -3996,6 +3996,19 @@ int ObOptimizerUtil::decide_sort_keys_for_merge_style_op(const ObDMLStmt *stmt,
}
} else if (OB_FAIL(merge_key.assign(*interesting_key))) {
LOG_WARN("failed to assign merge key", K(ret));
/* interesting_key->need_sort_ is true generally.
When ObOptimizerUtil::check_need_sort use ordering contain lossless cast, need_sort_ can be false
and ObOptimizerUtil::check_need_sort is needed for other path use the interesting_key */
} else if (OB_FAIL(ObOptimizerUtil::check_need_sort(merge_key.order_items_,
input_ordering,
fd_item_set,
equal_sets,
const_exprs,
exec_ref_exprs,
is_at_most_one_row,
merge_key.need_sort_,
merge_key.prefix_pos_))) {
LOG_WARN("failed to check need sort", K(ret));
} else { /*do nothing*/ }
return ret;
}