~ubuntu-branches/ubuntu/trusty/drizzle/trusty

« back to all changes in this revision

Viewing changes to tests/r/innodb_mysql.result

  • Committer: Bazaar Package Importer
  • Author(s): Monty Taylor
  • Date: 2010-10-02 14:17:48 UTC
  • mfrom: (1.1.1 upstream)
  • mto: (2.1.17 sid)
  • mto: This revision was merged to the branch mainline in revision 3.
  • Revision ID: james.westby@ubuntu.com-20101002141748-m6vbfbfjhrw1153e
Tags: 2010.09.1802-1
* New upstream release.
* Removed pid-file argument hack.
* Updated GPL-2 address to be new address.
* Directly copy in drizzledump.1 since debian doesn't have sphinx 1.0 yet.
* Link to jquery from libjs-jquery. Add it as a depend.
* Add drizzled.8 symlink to the install files.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
set global innodb_support_xa=default;
2
 
set session innodb_support_xa=default;
3
 
SET SESSION STORAGE_ENGINE = InnoDB;
4
 
drop table if exists t1,t2,t3,t1m,t1i,t2m,t2i,t4;
5
 
create table t1 (
6
 
c_id int not null default '0',
7
 
org_id int default null,
8
 
unique key contacts$c_id (c_id),
9
 
key contacts$org_id (org_id)
10
 
);
11
 
insert into t1 values
12
 
(2,null),(120,null),(141,null),(218,7), (128,1),
13
 
(151,2),(234,2),(236,2),(243,2),(255,2),(259,2),(232,3),(235,3),(238,3),
14
 
(246,3),(253,3),(269,3),(285,3),(291,3),(293,3),(131,4),(230,4),(231,4);
15
 
create table t2 (
16
 
slai_id int not null default '0',
17
 
owner_tbl int default null,
18
 
owner_id int default null,
19
 
sla_id int default null,
20
 
inc_web int default null,
21
 
inc_email int default null,
22
 
inc_chat int default null,
23
 
inc_csr int default null,
24
 
inc_total int default null,
25
 
time_billed int default null,
26
 
activedate timestamp null default null,
27
 
expiredate timestamp null default null,
28
 
state int default null,
29
 
sla_set int default null,
30
 
unique key t2$slai_id (slai_id),
31
 
key t2$owner_id (owner_id),
32
 
key t2$sla_id (sla_id)
33
 
);
34
 
insert into t2(slai_id, owner_tbl, owner_id, sla_id) values
35
 
(1,3,1,1), (3,3,10,2), (4,3,3,6), (5,3,2,5), (6,3,8,3), (7,3,9,7),
36
 
(8,3,6,8), (9,3,4,9), (10,3,5,10), (11,3,11,11), (12,3,7,12);
37
 
flush tables;
38
 
select si.slai_id
39
 
from t1 c join t2 si on
40
 
((si.owner_tbl = 3 and si.owner_id = c.org_id) or
41
 
( si.owner_tbl = 2 and si.owner_id = c.c_id))
42
 
where
43
 
c.c_id = 218 and expiredate is null;
44
 
slai_id
45
 
12
46
 
select * from t1 where org_id is null;
47
 
c_id    org_id
48
 
2       NULL
49
 
120     NULL
50
 
141     NULL
51
 
select si.slai_id
52
 
from t1 c join t2 si on
53
 
((si.owner_tbl = 3 and si.owner_id = c.org_id) or
54
 
( si.owner_tbl = 2 and si.owner_id = c.c_id))
55
 
where
56
 
c.c_id = 218 and expiredate is null;
57
 
slai_id
58
 
12
59
 
drop table t1, t2;
60
 
CREATE TABLE t1 (a int, b int, KEY b (b));
61
 
CREATE TABLE t2 (a int, b int, PRIMARY KEY  (a,b));
62
 
CREATE TABLE t3 (a int, b int, c int, PRIMARY KEY  (a),
63
 
UNIQUE KEY b (b,c), KEY a (a,b,c));
64
 
INSERT INTO t1 VALUES (1, 1);
65
 
INSERT INTO t1 SELECT a + 1, b + 1 FROM t1;
66
 
INSERT INTO t1 SELECT a + 2, b + 2 FROM t1;
67
 
INSERT INTO t2 VALUES (1,1),(1,2),(1,3),(1,4),(1,5),(1,6),(1,7),(1,8);
68
 
INSERT INTO t2 SELECT a + 1, b FROM t2;
69
 
DELETE FROM t2 WHERE a = 1 AND b < 2;
70
 
INSERT INTO t3 VALUES (1,1,1),(2,1,2);
71
 
INSERT INTO t3 SELECT a + 2, a + 2, 3 FROM t3;
72
 
INSERT INTO t3 SELECT a + 4, a + 4, 3 FROM t3;
73
 
SELECT STRAIGHT_JOIN t1.b, t1.a FROM t1, t3, t2 WHERE
74
 
t3.a = t2.a AND t2.b = t1.a AND t3.b = 1 AND t3.c IN (1, 2)
75
 
ORDER BY t1.b LIMIT 2;
76
 
b       a
77
 
1       1
78
 
2       2
79
 
SELECT STRAIGHT_JOIN t1.b, t1.a FROM t1, t3, t2 WHERE
80
 
t3.a = t2.a AND t2.b = t1.a AND t3.b = 1 AND t3.c IN (1, 2)
81
 
ORDER BY t1.b LIMIT 5;
82
 
b       a
83
 
1       1
84
 
2       2
85
 
2       2
86
 
3       3
87
 
3       3
88
 
DROP TABLE t1, t2, t3;
89
 
CREATE TABLE `t1` (`id1` INT) ;
90
 
INSERT INTO `t1` (`id1`) VALUES (1),(5),(2);
91
 
CREATE TABLE `t2` (
92
 
`id1` INT,
93
 
`id2` INT NOT NULL,
94
 
`id3` INT,
95
 
`id4` INT NOT NULL,
96
 
UNIQUE (`id2`,`id4`),
97
 
KEY (`id1`)
98
 
);
99
 
INSERT INTO `t2`(`id1`,`id2`,`id3`,`id4`) VALUES
100
 
(1,1,1,0),
101
 
(1,1,2,1),
102
 
(5,1,2,2),
103
 
(6,1,2,3),
104
 
(1,2,2,2),
105
 
(1,2,1,1);
106
 
SELECT `id1` FROM `t1` WHERE `id1` NOT IN (SELECT `id1` FROM `t2` WHERE `id2` = 1 AND `id3` = 2);
107
 
id1
108
 
2
109
 
DROP TABLE t1, t2;
110
 
CREATE TABLE t1(c1 TEXT, UNIQUE (c1(1)), cnt INT DEFAULT 1)
111
 
ENGINE=INNODB;
112
 
INSERT INTO t1 (c1) VALUES ('1a');
113
 
SELECT * FROM t1;
114
 
c1      cnt
115
 
1a      1
116
 
INSERT INTO t1 (c1) VALUES ('1b') ON DUPLICATE KEY UPDATE cnt=cnt+1;
117
 
SELECT * FROM t1;
118
 
c1      cnt
119
 
1a      2
120
 
DROP TABLE t1;
121
 
CREATE TABLE t1(c1 VARCHAR(2), UNIQUE (c1(1)), cnt INT DEFAULT 1)
122
 
ENGINE=INNODB;
123
 
INSERT INTO t1 (c1) VALUES ('1a');
124
 
SELECT * FROM t1;
125
 
c1      cnt
126
 
1a      1
127
 
INSERT INTO t1 (c1) VALUES ('1b') ON DUPLICATE KEY UPDATE cnt=cnt+1;
128
 
SELECT * FROM t1;
129
 
c1      cnt
130
 
1a      2
131
 
DROP TABLE t1;
132
 
CREATE TABLE t1(c1 CHAR(2), UNIQUE (c1(1)), cnt INT DEFAULT 1)
133
 
ENGINE=INNODB;
134
 
INSERT INTO t1 (c1) VALUES ('1a');
135
 
SELECT * FROM t1;
136
 
c1      cnt
137
 
1a      1
138
 
INSERT INTO t1 (c1) VALUES ('1b') ON DUPLICATE KEY UPDATE cnt=cnt+1;
139
 
SELECT * FROM t1;
140
 
c1      cnt
141
 
1a      2
142
 
DROP TABLE t1;
143
 
