mirror of
				https://github.com/MariaDB/server.git
				synced 2025-10-30 04:26:45 +03:00 
			
		
		
		
	 8c0f0c7b2b
			
		
	
	8c0f0c7b2b
	
	
	
		
			
			Use open_normal_and_derived_tables instead of open_and_lock_tables when reading metadata for a table. Add two test cases, one for "USE database" and one for "SHOW COLUMNS FROM table"
		
			
				
	
	
		
			109 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			109 lines
		
	
	
		
			2.2 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
 | |
| 
 | |
| --disable_warnings
 | |
| drop table if exists t1,t2;
 | |
| --enable_warnings
 | |
| 
 | |
| # Test to see if select will get the lock ahead of low priority update
 | |
| 
 | |
| connect (locker,localhost,root,,);
 | |
| connect (reader,localhost,root,,);
 | |
| connect (writer,localhost,root,,);
 | |
| 
 | |
| connection locker;
 | |
| create table t1(n int);
 | |
| insert into t1 values (1);
 | |
| lock tables t1 write;
 | |
| connection writer;
 | |
| send update low_priority t1 set n = 4;
 | |
| connection reader;
 | |
| --sleep 2
 | |
| send select n from t1;
 | |
| connection locker;
 | |
| --sleep 2
 | |
| unlock tables;
 | |
| connection writer;
 | |
| reap;
 | |
| connection reader;
 | |
| reap;
 | |
| drop table t1;
 | |
| 
 | |
| connection locker;
 | |
| create table t1(n int);
 | |
| insert into t1 values (1);
 | |
| lock tables t1 read;
 | |
| connection writer;
 | |
| send update low_priority t1 set n = 4;
 | |
| connection reader;
 | |
| --sleep 2
 | |
| send select n from t1;
 | |
| connection locker;
 | |
| --sleep 2
 | |
| unlock tables;
 | |
| connection writer;
 | |
| reap;
 | |
| connection reader;
 | |
| reap;
 | |
| drop table t1;
 | |
| 
 | |
| #
 | |
| # Test problem when using locks with multi-updates
 | |
| # It should not block when multi-update is reading on a read-locked table
 | |
| #
 | |
| 
 | |
| connection locker;
 | |
| create table t1 (a int, b int);
 | |
| create table t2 (c int, d int);
 | |
| insert into t1 values(1,1);
 | |
| insert into t1 values(2,2);
 | |
| insert into t2 values(1,2);
 | |
| lock table t1 read;
 | |
| connection writer;
 | |
| --sleep 2
 | |
| send update t1,t2 set c=a where b=d;
 | |
| connection reader;
 | |
| --sleep 2
 | |
| select c from t2;
 | |
| connection writer;
 | |
| reap;
 | |
| connection locker;
 | |
| drop table t1;
 | |
| drop table t2;
 | |
| 
 | |
| #
 | |
| # Test problem when using locks on many tables and droping a table that
 | |
| # is to-be-locked by another thread
 | |
| #
 | |
| 
 | |
| connection locker;
 | |
| create table t1 (a int);
 | |
| create table t2 (a int);
 | |
| lock table t1 write, t2 write;
 | |
| connection reader;
 | |
| send insert t1 select * from t2;
 | |
| connection locker;
 | |
| drop table t2;
 | |
| connection reader;
 | |
| --error 1146
 | |
| reap;
 | |
| connection locker;
 | |
| drop table t1;
 | |
| 
 | |
| 
 | |
| #
 | |
| # BUG#9998 - MySQL client hangs on USE "database"
 | |
| 
 | |
| create table t1(a int);
 | |
| lock tables t1 write;
 | |
| connection reader;
 | |
| show columns from t1;
 | |
| connection locker;
 | |
| unlock tables;
 | |
| drop table t1;
 |