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
|
--echo ##
--echo ## Test the Performance Schema-based implementation of SHOW PROCESSLIST.
--echo ## Verify behavior for regular users and PROCESS_ACL.
--echo ##
--source include/no_protocol.inc
--source include/not_embedded.inc
SELECT @@global.performance_schema_show_processlist INTO @save_processlist;
--source include/add_anonymous_users.inc
SET @@global.performance_schema_show_processlist = OFF;
CREATE USER 'regular'@'localhost';
connect (reg,localhost,regular,,test,$MASTER_MYPORT,$MASTER_MYSOCK);
SHOW GRANTS;
# Self rows only
SELECT USER, INFO FROM INFORMATION_SCHEMA.PROCESSLIST;
# Self rows only
SELECT USER, INFO FROM performance_schema.processlist;
# Self rows only
--disable_result_log
SHOW PROCESSLIST;
--enable_result_log
SELECT "Previous statement is now completed." as status;
connection default;
# Returns ROWS_SENT = 0 even when SHOW PROCESSLIST has rows
SELECT EVENT_NAME, SQL_TEXT, ROWS_SENT as BROKEN_ROWS_SENT
FROM performance_schema.events_statements_history
WHERE SQL_TEXT = "SHOW PROCESSLIST";
TRUNCATE TABLE performance_schema.events_statements_history;
SET @@global.performance_schema_show_processlist = ON;
connection reg;
SHOW GRANTS;
# Self rows only
SELECT USER, INFO FROM INFORMATION_SCHEMA.PROCESSLIST;
# Self rows only
SELECT USER, INFO FROM performance_schema.processlist;
# Self rows only
--disable_result_log
SHOW PROCESSLIST;
--enable_result_log
SELECT "Previous statement is now completed." as status;
connection default;
SELECT EVENT_NAME, SQL_TEXT, ROWS_SENT
FROM performance_schema.events_statements_history
WHERE SQL_TEXT = "SHOW PROCESSLIST";
TRUNCATE TABLE performance_schema.events_statements_history;
disconnect reg;
GRANT PROCESS ON *.* TO 'regular'@'localhost';
SET @@global.performance_schema_show_processlist = OFF;
connect (reg2,localhost,regular,,test,$MASTER_MYPORT,$MASTER_MYSOCK);
SHOW GRANTS;
# Full rows
SELECT count(*) >= 2 FROM INFORMATION_SCHEMA.PROCESSLIST;
# Full rows
SELECT count(*) >= 2 FROM performance_schema.processlist;
# Full rows
--disable_result_log
SHOW PROCESSLIST;
--enable_result_log
SELECT "Previous statement is now completed." as status;
connection default;
# Returns ROWS_SENT = 0 even when SHOW PROCESSLIST has rows
SELECT EVENT_NAME, SQL_TEXT, ROWS_SENT as BROKEN_ROWS_SENT
FROM performance_schema.events_statements_history
WHERE SQL_TEXT = "SHOW PROCESSLIST";
TRUNCATE TABLE performance_schema.events_statements_history;
SET @@global.performance_schema_show_processlist = ON;
connection reg2;
SHOW GRANTS;
# Full rows
SELECT count(*) >= 2 FROM INFORMATION_SCHEMA.PROCESSLIST;
# Full rows
SELECT count(*) >= 2 FROM performance_schema.processlist;
# Full rows
--disable_result_log
SHOW PROCESSLIST;
--enable_result_log
SELECT "Previous statement is now completed." as status;
connection default;
SELECT EVENT_NAME, SQL_TEXT, ROWS_SENT >= 2
FROM performance_schema.events_statements_history
WHERE SQL_TEXT = "SHOW PROCESSLIST";
TRUNCATE TABLE performance_schema.events_statements_history;
disconnect reg2;
--source include/delete_anonymous_users.inc
SET @@global.performance_schema_show_processlist = @save_processlist;
DROP USER 'regular'@'localhost';
|