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';
|