212 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			212 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
drop table if exists t1,t2;
 | 
						|
create table t1(n int);
 | 
						|
insert into t1 values (1);
 | 
						|
lock tables t1 write;
 | 
						|
update low_priority t1 set n = 4;
 | 
						|
select n from t1;
 | 
						|
unlock tables;
 | 
						|
n
 | 
						|
4
 | 
						|
drop table t1;
 | 
						|
create table t1(n int);
 | 
						|
insert into t1 values (1);
 | 
						|
lock tables t1 read;
 | 
						|
update low_priority t1 set n = 4;
 | 
						|
select n from t1;
 | 
						|
n
 | 
						|
1
 | 
						|
unlock tables;
 | 
						|
drop table t1;
 | 
						|
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;
 | 
						|
update t1,t2 set c=a where b=d;
 | 
						|
select c from t2;
 | 
						|
c
 | 
						|
2
 | 
						|
drop table t1;
 | 
						|
drop table t2;
 | 
						|
create table t1 (a int);
 | 
						|
create table t2 (a int);
 | 
						|
lock table t1 write, t2 write;
 | 
						|
insert t1 select * from t2;
 | 
						|
drop table t2;
 | 
						|
ERROR 42S02: Table 'test.t2' doesn't exist
 | 
						|
drop table t1;
 | 
						|
create table t1 (a int);
 | 
						|
create table t2 (a int);
 | 
						|
lock table t1 write, t2 write, t1 as t1_2 write, t2 as t2_2 write;
 | 
						|
insert t1 select * from t2;
 | 
						|
drop table t2;
 | 
						|
ERROR 42S02: Table 'test.t2' doesn't exist
 | 
						|
drop table t1;
 | 
						|
End of 4.1 tests
 | 
						|
create table t1(a int);
 | 
						|
lock tables t1 write;
 | 
						|
show columns from t1;
 | 
						|
Field	Type	Null	Key	Default	Extra
 | 
						|
a	int(11)	YES		NULL	
 | 
						|
unlock tables;
 | 
						|
drop table t1;
 | 
						|
USE mysql;
 | 
						|
LOCK TABLES columns_priv WRITE, db WRITE, host WRITE, user WRITE;
 | 
						|
FLUSH TABLES;
 | 
						|
USE mysql;
 | 
						|
SELECT user.Select_priv FROM user, db WHERE user.user = db.user LIMIT 1;
 | 
						|
OPTIMIZE TABLES columns_priv, db, host, user;
 | 
						|
Table	Op	Msg_type	Msg_text
 | 
						|
mysql.columns_priv	optimize	status	OK
 | 
						|
mysql.db	optimize	status	OK
 | 
						|
mysql.host	optimize	status	OK
 | 
						|
mysql.user	optimize	status	OK
 | 
						|
UNLOCK TABLES;
 | 
						|
Select_priv
 | 
						|
N
 | 
						|
USE test;
 | 
						|
use test;
 | 
						|
CREATE TABLE t1 (c1 int);
 | 
						|
LOCK TABLE t1 WRITE;
 | 
						|
FLUSH TABLES WITH READ LOCK;
 | 
						|
CREATE TABLE t2 (c1 int);
 | 
						|
UNLOCK TABLES;
 | 
						|
UNLOCK TABLES;
 | 
						|
DROP TABLE t1, t2;
 | 
						|
CREATE TABLE t1 (c1 int);
 | 
						|
LOCK TABLE t1 WRITE;
 | 
						|
FLUSH TABLES WITH READ LOCK;
 | 
						|
CREATE TABLE t2 AS SELECT * FROM t1;
 | 
						|
ERROR HY000: Table 't2' was not locked with LOCK TABLES
 | 
						|
UNLOCK TABLES;
 | 
						|
UNLOCK TABLES;
 | 
						|
DROP TABLE t1;
 | 
						|
CREATE DATABASE mysqltest_1;
 | 
						|
FLUSH TABLES WITH READ LOCK;
 | 
						|
DROP DATABASE mysqltest_1;
 | 
						|
DROP DATABASE mysqltest_1;
 | 
						|
ERROR HY000: Can't execute the query because you have a conflicting read lock
 | 
						|
UNLOCK TABLES;
 | 
						|
DROP DATABASE mysqltest_1;
 | 
						|
ERROR HY000: Can't drop database 'mysqltest_1'; database doesn't exist
 | 
						|
create table t1 (f1 int(12) unsigned not null auto_increment, primary key(f1)) engine=innodb;
 | 
						|
