Fix error when call stmt containing question mark

This commit is contained in:
obdev
2024-01-19 07:16:55 +00:00
committed by ob-robot
parent 57c5787cf8
commit 04d256afce

View File

@ -473,7 +473,8 @@ int ObCallProcedureResolver::resolve(const ParseNode &parse_tree)
const ObRawExpr* param = params.at(i);
if (lib::is_mysql_mode()
&& param->get_expr_type() != T_OP_GET_USER_VAR
&& param->get_expr_type() != T_OP_GET_SYS_VAR) {
&& param->get_expr_type() != T_OP_GET_SYS_VAR
&& param->get_expr_type() != T_QUESTIONMARK) {
ret = OB_ER_SP_NOT_VAR_ARG;
LOG_USER_ERROR(OB_ER_SP_NOT_VAR_ARG, static_cast<int32_t>(i), static_cast<int32_t>(sp_name.length()), sp_name.ptr());
LOG_WARN("OUT or INOUT argument for routine is not a variable", K(param->get_expr_type()), K(ret));