mirror of
				https://github.com/MariaDB/server.git
				synced 2025-10-31 15:50:51 +03:00 
			
		
		
		
	into mysql.com:/home/mydev/mysql-5.0-5000 mysql-test/r/flush.result: Auto merged mysql-test/t/flush.test: Auto merged sql/sql_parse.cc: Auto merged
		
			
				
	
	
		
			105 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			105 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| # This test doesn't work with the embedded version as this code
 | |
| # assumes that one query is running while we are doing queries on
 | |
| # a second connection.
 | |
| # This would work if mysqltest run would be threaded and handle each
 | |
| # connection in a separate thread.
 | |
| #
 | |
| -- source include/not_embedded.inc
 | |
| 
 | |
| connect (con1,localhost,root,,);
 | |
| connect (con2,localhost,root,,);
 | |
| connection con1;
 | |
| 
 | |
| --disable_warnings
 | |
| drop table if exists t1,t2;
 | |
| drop database if exists mysqltest;
 | |
| --enable_warnings
 | |
| 
 | |
| create temporary table t1(n int not null primary key);
 | |
| create table t2(n int);
 | |
| insert into t2 values(3);
 | |
| let $1=100;
 | |
| disable_query_log;
 | |
| while ($1)
 | |
| {
 | |
|  connection con1;
 | |
|  send replace into t1 select n from t2;
 | |
|  connection con2;
 | |
|  send flush tables;
 | |
|  connection con1;
 | |
|  reap;
 | |
|  connection con2;
 | |
|  reap;
 | |
|  dec $1;
 | |
| }
 | |
| enable_query_log;
 | |
| connection con1;
 | |
| select * from t1;
 | |
| connection con2;
 | |
| flush tables with read lock;
 | |
| --error 1223
 | |
| drop table t2;
 | |
| connection con1;
 | |
| send drop table t2;
 | |
| connection con2;
 | |
| unlock tables;
 | |
| connection con1;
 | |
| reap;
 | |
| 
 | |
| #test if drop database will wait until we release the global read lock
 | |
| connection con1;
 | |
| create database mysqltest;
 | |
| create table mysqltest.t1(n int);
 | |
| insert into mysqltest.t1 values (23);
 | |
| flush tables with read lock;
 | |
| connection con2;
 | |
| send drop database mysqltest;
 | |
| connection con1;
 | |
| select * from mysqltest.t1;
 | |
| unlock tables;
 | |
| connection con2;
 | |
| reap;
 | |
| 
 | |
| # test if dirty close releases global read lock
 | |
| connection con1;
 | |
| create table t1 (n int);
 | |
| flush tables with read lock;
 | |
| dirty_close con1;
 | |
| connection con2;
 | |
| insert into t1 values (345);
 | |
| select * from t1;
 | |
| drop table t1;
 | |
| 
 | |
| #
 | |
| # Bug#9459 - deadlock with flush with lock, and lock table write
 | |
| #
 | |
| create table t1 (c1 int);
 | |
| lock table t1 write;
 | |
| # Cannot get the global read lock with write locked tables.
 | |
| --error 1192
 | |
| flush tables with read lock;
 | |
| lock table t1 read;
 | |
| # Can get the global read lock with read locked tables.
 | |
| flush tables with read lock;
 | |
| --error 1223
 | |
| lock table t1 write;
 | |
| lock table t1 read;
 | |
| --error 1223
 | |
| lock table t1 write;
 | |
| # Release all table locks and the global read lock.
 | |
| unlock tables;
 | |
| create table t2 (c1 int);
 | |
| create table t3 (c1 int);
 | |
| lock table t1 read, t2 read, t3 write;
 | |
| # Cannot get the global read lock with write locked tables.
 | |
| --error 1192
 | |
| flush tables with read lock;
 | |
| lock table t1 read, t2 read, t3 read;
 | |
| # Can get the global read lock with read locked tables.
 | |
| flush tables with read lock;
 | |
| # Release all table locks and the global read lock.
 | |
| unlock tables;
 | |
| drop table t1, t2, t3;
 | |
| 
 | |
| # End of 4.1 tests
 |