Fix coalesce bug

This commit is contained in:
xianyu-w
2023-08-17 09:55:36 +00:00
committed by ob-robot
parent ef7d1b3611
commit d2cd503be2
2 changed files with 2689 additions and 8 deletions

File diff suppressed because it is too large Load Diff

View File

@ -114,13 +114,9 @@ int ObExprResultTypeUtil::get_merge_result_type(ObExprResType &res_type,
int ret = OB_SUCCESS; int ret = OB_SUCCESS;
ObObjType type1 = res_type1.get_type(); ObObjType type1 = res_type1.get_type();
ObObjType type2 = res_type2.get_type(); ObObjType type2 = res_type2.get_type();
if (OB_UNLIKELY(type1 >= ObMaxType || type2 >= ObMaxType)) { ObObjType type = ObMaxType;
ret = OB_ERR_UNEXPECTED; ret = get_merge_result_type(type, type1, type2);
LOG_ERROR("the wrong type", K(type1),K(type2),K(ret)); res_type.set_type(type);
} else {
res_type.set_type(MERGE_RESULT_TYPE[type1][type2]);
}
return ret; return ret;
} }
@ -133,7 +129,11 @@ int ObExprResultTypeUtil::get_merge_result_type(ObObjType &type,
ret = OB_ERR_UNEXPECTED; ret = OB_ERR_UNEXPECTED;
LOG_ERROR("the wrong type", K(type1),K(type2),K(ret)); LOG_ERROR("the wrong type", K(type1),K(type2),K(ret));
} else { } else {
type = MERGE_RESULT_TYPE[type1][type2]; if (is_oracle_mode()) {
type = MERGE_RESULT_TYPE_ORACLE[type1][type2];
} else {
type = MERGE_RESULT_TYPE[type1][type2];
}
} }
return ret; return ret;