CREATE TABLE t1 (
144
 
a1 decimal(10,0) DEFAULT NULL,
145
 
a2 blob,
146
 
a4 blob,
147
 
a5 char(175) DEFAULT NULL,
148
 
a6 timestamp NOT NULL DEFAULT NOW(),
149
 
a7 blob,
150
 
INDEX idx (a6,a7(239),a5)
151
 
) ENGINE=InnoDB;
152
 
EXPLAIN SELECT a4 FROM t1 WHERE
153
 
a6=NULL AND
154
 
a4='UNcT5pIde4I6c2SheTo4gt92OV1jgJCVkXmzyf325R1DwLURkbYHwhydANIZMbKTgdcR5xS';
155
 
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
156
 
1       SIMPLE  NULL    NULL    NULL    NULL    NULL    NULL    NULL    Impossible WHERE noticed after reading const tables
157
 
EXPLAIN SELECT t1.a4 FROM t1, t1 t WHERE
158
 
t.a6=t.a6 AND t1.a6=NULL AND
159
 
t1.a4='UNcT5pIde4I6c2SheTo4gt92OV1jgJCVkXmzyf325R1DwLURkbYHwhydANIZMbKTgdcR5xS';
160
 
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
161
 
1       SIMPLE  NULL    NULL    NULL    NULL    NULL    NULL    NULL    Impossible WHERE noticed after reading const tables
162
 
DROP TABLE t1;
163
 
create temporary table t1m (a int) engine = MEMORY;
164
 
create table t1i (a int);
165
 
create temporary table t2m (a int) engine = MEMORY;
166
 
create table t2i (a int);
167
 
insert into t2m values (5);
168
 
insert into t2i values (5);
169
 
select 1, min(a) from t1i where a=99;
170
 
1       min(a)
171
 
1       NULL
172
 
select 1, min(a) from t1i where 1=99;
173
 
1       min(a)
174
 
1       NULL
175
 
select 1, min(1) from t1i where a=99;
176
 
1       min(1)
177
 
1       NULL
178
 
select 1, min(1) from t1i where 1=99;
179
 
1       min(1)
180
 
1       NULL
181
 
select 1, max(a) from t1i where a=99;
182
 
1       max(a)
183
 
1       NULL
184
 
select 1, max(a) from t1i where 1=99;
185
 
1       max(a)
186
 
1       NULL
187
 
select 1, max(1) from t1i where a=99;
188
 
1       max(1)
189
 
1       NULL
190
 
select 1, max(1) from t1i where 1=99;
191
 
1       max(1)
192
 
1       NULL
193
 
explain select count(*), min(7), max(7) from t1m, t1i;
194
 
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
195
 
1       SIMPLE  t1m     system  NULL    NULL    NULL    NULL    0       const row not found
196
 
1       SIMPLE  t1i     ALL     NULL    NULL    NULL    NULL    1       
197
 
select count(*), min(7), max(7) from t1m, t1i;
198
 
count(*)        min(7)  max(7)
199
 
0       NULL    NULL
200
 
explain select count(*), min(7), max(7) from t1m, t2i;
201
 
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
202
 
1       SIMPLE  t1m     system  NULL    NULL    NULL    NULL    0       const row not found
203
 
1       SIMPLE  t2i     ALL     NULL    NULL    NULL    NULL    1       
204
 
select count(*), min(7), max(7) from t1m, t2i;
205
 
count(*)        min(7)  max(7)
206
 
0       NULL    NULL
207
 
explain select count(*), min(7), max(7) from t2m, t1i;
208
 
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
209
 
1       SIMPLE  t2m     system  NULL    NULL    NULL    NULL    1       
210
 
1       SIMPLE  t1i     ALL     NULL    NULL    NULL    NULL    1       
211
 
select count(*), min(7), max(7) from t2m, t1i;
212
 
count(*)        min(7)  max(7)
213
 
0       NULL    NULL
214
 
drop table t1m, t1i, t2m, t2i;
215
 
create TEMPORARY table t1 (
216
 
a1 char(64), a2 char(64), b char(16), c char(16) not null, d char(16), dummy char(64) default ' '
217
 
) ENGINE = MEMORY;
218
 
insert into t1 (a1, a2, b, c, d) values
219
 
('a','a','a','a111','xy1'),('a','a','a','b111','xy2'),('a','a','a','c111','xy3'),('a','a','a','d111','xy4'),
220
 
('a','a','b','e112','xy1'),('a','a','b','f112','xy2'),('a','a','b','g112','xy3'),('a','a','b','h112','xy4'),
221
 
('a','b','a','i121','xy1'),('a','b','a','j121','xy2'),('a','b','a','k121','xy3'),('a','b','a','l121','xy4'),
222
 
('a','b','b','m122','xy1'),('a','b','b','n122','xy2'),('a','b','b','o122','xy3'),('a','b','b','p122','xy4'),
223
 
('b','a','a','a211','xy1'),('b','a','a','b211','xy2'),('b','a','a','c211','xy3'),('b','a','a','d211','xy4'),
224
 
('b','a','b','e212','xy1'),('b','a','b','f212','xy2'),('b','a','b','g212','xy3'),('b','a','b','h212','xy4'),
225
 
('b','b','a','i221','xy1'),('b','b','a','j221','xy2'),('b','b','a','k221','xy3'),('b','b','a','l221','xy4'),
226
 
('b','b','b','m222','xy1'),('b','b','b','n222','xy2'),('b','b','b','o222','xy3'),('b','b','b','p222','xy4'),
227
 
('c','a','a','a311','xy1'),('c','a','a','b311','xy2'),('c','a','a','c311','xy3'),('c','a','a','d311','xy4'),
228
 
('c','a','b','e312','xy1'),('c','a','b','f312','xy2'),('c','a','b','g312','xy3'),('c','a','b','h312','xy4'),
229
 
('c','b','a','i321','xy1'),('c','b','a','j321','xy2'),('c','b','a','k321','xy3'),('c','b','a','l321','xy4'),
230
 
('c','b','b','m322','xy1'),('c','b','b','n322','xy2'),('c','b','b','o322','xy3'),('c','b','b','p322','xy4'),
231
 
('d','a','a','a411','xy1'),('d','a','a','b411','xy2'),('d','a','a','c411','xy3'),('d','a','a','d411','xy4'),
232
 
('d','a','b','e412','xy1'),('d','a','b','f412','xy2'),('d','a','b','g412','xy3'),('d','a','b','h412','xy4'),
233
 
('d','b','a','i421','xy1'),('d','b','a','j421','xy2'),('d','b','a','k421','xy3'),('d','b','a','l421','xy4'),
234
 
('d','b','b','m422','xy1'),('d','b','b','n422','xy2'),('d','b','b','o422','xy3'),('d','b','b','p422','xy4'),
235
 
('a','a','a','a111','xy1'),('a','a','a','b111','xy2'),('a','a','a','c111','xy3'),('a','a','a','d111','xy4'),
236
 
('a','a','b','e112','xy1'),('a','a','b','f112','xy2'),('a','a','b','g112','xy3'),('a','a','b','h112','xy4'),
237
 
('a','b','a','i121','xy1'),('a','b','a','j121','xy2'),('a','b','a','k121','xy3'),('a','b','a','l121','xy4'),
238
 
('a','b','b','m122','xy1'),('a','b','b','n122','xy2'),('a','b','b','o122','xy3'),('a','b','b','p122','xy4'),
239
 
('b','a','a','a211','xy1'),('b','a','a','b211','xy2'),('b','a','a','c211','xy3'),('b','a','a','d211','xy4'),
240
 
('b','a','b','e212','xy1'),('b','a','b','f212','xy2'),('b','a','b','g212','xy3'),('b','a','b','h212','xy4'),
241
 
('b','b','a','i221','xy1'),('b','b','a','j221','xy2'),('b','b','a','k221','xy3'),('b','b','a','l221','xy4'),
242
 
('b','b','b','m222','xy1'),('b','b','b','n222','xy2'),('b','b','b','o222','xy3'),('b','b','b','p222','xy4'),
243
 
('c','a','a','a311','xy1'),('c','a','a','b311','xy2'),('c','a','a','c311','xy3'),('c','a','a','d311','xy4'),
244
 
('c','a','b','e312','xy1'),('c','a','b','f312','xy2'),('c','a','b','g312','xy3'),('c','a','b','h312','xy4'),
245
 
('c','b','a','i321','xy1'),('c','b','a','j321','xy2'),('c','b','a','k321','xy3'),('c','b','a','l321','xy4'),
246
 
('c','b','b','m322','xy1'),('c','b','b','n322','xy2'),('c','b','b','o322','xy3'),('c','b','b','p322','xy4'),
247
 
