~drizzle-trunk/drizzle/development

1 by brian
clean slate
1
drop table if exists t1,t2,t3;
2
SET SQL_WARNINGS=1;
3
CREATE TABLE t1 (
4
ID CHAR(32) NOT NULL,
5
name CHAR(32) NOT NULL,
6
value CHAR(255),
7
INDEX indexIDname (ID(8),name(8))
8
) ;
9
INSERT INTO t1 VALUES
10
('keyword','indexdir','/export/home/local/www/database/indexes/keyword');
11
INSERT INTO t1 VALUES ('keyword','urlprefix','text/ /text');
12
INSERT INTO t1 VALUES ('keyword','urlmap','/text/ /');
13
INSERT INTO t1 VALUES ('keyword','attr','personal employee company');
14
INSERT INTO t1 VALUES
15
('emailgids','indexdir','/export/home/local/www/database/indexes/emailgids');
16
INSERT INTO t1 VALUES ('emailgids','urlprefix','text/ /text');
17
INSERT INTO t1 VALUES ('emailgids','urlmap','/text/ /');
18
INSERT INTO t1 VALUES ('emailgids','attr','personal employee company');
19
SELECT value FROM t1 WHERE ID='emailgids' AND name='attr';
20
value
21
personal employee company
22
drop table t1;
23
CREATE TABLE t1 (
510 by Brian Aker
Test updates.
24
price int DEFAULT '0' NOT NULL,
25
area varchar(160) DEFAULT '' NOT NULL,
26
type varchar(160) DEFAULT '' NOT NULL,
1 by brian
clean slate
27
transityes enum('Y','N') DEFAULT 'Y' NOT NULL,
28
shopsyes enum('Y','N') DEFAULT 'Y' NOT NULL,
29
schoolsyes enum('Y','N') DEFAULT 'Y' NOT NULL,
30
petsyes enum('Y','N') DEFAULT 'Y' NOT NULL,
31
KEY price (price,area,type,transityes,shopsyes,schoolsyes,petsyes)
32
);
33
INSERT INTO t1 VALUES (900,'Vancouver','Shared/Roomate','N','N','N','N');
34
INSERT INTO t1 VALUES (900,'Vancouver','Shared/Roomate','N','N','N','N');
510 by Brian Aker
Test updates.
35
INSERT INTO t1 (price, area, type) VALUES (900,'Vancouver','Shared/Roomate');
1 by brian
clean slate
36
INSERT INTO t1 VALUES (900,'Vancouver','Shared/Roomate','Y','Y','Y','Y');
37
INSERT INTO t1 VALUES (900,'Vancouver','Shared/Roomate','Y','Y','Y','Y');
38
INSERT INTO t1 VALUES (900,'Vancouver','Shared/Roomate','Y','Y','Y','Y');
39
INSERT INTO t1 VALUES (900,'Vancouver','Shared/Roomate','Y','Y','Y','Y');
40
INSERT INTO t1 VALUES (900,'Vancouver','Shared/Roomate','Y','Y','Y','Y');
41
SELECT * FROM t1 WHERE area='Vancouver' and transityes='y' and schoolsyes='y' and ( ((type='1 Bedroom' or type='Studio/Bach') and (price<=500)) or ((type='2 Bedroom') and (price<=550)) or ((type='Shared/Roomate') and (price<=300)) or ((type='Room and Board') and (price<=500)) ) and price <= 400;
42
price	area	type	transityes	shopsyes	schoolsyes	petsyes
43
drop table t1;
510 by Brian Aker
Test updates.
44
CREATE TABLE t1 (program enum('signup','unique','sliding') not null,  type enum('basic','sliding','signup'),  PRIMARY KEY (program));
1 by brian
clean slate
45
ALTER TABLE t1 modify program enum('signup','unique','sliding');
46
drop table t1;
47
CREATE TABLE t1 (
48
name varchar(50) DEFAULT '' NOT NULL,
49
author varchar(50) DEFAULT '' NOT NULL,
50
category decimal(10,0) DEFAULT '0' NOT NULL,
51
email varchar(50),
52
password varchar(50),
53
proxy varchar(50),
54
bitmap varchar(20),
55
msg varchar(255),
56
urlscol varchar(127),
57
urlhttp varchar(127),
58
timeout decimal(10,0),
59
nbcnx decimal(10,0),
60
creation decimal(10,0),
61
livinguntil decimal(10,0),
62
lang decimal(10,0),
63
type decimal(10,0),
64
subcat decimal(10,0),
65
subtype decimal(10,0),
66
reg char(1),
67
scs varchar(255),
68
capacity decimal(10,0),
69
userISP varchar(50),
70
CCident varchar(50) DEFAULT '' NOT NULL,
71
PRIMARY KEY (name,author,category)
72
);
73
INSERT INTO t1 VALUES
74
('patnom','patauteur',0,'p.favre@cryo-networks.fr',NULL,NULL,'#p2sndnq6ae5g1u6t','essai salut','scol://195.242.78.119:patauteur.patnom',NULL,NULL,NULL,950036174,-882087474,NULL,3,0,3,'1','Pub/patnom/futur_divers.scs',NULL,'pat','CC1');
75
INSERT INTO t1 VALUES
76
('LeNomDeMonSite','Marc',0,'m.barilley@cryo-networks.fr',NULL,NULL,NULL,NULL,'scol://195.242.78.119:Marc.LeNomDeMonSite',NULL,NULL,NULL,950560434,-881563214,NULL,3,0,3,'1','Pub/LeNomDeMonSite/domus_hibere.scs',NULL,'Marq','CC1');
77
select * from t1 where name='patnom' and author='patauteur' and category=0;
78
name	author	category	email	password	proxy	bitmap	msg	urlscol	urlhttp	timeout	nbcnx	creation	livinguntil	lang	type	subcat	subtype	reg	scs	capacity	userISP	CCident
79
patnom	patauteur	0	p.favre@cryo-networks.fr	NULL	NULL	#p2sndnq6ae5g1u6t	essai salut	scol://195.242.78.119:patauteur.patnom	NULL	NULL	NULL	950036174	-882087474	NULL	3	0	3	1	Pub/patnom/futur_divers.scs	NULL	pat	CC1
80
drop table t1;
81
create table t1
82
(
83
name_id int not null auto_increment,
84
name blob,
85
INDEX name_idx (name(5)),
86
primary key (name_id)
87
);
88
INSERT t1 VALUES(NULL,'/');
89
INSERT t1 VALUES(NULL,'[T,U]_axpby');
90
SELECT * FROM t1 WHERE name='[T,U]_axpy';
91
name_id	name
92
SELECT * FROM t1 WHERE name='[T,U]_axpby';
93
name_id	name
94
2	[T,U]_axpby
95
create table t2
96
(
97
name_id int not null auto_increment,
1217 by Brian Aker
Removed bits of charset support from the parser.
98
name char(255),
1 by brian
clean slate
99
INDEX name_idx (name(5)),
100
primary key (name_id)
101
);
102
INSERT t2 select * from t1;
103
SELECT * FROM t2 WHERE name='[T,U]_axpy';
104
name_id	name
105
SELECT * FROM t2 WHERE name='[T,U]_axpby';
106
name_id	name
107
2	[T,U]_axpby
108
CREATE TABLE t3 SELECT * FROM t2 WHERE name='[T,U]_axpby';
109
SELECT * FROM t2 WHERE name='[T,U]_axpby';
110
name_id	name
111
2	[T,U]_axpby
112
drop table t1,t2,t3;
113
create table t1
114
(
115
SEQNO                         numeric(12 ) not null,
116
MOTYPEID                 numeric(12 ) not null,
117
MOINSTANCEID     numeric(12 ) not null,
118
ATTRID                       numeric(12 ) not null,
119
VALUE                         varchar(120) not null,
120
primary key (SEQNO, MOTYPEID, MOINSTANCEID, ATTRID, VALUE )
121
);
122
INSERT INTO t1 VALUES (1, 1, 1, 1, 'a');
123
INSERT INTO t1 VALUES (1, 1, 1, 1, 'b');
124
INSERT INTO t1 VALUES (1, 1, 1, 1, 'a');
125
ERROR 23000: Duplicate entry '1-1-1-1-a' for key 'PRIMARY'
126
drop table t1;
1063.9.12 by Stewart Smith
fix key.test for MyISAM temp only: use myisam temp tables
127
CREATE TEMPORARY TABLE t1 (
1 by brian
clean slate
128
a tinytext NOT NULL,
510 by Brian Aker
Test updates.
129
b int NOT NULL default '0',
1 by brian
clean slate
130
PRIMARY KEY (a(32),b)
131
) ENGINE=MyISAM;
132
INSERT INTO t1 VALUES ('a',1),('a',2);
133
SELECT * FROM t1 WHERE a='a' AND b=2;
134
a	b
135
a	2
136
SELECT * FROM t1 WHERE a='a' AND b in (2);
137
a	b
138
a	2
139
SELECT * FROM t1 WHERE a='a' AND b in (1,2);
140
a	b
141
a	1
142
a	2
143
drop table t1;
144
create table t1 (a int not null unique, b int unique, c int, d int not null primary key, key(c), e int not null unique);
145
show keys from t1;
1309.2.3 by Brian Aker
Update the code so use a faster index lookup method.
146
Table	Unique	Key_name	Seq_in_index	Column_name
147
t1	TRUE	PRIMARY	1	d
148
t1	TRUE	a	1	a
149
t1	TRUE	e	1	e
150
t1	TRUE	b	1	b
151
t1	FALSE	c	1	c
1 by brian
clean slate
152
drop table t1;
510 by Brian Aker
Test updates.
153
CREATE TABLE t1 (c VARCHAR(10) NOT NULL,i INT PRIMARY KEY NOT NULL AUTO_INCREMENT, UNIQUE (c,i));
1 by brian
clean slate
154
INSERT INTO t1 (c) VALUES (NULL),(NULL);
510 by Brian Aker
Test updates.
155
ERROR 23000: Column 'c' cannot be null
1 by brian
clean slate
156
SELECT * FROM t1;
157
c	i
158
INSERT INTO t1 (c) VALUES ('a'),('a');
159
SELECT * FROM t1;
160
c	i
161
a	1
162
a	2
163
DROP TABLE IF EXISTS t1;
510 by Brian Aker
Test updates.
164
CREATE TABLE t1 (c CHAR(10) NULL, i INT PRIMARY KEY NOT NULL AUTO_INCREMENT, UNIQUE (c,i));
1 by brian
clean slate
165
INSERT INTO t1 (c) VALUES (NULL),(NULL);
166
SELECT * FROM t1;
167
c	i
168
NULL	1
169
NULL	2
170
INSERT INTO t1 (c) VALUES ('a'),('a');
171
SELECT * FROM t1;
172
c	i
173
NULL	1
174
NULL	2
510 by Brian Aker
Test updates.
175
a	3
176
a	4
177
drop table t1;
1063.9.12 by Stewart Smith
fix key.test for MyISAM temp only: use myisam temp tables
178
CREATE TEMPORARY TABLE t1 (id int auto_increment, name char(50), primary key (id)) engine=myisam;
1 by brian
clean slate
179
insert into t1 (name) values ('a'), ('b'),('c'),('d'),('e'),('f'),('g');
180
explain select 1 from t1 where id =2;
181
id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
182
1	SIMPLE	t1	const	PRIMARY	PRIMARY	4	const	1	Using index
183
explain select 1 from t1 where id =2 or id=3;
184
id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
185
1	SIMPLE	t1	index	PRIMARY	PRIMARY	4	NULL	7	Using where; Using index
186
explain select name from t1 where id =2;
187
id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
188
1	SIMPLE	t1	const	PRIMARY	PRIMARY	4	const	1	
189
ALTER TABLE t1 DROP PRIMARY KEY, ADD INDEX (id);
190
explain select 1 from t1 where id =2;
191
id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
192
1	SIMPLE	t1	ref	id	id	4	const	1	Using index
193
drop table t1;
510 by Brian Aker
Test updates.
194
CREATE TABLE t1 (numeropost int NOT NULL default '0', numreponse int NOT NULL auto_increment, PRIMARY KEY (numeropost,numreponse), UNIQUE KEY numreponse (numreponse));
1 by brian
clean slate
195
INSERT INTO t1 (numeropost,numreponse) VALUES ('1','1'),('1','2'),('2','3'),('2','4');
196
SELECT numeropost FROM t1 WHERE numreponse='1';
197
numeropost
198
1
199
EXPLAIN SELECT numeropost FROM t1 WHERE numreponse='1';
200
id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
201
1	SIMPLE	t1	const	numreponse	numreponse	4	const	1	Using index
202
FLUSH TABLES;
203
SELECT numeropost FROM t1 WHERE numreponse='1';
204
numeropost
205
1
206
drop table t1;
1063.9.12 by Stewart Smith
fix key.test for MyISAM temp only: use myisam temp tables
207
create temporary table t1 (c varchar(30), t text, unique (c(2)), unique (t(3))) engine=myisam;
1 by brian
clean slate
208
show create table t1;
209
Table	Create Table
1063.9.12 by Stewart Smith
fix key.test for MyISAM temp only: use myisam temp tables
210
t1	CREATE TEMPORARY TABLE `t1` (
873.2.35 by Monty Taylor
Update tests based on how Toru's latest patch changes create table statements.
211
  `c` varchar(30) DEFAULT NULL,
510 by Brian Aker
Test updates.
212
  `t` text,
1008.3.10 by Stewart Smith
fix test result now that I fixed SHOW CREATE TABLE
213
  UNIQUE KEY `c` (`c`(2)),
214
  UNIQUE KEY `t` (`t`(3))
510 by Brian Aker
Test updates.
215
) ENGINE=MyISAM
1 by brian
clean slate
216
insert t1 values ('cccc', 'tttt'),
217
(0xD0B1212223D0B1D0B1D0B1D0B1D0B1, 0xD0B1D0B1212223D0B1D0B1D0B1D0B1),
218
(0xD0B1222123D0B1D0B1D0B1D0B1D0B1, 0xD0B1D0B1222123D0B1D0B1D0B1D0B1);
219
insert t1 (c) values ('cc22');
220
ERROR 23000: Duplicate entry 'cc' for key 'c'
221
insert t1 (t) values ('ttt22');
222
ERROR 23000: Duplicate entry 'ttt' for key 't'
223
insert t1 (c) values (0xD0B1212322D0B1D0B1D0B1D0B1D0B1);
224
ERROR 23000: Duplicate entry 'б!' for key 'c'
225
insert t1 (t) values (0xD0B1D0B1212322D0B1D0B1D0B1D0B1);
226
ERROR 23000: Duplicate entry 'бб!' for key 't'
227
select c from t1 where c='cccc';
228
c
229
cccc
230
select t from t1 where t='tttt';
231
t
232
tttt
233
select c from t1 where c=0xD0B1212223D0B1D0B1D0B1D0B1D0B1;
234
c
510 by Brian Aker
Test updates.
235
б!"#ббббб
1 by brian
clean slate
236
select t from t1 where t=0xD0B1D0B1212223D0B1D0B1D0B1D0B1;
237
t
510 by Brian Aker
Test updates.
238
бб!"#бббб
1 by brian
clean slate
239
drop table t1;
240
DROP TABLE IF EXISTS t1;
241
Warnings:
242
Note	1051	Unknown table 't1'
1063.9.12 by Stewart Smith
fix key.test for MyISAM temp only: use myisam temp tables
243
CREATE TEMPORARY TABLE t1 (
1 by brian
clean slate
244
c1 int,
245
c2 varbinary(240),
246
UNIQUE KEY (c1),
247
KEY (c2)
248
) ENGINE=MyISAM;
249
INSERT INTO t1 VALUES (1,'\Z\Z\Z\Z');
250
INSERT INTO t1 VALUES (2,'\Z\Z\Z\Z\Z\Z');
251
INSERT INTO t1 VALUES (3,'\Z\Z\Z\Z');
252
select c1 from t1 where c2='\Z\Z\Z\Z';
253
c1
254
1
255
3
256
DELETE FROM t1 WHERE (c1 = 1);
257
check table t1;
258
Table	Op	Msg_type	Msg_text
259
test.t1	check	status	OK
260
select c1 from t1 where c2='\Z\Z\Z\Z';
261
c1
262
3
263
DELETE FROM t1 WHERE (c1 = 3);
264
check table t1;
265
Table	Op	Msg_type	Msg_text
266
test.t1	check	status	OK
267
select c1 from t1 where c2='\Z\Z\Z\Z';
268
c1
269
truncate table t1;
270
insert into t1 values(1,"aaaa"),(2,"aaab"),(3,"aaac"),(4,"aaccc");
271
delete from t1 where c1=3;
272
delete from t1 where c1=1;
273
delete from t1 where c1=4;
274
check table t1;
275
Table	Op	Msg_type	Msg_text
276
test.t1	check	status	OK
277
drop table t1;
278
create table t1 (c char(10), index (c(0)));
279
ERROR HY000: Key part 'c' length cannot be 0
280
create table t1 (c char(10), index (c,c));
281
ERROR 42S21: Duplicate column name 'c'
282
create table t1 (c1 char(10), c2 char(10), index (c1,c2,c1));
283
ERROR 42S21: Duplicate column name 'c1'
284
create table t1 (c1 char(10), c2 char(10), index (c1,c1,c2));
285
ERROR 42S21: Duplicate column name 'c1'
286
create table t1 (c1 char(10), c2 char(10), index (c2,c1,c1));
287
ERROR 42S21: Duplicate column name 'c1'
288
create table t1 (c1 char(10), c2 char(10));
289
alter table t1 add key (c1,c1);
290
ERROR 42S21: Duplicate column name 'c1'
291
alter table t1 add key (c2,c1,c1);
292
ERROR 42S21: Duplicate column name 'c1'
293
alter table t1 add key (c1,c2,c1);
294
ERROR 42S21: Duplicate column name 'c1'
295
alter table t1 add key (c1,c1,c2);
296
ERROR 42S21: Duplicate column name 'c1'
297
drop table t1;
298
create table t1 (
299
i1 INT NOT NULL,
300
i2 INT NOT NULL,
301
UNIQUE i1idx (i1),
302
UNIQUE i2idx (i2));
303
desc t1;
1309.4.3 by Brian Aker
Refactor DESC to use new table.
304
Field	Type	Null	Default	Default_is_NULL	On_Update
1273.19.4 by Brian Aker
Updates for DESC.
305
i1	INTEGER	FALSE		FALSE	
306
i2	INTEGER	FALSE		FALSE	
1 by brian
clean slate
307
show create table t1;
308
Table	Create Table
309
t1	CREATE TABLE `t1` (
510 by Brian Aker
Test updates.
310
  `i1` int NOT NULL,
311
  `i2` int NOT NULL,
1 by brian
clean slate
312
  UNIQUE KEY `i1idx` (`i1`),
313
  UNIQUE KEY `i2idx` (`i2`)
510 by Brian Aker
Test updates.
314
) ENGINE=InnoDB
1 by brian
clean slate
315
drop table t1;
1063.9.12 by Stewart Smith
fix key.test for MyISAM temp only: use myisam temp tables
316
create temporary table t1 (
1 by brian
clean slate
317
c1 int,
318
c2 varchar(20) not null,
319
primary key (c1),
320
key (c2(10))
321
) engine=myisam;
322
insert into t1 values (1,'');
323
insert into t1 values (2,' \t\tTest String');
324
insert into t1 values (3,' \n\tTest String');
325
update t1 set c2 = 'New Test String' where c1 = 1;
326
select * from t1;
327
c1	c2
328
1	New Test String
329
2	 		Test String
330
3	 
331
	Test String
