mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
MDEV-4911 - add KILL query id, and add query id information to processlist
It is now possible to kill query by query id. KILL syntax was extended to: KILL [HARD | SOFT] [CONNECTION | QUERY [ID query_id]] [thread_id | USER user_name] Added QUERY_ID column to INFORMATION_SCHEMA.PROCESSLIST. Fixed tests affected by this change: - added PROCESSLIST.QUERY_ID column - ID is now keyword and is quoted in SHOW CREATE TABLE output - PFS statement digest is calculated basing on token id (not token text). Token id has shifted for keywords residing after ID in keywords array.
This commit is contained in:
@ -66,7 +66,7 @@
|
||||
let $table= processlist;
|
||||
#
|
||||
# columns of the information_schema table e.g. to use in a select.
|
||||
let $columns= ID, USER, HOST, DB, COMMAND, TIME, STATE, INFO, TIME_MS, STAGE, MAX_STAGE, PROGRESS, MEMORY_USED, EXAMINED_ROWS;
|
||||
let $columns= ID, USER, HOST, DB, COMMAND, TIME, STATE, INFO, TIME_MS, STAGE, MAX_STAGE, PROGRESS, MEMORY_USED, EXAMINED_ROWS, QUERY_ID;
|
||||
#
|
||||
# Where clause for an update.
|
||||
let $update_where= WHERE id=1 ;
|
||||
@ -159,9 +159,9 @@ WHERE DB = 'information_schema' AND COMMAND = 'Sleep' AND USER = 'ddicttestuser1
|
||||
eval SHOW CREATE TABLE $table;
|
||||
--replace_column 1 ID 3 HOST_NAME 6 TIME 9 TIME_MS
|
||||
eval SHOW $table;
|
||||
--replace_column 1 ID 3 HOST_NAME 6 TIME 9 TIME_MS 13 MEMORY 14 ROWS
|
||||
--replace_column 1 ID 3 HOST_NAME 6 TIME 9 TIME_MS 13 MEMORY 14 ROWS 15 QUERY_ID
|
||||
eval SELECT * FROM $table $select_where ORDER BY id;
|
||||
--replace_column 1 ID 3 HOST_NAME 6 TIME 9 TIME_MS 13 MEMORY 14 ROWS
|
||||
--replace_column 1 ID 3 HOST_NAME 6 TIME 9 TIME_MS 13 MEMORY 14 ROWS 15 QUERY_ID
|
||||
eval SELECT $columns FROM $table $select_where ORDER BY id;
|
||||
--source suite/funcs_1/datadict/datadict_priv.inc
|
||||
--real_sleep 0.3
|
||||
@ -179,9 +179,9 @@ connection con100;
|
||||
eval SHOW CREATE TABLE $table;
|
||||
--replace_column 1 ID 3 HOST_NAME 6 TIME 9 TIME_MS
|
||||
eval SHOW $table;
|
||||
--replace_column 1 ID 3 HOST_NAME 6 TIME 9 TIME_MS 13 MEMORY 14 ROWS
|
||||
--replace_column 1 ID 3 HOST_NAME 6 TIME 9 TIME_MS 13 MEMORY 14 ROWS 15 QUERY_ID
|
||||
eval SELECT * FROM $table $select_where ORDER BY id;
|
||||
--replace_column 1 ID 3 HOST_NAME 6 TIME 9 TIME_MS 13 MEMORY 14 ROWS
|
||||
--replace_column 1 ID 3 HOST_NAME 6 TIME 9 TIME_MS 13 MEMORY 14 ROWS 15 QUERY_ID
|
||||
eval SELECT $columns FROM $table $select_where ORDER BY id;
|
||||
--source suite/funcs_1/datadict/datadict_priv.inc
|
||||
--real_sleep 0.3
|
||||
@ -205,7 +205,7 @@ connection con100;
|
||||
SHOW GRANTS;
|
||||
--replace_column 1 ID 3 HOST_NAME 6 TIME 9 TIME_MS
|
||||
SHOW processlist;
|
||||
--replace_column 1 ID 3 HOST_NAME 6 TIME 9 TIME_MS 13 MEMORY 14 ROWS
|
||||
--replace_column 1 ID 3 HOST_NAME 6 TIME 9 TIME_MS 13 MEMORY 14 ROWS 15 QUERY_ID
|
||||
SELECT * FROM information_schema.processlist;
|
||||
--real_sleep 0.3
|
||||
|
||||
@ -217,7 +217,7 @@ connect (con101,localhost,ddicttestuser1,ddictpass,information_schema);
|
||||
SHOW GRANTS;
|
||||
--replace_column 1 ID 3 HOST_NAME 6 TIME 9 TIME_MS
|
||||
SHOW processlist;
|
||||
--replace_column 1 ID 3 HOST_NAME 6 TIME 9 TIME_MS 13 MEMORY 14 ROWS
|
||||
--replace_column 1 ID 3 HOST_NAME 6 TIME 9 TIME_MS 13 MEMORY 14 ROWS 15 QUERY_ID
|
||||
SELECT * FROM information_schema.processlist;
|
||||
--real_sleep 0.3
|
||||
|
||||
@ -239,7 +239,7 @@ connect (anonymous1,localhost,"''",,information_schema);
|
||||
SHOW GRANTS;
|
||||
--replace_column 1 ID 3 HOST_NAME 6 TIME 9 TIME_MS
|
||||
SHOW processlist;
|
||||
--replace_column 1 ID 3 HOST_NAME 6 TIME 9 TIME_MS 13 MEMORY 14 ROWS
|
||||
--replace_column 1 ID 3 HOST_NAME 6 TIME 9 TIME_MS 13 MEMORY 14 ROWS 15 QUERY_ID
|
||||
SELECT * FROM information_schema.processlist;
|
||||
--real_sleep 0.3
|
||||
|
||||
@ -261,7 +261,7 @@ connect (con102,localhost,ddicttestuser1,ddictpass,information_schema);
|
||||
SHOW GRANTS;
|
||||
--replace_column 1 ID 3 HOST_NAME 6 TIME 9 TIME_MS
|
||||
SHOW processlist;
|
||||
--replace_column 1 ID 3 HOST_NAME 6 TIME 9 TIME_MS 13 MEMORY 14 ROWS
|
||||
--replace_column 1 ID 3 HOST_NAME 6 TIME 9 TIME_MS 13 MEMORY 14 ROWS 15 QUERY_ID
|
||||
SELECT * FROM information_schema.processlist;
|
||||
--real_sleep 0.3
|
||||
|
||||
@ -287,7 +287,7 @@ if ($fixed_bug_30395)
|
||||
--replace_column 1 ID 3 HOST_NAME 6 TIME 9 TIME_MS
|
||||
SHOW processlist;
|
||||
}
|
||||
--replace_column 1 ID 3 HOST_NAME 6 TIME 9 TIME_MS 13 MEMORY 14 ROWS
|
||||
--replace_column 1 ID 3 HOST_NAME 6 TIME 9 TIME_MS 13 MEMORY 14 ROWS 15 QUERY_ID
|
||||
SELECT * FROM information_schema.processlist;
|
||||
--real_sleep 0.3
|
||||
|
||||
@ -308,7 +308,7 @@ connect (con103,localhost,ddicttestuser1,ddictpass,information_schema);
|
||||
SHOW GRANTS FOR 'ddicttestuser1'@'localhost';
|
||||
--replace_column 1 ID 3 HOST_NAME 6 TIME 9 TIME_MS
|
||||
SHOW processlist;
|
||||
--replace_column 1 ID 3 HOST_NAME 6 TIME 9 TIME_MS 13 MEMORY 14 ROWS
|
||||
--replace_column 1 ID 3 HOST_NAME 6 TIME 9 TIME_MS 13 MEMORY 14 ROWS 15 QUERY_ID
|
||||
SELECT * FROM information_schema.processlist;
|
||||
--real_sleep 0.3
|
||||
|
||||
@ -330,7 +330,7 @@ connect (con104,localhost,ddicttestuser1,ddictpass,information_schema);
|
||||
SHOW GRANTS FOR 'ddicttestuser1'@'localhost';
|
||||
--replace_column 1 ID 3 HOST_NAME 6 TIME 9 TIME_MS
|
||||
SHOW processlist;
|
||||
--replace_column 1 ID 3 HOST_NAME 6 TIME 9 TIME_MS 13 MEMORY 14 ROWS
|
||||
--replace_column 1 ID 3 HOST_NAME 6 TIME 9 TIME_MS 13 MEMORY 14 ROWS 15 QUERY_ID
|
||||
SELECT * FROM information_schema.processlist;
|
||||
--real_sleep 0.3
|
||||
|
||||
@ -377,7 +377,7 @@ connect (con200,localhost,ddicttestuser2,ddictpass,information_schema);
|
||||
SHOW GRANTS FOR 'ddicttestuser2'@'localhost';
|
||||
--replace_column 1 ID 3 HOST_NAME 6 TIME 9 TIME_MS
|
||||
SHOW processlist;
|
||||
--replace_column 1 ID 3 HOST_NAME 6 TIME 9 TIME_MS 13 MEMORY 14 ROWS
|
||||
--replace_column 1 ID 3 HOST_NAME 6 TIME 9 TIME_MS 13 MEMORY 14 ROWS 15 QUERY_ID
|
||||
SELECT * FROM information_schema.processlist;
|
||||
--real_sleep 0.3
|
||||
|
||||
@ -398,7 +398,7 @@ connect (con201,localhost,ddicttestuser2,ddictpass,information_schema);
|
||||
SHOW GRANTS;
|
||||
--replace_column 1 ID 3 HOST_NAME 6 TIME 9 TIME_MS
|
||||
SHOW processlist;
|
||||
--replace_column 1 ID 3 HOST_NAME 6 TIME 9 TIME_MS 13 MEMORY 14 ROWS
|
||||
--replace_column 1 ID 3 HOST_NAME 6 TIME 9 TIME_MS 13 MEMORY 14 ROWS 15 QUERY_ID
|
||||
SELECT * FROM information_schema.processlist;
|
||||
--real_sleep 0.3
|
||||
|
||||
@ -421,7 +421,7 @@ SHOW GRANTS FOR 'ddicttestuser1'@'localhost';
|
||||
GRANT PROCESS ON *.* TO 'ddicttestuser2'@'localhost';
|
||||
--replace_column 1 ID 3 HOST_NAME 6 TIME 9 TIME_MS
|
||||
SHOW processlist;
|
||||
--replace_column 1 ID 3 HOST_NAME 6 TIME 9 TIME_MS 13 MEMORY 14 ROWS
|
||||
--replace_column 1 ID 3 HOST_NAME 6 TIME 9 TIME_MS 13 MEMORY 14 ROWS 15 QUERY_ID
|
||||
SELECT * FROM information_schema.processlist;
|
||||
--real_sleep 0.3
|
||||
|
||||
@ -445,7 +445,7 @@ connect (con108,localhost,ddicttestuser1,ddictpass,information_schema);
|
||||
SHOW GRANTS FOR 'ddicttestuser1'@'localhost';
|
||||
--replace_column 1 ID 3 HOST_NAME 6 TIME 9 TIME_MS
|
||||
SHOW processlist;
|
||||
--replace_column 1 ID 3 HOST_NAME 6 TIME 9 TIME_MS 13 MEMORY 14 ROWS
|
||||
--replace_column 1 ID 3 HOST_NAME 6 TIME 9 TIME_MS 13 MEMORY 14 ROWS 15 QUERY_ID
|
||||
SELECT * FROM information_schema.processlist;
|
||||
--real_sleep 0.3
|
||||
|
||||
|
@ -93,7 +93,7 @@ echo
|
||||
# - INFO must contain the corresponding SHOW/SELECT PROCESSLIST
|
||||
#
|
||||
# 1. Just dump what we get
|
||||
--replace_column 1 <ID> 3 <HOST_NAME> 6 <TIME> 9 <TIME_MS> 13 <MEMORY> 14 <ROWS>
|
||||
--replace_column 1 <ID> 3 <HOST_NAME> 6 <TIME> 9 <TIME_MS> 13 <MEMORY> 14 <ROWS> 15 <QUERY_ID>
|
||||
SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST;
|
||||
--replace_column 1 <ID> 3 <HOST_NAME> 6 <TIME> 9 <TIME_MS> 13 <MEMORY> 14 <ROWS>
|
||||
SHOW FULL PROCESSLIST;
|
||||
@ -166,7 +166,7 @@ let $wait_condition= SELECT COUNT(*) = 1 FROM INFORMATION_SCHEMA.PROCESSLIST
|
||||
WHERE COMMAND = 'Sleep' AND USER = 'test_user';
|
||||
--source include/wait_condition.inc
|
||||
# 1. Just dump what we get
|
||||
--replace_column 1 <ID> 3 <HOST_NAME> 6 <TIME> 9 <TIME_MS> 13 <MEMORY> 14 <ROWS>
|
||||
--replace_column 1 <ID> 3 <HOST_NAME> 6 <TIME> 9 <TIME_MS> 13 <MEMORY> 14 <ROWS> 15 <QUERY_ID>
|
||||
SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST;
|
||||
--replace_column 1 <ID> 3 <HOST_NAME> 6 <TIME>
|
||||
SHOW FULL PROCESSLIST;
|
||||
@ -211,7 +211,7 @@ echo
|
||||
# ----- switch to connection con1 (user = test_user) -----
|
||||
;
|
||||
connection con1;
|
||||
--replace_column 1 <ID> 3 <HOST_NAME> 6 <TIME> 9 <TIME_MS> 13 <MEMORY> 14 <ROWS>
|
||||
--replace_column 1 <ID> 3 <HOST_NAME> 6 <TIME> 9 <TIME_MS> 13 <MEMORY> 14 <ROWS> 15 <QUERY_ID>
|
||||
SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST;
|
||||
--replace_column 1 <ID> 3 <HOST_NAME> 6 <TIME>
|
||||
SHOW FULL PROCESSLIST;
|
||||
@ -245,7 +245,7 @@ echo
|
||||
;
|
||||
connection con2;
|
||||
# Just dump what we get
|
||||
--replace_column 1 <ID> 3 <HOST_NAME> 6 <TIME> 9 <TIME_MS> 13 <MEMORY> 14 <ROWS>
|
||||
--replace_column 1 <ID> 3 <HOST_NAME> 6 <TIME> 9 <TIME_MS> 13 <MEMORY> 14 <ROWS> 15 <QUERY_ID>
|
||||
SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST;
|
||||
--replace_column 1 <ID> 3 <HOST_NAME> 6 <TIME>
|
||||
SHOW FULL PROCESSLIST;
|
||||
@ -305,7 +305,7 @@ WHERE ID = @test_user_con2_id AND Command IN('Query','Execute')
|
||||
AND State = 'User sleep' AND INFO IS NOT NULL ;
|
||||
--source include/wait_condition.inc
|
||||
# 1. Just dump what we get
|
||||
--replace_column 1 <ID> 3 <HOST_NAME> 6 <TIME> 9 <TIME_MS> 13 <MEMORY> 14 <ROWS>
|
||||
--replace_column 1 <ID> 3 <HOST_NAME> 6 <TIME> 9 <TIME_MS> 13 <MEMORY> 14 <ROWS> 15 <QUERY_ID>
|
||||
SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST;
|
||||
--replace_column 1 <ID> 3 <HOST_NAME> 6 <TIME>
|
||||
SHOW FULL PROCESSLIST;
|
||||
@ -376,7 +376,7 @@ let $wait_condition= SELECT COUNT(*) FROM INFORMATION_SCHEMA.PROCESSLIST
|
||||
#
|
||||
# Expect to see the state 'Waiting for table metadata lock' for the third
|
||||
# connection because the SELECT collides with the WRITE TABLE LOCK.
|
||||
--replace_column 1 <ID> 3 <HOST_NAME> 6 <TIME> 9 <TIME_MS> 13 <MEMORY> 14 <ROWS>
|
||||
--replace_column 1 <ID> 3 <HOST_NAME> 6 <TIME> 9 <TIME_MS> 13 <MEMORY> 14 <ROWS> 15 <QUERY_ID>
|
||||
SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST;
|
||||
UNLOCK TABLES;
|
||||
#
|
||||
@ -435,7 +435,7 @@ echo
|
||||
# SHOW FULL PROCESSLIST Complete statement
|
||||
# SHOW PROCESSLIST statement truncated after 100 char
|
||||
;
|
||||
--replace_column 1 <ID> 3 <HOST_NAME> 5 <COMMAND> 6 <TIME> 7 <STATE> 9 <TIME_MS> 13 <MEMORY> 14 <ROWS>
|
||||
--replace_column 1 <ID> 3 <HOST_NAME> 5 <COMMAND> 6 <TIME> 7 <STATE> 9 <TIME_MS> 13 <MEMORY> 14 <ROWS> 15 <QUERY_ID>
|
||||
SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST;
|
||||
--replace_column 1 <ID> 3 <HOST_NAME> 5 <COMMAND> 6 <TIME> 7 <STATE>
|
||||
SHOW FULL PROCESSLIST;
|
||||
|
Reference in New Issue
Block a user