('d','a','a','a411','xy1'),('d','a','a','b411','xy2'),('d','a','a','c411','xy3'),('d','a','a','d411','xy4'),
248
 
('d','a','b','e412','xy1'),('d','a','b','f412','xy2'),('d','a','b','g412','xy3'),('d','a','b','h412','xy4'),
249
 
('d','b','a','i421','xy1'),('d','b','a','j421','xy2'),('d','b','a','k421','xy3'),('d','b','a','l421','xy4'),
250
 
('d','b','b','m422','xy1'),('d','b','b','n422','xy2'),('d','b','b','o422','xy3'),('d','b','b','p422','xy4');
251
 
create table t4 (
252
 
pk_col int auto_increment primary key, a1 char(64), a2 char(64), b char(16), c char(16) not null, d char(16), dummy char(64) default ' '
253
 
);
254
 
insert into t4 (a1, a2, b, c, d, dummy) select * from t1;
255
 
create index idx12672_0 on t4 (a1);
256
 
create index idx12672_1 on t4 (a1,a2,b,c);
257
 
create index idx12672_2 on t4 (a1,a2,b);
258
 
analyze table t4;
259
 
Table   Op      Msg_type        Msg_text
260
 
test.t4 analyze status  OK
261
 
select distinct a1 from t4 where pk_col not in (1,2,3,4);
262
 
a1
263
 
a
264
 
b
265
 
c
266
 
d
267
 
drop table t1,t4;
268
 
DROP TABLE IF EXISTS t2, t1;
269
 
CREATE TABLE t1 (i INT NOT NULL PRIMARY KEY) ENGINE= InnoDB;
270
 
CREATE TABLE t2 (
271
 
i INT NOT NULL,
272
 
FOREIGN KEY (i) REFERENCES t1 (i) ON DELETE NO ACTION
273
 
) ENGINE= InnoDB;
274
 
INSERT INTO t1 VALUES (1);
275
 
INSERT INTO t2 VALUES (1);
276
 
DELETE IGNORE FROM t1 WHERE i = 1;
277
 
Warnings:
278
 
Error   1451    Cannot delete or update a parent row: a foreign key constraint fails (`test`.`t2`, CONSTRAINT `t2_ibfk_1` FOREIGN KEY (`i`) REFERENCES `t1` (`i`) ON DELETE NO ACTION)
279
 
SELECT * FROM t1, t2;
280
 
i       i
281
 
1       1
282
 
DROP TABLE t2, t1;
283
 
End of 4.1 tests.
284
 
create table t1 (
285
 
a varchar(30), b varchar(30), primary key(a), key(b)
286
 
);
287
 
select distinct a from t1;
288
 
a
289
 
drop table t1;
290
 
create table t1(a int, key(a));
291
 
insert into t1 values(1);
292
 
select a, count(a) from t1 group by a with rollup;
293
 
a       count(a)
294
 
1       1
295
 
NULL    1
296
 
drop table t1;
297
 
create table t1 (f1 int, f2 char(1), primary key(f1,f2));
298
 
insert into t1 values ( 1,"e"),(2,"a"),( 3,"c"),(4,"d");
299
 
alter table t1 drop primary key, add primary key (f2, f1);
300
 
explain select distinct f1 a, f1 b from t1;
301
 
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
302
 
1       SIMPLE  t1      index   NULL    PRIMARY 10      NULL    4       Using index; Using temporary
303
 
explain select distinct f1, f2 from t1;
304
 
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
305
 
1       SIMPLE  t1      range   NULL    PRIMARY 10      NULL    3       Using index for group-by; Using temporary
306
 
drop table t1;
307
 
CREATE TABLE t1 (id int NOT NULL PRIMARY KEY, name varchar(20),
308
 
INDEX (name));
309
 
CREATE TABLE t2 (id int NOT NULL PRIMARY KEY, fkey int);
310
 
ALTER TABLE t2 ADD FOREIGN KEY (fkey) REFERENCES t2(id);
311
 
INSERT INTO t1 VALUES (1,'A1'),(2,'A2'),(3,'B');
312
 
INSERT INTO t2 VALUES (1,1),(2,2),(3,2),(4,3),(5,3);
313
 
EXPLAIN
314
 
SELECT COUNT(*) FROM t2 LEFT JOIN t1 ON t2.fkey = t1.id
315
 
WHERE t1.name LIKE 'A%';
316
 
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
317
 
1       SIMPLE  t1      index   PRIMARY,name    PRIMARY 4       NULL    3       Using where
318
 
1       SIMPLE  t2      ref     fkey    fkey    5       test.t1.id      1       Using index
319
 
EXPLAIN
320
 
SELECT COUNT(*) FROM t2 LEFT JOIN t1 ON t2.fkey = t1.id
321
 
WHERE t1.name LIKE 'A%' OR FALSE;
322
 
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
323
 
1       SIMPLE  t2      index   NULL    PRIMARY 4       NULL    5       
324
 
1       SIMPLE  t1      eq_ref  PRIMARY PRIMARY 4       test.t2.fkey    1       Using where
325
 
DROP TABLE t1,t2;
326
 
CREATE TABLE t1 (
327
 
id int NOT NULL,
328
 
name varchar(20) NOT NULL,
329
 
dept varchar(20) NOT NULL,
330
 
age int NOT NULL,
331
 
PRIMARY KEY (id),
332
 
INDEX (name,dept)
333
 
) ENGINE=InnoDB;
334
 
INSERT INTO t1(id, dept, age, name) VALUES
335
 
(3987, 'cs1', 10, 'rs1'), (3988, 'cs2', 20, 'rs1'), (3995, 'cs3', 10, 'rs2'),
336
 
(3996, 'cs4', 20, 'rs2'), (4003, 'cs5', 10, 'rs3'), (4004, 'cs6', 20, 'rs3'),
337
 
(4011, 'cs7', 10, 'rs4'), (4012, 'cs8', 20, 'rs4'), (4019, 'cs9', 10, 'rs5'),
338
 
(4020, 'cs10', 20, 'rs5'),(4027, 'cs11', 10, 'rs6'),(4028, 'cs12', 20, 'rs6');
339
 
EXPLAIN SELECT DISTINCT t1.name, t1.dept FROM t1 WHERE t1.name='rs5';
340
 
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
341
 
1       SIMPLE  t1      range   name    name    164     NULL    2       Using where; Using index for group-by
342
 
SELECT DISTINCT t1.name, t1.dept FROM t1 WHERE t1.name='rs5';
343
 
name    dept
344
 
rs5     cs10
345
 
rs5     cs9
346
 
DELETE FROM t1;
347
 
EXPLAIN SELECT DISTINCT t1.name, t1.dept FROM t1 WHERE t1.name='rs5';
348
 
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
349
 
1       SIMPLE  t1      range   name    name    164     NULL    2       Using where; Using index for group-by
350
 
SELECT DISTINCT t1.name, t1.dept FROM t1 WHERE t1.name='rs5';
351
 
name    dept
352
 
DROP TABLE t1;
353
 
drop table if exists t1;
354
 
show variables like 'innodb_rollback_on_timeout';
355
 
Variable_name   Value
356
 
innodb_rollback_on_timeout      OFF
357
 
create table t1 (a int not null primary key) engine = innodb;
358
 
insert into t1 values (1);
359
 
commit;
360
 
begin work;
361
 
insert into t1 values (2);
362
 
select * from t1;
363
 
a
364
 
1
365
 
2
366
 
begin work;
367
 
insert into t1 values (5);
368
 
select * from t1;
369
 
a
370
 
1
371
 
5
372
 
insert into t1 values (2);
373
 
ERROR HY000: Lock wait timeout exceeded; try restarting transaction
374
 
select * from t1;
375
 
a
376
 
1
377
 
5
378
 
commit;
379
 
select * from t1;
380
 
a
381
 
1
382
 
2
383
 
commit;
384
 
select * from t1;
385
 
a
386
 
1
387
 
2
388
 
5
389
 
drop table t1;
390
 
drop table if exists `test`;
391
 
Warnings:
392
 
Note    1051    Unknown table 'test'
393
 
CREATE TABLE `test` (`test1` varchar(3) NOT NULL,
394
 
`test2` varchar(4) NOT NULL,PRIMARY KEY  (`test1`))
395
 
ENGINE=InnoDB;
396
 
INSERT INTO `test` (`test1`, `test2`) VALUES ('tes', '5678');
397
 
select * from test;
398
 
test1   test2
399
 
