summaryrefslogtreecommitdiffstats
path: root/mysql-test/main/kill.result
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-04 18:00:34 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-04 18:00:34 +0000
commit3f619478f796eddbba6e39502fe941b285dd97b1 (patch)
treee2c7b5777f728320e5b5542b6213fd3591ba51e2 /mysql-test/main/kill.result
parentInitial commit. (diff)
downloadmariadb-3f619478f796eddbba6e39502fe941b285dd97b1.tar.xz
mariadb-3f619478f796eddbba6e39502fe941b285dd97b1.zip
Adding upstream version 1:10.11.6.upstream/1%10.11.6upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'mysql-test/main/kill.result')
-rw-r--r--mysql-test/main/kill.result187
1 files changed, 187 insertions, 0 deletions
diff --git a/mysql-test/main/kill.result b/mysql-test/main/kill.result
new file mode 100644
index 00000000..79705271
--- /dev/null
+++ b/mysql-test/main/kill.result
@@ -0,0 +1,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'