diff --git a/src/pl/ob_pl.cpp b/src/pl/ob_pl.cpp index 5ca5b562bc..5391dfd6a7 100644 --- a/src/pl/ob_pl.cpp +++ b/src/pl/ob_pl.cpp @@ -955,6 +955,13 @@ int ObPLContext::set_exec_env(ObPLFunction &routine) OZ (routine.get_exec_env().store(*session_info_)); OX (need_reset_exec_env_ = true); } + + // always restore sql_mode in mysql mode, + // because sql_mode may be change inside PL. + if (OB_SUCC(ret) && lib::is_mysql_mode()) { + OX(need_reset_exec_env_ = true); + } + return ret; }