forked from mysql/mysql-server
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathchange_user.test
135 lines (110 loc) · 3.78 KB
/
change_user.test
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
# functional change user tests
#
connect (con_main,localhost,root);
create user test_nopw;
grant select on test.* to test_nopw;
create user test_newpw identified by "newpw";
grant select on test.* to test_newpw;
select user(), current_user(), database();
#
# massaging the data for tests to pass in the embedded server,
# that has authentication completely disabled.
#
--replace_result "<skip-grants user@skip-grants host>" <test_nopw@%> @> @localhost>
select concat('<', user(), '>'), concat('<', current_user(), '>'), database();
change_user test_nopw;
--replace_result "<skip-grants user@skip-grants host>" <test_nopw@%> @> @localhost>
select concat('<', user(), '>'), concat('<', current_user(), '>'), database();
change_user test_newpw, newpw;
--replace_result "<skip-grants user@skip-grants host>" <test_newpw@%> @> @localhost>
select concat('<', user(), '>'), concat('<', current_user(), '>'), database();
change_user root;
--replace_result "<skip-grants user@skip-grants host>" <root@localhost> @> @localhost>
select concat('<', user(), '>'), concat('<', current_user(), '>'), database();
change_user test_nopw,,test;
--replace_result "<skip-grants user@skip-grants host>" <test_nopw@%> @> @localhost>
select concat('<', user(), '>'), concat('<', current_user(), '>'), database();
change_user test_newpw,newpw,test;
--replace_result "<skip-grants user@skip-grants host>" <test_newpw@%> @> @localhost>
select concat('<', user(), '>'), concat('<', current_user(), '>'), database();
change_user root,,test;
--replace_result "<skip-grants user@skip-grants host>" <root@localhost> @> @localhost>
select concat('<', user(), '>'), concat('<', current_user(), '>'), database();
drop user test_nopw;
drop user test_newpw;
connection default;
disconnect con_main;
#
# Bug#20023 mysql_change_user() resets the value of SQL_BIG_SELECTS
#
--echo Bug#20023
SELECT @@session.sql_big_selects;
# The exact value depends on the server build flags
--replace_result 18446744073709551615 HA_POS_ERROR 4294967295 HA_POS_ERROR
SELECT @@global.max_join_size;
--echo change_user
--change_user
SELECT @@session.sql_big_selects;
# The exact value depends on the server build flags
--replace_result 18446744073709551615 HA_POS_ERROR 4294967295 HA_POS_ERROR
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;
# On some machines the following will result into a warning
--disable_warnings
SET @@global.max_join_size = 18446744073709551615;
--enable_warnings
SET @@session.max_join_size = default;
--echo change_user
--change_user
SELECT @@session.sql_big_selects;
#
# Bug #18329348 Bug #18329560 Bug #18328396 Bug #18329452 mysql_change_user()
# resets all SESSION ONLY system variables
#
SET INSERT_ID=12;
SELECT @@INSERT_ID;
SET TIMESTAMP=200;
SELECT @@TIMESTAMP;
--echo change_user
--change_user
SELECT @@INSERT_ID;
SELECT @@TIMESTAMP=200;
#
# 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
let $before= query_get_value(SHOW GLOBAL STATUS LIKE 'com_select',Value,1);
--change_user
let $after= query_get_value(SHOW GLOBAL STATUS LIKE 'com_select',Value,1);
if ($after != $before){
SHOW GLOBAL STATUS LIKE 'com_select';
die The value of com_select changed during change_user;
}
echo Value of com_select did not change;