~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to tests/t/lock.test

  • Committer: Brian Aker
  • Date: 2009-06-05 23:10:06 UTC
  • mto: This revision was merged to the branch mainline in revision 1055.
  • Revision ID: brian@gaz-20090605231006-01nyw7pfpj2z2v8p
Remove guts in parser for LOCK TABLE.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
#
2
 
# Testing of table locking
3
 
#
4
 
 
5
 
--disable_warnings
6
 
drop table if exists t1,t2;
7
 
--enable_warnings
8
 
CREATE TABLE t1 (  `id` int NOT NULL default '0', `id2` int NOT NULL default '0', `id3` int NOT NULL default '0', `dummy1` char(30) default NULL, PRIMARY KEY  (`id`,`id2`), KEY `index_id3` (`id3`)) ENGINE=MyISAM;
9
 
insert into t1 (id,id2) values (1,1),(1,2),(1,3);
10
 
LOCK TABLE t1 WRITE;
11
 
select dummy1,count(distinct id) from t1 group by dummy1;
12
 
update t1 set id=-1 where id=1;
13
 
LOCK TABLE t1 READ;
14
 
--error 1099
15
 
update t1 set id=1 where id=1;
16
 
--error 1100
17
 
create table t2 SELECT * from t1;
18
 
create temporary table t2 SELECT * from t1;
19
 
drop table if exists t2;
20
 
unlock tables;
21
 
create table t2 SELECT * from t1;
22
 
LOCK TABLE t1 WRITE,t2 write;
23
 
insert into t2 SELECT * from t1;
24
 
update t1 set id=1 where id=-1;
25
 
drop table t1,t2;
26
 
 
27
 
 
28
 
#
29
 
# Check bug with INSERT ... SELECT with lock tables
30
 
#
31
 
 
32
 
CREATE TABLE t1 (
33
 
  index1 int default NULL,
34
 
  nr int default NULL,
35
 
  KEY index1(index1)
36
 
) ENGINE=MyISAM;
37
 
 
38
 
CREATE TABLE t2 (
39
 
  nr int default NULL,
40
 
  name varchar(20) default NULL
41
 
) ENGINE=MyISAM;
42
 
 
43
 
INSERT INTO t2 VALUES (1,'item1');
44
 
INSERT INTO t2 VALUES (2,'item2');
45
 
 
46
 
# problem begins here!
47
 
lock tables t1 write, t2 read;
48
 
insert into t1 select 1,nr from t2 where name='item1';
49
 
insert into t1 select 2,nr from t2 where name='item2';
50
 
unlock tables;
51
 
check table t1;
52
 
 
53
 
# Check error message
54
 
lock tables t1 write;
55
 
check table t2;
56
 
--error 1100
57
 
insert into t1 select index1,nr from t1;
58
 
unlock tables;
59
 
lock tables t1 write, t1 as t1_alias read;
60
 
insert into t1 select index1,nr from t1 as t1_alias;
61
 
--error ER_TABLE_NOT_LOCKED
62
 
drop table t1,t2;
63
 
unlock tables;
64
 
drop table t1,t2;
65
 
 
66
 
#
67
 
# BUG#5390 - problems with merge tables
68
 
# Supplement test for the after-fix optimization
69
 
# Check that a dropped table is correctly removed from a lock.
70
 
create table t1 (c1 int);
71
 
create table t2 (c1 int);
72
 
create table t3 (c1 int);
73
 
lock tables t1 write, t2 write, t3 write;
74
 
# This removes one table after the other from the lock.
75
 
drop table t2, t3, t1;
76
 
#
77
 
# Check that a lock merge works.
78
 
create table t1 (c1 int);
79
 
create table t2 (c1 int);
80
 
create table t3 (c1 int);
81
 
lock tables t1 write, t2 write, t3 write, t1 as t4 read;
82
 
alter table t2 add column c2 int;
83
 
drop table t1, t2, t3;
84
 
 
85
 
# Bug7241 - Invalid response when DELETE .. USING and LOCK TABLES used.
86
 
#
87
 
create table t1 ( a int not null auto_increment, primary key(a));
88
 
create table t2 ( a int not null auto_increment, primary key(a));
89
 
lock tables t1 write, t2 read;
90
 
delete from t1 using t1,t2 where t1.a=t2.a;
91
 
delete t1 from t1,t2 where t1.a=t2.a;
92
 
--error 1099
93
 
delete from t2 using t1,t2 where t1.a=t2.a;
94
 
--error 1099
95
 
delete t2 from t1,t2 where t1.a=t2.a;
96
 
--error ER_TABLE_NOT_LOCKED_FOR_WRITE
97
 
drop table t1,t2;
98
 
unlock tables;
99
 
drop table t2,t1;
100
 
 
101
 
--echo End of 4.1 tests.
102
 
 
103
 
 
104
 
#
105
 
# Bug#18884 "lock table + global read lock = crash"
106
 
# The bug is not repeatable, just add the test case.
107
 
#
108
 
--disable_warnings
109
 
drop table if exists t1;
110
 
--enable_warnings
111
 
create table t1 (a int);
112
 
lock table t1 write;
113
 
--error ER_LOCK_OR_ACTIVE_TRANSACTION
114
 
flush tables with read lock;
115
 
unlock tables;
116
 
drop table t1;
117
 
 
118
 
 
119
 
--echo
120
 
--echo Cleanup.
121
 
--echo
122
 
 
123
 
--echo End of 5.1 tests.