diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-04 18:00:34 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-04 18:00:34 +0000 |
commit | 3f619478f796eddbba6e39502fe941b285dd97b1 (patch) | |
tree | e2c7b5777f728320e5b5542b6213fd3591ba51e2 /mysql-test/main/kill.result | |
parent | Initial commit. (diff) | |
download | mariadb-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.result | 187 |
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' |