make error info accurate for calling udf with wrong number of arguments
This commit is contained in:
		@ -892,7 +892,10 @@ int ObRawExprUtils::resolve_udf_param_exprs(ObResolverParams ¶ms,
 | 
				
			|||||||
    SQL_LOG(WARN, "names array not equle to exprs array count",
 | 
					    SQL_LOG(WARN, "names array not equle to exprs array count",
 | 
				
			||||||
             K(ret), K(udf_info.param_names_.count()), K(udf_info.param_exprs_.count()));
 | 
					             K(ret), K(udf_info.param_names_.count()), K(udf_info.param_exprs_.count()));
 | 
				
			||||||
  } else if ((udf_info.udf_param_num_ + udf_info.param_names_.count()) > func_info->get_param_count()) {
 | 
					  } else if ((udf_info.udf_param_num_ + udf_info.param_names_.count()) > func_info->get_param_count()) {
 | 
				
			||||||
    ret = OB_ERR_PARAM_SIZE;
 | 
					    ret = OB_ERR_SP_WRONG_ARG_NUM;
 | 
				
			||||||
 | 
					    LOG_USER_ERROR(OB_ERR_SP_WRONG_ARG_NUM, "FUNCTION", udf_info.udf_name_.ptr(),
 | 
				
			||||||
 | 
					                   static_cast<uint32_t>(func_info->get_param_count()),
 | 
				
			||||||
 | 
					                   static_cast<uint32_t>(udf_info.udf_param_num_ + udf_info.param_names_.count()));
 | 
				
			||||||
    SQL_LOG(WARN, "params count mismatch",
 | 
					    SQL_LOG(WARN, "params count mismatch",
 | 
				
			||||||
             K(ret), K(udf_info.udf_name_), K(func_info->get_param_count()), K(udf_info));
 | 
					             K(ret), K(udf_info.udf_name_), K(func_info->get_param_count()), K(udf_info));
 | 
				
			||||||
  } else {
 | 
					  } else {
 | 
				
			||||||
@ -941,7 +944,10 @@ int ObRawExprUtils::resolve_udf_param_exprs(ObResolverParams ¶ms,
 | 
				
			|||||||
                      *(params.allocator_), params.session_info_->get_dtc_params(), default_val))) {
 | 
					                      *(params.allocator_), params.session_info_->get_dtc_params(), default_val))) {
 | 
				
			||||||
          LOG_WARN("fail to get default value", K(ret));
 | 
					          LOG_WARN("fail to get default value", K(ret));
 | 
				
			||||||
        } else if (OB_UNLIKELY(default_val.empty())) {
 | 
					        } else if (OB_UNLIKELY(default_val.empty())) {
 | 
				
			||||||
          ret = OB_ERR_PARAM_SIZE;
 | 
					          ret = OB_ERR_SP_WRONG_ARG_NUM;
 | 
				
			||||||
 | 
					          LOG_USER_ERROR(OB_ERR_SP_WRONG_ARG_NUM, "FUNCTION", udf_info.udf_name_.ptr(),
 | 
				
			||||||
 | 
					                         static_cast<uint32_t>(func_info->get_param_count()),
 | 
				
			||||||
 | 
					                         static_cast<uint32_t>(udf_info.udf_param_num_ + udf_info.param_names_.count()));
 | 
				
			||||||
          SQL_LOG(WARN, "param count mismatch", K(ret), K(i), K(default_val));
 | 
					          SQL_LOG(WARN, "param count mismatch", K(ret), K(i), K(default_val));
 | 
				
			||||||
        } else if (OB_FAIL(ObRawExprUtils::parse_default_expr_from_str(
 | 
					        } else if (OB_FAIL(ObRawExprUtils::parse_default_expr_from_str(
 | 
				
			||||||
            default_val, params.session_info_->get_local_collation_connection(),
 | 
					            default_val, params.session_info_->get_local_collation_connection(),
 | 
				
			||||||
@ -977,7 +983,10 @@ int ObRawExprUtils::resolve_udf_param_exprs(ObResolverParams ¶ms,
 | 
				
			|||||||
  }
 | 
					  }
 | 
				
			||||||
  if (OB_SUCC(ret)
 | 
					  if (OB_SUCC(ret)
 | 
				
			||||||
      && (func_info->get_param_count() != udf_info.udf_param_num_ + param_exprs.count())) {
 | 
					      && (func_info->get_param_count() != udf_info.udf_param_num_ + param_exprs.count())) {
 | 
				
			||||||
    ret = OB_ERR_PARAM_SIZE;
 | 
					    ret = OB_ERR_SP_WRONG_ARG_NUM;
 | 
				
			||||||
 | 
					    LOG_USER_ERROR(OB_ERR_SP_WRONG_ARG_NUM, "FUNCTION", udf_info.udf_name_.ptr(),
 | 
				
			||||||
 | 
					                   static_cast<uint32_t>(func_info->get_param_count()),
 | 
				
			||||||
 | 
					                   static_cast<uint32_t>(udf_info.udf_param_num_ + udf_info.param_names_.count()));
 | 
				
			||||||
    SQL_LOG(WARN, "params count mismatch",
 | 
					    SQL_LOG(WARN, "params count mismatch",
 | 
				
			||||||
             K(ret), K(udf_info.udf_name_),
 | 
					             K(ret), K(udf_info.udf_name_),
 | 
				
			||||||
             K(func_info->get_param_count()), K(udf_info));
 | 
					             K(func_info->get_param_count()), K(udf_info));
 | 
				
			||||||
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user