332
drop table t1;
333
create table t1 (a varchar(10), b varchar(10), key(a(10),b(10)));
334
show create table t1;
335
Table	Create Table
336
t1	CREATE TABLE `t1` (
873.2.35 by Monty Taylor
Update tests based on how Toru's latest patch changes create table statements.
337
  `a` varchar(10) DEFAULT NULL,
338
  `b` varchar(10) DEFAULT NULL,
1 by brian
clean slate
339
  KEY `a` (`a`,`b`)
510 by Brian Aker
Test updates.
340
) ENGINE=InnoDB
1 by brian
clean slate
341
alter table t1 modify b varchar(20);
342
show create table t1;
343
Table	Create Table
344
t1	CREATE TABLE `t1` (
873.2.35 by Monty Taylor
Update tests based on how Toru's latest patch changes create table statements.
345
  `a` varchar(10) DEFAULT NULL,
346
  `b` varchar(20) DEFAULT NULL,
1 by brian
clean slate
347
  KEY `a` (`a`,`b`)
510 by Brian Aker
Test updates.
348
) ENGINE=InnoDB
1 by brian
clean slate
349
alter table t1 modify a varchar(20);
350
show create table t1;
351
Table	Create Table
352
t1	CREATE TABLE `t1` (
873.2.35 by Monty Taylor
Update tests based on how Toru's latest patch changes create table statements.
353
  `a` varchar(20) DEFAULT NULL,
354
  `b` varchar(20) DEFAULT NULL,
1 by brian
clean slate
355
  KEY `a` (`a`,`b`)
510 by Brian Aker
Test updates.
356
) ENGINE=InnoDB
1 by brian
clean slate
357
drop table t1;
358
create table t1 (a int not null primary key, b varchar(20) not null unique);
359
desc t1;
1309.4.3 by Brian Aker
Refactor DESC to use new table.
360
Field	Type	Null	Default	Default_is_NULL	On_Update
1273.19.4 by Brian Aker
Updates for DESC.
361
a	INTEGER	FALSE		FALSE	
362
b	VARCHAR	FALSE		FALSE	
1 by brian
clean slate
363
drop table t1;
364
create table t1 (a int not null primary key, b int not null unique);
365
desc t1;
1309.4.3 by Brian Aker
Refactor DESC to use new table.
366
Field	Type	Null	Default	Default_is_NULL	On_Update
1273.19.4 by Brian Aker
Updates for DESC.
367
a	INTEGER	FALSE		FALSE	
368
b	INTEGER	FALSE		FALSE	
1 by brian
clean slate
369
drop table t1;
370
create table t1 (a int not null primary key, b varchar(20) not null, unique (b(10)));
371
desc t1;
1309.4.3 by Brian Aker
Refactor DESC to use new table.
372
Field	Type	Null	Default	Default_is_NULL	On_Update
1273.19.4 by Brian Aker
Updates for DESC.
373
a	INTEGER	FALSE		FALSE	
374
b	VARCHAR	FALSE		FALSE	
1 by brian
clean slate
375
drop table t1;
376
create table t1 (a int not null primary key, b varchar(20) not null, c varchar(20) not null, unique(b(10),c(10)));
377
desc t1;
1309.4.3 by Brian Aker
Refactor DESC to use new table.
378
Field	Type	Null	Default	Default_is_NULL	On_Update
1273.19.4 by Brian Aker
Updates for DESC.
379
a	INTEGER	FALSE		FALSE	
380
b	VARCHAR	FALSE		FALSE	
381
c	VARCHAR	FALSE		FALSE	
1 by brian
clean slate
382
drop table t1;
383
create table t1 (
384
c1 int,
385
c2 char(12),
386
c3 varchar(123),
387
c4 timestamp,
388
index (c1),
389
index i1 (c1),
390
index i2 (c2),
391
index i3 (c3),
392
unique i4 (c4),
393
index i5 (c1, c2, c3, c4),
394
primary key (c2, c3),
395
index (c2, c4));
396
show create table t1;
397
Table	Create Table
398
t1	CREATE TABLE `t1` (
873.2.35 by Monty Taylor
Update tests based on how Toru's latest patch changes create table statements.
399
  `c1` int DEFAULT NULL,
896.3.6 by Stewart Smith
Read Fields out of proto instead of FRM.
400
  `c2` varchar(12) NOT NULL,
401
  `c3` varchar(123) NOT NULL,
907.1.5 by Jay Pipes
Fixed remaining test cases. TIMESTAMP with no default is NULL, DEFAULT NULL, not auto-set
402
  `c4` timestamp NULL DEFAULT NULL,
1 by brian
clean slate
403
  PRIMARY KEY (`c2`,`c3`),
404
  UNIQUE KEY `i4` (`c4`),
405
  KEY `c1` (`c1`),
406
  KEY `i1` (`c1`),
407
  KEY `i2` (`c2`),
408
  KEY `i3` (`c3`),
409
  KEY `i5` (`c1`,`c2`,`c3`,`c4`),
410
  KEY `c2` (`c2`,`c4`)
510 by Brian Aker
Test updates.
411
) ENGINE=InnoDB
1 by brian
clean slate
412
alter table t1 drop index c1;
413
alter table t1 add index (c1);
414
alter table t1 add index (c1);
415
alter table t1 drop index i3;
416
alter table t1 add index i3 (c3);
417
alter table t1 drop index i2, drop index i4;
418
alter table t1 add index i2 (c2), add index i4 (c4);
419
alter table t1 drop index i2, drop index i4, add index i6 (c2, c4);
420
alter table t1 add index i2 (c2), add index i4 (c4), drop index i6;
421
alter table t1 drop index i2, drop index i4, add unique i4 (c4);
422
alter table t1 add index i2 (c2), drop index i4, add index i4 (c4);
423
alter table t1 drop index c2, add index (c2(4),c3(7));
424
alter table t1 drop index c2, add index (c2(4),c3(7));
425
alter table t1 add primary key (c1, c2), drop primary key;
426
alter table t1 drop primary key;
427
alter table t1 add primary key (c1, c2), drop primary key;
428
ERROR 42000: Can't DROP 'PRIMARY'; check that column/key exists
429
show create table t1;
430
Table	Create Table
431
t1	CREATE TABLE `t1` (
896.3.6 by Stewart Smith
Read Fields out of proto instead of FRM.
432
  `c1` int NOT NULL,
433
  `c2` varchar(12) NOT NULL,
434
  `c3` varchar(123) NOT NULL,
907.1.5 by Jay Pipes
Fixed remaining test cases. TIMESTAMP with no default is NULL, DEFAULT NULL, not auto-set
435
  `c4` timestamp NULL DEFAULT NULL,
1 by brian
clean slate
436
  KEY `i1` (`c1`),
437
  KEY `i5` (`c1`,`c2`,`c3`,`c4`),
438
  KEY `c1` (`c1`),
439
  KEY `c1_2` (`c1`),
440
  KEY `i3` (`c3`),
441
  KEY `i2` (`c2`),
442
  KEY `i4` (`c4`),
1008.3.10 by Stewart Smith
fix test result now that I fixed SHOW CREATE TABLE
443
  KEY `c2` (`c2`(4),`c3`(7))
510 by Brian Aker
Test updates.
444
) ENGINE=InnoDB
1 by brian
clean slate
445
insert into t1 values(1, 'a', 'a', NULL);
446
insert into t1 values(1, 'b', 'b', NULL);
447
alter table t1 drop index i3, drop index i2, drop index i1;
448
alter table t1 add index i3 (c3), add index i2 (c2), add unique index i1 (c1);
449
ERROR 23000: Duplicate entry '1' for key 'i1'
450
drop table t1;
1063.9.12 by Stewart Smith
fix key.test for MyISAM temp only: use myisam temp tables
451
CREATE TEMPORARY TABLE t1( a int, KEY(a) ) ENGINE=MyISAM;
1 by brian
clean slate
452
INSERT INTO t1 VALUES( 1 );
453
ALTER TABLE t1 DISABLE KEYS;
454
EXPLAIN SELECT MAX(a) FROM t1 FORCE INDEX(a);
455
id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
456
1	SIMPLE	t1	system	NULL	NULL	NULL	NULL	1	
457
drop table t1;
458
CREATE TABLE t1 (
459
a INTEGER auto_increment PRIMARY KEY,
460
b INTEGER NOT NULL,
461
c INTEGER NOT NULL,
462
d CHAR(64)
463
);
464
CREATE TABLE t2 (
465
a INTEGER auto_increment PRIMARY KEY,
466
b INTEGER NOT NULL,
510 by Brian Aker
Test updates.
467
c int NOT NULL,
1 by brian
clean slate
468
d DATETIME NOT NULL,
510 by Brian Aker
Test updates.
469
e int NOT NULL,
1 by brian
clean slate
470
f INTEGER NOT NULL,
471
g INTEGER NOT NULL,  
510 by Brian Aker
Test updates.
472
h int NOT NULL,
1 by brian
clean slate
473
i INTEGER NOT NULL,
474
j INTEGER NOT NULL,
475
UNIQUE INDEX (b),
476
INDEX (b, d, e, f, g, h, i, j, c),
477
INDEX (c)
478
);
479
INSERT INTO t2 VALUES 
480
(NULL, 1, 254, '1000-01-01 00:00:00', 257, 0, 0, 0, 0, 0),
481
(NULL, 2, 1, '2004-11-30 12:00:00', 1, 0, 0, 0, 0, 0),
482
(NULL, 3, 1, '2004-11-30 12:00:00', 1, 0, 0, 2, -21600, 0),
483
(NULL, 4, 1, '2004-11-30 12:00:00', 1, 0, 0, 2, -10800, 0),
484
(NULL, 5, 1, '2004-11-30 12:00:00', 1, 0, 0, 5, -10800, 0),
485
(NULL, 6, 1, '2004-11-30 12:00:00', 102, 0, 0, 0, 0, 0),
486
(NULL, 7, 1, '2004-11-30 12:00:00', 105, 2, 0, 0, 0, 0),
487
(NULL, 8, 1, '2004-11-30 12:00:00', 105, 10, 0, 0, 0, 0);
488
INSERT INTO t1 (b, c, d) VALUES
489
(3388000, -553000, NULL),
490
(3388000, -553000, NULL);
491
DROP TABLE t1, t2;
492
create table t1(a int not null, key aa(a), 
493
b char(10) not null, unique key bb(b(1)), 
494
c char(4) not null, unique key cc(c));
495
desc t1;
1309.4.3 by Brian Aker
Refactor DESC to use new table.
496
Field	Type	Null	Default	Default_is_NULL	On_Update
1273.19.4 by Brian Aker
Updates for DESC.
497
a	INTEGER	FALSE		FALSE	
498
b	VARCHAR	FALSE		FALSE	
499
c	VARCHAR	FALSE		FALSE	
1 by brian
clean slate
500
show create table t1;
501
Table	Create Table
502
t1	CREATE TABLE `t1` (
510 by Brian Aker
Test updates.
503
  `a` int NOT NULL,
504
  `b` varchar(10) NOT NULL,
505
  `c` varchar(4) NOT NULL,
1 by brian
clean slate
506
  UNIQUE KEY `cc` (`c`),
1008.3.10 by Stewart Smith
fix test result now that I fixed SHOW CREATE TABLE
507
  UNIQUE KEY `bb` (`b`(1)),
1 by brian
clean slate
508
  KEY `aa` (`a`)
510 by Brian Aker
Test updates.
509
) ENGINE=InnoDB
1 by brian
clean slate
510
drop table t1;
511
create table t1(a int not null, key aa(a), 
512
b char(10) not null, unique key bb(b(1)),
513
c char(4) not null);
514
desc t1;
1309.4.3 by Brian Aker
Refactor DESC to use new table.
515
Field	Type	Null	Default	Default_is_NULL	On_Update
1273.19.4 by Brian Aker
Updates for DESC.
516
a	INTEGER	FALSE		FALSE	
517
b	VARCHAR	FALSE		FALSE	
518
c	VARCHAR	FALSE		FALSE	
1 by brian
clean slate
519
alter table t1 add unique key cc(c);
520
desc t1;
1309.4.3 by Brian Aker
Refactor DESC to use new table.
521
Field	Type	Null	Default	Default_is_NULL	On_Update
1273.19.4 by Brian Aker
Updates for DESC.
522
a	INTEGER	FALSE		FALSE	
523
b	VARCHAR	FALSE		FALSE	
524
c	VARCHAR	FALSE		FALSE	
1 by brian
clean slate
525
show create table t1;
526
Table	Create Table
527
t1	CREATE TABLE `t1` (
510 by Brian Aker
Test updates.
528
  `a` int NOT NULL,
529
  `b` varchar(10) NOT NULL,
530
  `c` varchar(4) NOT NULL,
1 by brian
clean slate
531
  UNIQUE KEY `cc` (`c`),
1008.3.10 by Stewart Smith
fix test result now that I fixed SHOW CREATE TABLE
532
  UNIQUE KEY `bb` (`b`(1)),
1 by brian
clean slate
533
  KEY `aa` (`a`)
510 by Brian Aker
Test updates.
534
) ENGINE=InnoDB
1 by brian
clean slate
535
drop table t1;
536
End of 5.0 tests
537
DROP TABLE IF EXISTS t1;
538
CREATE TABLE t1 (a INT PRIMARY KEY AUTO_INCREMENT);
539
INSERT INTO t1 VALUES (), (), ();
540
SELECT 1 AS c1
541
FROM t1
542
ORDER BY (
543
SELECT 1 AS c2
544
FROM t1
545
GROUP BY GREATEST(LAST_INSERT_ID(), t1.a) ASC
546
LIMIT 1);
547
c1
548
1
549
1
550
1
551
DROP TABLE t1;
552
CREATE TABLE t1 (a INT, b INT, INDEX (a,b));
553
INSERT INTO t1 (a, b)
554
VALUES
555
(1,1), (1,2), (1,3), (1,4), (1,5),
556
(2,2), (2,3), (2,1), (3,1), (4,1), (4,2), (4,3), (4,4), (4,5), (4,6);
557
EXPLAIN SELECT 1 FROM t1 AS t1_outer WHERE 
558
(SELECT max(b) FROM t1 GROUP BY a HAVING a < 2) > 12;
559
id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
560
1	PRIMARY	NULL	NULL	NULL	NULL	NULL	NULL	NULL	Impossible WHERE
510 by Brian Aker
Test updates.
561
2	SUBQUERY	t1	range	NULL	a	5	NULL	3	Using index for group-by
1 by brian
clean slate
562
SELECT 1 as RES FROM t1 AS t1_outer WHERE 
563
(SELECT max(b) FROM t1 GROUP BY a HAVING a < 2) > 12;
564
RES
565
DROP TABLE t1;