tes     5678
400
 
INSERT INTO `test` (`test1`, `test2`) VALUES ('tes', '1234')
401
 
ON DUPLICATE KEY UPDATE `test2` = '1234';
402
 
select * from test;
403
 
test1   test2
404
 
tes     1234
405
 
flush tables;
406
 
select * from test;
407
 
test1   test2
408
 
tes     1234
409
 
drop table test;
410
 
drop table if exists t1;
411
 
show variables like 'innodb_rollback_on_timeout';
412
 
Variable_name   Value
413
 
innodb_rollback_on_timeout      OFF
414
 
create table t1 (a int not null primary key) engine = innodb;
415
 
insert into t1 values (1);
416
 
commit;
417
 
begin work;
418
 
insert into t1 values (2);
419
 
select * from t1;
420
 
a
421
 
1
422
 
2
423
 
begin work;
424
 
insert into t1 values (5);
425
 
select * from t1;
426
 
a
427
 
1
428
 
5
429
 
insert into t1 values (2);
430
 
ERROR HY000: Lock wait timeout exceeded; try restarting transaction
431
 
select * from t1;
432
 
a
433
 
1
434
 
5
435
 
commit;
436
 
select * from t1;
437
 
a
438
 
1
439
 
2
440
 
commit;
441
 
select * from t1;
442
 
a
443
 
1
444
 
2
445
 
5
446
 
drop table t1;
447
 
create table t1(
448
 
id int auto_increment,
449
 
c char(1) not null,
450
 
counter int not null default 1,
451
 
primary key (id),
452
 
unique key (c)
453
 
) engine=innodb;
454
 
insert into t1 (id, c) values
455
 
(NULL, 'a'),
456
 
(NULL, 'a')
457
 
on duplicate key update id = values(id), counter = counter + 1;
458
 
select * from t1;
459
 
id      c       counter
460
 
2       a       2
461
 
insert into t1 (id, c) values
462
 
(NULL, 'b')
463
 
on duplicate key update id = values(id), counter = counter + 1;
464
 
select * from t1;
465
 
id      c       counter
466
 
2       a       2
467
 
3       b       1
468
 
truncate table t1;
469
 
insert into t1 (id, c) values (NULL, 'a');
470
 
select * from t1;
471
 
id      c       counter
472
 
1       a       1
473
 
insert into t1 (id, c) values (NULL, 'b'), (NULL, 'b')
474
 
on duplicate key update id = values(id), c = values(c), counter = counter + 1;
475
 
select * from t1;
476
 
id      c       counter
477
 
1       a       1
478
 
3       b       2
479
 
insert into t1 (id, c) values (NULL, 'a')
480
 
on duplicate key update id = values(id), c = values(c), counter = counter + 1;
481
 
select * from t1;
482
 
id      c       counter
483
 
3       b       2
484
 
4       a       2
485
 
drop table t1;
486
 
create table t1(a int) engine=innodb;
487
 
alter table t1 comment '123';
488
 
show create table t1;
489
 
Table   Create Table
490
 
t1      CREATE TABLE `t1` (
491
 
  `a` int DEFAULT NULL
492
 
) ENGINE=InnoDB COMMENT='123'
493
 
drop table t1;
494
 
CREATE TABLE t1 (a CHAR(2), KEY (a)) ENGINE = InnoDB;
495
 
INSERT INTO t1 VALUES ('uk'),('bg');
496
 
SELECT * FROM t1 WHERE a = 'uk';
497
 
a
498
 
uk
499
 
DELETE FROM t1 WHERE a = 'uk';
500
 
SELECT * FROM t1 WHERE a = 'uk';
501
 
a
502
 
UPDATE t1 SET a = 'us' WHERE a = 'uk';
503
 
SELECT * FROM t1 WHERE a = 'uk';
504
 
a
505
 
CREATE TABLE t2 (a CHAR(2), KEY (a)) ENGINE = InnoDB;
506
 
INSERT INTO t2 VALUES ('uk'),('bg');
507
 
SELECT * FROM t2 WHERE a = 'uk';
508
 
a
509
 
uk
510
 
DELETE FROM t2 WHERE a = 'uk';
511
 
SELECT * FROM t2 WHERE a = 'uk';
512
 
a
513
 
INSERT INTO t2 VALUES ('uk');
514
 
UPDATE t2 SET a = 'us' WHERE a = 'uk';
515
 
SELECT * FROM t2 WHERE a = 'uk';
516
 
a
517
 
CREATE TEMPORARY TABLE t3 (a CHAR(2), KEY (a)) ENGINE = MyISAM;
518
 
INSERT INTO t3 VALUES ('uk'),('bg');
519
 
SELECT * FROM t3 WHERE a = 'uk';
520
 
a
521
 
uk
522
 
DELETE FROM t3 WHERE a = 'uk';
523
 
SELECT * FROM t3 WHERE a = 'uk';
524
 
a
525
 
INSERT INTO t3 VALUES ('uk');
526
 
UPDATE t3 SET a = 'us' WHERE a = 'uk';
527
 
SELECT * FROM t3 WHERE a = 'uk';
528
 
a
529
 
DROP TABLE t1,t2,t3;
530
 
CREATE TABLE t1 (
531
 
id int NOT NULL auto_increment PRIMARY KEY,
532
 
b int NOT NULL,
533
 
c datetime NOT NULL,
534
 
INDEX idx_b(b),
535
 
INDEX idx_c(c)
536
 
) ENGINE=InnoDB;
537
 
CREATE TABLE t2 (
538
 
b int NOT NULL auto_increment PRIMARY KEY,
539
 
c datetime NOT NULL
540
 
) ENGINE= InnoDB;
541
 
INSERT INTO t2(c) VALUES ('2007-01-01');
542
 
INSERT INTO t2(c) SELECT c FROM t2;
543
 
INSERT INTO t2(c) SELECT c FROM t2;
544
 
INSERT INTO t2(c) SELECT c FROM t2;
545
 
INSERT INTO t2(c) SELECT c FROM t2;
546
 
INSERT INTO t2(c) SELECT c FROM t2;
547
 
INSERT INTO t2(c) SELECT c FROM t2;
548
 
INSERT INTO t2(c) SELECT c FROM t2;
549
 
INSERT INTO t2(c) SELECT c FROM t2;
550
 
INSERT INTO t2(c) SELECT c FROM t2;
551
 
INSERT INTO t2(c) SELECT c FROM t2;
552
 
INSERT INTO t1(b,c) SELECT b,c FROM t2;
553
 
UPDATE t2 SET c='2007-01-02';
554
 
INSERT INTO t1(b,c) SELECT b,c FROM t2;
555
 
UPDATE t2 SET c='2007-01-03';
556
 
INSERT INTO t1(b,c) SELECT b,c FROM t2;
557
 
set @@sort_buffer_size=8192;
558
 
Warnings:
559
 
Error   1292    Truncated incorrect sort_buffer_size value: '8192'
560
 
SELECT COUNT(*) FROM t1;
561
 
COUNT(*)
562
 
3072
563
 
EXPLAIN 
564
 
SELECT COUNT(*) FROM t1 
565
 
WHERE (c >= '2007-01-02' AND c <= '2007-01-03') OR b >= 1;
566
 
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
567
 
1       SIMPLE  t1      ALL     idx_b,idx_c     NULL    NULL    NULL    #       Using where
568
 
SELECT COUNT(*) FROM t1 
569
 
WHERE (c >= '2007-01-02' AND c <= '2007-01-03') OR b >= 1;
570
 
COUNT(*)
571
 
3072
572
 
EXPLAIN 
573
 
SELECT COUNT(*) FROM t1 FORCE INDEX(idx_b, idx_c) 
574
 
WHERE (c >= '2007-01-02' AND c <= '2007-01-03') OR b >= 1;
575
 
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
576
 
1       SIMPLE  t1      index_merge     idx_b,idx_c     idx_c,idx_b     8,4     NULL    #       Using sort_union(idx_c,idx_b); Using where
577
 
SELECT COUNT(*) FROM t1 FORCE INDEX(idx_b, idx_c)
578
 
WHERE (c >= '2007-01-02' AND c <= '2007-01-03') OR b >= 1;
579
 
COUNT(*)
580
 
3072
581
 
set @@sort_buffer_size=default;
582
 
DROP TABLE t1,t2;
583
 
CREATE TABLE t1 (a int, b int);
584
 
insert into t1 values (1,1),(1,2);
585
 
CREATE TABLE t2 (primary key (a)) select * from t1;
586
 
