mirror of
https://github.com/MariaDB/server.git
synced 2025-01-17 20:42:30 +01:00
215625b143
behave randomly with mysql_change_user. The problem was that global status variables were not updated in THD::check_user(), so thread statistics were lost after COM_CHANGE_USER. The fix is to update global status variables with the thread ones before preparing the thread for new user. mysql-test/r/change_user.result: Update result file. mysql-test/t/change_user.test: Add a test case for Bug#31222: com_% global status counters behave randomly with mysql_change_user. sql/sql_class.cc: Update global status variables when we're handling COM_CHANGE_USER for a thread.
63 lines
1.2 KiB
Text
63 lines
1.2 KiB
Text
#
|
|
# Bug#20023 mysql_change_user() resets the value of SQL_BIG_SELECTS
|
|
#
|
|
|
|
--echo Bug#20023
|
|
SELECT @@session.sql_big_selects;
|
|
SELECT @@global.max_join_size;
|
|
--echo change_user
|
|
--change_user
|
|
SELECT @@session.sql_big_selects;
|
|
SELECT @@global.max_join_size;
|
|
SET @@global.max_join_size = 10000;
|
|
SET @@session.max_join_size = default;
|
|
--echo change_user
|
|
--change_user
|
|
SELECT @@session.sql_big_selects;
|
|
SET @@global.max_join_size = -1;
|
|
SET @@session.max_join_size = default;
|
|
--echo change_user
|
|
--change_user
|
|
SELECT @@session.sql_big_selects;
|
|
|
|
#
|
|
# Bug#31418 User locks misfunctioning after mysql_change_user()
|
|
#
|
|
|
|
--echo Bug#31418
|
|
SELECT IS_FREE_LOCK('bug31418');
|
|
SELECT IS_USED_LOCK('bug31418');
|
|
SELECT GET_LOCK('bug31418', 1);
|
|
SELECT IS_USED_LOCK('bug31418') = CONNECTION_ID();
|
|
--echo change_user
|
|
--change_user
|
|
SELECT IS_FREE_LOCK('bug31418');
|
|
SELECT IS_USED_LOCK('bug31418');
|
|
|
|
#
|
|
# Bug#31222: com_% global status counters behave randomly with
|
|
# mysql_change_user.
|
|
#
|
|
|
|
FLUSH STATUS;
|
|
|
|
--disable_result_log
|
|
--disable_query_log
|
|
|
|
let $i = 100;
|
|
|
|
while ($i)
|
|
{
|
|
dec $i;
|
|
|
|
SELECT 1;
|
|
}
|
|
|
|
--enable_query_log
|
|
--enable_result_log
|
|
|
|
SHOW GLOBAL STATUS LIKE 'com_select';
|
|
|
|
--change_user
|
|
|
|
SHOW GLOBAL STATUS LIKE 'com_select';
|