summaryrefslogtreecommitdiff
path: root/mysql-test/main/kill.result
blob: 797052710e86c204e869da69e9c10e2fd9e47239 (plain)
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
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
set local sql_mode="";
set global sql_mode="";
connect con1, localhost, root;
connect con2, localhost, root;
#
# Additional test for WL#3726 "DDL locking for all metadata objects"
# Check that DDL and DML statements waiting for metadata locks can
# be killed. Note that we don't cover all situations here since it
# can be tricky to write test case for some of them (e.g. REPAIR or
# ALTER and other statements under LOCK TABLES).
#
create table t1 (i int primary key);
connect  blocker, localhost, root, , ;
connect  dml, localhost, root, , ;
connect  ddl, localhost, root, , ;
# Test for RENAME TABLE
connection blocker;
lock table t1 read;
connection ddl;
rename table t1 to t2;
connection default;
kill query ID;
connection ddl;
ERROR 70100: Query execution was interrupted
# Test for DROP TABLE
drop table t1;
connection default;
kill query ID;
connection ddl;
ERROR 70100: Query execution was interrupted
# Test for CREATE TRIGGER
create trigger t1_bi before insert on t1 for each row set @a:=1;
connection default;
kill query ID;
connection ddl;
ERROR 70100: Query execution was interrupted
#
# Tests for various kinds of ALTER TABLE
#
# Full-blown ALTER which should copy table
alter table t1 add column j int;
connection default;
kill query ID;
connection ddl;
ERROR 70100: Query execution was interrupted
# Two kinds of simple ALTER
alter table t1 rename to t2;
connection default;
kill query ID;
connection ddl;
ERROR 70100: Query execution was interrupted
alter table t1 disable keys;
connection default;
kill query ID;
connection ddl;
ERROR 70100: Query execution was interrupted
# Fast ALTER
alter table t1 alter column i set default 100;
connection default;
kill query ID;
connection ddl;
ERROR 70100: Query execution was interrupted
# Special case which is triggered only for MERGE tables.
connection blocker;
unlock tables;
create table t2 (i int primary key) engine=merge union=(t1);
lock tables t2 read;
connection ddl;
alter table t2 alter column i set default 100;
connection default;
kill query ID;
connection ddl;
ERROR 70100: Query execution was interrupted
# Test for DML waiting for meta-data lock
connection blocker;
unlock tables;
lock tables t1 read;
connection ddl;
truncate table t1;
connection dml;
insert into t1 values (1);
connection default;
kill query ID2;
connection dml;
ERROR 70100: Query execution was interrupted
connection blocker;
unlock tables;
connection ddl;
# Test for DML waiting for tables to be flushed
connection blocker;
lock tables t1 read;
connection ddl;
# Let us mark locked table t1 as old
flush tables t1;
connection dml;
select * from t1;
connection default;
kill query ID2;
connection dml;
ERROR 70100: Query execution was interrupted
connection blocker;
unlock tables;
connection ddl;
# Cleanup.
connection default;
drop table t1;
drop table t2;
#
# Test kill USER
#
grant ALL on test.* to test@localhost;
grant ALL on test.* to test2@localhost;
connect  con3, localhost, test,,;
connect  con4, localhost, test2,,;
connection default;
kill hard query user test2@nohost;
affected rows: 0
kill soft query user test@localhost;
affected rows: 1
kill hard query user test@localhost;
affected rows: 1
kill soft connection user test2;
affected rows: 1
kill hard connection user test@localhost;
affected rows: 1
revoke all privileges on test.* from test@localhost;
revoke all privileges on test.* from test2@localhost;
drop user test@localhost;
drop user test2@localhost;
connection con3;
select 1;
Got one of the listed errors
connection con4;
select 1;
Got one of the listed errors
connection default;
#
# MDEV-4911 - add KILL query id, and add query id information to
#             processlist
#
SELECT SLEEP(1000);
connection con1;
KILL QUERY ID @id;
connection default;
ERROR 70100: Query execution was interrupted
KILL QUERY ID 0;
ERROR HY000: Unknown query id: 0
#
# MDEV-5096 - Wrong error message on attempt to kill somebody else's
#             query ID
#
CREATE USER u1@localhost;
SELECT SLEEP(1000);
connection con1;
connect con5, localhost, u1,,;
KILL QUERY ID ID;
ERROR HY000: You are not owner of query ID
connection con1;
KILL QUERY ID @id;
connection default;
ERROR 70100: Query execution was interrupted
disconnect con5;
DROP USER u1@localhost;
set global sql_mode=default;
disconnect con1;
disconnect con2;
#
# MDEV-17998
# Deadlock and eventual Assertion `!table->pos_in_locked_tables' failed
# in tc_release_table on KILL_TIMEOUT
#
SET max_statement_time= 2;
CREATE TABLE t1 (a INT);
CREATE VIEW v1 AS SELECT * FROM t1;
CREATE TABLE t2 (b INT, c INT);
LOCK TABLES v1 READ, t2 WRITE, t1 WRITE;
ALTER TABLE t1 CHANGE f1 f2 DOUBLE;
Got one of the listed errors
ALTER TABLE t2 DROP c;
UNLOCK TABLES;
DROP VIEW v1;
DROP TABLE t1, t2;
#
# KILL QUERY ID USER
#
kill query id user 'foo';
ERROR 42S22: Unknown column 'user' in 'field list'