diff options
Diffstat (limited to 'sql/sys_vars.cc')
-rw-r--r-- | sql/sys_vars.cc | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/sql/sys_vars.cc b/sql/sys_vars.cc index e4de3d8d0aa..585806fdce5 100644 --- a/sql/sys_vars.cc +++ b/sql/sys_vars.cc @@ -53,6 +53,7 @@ #include "log_slow.h" #include "debug_sync.h" // DEBUG_SYNC #include "sql_show.h" +#include "sp_cache.h" // sp_cache_invalidate() #include "log_event.h" #ifdef WITH_PERFSCHEMA_STORAGE_ENGINE @@ -2469,6 +2470,11 @@ static bool fix_optimizer_switch(sys_var *self, THD *thd, ER_WARN_DEPRECATED_SYNTAX_NO_REPLACEMENT, ER_THD(thd, ER_WARN_DEPRECATED_SYNTAX_NO_REPLACEMENT), "engine_condition_pushdown=on"); + if (type == OPT_GLOBAL) + sp_cache_invalidate(); + else + thd->clear_sp_caches(); + return false; } static bool check_legal_optimizer_switch(sys_var *self, THD *thd, |