ERROR 23000: Duplicate entry '1' for key 'PRIMARY'
587
 
drop table if exists t2;
588
 
Warnings:
589
 
Note    1051    Unknown table 't2'
590
 
CREATE TEMPORARY TABLE t2 (primary key (a)) select * from t1;
591
 
ERROR 23000: Duplicate entry '1' for key 'PRIMARY'
592
 
drop table if exists t2;
593
 
Warnings:
594
 
Note    1051    Unknown table 't2'
595
 
CREATE TABLE t2 (a int, b int, primary key (a));
596
 
BEGIN;
597
 
INSERT INTO t2 values(100,100);
598
 
CREATE TABLE IF NOT EXISTS t2 (primary key (a)) select * from t1;
599
 
ERROR 23000: Duplicate entry '1' for key 'PRIMARY'
600
 
SELECT * from t2;
601
 
a       b
602
 
100     100
603
 
ROLLBACK;
604
 
SELECT * from t2;
605
 
a       b
606
 
100     100
607
 
TRUNCATE table t2;
608
 
INSERT INTO t2 select * from t1;
609
 
ERROR 23000: Duplicate entry '1' for key 'PRIMARY'
610
 
SELECT * from t2;
611
 
a       b
612
 
drop table t2;
613
 
CREATE TEMPORARY TABLE t2 (a int, b int, primary key (a));
614
 
BEGIN;
615
 
INSERT INTO t2 values(100,100);
616
 
CREATE TEMPORARY TABLE IF NOT EXISTS t2 (primary key (a)) select * from t1;
617
 
ERROR 23000: Duplicate entry '1' for key 'PRIMARY'
618
 
SELECT * from t2;
619
 
a       b
620
 
100     100
621
 
COMMIT;
622
 
BEGIN;
623
 
INSERT INTO t2 values(101,101);
624
 
CREATE TEMPORARY TABLE IF NOT EXISTS t2 (primary key (a)) select * from t1;
625
 
ERROR 23000: Duplicate entry '1' for key 'PRIMARY'
626
 
SELECT * from t2;
627
 
a       b
628
 
100     100
629
 
101     101
630
 
ROLLBACK;
631
 
SELECT * from t2;
632
 
a       b
633
 
100     100
634
 
TRUNCATE table t2;
635
 
INSERT INTO t2 select * from t1;
636
 
ERROR 23000: Duplicate entry '1' for key 'PRIMARY'
637
 
SELECT * from t2;
638
 
a       b
639
 
drop table t1,t2;
640
 
create table t1(f1 varchar(800) not null, key(f1));
641
 
Warnings:
642
 
Warning 1071    Specified key was too long; max key length is 767 bytes
643
 
insert into t1 values('aaa');
644
 
drop table t1;
645
 
CREATE TABLE t1 (a INT PRIMARY KEY, b INT, c FLOAT, KEY b(b)) ENGINE = INNODB;
646
 
INSERT INTO t1 VALUES (    1 , 1              , 1);
647
 
INSERT INTO t1 SELECT  a + 1 , MOD(a + 1 , 20), 1 FROM t1;
648
 
INSERT INTO t1 SELECT  a + 2 , MOD(a + 2 , 20), 1 FROM t1;
649
 
INSERT INTO t1 SELECT  a + 4 , MOD(a + 4 , 20), 1 FROM t1;
650
 
INSERT INTO t1 SELECT  a + 8 , MOD(a + 8 , 20), 1 FROM t1;
651
 
INSERT INTO t1 SELECT  a + 16, MOD(a + 16, 20), 1 FROM t1;
652
 
INSERT INTO t1 SELECT  a + 32, MOD(a + 32, 20), 1 FROM t1;
653
 
INSERT INTO t1 SELECT  a + 64, MOD(a + 64, 20), 1 FROM t1;
654
 
EXPLAIN SELECT b, SUM(c) FROM t1 GROUP BY b;
655
 
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
656
 
1       SIMPLE  t1      index   NULL    b       5       NULL    128     
657
 
EXPLAIN SELECT SQL_BIG_RESULT b, SUM(c) FROM t1 GROUP BY b;
658
 
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
659
 
1       SIMPLE  t1      ALL     NULL    NULL    NULL    NULL    128     Using filesort
660
 
DROP TABLE t1;
661
 
drop table if exists t1;
662
 
show variables like 'innodb_rollback_on_timeout';
663
 
Variable_name   Value
664
 
innodb_rollback_on_timeout      OFF
665
 
create table t1 (a int not null primary key) engine = innodb;
666
 
insert into t1 values (1);
667
 
commit;
668
 
begin work;
669
 
insert into t1 values (2);
670
 
select * from t1;
671
 
a
672
 
1
673
 
2
674
 
begin work;
675
 
insert into t1 values (5);
676
 
select * from t1;
677
 
a
678
 
1
679
 
5
680
 
insert into t1 values (2);
681
 
ERROR HY000: Lock wait timeout exceeded; try restarting transaction
682
 
select * from t1;
683
 
a
684
 
1
685
 
5
686
 
commit;
687
 
select * from t1;
688
 
a
689
 
1
690
 
2
691
 
commit;
692
 
select * from t1;
693
 
a
694
 
1
695
 
2
696
 
5
697
 
drop table t1;
698
 
CREATE TABLE t1 (a int, b int, PRIMARY KEY (a), KEY bkey (b)) ENGINE=InnoDB;
699
 
INSERT INTO t1 VALUES (1,2),(3,2),(2,2),(4,2),(5,2),(6,2),(7,2),(8,2);
700
 
INSERT INTO t1 SELECT a + 8, 2 FROM t1;
701
 
INSERT INTO t1 SELECT a + 16, 1 FROM t1;
702
 
EXPLAIN SELECT * FROM t1 WHERE b=2 ORDER BY a;
703
 
id      1
704
 
select_type     SIMPLE
705
 
table   t1
706
 
type    ref
707
 
possible_keys   bkey
708
 
key     bkey
709
 
key_len 5
710
 
ref     const
711
 
rows    16
712
 
Extra   Using where; Using index
713
 
SELECT * FROM t1 WHERE b=2 ORDER BY a;
714
 
a       b
715
 
1       2
716
 
2       2
717
 
3       2
718
 
4       2
719
 
5       2
720
 
6       2
721
 
7       2
722
 
8       2
723
 
9       2
724
 
10      2
725
 
11      2
726
 
12      2
727
 
13      2
728
 
14      2
729
 
15      2
730
 
16      2
731
 
EXPLAIN SELECT * FROM t1 WHERE b BETWEEN 1 AND 2 ORDER BY a;
732
 
id      1
733
 
select_type     SIMPLE
734
 
table   t1
735
 
type    index
736
 
possible_keys   bkey
737
 
key     PRIMARY
738
 
key_len 4
739
 
ref     NULL
740
 
rows    32
741
 
Extra   Using where
742
 
SELECT * FROM t1 WHERE b BETWEEN 1 AND 2 ORDER BY a;
743
 
a       b
744
 
1       2
745
 
2       2
746
 
3       2
747
 
4       2
748
 
5       2
749
 
6       2
750
 
7       2
751
 
8       2
752
 
9       2
753
 
10      2
754
 
11      2
755
 
12      2
756
 
13      2
757
 
14      2
758
 
15      2
759
 
16      2
760
 
17      1
761
 
18      1
762
 
19      1
763
 
20      1
764
 
21      1
765
 
22      1
766
 
23      1
767
 
24      1
768
 
25      1
769
 
26      1
770
 
27      1
771
 
28      1
772
 
29      1
773
 
30      1
774
 
31      1
775
 
32      1
776
 
EXPLAIN SELECT * FROM t1 WHERE b BETWEEN 1 AND 2 ORDER BY b,a;
777
 
id      1
778
 
select_type     SIMPLE
779
 
table   t1
780
 
type    range
781
 
possible_keys   bkey
782
 
key     bkey
783
 
key_len 5
784
 
ref     NULL
785
 
rows    16
786
 
Extra   Using where; Using index
787
 
SELECT * FROM t1 WHERE b BETWEEN 1 AND 2 ORDER BY b,a;
788
 
a       b
789
 
17      1
790
 
18      1
791
 
19      1
792
 
20      1
793
 
21      1
794
 
22      1
795
 
23      1
796
 
24      1
797
 
25      1
798
 
26      1
799
 
27      1
800
 
28      1
801
 
29      1
802
 
30      1
803
 
31      1
804
 
32      1
805
 
1       2
806
 
2       2
807
 
