~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to tests/r/key.result

  • Committer: Jay Pipes
  • Date: 2008-09-09 20:10:57 UTC
  • mto: (383.2.4 fix-failing-tests)
  • mto: This revision was merged to the branch mainline in revision 386.
  • Revision ID: jay@mysql.com-20080909201057-3qkgcxqaps2s58y9
Re-enabled a number of passing tests from trunk

Show diffs side-by-side

added added

removed removed

Lines of Context:
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 (
24
 
price int DEFAULT '0' NOT NULL,
25
 
area varchar(160) DEFAULT '' NOT NULL,
26
 
type varchar(160) DEFAULT '' NOT NULL,
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');
35
 
INSERT INTO t1 (price, area, type) VALUES (900,'Vancouver','Shared/Roomate');
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;
44
 
CREATE TABLE t1 (program enum('signup','unique','sliding') not null,  type enum('basic','sliding','signup'),  PRIMARY KEY (program));
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,
98
 
name char(255) binary,
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;
127
 
CREATE TABLE t1 (
128
 
a tinytext NOT NULL,
129
 
b int NOT NULL default '0',
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;
146
 
Table   Non_unique      Key_name        Seq_in_index    Column_name     Collation       Cardinality     Sub_part        Packed  Null    Index_type      Comment Index_Comment
147
 
t1      0       PRIMARY 1       d       A       0       NULL    NULL            BTREE           
148
 
t1      0       a       1       a       A       0       NULL    NULL            BTREE           
149
 
t1      0       e       1       e       A       0       NULL    NULL            BTREE           
150
 
t1      0       b       1       b       A       0       NULL    NULL    YES     BTREE           
151
 
t1      1       c       1       c       A       0       NULL    NULL    YES     BTREE           
152
 
drop table t1;
153
 
CREATE TABLE t1 (c VARCHAR(10) NOT NULL,i INT PRIMARY KEY NOT NULL AUTO_INCREMENT, UNIQUE (c,i));
154
 
INSERT INTO t1 (c) VALUES (NULL),(NULL);
155
 
ERROR 23000: Column 'c' cannot be null
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;
164
 
CREATE TABLE t1 (c CHAR(10) NULL, i INT PRIMARY KEY NOT NULL AUTO_INCREMENT, UNIQUE (c,i));
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
175
 
a       3
176
 
a       4
177
 
drop table t1;
178
 
CREATE TABLE t1 (id int auto_increment, name char(50), primary key (id)) engine=myisam;
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;
194
 
CREATE TABLE t1 (numeropost int NOT NULL default '0', numreponse int NOT NULL auto_increment, PRIMARY KEY (numeropost,numreponse), UNIQUE KEY numreponse (numreponse));
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;
207
 
create table t1 (c varchar(30), t text, unique (c(2)), unique (t(3))) engine=myisam;
208
 
show create table t1;
209
 
Table   Create Table
210
 
t1      CREATE TABLE `t1` (
211
 
  `c` varchar(30),
212
 
  `t` text,
213
 
  UNIQUE KEY `c` (`c`()),
214
 
  UNIQUE KEY `t` (`t`())
215
 
) ENGINE=MyISAM
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
235
 
б!"#ббббб
236
 
select t from t1 where t=0xD0B1D0B1212223D0B1D0B1D0B1D0B1;
237
 
t
238
 
бб!"#бббб
239
 
drop table t1;
240
 
DROP TABLE IF EXISTS t1;
241
 
Warnings:
242
 
Note    1051    Unknown table 't1'
243
 
CREATE TABLE t1 (
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;
304
 
Field   Type    Null    Key     Default Extra
305
 
i1      int     NO      PRI     NULL    
306
 
i2      int     NO      UNI     NULL    
307
 
show create table t1;
308
 
Table   Create Table
309
 
t1      CREATE TABLE `t1` (
310
 
  `i1` int NOT NULL,
311
 
  `i2` int NOT NULL,
312
 
  UNIQUE KEY `i1idx` (`i1`),
313
 
  UNIQUE KEY `i2idx` (`i2`)
314
 
) ENGINE=InnoDB
315
 
drop table t1;
316
 
create table t1 (
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` (
337
 
  `a` varchar(10),
338
 
  `b` varchar(10),
339
 
  KEY `a` (`a`,`b`)
340
 
) ENGINE=InnoDB
341
 
alter table t1 modify b varchar(20);
342
 
show create table t1;
343
 
Table   Create Table
344
 
t1      CREATE TABLE `t1` (
345
 
  `a` varchar(10),
346
 
  `b` varchar(20),
347
 
  KEY `a` (`a`,`b`)
348
 
) ENGINE=InnoDB
349
 
alter table t1 modify a varchar(20);
350
 
show create table t1;
351
 
Table   Create Table
352
 
t1      CREATE TABLE `t1` (
353
 
  `a` varchar(20),
354
 
  `b` varchar(20),
355
 
  KEY `a` (`a`,`b`)
356
 
) ENGINE=InnoDB
357
 
drop table t1;
358
 
create table t1 (a int not null primary key, b varchar(20) not null unique);
359
 
desc t1;
360
 
Field   Type    Null    Key     Default Extra
361
 
a       int     NO      PRI     NULL    
362
 
b       varchar(20)     NO      UNI     NULL    
363
 
drop table t1;
364
 
create table t1 (a int not null primary key, b int not null unique);
365
 
desc t1;
366
 
Field   Type    Null    Key     Default Extra
367
 
a       int     NO      PRI     NULL    
368
 
b       int     NO      UNI     NULL    
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;
372
 
Field   Type    Null    Key     Default Extra
373
 
a       int     NO      PRI     NULL    
374
 
b       varchar(20)     NO      UNI     NULL    
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;
378
 
Field   Type    Null    Key     Default Extra
379
 
a       int     NO      PRI     NULL    
380
 
b       varchar(20)     NO      MUL     NULL    
381
 
c       varchar(20)     NO              NULL    
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` (
399
 
  `c1` int,
400
 
  `c2` varchar(12) NOT NULL,
401
 
  `c3` varchar(123) NOT NULL,
402
 
  `c4` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
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`)
411
 
) ENGINE=InnoDB
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` (
432
 
  `c1` int NOT NULL,
433
 
  `c2` varchar(12) NOT NULL,
434
 
  `c3` varchar(123) NOT NULL,
435
 
  `c4` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
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`),
443
 
  KEY `c2` (`c2`(),`c3`())
444
 
) ENGINE=InnoDB
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;
451
 
CREATE TABLE t1( a int, KEY(a) ) ENGINE=MyISAM;
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,
467
 
c int NOT NULL,
468
 
d DATETIME NOT NULL,
469
 
e int NOT NULL,
470
 
f INTEGER NOT NULL,
471
 
g INTEGER NOT NULL,  
472
 
h int NOT NULL,
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;
496
 
Field   Type    Null    Key     Default Extra
497
 
a       int     NO      MUL     NULL    
498
 
b       varchar(10)     NO      UNI     NULL    
499
 
c       varchar(4)      NO      PRI     NULL    
500
 
show create table t1;
501
 
Table   Create Table
502
 
t1      CREATE TABLE `t1` (
503
 
  `a` int NOT NULL,
504
 
  `b` varchar(10) NOT NULL,
505
 
  `c` varchar(4) NOT NULL,
506
 
  UNIQUE KEY `cc` (`c`),
507
 
  UNIQUE KEY `bb` (`b`()),
508
 
  KEY `aa` (`a`)
509
 
) ENGINE=InnoDB
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;
515
 
Field   Type    Null    Key     Default Extra
516
 
a       int     NO      MUL     NULL    
517
 
b       varchar(10)     NO      UNI     NULL    
518
 
c       varchar(4)      NO              NULL    
519
 
alter table t1 add unique key cc(c);
520
 
desc t1;
521
 
Field   Type    Null    Key     Default Extra
522
 
a       int     NO      MUL     NULL    
523
 
b       varchar(10)     NO      UNI     NULL    
524
 
c       varchar(4)      NO      PRI     NULL    
525
 
show create table t1;
526
 
Table   Create Table
527
 
t1      CREATE TABLE `t1` (
528
 
  `a` int NOT NULL,
529
 
  `b` varchar(10) NOT NULL,
530
 
  `c` varchar(4) NOT NULL,
531
 
  UNIQUE KEY `cc` (`c`),
532
 
  UNIQUE KEY `bb` (`b`()),
533
 
  KEY `aa` (`a`)
534
 
) ENGINE=InnoDB
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
561
 
2       SUBQUERY        t1      range   NULL    a       5       NULL    3       Using index for group-by
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;