mySQL 5.0.11 sources for tomato
[tomato.git] / release / src / router / mysql / mysql-test / t / flush.test
blobf27d4cf2fad48bd9c95bcd9e5cbf003fdecb0f53
1 connect (con1,localhost,root,,);
2 connect (con2,localhost,root,,);
3 connection con1;
5 --disable_warnings
6 drop table if exists t1,t2;
7 drop database if exists mysqltest;
8 --enable_warnings
10 create temporary table t1(n int not null primary key);
11 create table t2(n int);
12 insert into t2 values(3);
13 let $1=100;
14 disable_query_log;
15 while ($1)
17  connection con1;
18  send replace into t1 select n from t2;
19  connection con2;
20  send flush tables;
21  connection con1;
22  reap;
23  connection con2;
24  reap;
25  dec $1;
27 enable_query_log;
28 connection con1;
29 select * from t1;
30 connection con2;
31 flush tables with read lock;
32 --error 1223
33 drop table t2;
34 connection con1;
35 send drop table t2;
36 connection con2;
37 unlock tables;
38 connection con1;
39 reap;
41 #test if drop database will wait until we release the global read lock
42 connection con1;
43 create database mysqltest;
44 create table mysqltest.t1(n int);
45 insert into mysqltest.t1 values (23);
46 flush tables with read lock;
47 connection con2;
48 send drop database mysqltest;
49 connection con1;
50 select * from mysqltest.t1;
51 unlock tables;
52 connection con2;
53 reap;
55 # test if dirty close releases global read lock
56 connection con1;
57 create table t1 (n int);
58 flush tables with read lock;
59 dirty_close con1;
60 connection con2;
61 insert into t1 values (345);
62 select * from t1;
63 drop table t1;
66 # Bug#9459 - deadlock with flush with lock, and lock table write
68 create table t1 (c1 int);
69 lock table t1 write;
70 # Cannot get the global read lock with write locked tables.
71 --error 1192
72 flush tables with read lock;
73 lock table t1 read;
74 # Can get the global read lock with read locked tables.
75 flush tables with read lock;
76 --error 1223
77 lock table t1 write;
78 lock table t1 read;
79 --error 1223
80 lock table t1 write;
81 # Release all table locks and the global read lock.
82 unlock tables;
83 create table t2 (c1 int);
84 create table t3 (c1 int);
85 lock table t1 read, t2 read, t3 write;
86 # Cannot get the global read lock with write locked tables.
87 --error 1192
88 flush tables with read lock;
89 lock table t1 read, t2 read, t3 read;
90 # Can get the global read lock with read locked tables.
91 flush tables with read lock;
92 # Release all table locks and the global read lock.
93 unlock tables;
94 drop table t1, t2, t3;
96 # End of 4.1 tests
99 # Test of deadlock problem when doing FLUSH TABLE with read lock
100 # (Bug was in NTPL threads in Linux when using different mutex while
101 #  waiting for a condtion variable)
103 create table t1 (c1 int);
104 create table t2 (c1 int);
106 connect (con1,localhost,root,,);
107 connect (con3,localhost,root,,);
109 connection con1;
110 lock table t1 write;
112 connection con2;
113 send flush tables with read lock;
114 --sleep 1
116 connection con3;
117 send insert into t2 values(1);
118 --sleep 1
120 connection con1;
121 unlock tables;
122 disconnect con1;
124 connection con2;
125 reap;
126 disconnect con2;
128 connection con3;
129 # It hangs here (insert into t2 does not end).
130 reap;
131 disconnect con3;
133 connection default;
134 drop table t1, t2;
137 # Bug#32528 Global read lock with a low priority write lock causes a server crash
140 --disable_warnings
141 drop table if exists t1, t2;
142 --enable_warnings
144 set session low_priority_updates=1;
146 create table t1 (a int);
147 create table t2 (b int);
149 lock tables t1 write;
150 --error ER_LOCK_OR_ACTIVE_TRANSACTION
151 flush tables with read lock;
152 unlock tables;
154 lock tables t1 read, t2 write;
155 --error ER_LOCK_OR_ACTIVE_TRANSACTION
156 flush tables with read lock;
157 unlock tables;
159 lock tables t1 read;
160 flush tables with read lock;
161 unlock tables;
163 drop table t1, t2;
165 set session low_priority_updates=default;
168 # Bug #33334 mysqltest_embedded crashes when disconnecting before reap
171 connect (con1,localhost,root,,);
172 send select benchmark(200, (select sin(1))) > 1000;
173 disconnect con1;
174 --source include/wait_until_disconnected.inc
175 connection default;
177 --echo End of 5.0 tests
180 # Bug #26380: LOCK TABLES + FLUSH LOGS causes deadlock
182 set @old_general_log= @@general_log;
183 set @old_read_only= @@read_only;
184 set global general_log= on;
186 flush tables with read lock;
187 flush logs;
188 unlock tables;
190 set global read_only=1;
191 flush logs;
192 unlock tables;
194 flush tables with read lock;
195 flush logs;
196 unlock tables;
198 set global general_log= @old_general_log;
199 set global read_only= @old_read_only;
201 --echo End of 5.1 tests