3       2
808
 
4       2
809
 
5       2
810
 
6       2
811
 
7       2
812
 
8       2
813
 
9       2
814
 
10      2
815
 
11      2
816
 
12      2
817
 
13      2
818
 
14      2
819
 
15      2
820
 
16      2
821
 
CREATE TABLE t2 (a int, b int, c int, PRIMARY KEY (a), KEY bkey (b,c))
822
 
ENGINE=InnoDB;
823
 
INSERT INTO t2 VALUES (1,1,1),(3,1,1),(2,1,1),(4,1,1);
824
 
INSERT INTO t2 SELECT a + 4, 1, 1 FROM t2;
825
 
INSERT INTO t2 SELECT a + 8, 1, 1 FROM t2;
826
 
EXPLAIN SELECT * FROM t2 WHERE b=1 ORDER BY a;
827
 
id      1
828
 
select_type     SIMPLE
829
 
table   t2
830
 
type    index
831
 
possible_keys   bkey
832
 
key     PRIMARY
833
 
key_len 4
834
 
ref     NULL
835
 
rows    16
836
 
Extra   Using where; Using index
837
 
SELECT * FROM t2 WHERE b=1 ORDER BY a;
838
 
a       b       c
839
 
1       1       1
840
 
2       1       1
841
 
3       1       1
842
 
4       1       1
843
 
5       1       1
844
 
6       1       1
845
 
7       1       1
846
 
8       1       1
847
 
9       1       1
848
 
10      1       1
849
 
11      1       1
850
 
12      1       1
851
 
13      1       1
852
 
14      1       1
853
 
15      1       1
854
 
16      1       1
855
 
EXPLAIN SELECT * FROM t2 WHERE b=1 AND c=1 ORDER BY a;
856
 
id      1
857
 
select_type     SIMPLE
858
 
table   t2
859
 
type    ref
860
 
possible_keys   bkey
861
 
key     bkey
862
 
key_len 10
863
 
ref     const,const
864
 
rows    8
865
 
Extra   Using where; Using index
866
 
SELECT * FROM t2 WHERE b=1 AND c=1 ORDER BY a;
867
 
a       b       c
868
 
1       1       1
869
 
2       1       1
870
 
3       1       1
871
 
4       1       1
872
 
5       1       1
873
 
6       1       1
874
 
7       1       1
875
 
8       1       1
876
 
9       1       1
877
 
10      1       1
878
 
11      1       1
879
 
12      1       1
880
 
13      1       1
881
 
14      1       1
882
 
15      1       1
883
 
16      1       1
884
 
EXPLAIN SELECT * FROM t2 WHERE b=1 AND c=1 ORDER BY b,c,a;
885
 
id      1
886
 
select_type     SIMPLE
887
 
table   t2
888
 
type    ref
889
 
possible_keys   bkey
890
 
key     bkey
891
 
key_len 10
892
 
ref     const,const
893
 
rows    8
894
 
Extra   Using where; Using index
895
 
SELECT * FROM t2 WHERE b=1 AND c=1 ORDER BY b,c,a;
896
 
a       b       c
897
 
1       1       1
898
 
2       1       1
899
 
3       1       1
900
 
4       1       1
901
 
5       1       1
902
 
6       1       1
903
 
7       1       1
904
 
8       1       1
905
 
9       1       1
906
 
10      1       1
907
 
11      1       1
908
 
12      1       1
909
 
13      1       1
910
 
14      1       1
911
 
15      1       1
912
 
16      1       1
913
 
EXPLAIN SELECT * FROM t2 WHERE b=1 AND c=1 ORDER BY c,a;
914
 
id      1
915
 
select_type     SIMPLE
916
 
table   t2
917
 
type    ref
918
 
possible_keys   bkey
919
 
key     bkey
920
 
key_len 10
921
 
ref     const,const
922
 
rows    8
923
 
Extra   Using where; Using index
924
 
SELECT * FROM t2 WHERE b=1 AND c=1 ORDER BY c,a;
925
 
a       b       c
926
 
1       1       1
927
 
2       1       1
928
 
3       1       1
929
 
4       1       1
930
 
5       1       1
931
 
6       1       1
932
 
7       1       1
933
 
8       1       1
934
 
9       1       1
935
 
10      1       1
936
 
11      1       1
937
 
12      1       1
938
 
13      1       1
939
 
14      1       1
940
 
15      1       1
941
 
16      1       1
942
 
DROP TABLE t1,t2;
943
 
create table t1(a text) engine=innodb;
944
 
insert into t1 values('aaa');
945
 
alter table t1 add index(a(1024));
946
 
Warnings:
947
 
Warning 1071    Specified key was too long; max key length is 767 bytes
948
 
show create table t1;
949
 
Table   Create Table
950
 
t1      CREATE TABLE `t1` (
951
 
  `a` text,
952
 
  KEY `a` (`a`(191))
953
 
) ENGINE=InnoDB
954
 
drop table t1;
955
 
CREATE TABLE t1 (
956
 
a INT,
957
 
b INT,
958
 
KEY (b)
959
 
) ENGINE=InnoDB;
960
 
INSERT INTO t1 VALUES (1,10), (2,10), (2,20), (3,30);
961
 
START TRANSACTION;
962
 
SELECT * FROM t1 WHERE b=20 FOR UPDATE;
963
 
a       b
964
 
2       20
965
 
START TRANSACTION;
966
 
SELECT * FROM t1 WHERE b=10 ORDER BY A FOR UPDATE;
967
 
a       b
968
 
1       10
969
 
2       10
970
 
ROLLBACK;
971
 
ROLLBACK;
972
 
DROP TABLE t1;
973
 
CREATE TABLE t1(
974
 
a INT, 
975
 
b INT NOT NULL, 
976
 
c INT NOT NULL, 
977
 
d INT, 
978
 
UNIQUE KEY (c,b)
979
 
) engine=innodb;
980
 
INSERT INTO t1 VALUES (1,1,1,50), (1,2,3,40), (2,1,3,4);
981
 
EXPLAIN SELECT c,b,d FROM t1 GROUP BY c,b,d;
982
 
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
983
 
1       SIMPLE  t1      ALL     NULL    NULL    NULL    NULL    3       Using filesort
984
 
SELECT c,b,d FROM t1 GROUP BY c,b,d;
985
 
c       b       d
986
 
1       1       50
987
 
3       1       4
988
 
3       2       40
989
 
EXPLAIN SELECT c,b,d FROM t1 GROUP BY c,b,d ORDER BY NULL;
990
 
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
991
 
1       SIMPLE  t1      ALL     NULL    NULL    NULL    NULL    3       
992
 
SELECT c,b,d FROM t1 GROUP BY c,b,d ORDER BY NULL;
993
 
c       b       d
994
 
1       1       50
995
 
3       1       4
996
 
3       2       40
997
 
EXPLAIN SELECT c,b,d FROM t1 ORDER BY c,b,d;
998
 
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
999
 
1       SIMPLE  t1      ALL     NULL    NULL    NULL    NULL    3       Using filesort
1000
 
SELECT c,b,d FROM t1 ORDER BY c,b,d;
1001
 
c       b       d
1002
 
1       1       50
1003
 
3       1       4
1004
 
3       2       40
1005
 
EXPLAIN SELECT c,b,d FROM t1 GROUP BY c,b;
1006
 
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
1007
 
1       SIMPLE  t1      index   NULL    c       8       NULL    3       
1008
 
SELECT c,b,d FROM t1 GROUP BY c,b;
1009
 
c       b       d
1010
 
1       1       50
1011
 
3       1       4
1012
 
3       2       40
1013
 
EXPLAIN SELECT c,b   FROM t1 GROUP BY c,b;
1014
 
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
1015
 
1       SIMPLE  t1      index   NULL    c       8       NULL    3       Using index
1016
 
SELECT c,b   FROM t1 GROUP BY c,b;
1017
 
c       b
1018
 
1       1
1019
 
3       1
1020
 
3       2
1021
 
DROP TABLE t1;
1022
 
CREATE TABLE t1 (a INT, b INT, PRIMARY KEY (a), INDEX b (b)) ENGINE=InnoDB;
1023
 
INSERT INTO t1(a,b) VALUES (1,1), (2,2), (3,2);
1024
 
EXPLAIN SELECT * FROM t1 WHERE b=2 ORDER BY a ASC;
1025
 
id      1
1026
 
select_type     SIMPLE
1027
 
table   t1
1028
 
type    ref
1029
 
possible_keys   b
1030
 
