mirror of
				https://github.com/MariaDB/server.git
				synced 2025-10-31 19:06:14 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			187 lines
		
	
	
	
		
			4.7 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			187 lines
		
	
	
	
		
			4.7 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
| 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 'KILL'
 | 
