~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to tests/t/flush_table.test

  • Committer: Padraig O'Sullivan
  • Date: 2009-06-29 17:24:02 UTC
  • mto: This revision was merged to the branch mainline in revision 1081.
  • Revision ID: osullivan.padraig@gmail.com-20090629172402-9c5n1kr7ry7xgau7
Removed the dependency on knowing the position of an I_S table in the
schema_tables array defined in show.cc. This issue crops up in
prepare_schema_table. An issue with my design is that it increases the time
complexity from O(1) to O(n) in numerous places to determine an I_S table to
work on since we don't have an explicit index into the array and instead
need to search by name. However, as n is the number of I_S tables and this
number is quite small (at the moment n is < 30), we don't see this causing
any issue. This design makes the code much more maintainable and easier to
understand. Previously, modifying anything to do with the I_S tables meant
having to tip-toe around the issue of hard-coded indexes into the
schema_tables array.

Show diffs side-by-side

added added

removed removed

Lines of Context:
4
4
# Test of flush table
5
5
#
6
6
 
7
 
--disable_warnings
8
 
drop table if exists t1,t2;
9
 
--enable_warnings
10
 
create table t1 (a int not null auto_increment primary key);
11
 
insert into t1 values(0);
12
 
 
13
 
# Test for with read lock + flush
14
 
 
15
 
lock table t1 read;
16
 
flush table t1;
17
 
check table t1;
18
 
unlock tables;
19
 
 
20
 
# Test for with 2 read lock in different thread + flush
21
 
 
22
 
lock table t1 read;
23
 
connect (locker,localhost,root,,test);
24
 
connection locker;
25
 
lock table t1 read;
26
 
connection default;
27
 
send flush table t1;
28
 
connection locker;
29
 
--sleep 2
30
 
select * from t1;
31
 
unlock tables;
32
 
connection default;
33
 
reap;
34
 
select * from t1;
35
 
unlock tables;
36
 
 
37
 
# Test for with a write lock and a waiting read lock + flush
38
 
 
39
 
lock table t1 write;
40
 
connection locker;
41
 
send lock table t1 read;
42
 
connection default;
43
 
sleep 2;
44
 
flush table t1;
45
 
select * from t1;
46
 
unlock tables;
47
 
connection locker;
48
 
reap;
49
 
unlock tables;
50
 
connection default;
51
 
 
52
 
# Test for with a read lock and a waiting write lock + flush
53
 
 
54
 
lock table t1 read;
55
 
connection locker;
56
 
send lock table t1 write;
57
 
connection default;
58
 
sleep 2;
59
 
flush table t1;
60
 
select * from t1;
61
 
unlock tables;
62
 
connection locker;
63
 
reap;
64
 
unlock tables;
65
 
select * from t1;
66
 
connection default;
67
 
drop table t1;
68
 
disconnect locker;
69
 
 
70
7
#
71
8
# Bug #11934 Two sequential FLUSH TABLES WITH READ LOCK hangs client
72
9
#