key     b
1031
 
key_len 5
1032
 
ref     const
1033
 
rows    1
1034
 
Extra   Using where; Using index
1035
 
SELECT * FROM t1 WHERE b=2 ORDER BY a ASC;
1036
 
a       b
1037
 
2       2
1038
 
3       2
1039
 
EXPLAIN SELECT * FROM t1 WHERE b=2 ORDER BY a DESC;
1040
 
id      1
1041
 
select_type     SIMPLE
1042
 
table   t1
1043
 
type    ref
1044
 
possible_keys   b
1045
 
key     b
1046
 
key_len 5
1047
 
ref     const
1048
 
rows    1
1049
 
Extra   Using where; Using index
1050
 
SELECT * FROM t1 WHERE b=2 ORDER BY a DESC;
1051
 
a       b
1052
 
3       2
1053
 
2       2
1054
 
EXPLAIN SELECT * FROM t1 ORDER BY b ASC, a ASC;
1055
 
id      1
1056
 
select_type     SIMPLE
1057
 
table   t1
1058
 
type    index
1059
 
possible_keys   NULL
1060
 
key     b
1061
 
key_len 5
1062
 
ref     NULL
1063
 
rows    3
1064
 
Extra   Using index
1065
 
SELECT * FROM t1 ORDER BY b ASC, a ASC;
1066
 
a       b
1067
 
1       1
1068
 
2       2
1069
 
3       2
1070
 
EXPLAIN SELECT * FROM t1 ORDER BY b DESC, a DESC;
1071
 
id      1
1072
 
select_type     SIMPLE
1073
 
table   t1
1074
 
type    index
1075
 
possible_keys   NULL
1076
 
key     b
1077
 
key_len 5
1078
 
ref     NULL
1079
 
rows    3
1080
 
Extra   Using index
1081
 
SELECT * FROM t1 ORDER BY b DESC, a DESC;
1082
 
a       b
1083
 
3       2
1084
 
2       2
1085
 
1       1
1086
 
EXPLAIN SELECT * FROM t1 ORDER BY b ASC, a DESC;
1087
 
id      1
1088
 
select_type     SIMPLE
1089
 
table   t1
1090
 
type    index
1091
 
possible_keys   NULL
1092
 
key     PRIMARY
1093
 
key_len 4
1094
 
ref     NULL
1095
 
rows    3
1096
 
Extra   Using filesort
1097
 
SELECT * FROM t1 ORDER BY b ASC, a DESC;
1098
 
a       b
1099
 
1       1
1100
 
3       2
1101
 
2       2
1102
 
EXPLAIN SELECT * FROM t1 ORDER BY b DESC, a ASC;
1103
 
id      1
1104
 
select_type     SIMPLE
1105
 
table   t1
1106
 
type    index
1107
 
possible_keys   NULL
1108
 
key     PRIMARY
1109
 
key_len 4
1110
 
ref     NULL
1111
 
rows    3
1112
 
Extra   Using filesort
1113
 
SELECT * FROM t1 ORDER BY b DESC, a ASC;
1114
 
a       b
1115
 
2       2
1116
 
3       2
1117
 
1       1
1118
 
DROP TABLE t1;
1119
 
 
1120
 
#
1121
 
# Bug#27610: ALTER TABLE ROW_FORMAT=... does not rebuild the table.
1122
 
#
1123
 
 
1124
 
# - prepare;
1125
 
 
1126
 
DROP TABLE IF EXISTS t1;
1127
 
 
1128
 
CREATE TABLE t1(c INT)
1129
 
ENGINE = InnoDB
1130
 
ROW_FORMAT = COMPACT;
1131
 
 
1132
 
# - initial check;
1133
 
 
1134
 
SELECT table_schema, table_name, row_format
1135
 
FROM data_dictionary.TABLES
1136
 
WHERE table_schema = DATABASE() AND table_name = 't1';
1137
 
table_schema    table_name      row_format
1138
 
test    t1      COMPACT
1139
 
 
1140
 
# - change ROW_FORMAT and check;
1141
 
 
1142
 
ALTER TABLE t1 ROW_FORMAT = REDUNDANT;
1143
 
 
1144
 
SELECT table_schema, table_name, row_format
1145
 
FROM data_dictionary.TABLES
1146
 
WHERE table_schema = DATABASE() AND table_name = 't1';
1147
 
table_schema    table_name      row_format
1148
 
test    t1      REDUNDANT
1149
 
 
1150
 
# - that's it, cleanup.
1151
 
 
1152
 
DROP TABLE t1;
1153
 
create table t1(a char(10) not null, unique key aa(a(1)),
1154
 
b char(4) not null, unique key bb(b(4))) engine=innodb;
1155
 
desc t1;
1156
 
Field   Type    Null    Default Default_is_NULL On_Update
1157
 
a       VARCHAR FALSE           FALSE   
1158
 
b       VARCHAR FALSE           FALSE   
1159
 
show create table t1;
1160
 
Table   Create Table
1161
 
t1      CREATE TABLE `t1` (
1162
 
  `a` varchar(10) NOT NULL,
1163
 
  `b` varchar(4) NOT NULL,
1164
 
  UNIQUE KEY `bb` (`b`),
1165
 
  UNIQUE KEY `aa` (`a`(1))
1166
 
) ENGINE=InnoDB
1167
 
drop table t1;
1168
 
CREATE TABLE t1 (id int, type char(6), d int, INDEX idx(id,d)) ENGINE=InnoDB;
1169
 
INSERT INTO t1 VALUES 
1170
 
(191, 'member', 1), (NULL, 'member', 3), (NULL, 'member', 4), (201, 'member', 2);
1171
 
EXPLAIN SELECT * FROM t1 WHERE id=191 OR id IS NULL ORDER BY d;
1172
 
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
1173
 
1       SIMPLE  t1      ALL     idx     NULL    NULL    NULL    4       Using where; Using filesort
1174
 
SELECT * FROM t1 WHERE id=191 OR id IS NULL ORDER BY d;
1175
 
id      type    d
1176
 
191     member  1
1177
 
NULL    member  3
1178
 
NULL    member  4
1179
 
DROP TABLE t1;
1180
 
set @my_innodb_autoextend_increment=@@global.innodb_autoextend_increment;
1181
 
set global innodb_autoextend_increment=8;
1182
 
set global innodb_autoextend_increment=@my_innodb_autoextend_increment;
1183
 
set @my_innodb_commit_concurrency=@@global.innodb_commit_concurrency;
1184
 
set global innodb_commit_concurrency=0;
1185
 
set global innodb_commit_concurrency=@my_innodb_commit_concurrency;
1186
 
End of 5.0 tests
1187
 
CREATE TABLE `t2` (
1188
 
`k` int NOT NULL auto_increment,
1189
 
`a` int default NULL,
1190
 
`c` int default NULL,
1191
 
PRIMARY KEY  (`k`),
1192
 
UNIQUE KEY `idx_1` (`a`)
1193
 
);
1194
 
insert into t2 ( a ) values ( 6 ) on duplicate key update c =
1195
 
ifnull( c,
1196
 
0 ) + 1;
1197
 
insert into t2 ( a ) values ( 7 ) on duplicate key update c =
1198
 
ifnull( c,
1199
 
0 ) + 1;
1200
 
select last_insert_id();
1201
 
last_insert_id()
1202
 
2
1203
 
select * from t2;
1204
 
k       a       c
1205
 
1       6       NULL
1206
 
2       7       NULL
1207
 
insert into t2 ( a ) values ( 6 ) on duplicate key update c =
1208
 
ifnull( c,
1209
 
0 ) + 1;
1210
 
select last_insert_id();
1211
 
last_insert_id()
1212
 
2
1213
 
select last_insert_id(0);
1214
 
last_insert_id(0)
1215
 
0
1216
 
insert into t2 ( a ) values ( 6 ) on duplicate key update c =
1217
 
ifnull( c,
1218
 
0 ) + 1;
1219
 
select last_insert_id();
1220
 
last_insert_id()
1221
 
0
1222
 
select * from t2;
1223
 
k       a       c
1224
 
1       6       2
1225
 
2       7       NULL
1226
 
insert ignore into t2 values (null,6,1),(10,8,1);
1227
 
select last_insert_id();
1228
 
last_insert_id()
1229
 
0
1230
 
insert ignore into t2 values (null,6,1),(null,8,1),(null,15,1),(null,20,1);
1231
 
select last_insert_id();
1232
 
last_insert_id()
1233
 
11
1234
 
select * from t2;
1235
 
