[to #49178989] fix mysqltest

This commit is contained in:
obdev
2023-04-21 06:45:22 +00:00
committed by ob-robot
parent a9098c4fe7
commit 51e24b0b36
3 changed files with 21 additions and 8 deletions

View File

@ -879,6 +879,16 @@ int ObResolverUtils::check_match(const pl::ObPLResolveCtx &resolve_ctx,
ObRawExpr *first_arg = expr_params.at(0);
if (first_arg->has_flag(IS_UDT_UDF_SELF_PARAM)) {
// do nothing, may be we can check if routine is static or not
} else if (routine_info->is_udt_cons()) {
if (expr_params.count() > 0 && 1 == routine_info->get_param_count()) {
ret = OB_ERR_SP_WRONG_ARG_NUM;
LOG_WARN("argument count not match",
K(ret), K(expr_params.count()), K(routine_info->get_param_count()));
} else {
// construct function & no self real paremeter
OX (match_info.match_info_.at(0) = (ObRoutineMatchInfo::MatchInfo(false, ObExtendType, ObExtendType)));
OX (offset = 1);
}
} else if (routine_info->is_udt_routine()
&& !routine_info->is_udt_static_routine()
&& expr_params.count() != routine_info->get_param_count()) {
@ -893,8 +903,7 @@ int ObResolverUtils::check_match(const pl::ObPLResolveCtx &resolve_ctx,
OZ (get_type_and_type_id(first_arg, src_type, src_type_id));
}
if (OB_SUCC(ret)
&& (src_type_id != routine_info->get_package_id()
|| routine_info->is_udt_cons())) {
&& (src_type_id != routine_info->get_package_id())) {
// set first param matched
OX (match_info.match_info_.at(0) = (ObRoutineMatchInfo::MatchInfo(false, src_type, src_type)));
OX (offset = 1);