[FEAT MERGE] 4.3 optimizer enhancement

Co-authored-by: akaError <lzg020616@163.com>
This commit is contained in:
yinyj17
2024-02-07 23:05:57 +00:00
committed by ob-robot
parent 8d63652331
commit fd359dc4a4
50 changed files with 3205 additions and 1059 deletions

View File

@ -660,19 +660,24 @@ bool ObRawExpr::same_as(const ObRawExpr &expr,
ObExprEqualCheckContext *check_context) const
{
bool bret = false;
int ret = OB_SUCCESS;
if (this == &expr) {
bret = true;
} else {
if (NULL != check_context) {
check_context->recursion_level_ += 1;
}
const ObRawExpr *l = get_same_identify(this, check_context);
const ObRawExpr *r = get_same_identify(&expr, check_context);
bret = l->inner_same_as(*r, check_context);
ret = SMART_CALL(bret = l->inner_same_as(*r, check_context));
if (NULL != check_context) {
check_context->recursion_level_ -= 1;
if (OB_SIZE_OVERFLOW == ret) {
bret = false;
check_context->error_code_ = ret;
LOG_WARN("check smart call fail", K(ret));
} else {
check_context->recursion_level_ -= 1;
}
}
if (bret) {