k       a       c
1236
 
1       6       2
1237
 
2       7       NULL
1238
 
10      8       1
1239
 
11      15      1
1240
 
12      20      1
1241
 
insert into t2 ( a ) values ( 6 ) on duplicate key update c =
1242
 
ifnull( c,
1243
 
0 ) + 1, k=last_insert_id(k);
1244
 
select last_insert_id();
1245
 
last_insert_id()
1246
 
1
1247
 
select * from t2;
1248
 
k       a       c
1249
 
1       6       3
1250
 
2       7       NULL
1251
 
10      8       1
1252
 
11      15      1
1253
 
12      20      1
1254
 
drop table t2;
1255
 
create table t1(f1 varchar(5) unique, f2 timestamp NOT NULL DEFAULT
1256
 
CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP);
1257
 
insert into t1(f1) values(1);
1258
 
select @a:=f2 from t1;
1259
 
@a:=f2 
1260
 
#
1261
 
update t1 set f1=1;
1262
 
select @b:=f2 from t1;
1263
 
@b:=f2 
1264
 
#
1265
 
select if(@a=@b,"ok","wrong");
1266
 
if(@a=@b,"ok","wrong")
1267
 
ok
1268
 
insert into t1(f1) values (1) on duplicate key update f1="1";
1269
 
select @b:=f2 from t1;
1270
 
@b:=f2 
1271
 
#
1272
 
select if(@a=@b,"ok","wrong");
1273
 
if(@a=@b,"ok","wrong")
1274
 
ok
1275
 
insert into t1(f1) select f1 from t1 on duplicate key update f1="1";
1276
 
select @b:=f2 from t1;
1277
 
@b:=f2 
1278
 
#
1279
 
select if(@a=@b,"ok","wrong");
1280
 
if(@a=@b,"ok","wrong")
1281
 
ok
1282
 
drop table t1;
1283
 
CREATE TABLE t1 (a INT NOT NULL, b INT NOT NULL, PRIMARY KEY (a,b)) engine=innodb;
1284
 
CREATE TABLE t2 (c INT NOT NULL, d INT NOT NULL, PRIMARY KEY (c,d),
1285
 
CONSTRAINT c2 FOREIGN KEY f2 (c) REFERENCES t1 (a,b) ON UPDATE NO ACTION) engine=innodb;
1286
 
ERROR 42000: Incorrect foreign key definition for 'f2': Key reference and table reference don't match
1287
 
CREATE TABLE t2 (c INT NOT NULL, d INT NOT NULL, PRIMARY KEY (c,d),
1288
 
CONSTRAINT c2 FOREIGN KEY (c) REFERENCES t1 (a,b) ON UPDATE NO ACTION) engine=innodb;
1289
 
ERROR 42000: Incorrect foreign key definition for 'c2': Key reference and table reference don't match
1290
 
CREATE TABLE t2 (c INT NOT NULL, d INT NOT NULL, PRIMARY KEY (c,d),
1291
 
CONSTRAINT c1 FOREIGN KEY c2 (c) REFERENCES t1 (a) ON DELETE NO ACTION,
1292
 
CONSTRAINT c2 FOREIGN KEY (c) REFERENCES t1 (a) ON UPDATE NO ACTION) engine=innodb;
1293
 
ALTER TABLE t2 DROP FOREIGN KEY c2;
1294
 
DROP TABLE t2;
1295
 
CREATE TABLE t2 (c INT NOT NULL, d INT NOT NULL, PRIMARY KEY (c,d),
1296
 
FOREIGN KEY (c) REFERENCES t1 (a,k) ON UPDATE NO ACTION) engine=innodb;
1297
 
ERROR 42000: Incorrect foreign key definition for 'foreign key without name': Key reference and table reference don't match
1298
 
CREATE TABLE t2 (c INT NOT NULL, d INT NOT NULL, PRIMARY KEY (c,d),
1299
 
FOREIGN KEY f1 (c) REFERENCES t1 (a,k) ON UPDATE NO ACTION) engine=innodb;
1300
 
ERROR 42000: Incorrect foreign key definition for 'f1': Key reference and table reference don't match
1301
 
CREATE TABLE t2 (c INT NOT NULL, d INT NOT NULL, PRIMARY KEY (c,d),
1302
 
CONSTRAINT c1 FOREIGN KEY f1 (c) REFERENCES t1 (a) ON DELETE NO ACTION,
1303
 
CONSTRAINT c2 FOREIGN KEY (c) REFERENCES t1 (a) ON UPDATE NO ACTION,
1304
 
FOREIGN KEY f3 (c) REFERENCES t1 (a) ON UPDATE NO ACTION,
1305
 
FOREIGN KEY (c) REFERENCES t1 (a) ON UPDATE NO ACTION) engine=innodb;
1306
 
SHOW CREATE TABLE t2;
1307
 
Table   Create Table
1308
 
t2      CREATE TABLE `t2` (
1309
 
  `c` int NOT NULL,
1310
 
  `d` int NOT NULL,
1311
 
  PRIMARY KEY (`c`,`d`),
1312
 
  CONSTRAINT `c1` FOREIGN KEY (`c`) REFERENCES `t1` (`a`) ON DELETE NO ACTION,
1313
 
  CONSTRAINT `c2` FOREIGN KEY (`c`) REFERENCES `t1` (`a`) ON UPDATE NO ACTION,
1314
 
  CONSTRAINT `t2_ibfk_1` FOREIGN KEY (`c`) REFERENCES `t1` (`a`) ON UPDATE NO ACTION,
1315
 
  CONSTRAINT `t2_ibfk_2` FOREIGN KEY (`c`) REFERENCES `t1` (`a`) ON UPDATE NO ACTION
1316
 
) ENGINE=InnoDB
1317
 
DROP TABLE t2;
1318
 
DROP TABLE t1;
1319
 
create table t1 (a int auto_increment primary key) engine=innodb;
1320
 
alter table t1 order by a;
1321
 
ERROR HY000: order_st BY ignored because there is a user-defined clustered index in the table 't1'
1322
 
drop table t1;
1323
 
CREATE TABLE t1
1324
 
(vid integer NOT NULL,
1325
 
tid integer NOT NULL,
1326
 
idx integer NOT NULL,
1327
 
name varchar(128) NOT NULL,
1328
 
type varchar(128) NULL,
1329
 
PRIMARY KEY(idx, vid, tid),
1330
 
UNIQUE(vid, tid, name)
1331
 
) ENGINE=InnoDB;
1332
 
INSERT INTO t1 VALUES
1333
 
(1,1,1,'pk',NULL),(2,1,1,'pk',NULL),(3,1,1,'pk',NULL),(4,1,1,'c1',NULL),
1334
 
(5,1,1,'pk',NULL),(1,1,2,'c1',NULL),(2,1,2,'c1',NULL),(3,1,2,'c1',NULL),
1335
 
(4,1,2,'c2',NULL),(5,1,2,'c1',NULL),(2,1,3,'c2',NULL),(3,1,3,'c2',NULL),
1336
 
(4,1,3,'pk',NULL),(5,1,3,'c2',NULL),
1337
 
(2,1,4,'c_extra',NULL),(3,1,4,'c_extra',NULL);
1338
 
EXPLAIN SELECT * FROM t1 WHERE tid = 1 AND vid = 3 ORDER BY idx DESC;
1339
 
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
1340
 
1       SIMPLE  t1      index   vid     PRIMARY 12      NULL    16      Using where
1341
 
SELECT * FROM t1 WHERE tid = 1 AND vid = 3 ORDER BY idx DESC;
1342
 
vid     tid     idx     name    type
1343
 
3       1       4       c_extra NULL
1344
 
3       1       3       c2      NULL
1345
 
3       1       2       c1      NULL
1346
 
3       1       1       pk      NULL
1347
 
DROP TABLE t1;
1348
 
DROP TABLE IF EXISTS t1;
1349
 
DROP TABLE IF EXISTS t2;
1350
 
CREATE TABLE t1(id INT PRIMARY KEY)
1351
 
ENGINE=innodb;
1352
 
CREATE TABLE t2(
1353
 
t1_id INT PRIMARY KEY,
1354
 
CONSTRAINT fk1 FOREIGN KEY (t1_id) REFERENCES t1(id))
1355
 
ENGINE=innodb;
1356
 
 
1357
 
ALTER TABLE t1 CHANGE id id2 INT;
1358
 
 
1359
 
DROP TABLE t2;
1360
 
DROP TABLE t1;
1361
 
End of 5.1 tests