diff options
author | Vladislav Vaintroub <wlad@mariadb.com> | 2018-10-04 14:24:14 +0100 |
---|---|---|
committer | Vladislav Vaintroub <wlad@mariadb.com> | 2018-10-05 16:48:51 +0100 |
commit | 7fefd53f94bdb5aeab352665ae0f208b858e88f8 (patch) | |
tree | 89f0bec6c00878e033dc77bc349e4226cafd4434 /sql | |
parent | 33fadbfefcc040f0b5ae589d385468e5ba26b1cd (diff) | |
download | mariadb-git-7fefd53f94bdb5aeab352665ae0f208b858e88f8.tar.gz |
MDEV-14581 Server does not clear diagnostics between sessions
Amend previous patch, so it works in all cases (also for "change user"
command, and for RESET CONNECTION in 10.3)
Diffstat (limited to 'sql')
-rw-r--r-- | sql/mysqld.cc | 4 | ||||
-rw-r--r-- | sql/sql_class.cc | 5 |
2 files changed, 5 insertions, 4 deletions
diff --git a/sql/mysqld.cc b/sql/mysqld.cc index b8bb63c4259..784bfaa58b0 100644 --- a/sql/mysqld.cc +++ b/sql/mysqld.cc @@ -2962,10 +2962,6 @@ static bool cache_thread(THD *thd) _db_pop_(); #endif - /* Clear warnings. */ - if (!thd->get_stmt_da()->is_warning_info_empty()) - thd->get_stmt_da()->clear_warning_info(thd->query_id); - set_timespec(abstime, THREAD_CACHE_TIMEOUT); while (!abort_loop && ! wake_thread && ! kill_cached_threads) { diff --git a/sql/sql_class.cc b/sql/sql_class.cc index bd41a3729d6..e581ed0af25 100644 --- a/sql/sql_class.cc +++ b/sql/sql_class.cc @@ -1332,6 +1332,11 @@ void THD::change_user(void) cleanup_done= 0; reset_killed(); thd_clear_errors(this); + + /* Clear warnings. */ + if (!get_stmt_da()->is_warning_info_empty()) + get_stmt_da()->clear_warning_info(0); + init(); stmt_map.reset(); my_hash_init(&user_vars, system_charset_info, USER_VARS_HASH_SIZE, 0, 0, |