lock tables t1 write;
 | 
						|
alter table t1 auto_increment=0;
 | 
						|
alter table t1 auto_increment=0;
 | 
						|
unlock tables;
 | 
						|
drop table t1;
 | 
						|
create table t1 (a int);
 | 
						|
create table t2 like t1;
 | 
						|
# con1
 | 
						|
lock tables t1 write;
 | 
						|
# con2
 | 
						|
flush tables with read lock;
 | 
						|
# con5
 | 
						|
# global read lock is taken
 | 
						|
# con3
 | 
						|
select * from t2 for update;
 | 
						|
# waiting for release of read lock
 | 
						|
# con4
 | 
						|
# would hang and later cause a deadlock
 | 
						|
flush tables t2;
 | 
						|
# clean up
 | 
						|
unlock tables;
 | 
						|
unlock tables;
 | 
						|
a
 | 
						|
drop table t1,t2;
 | 
						|
#
 | 
						|
# Lightweight version:
 | 
						|
# Ensure that the wait for a GRL is done before opening tables.
 | 
						|
#
 | 
						|
create table t1 (a int);
 | 
						|
create table t2 like t1;
 | 
						|
#
 | 
						|
# UPDATE
 | 
						|
#
 | 
						|
# default
 | 
						|
flush tables with read lock;
 | 
						|
# con1
 | 
						|
update t2 set a = 1;
 | 
						|
# default
 | 
						|
# statement is waiting for release of read lock
 | 
						|
# con2
 | 
						|
flush table t2;
 | 
						|
# default
 | 
						|
unlock tables;
 | 
						|
# con1
 | 
						|
#
 | 
						|
# LOCK TABLES .. WRITE
 | 
						|
#
 | 
						|
# default
 | 
						|
flush tables with read lock;
 | 
						|
# con1
 | 
						|
lock tables t2 write;
 | 
						|
# default
 | 
						|
# statement is waiting for release of read lock
 | 
						|
# con2
 | 
						|
flush table t2;
 | 
						|
# default
 | 
						|
unlock tables;
 | 
						|
# con1
 | 
						|
unlock tables;
 | 
						|
drop table t1,t2;
 | 
						|
End of 5.0 tests
 | 
						|
create table t1 (i int);
 | 
						|
lock table t1 read;
 | 
						|
update t1 set i= 10;
 | 
						|
select * from t1;
 | 
						|
kill query ID;
 | 
						|
i
 | 
						|
ERROR 70100: Query execution was interrupted
 | 
						|
unlock tables;
 | 
						|
drop table t1;
 | 
						|
drop table if exists t1;
 | 
						|
create table t1 (a int) ENGINE=MEMORY;
 | 
						|
--> client 2
 | 
						|
handler t1 open;
 | 
						|
ERROR HY000: Table storage engine for 't1' doesn't have this option
 | 
						|
--> client 1
 | 
						|
drop table t1;
 | 
						|
drop table if exists t1;
 | 
						|
create table t1 (i int);
 | 
						|
connection: default
 | 
						|
lock tables t1 write;
 | 
						|
connection: flush
 | 
						|
flush tables with read lock;;
 | 
						|
connection: default
 | 
						|
alter table t1 add column j int;
 | 
						|
connection: insert
 | 
						|
insert into t1 values (1,2);;
 | 
						|
connection: default
 | 
						|
unlock tables;
 | 
						|
connection: flush
 | 
						|
select * from t1;
 | 
						|
i	j
 | 
						|
unlock tables;
 | 
						|
select * from t1;
 | 
						|
i	j
 | 
						|
1	2
 | 
						|
drop table t1;
 | 
						|
drop table if exists t1;
 | 
						|
create table t1 (i int);
 | 
						|
connection: default
 | 
						|
lock tables t1 write;
 | 
						|
connection: flush
 | 
						|
flush tables with read lock;;
 | 
						|
connection: default
 | 
						|
flush tables;
 | 
						|
unlock tables;
 | 
						|
drop table t1;
 | 
						|
drop table if exists t1,t2;
 | 
						|
create table t1 (a int);
 | 
						|
flush status;
 | 
						|
lock tables t1 read;
 | 
						|
insert into t1 values(1);;
 | 
						|
unlock tables;
 | 
						|
drop table t1;
 | 
						|
select @tlwa < @tlwb;
 | 
						|
@tlwa < @tlwb
 | 
						|
1
 | 
						|
End of 5.1 tests
 |