~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to tests/r/pbxt/union.result

  • Committer: Monty Taylor
  • Date: 2008-11-07 00:15:51 UTC
  • mto: This revision was merged to the branch mainline in revision 579.
  • Revision ID: monty@inaugust.com-20081107001551-8vxb6sf1ti0i5p09
Cleaned up some headers for PCH.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
drop table if exists t1,t2,t3,t4,t5,t6;
2
 
CREATE TABLE t1 (a int not null, b char (10) not null);
3
 
insert into t1 values(1,'a'),(2,'b'),(3,'c'),(3,'c');
4
 
CREATE TABLE t2 (a int not null, b char (10) not null);
5
 
insert into t2 values (3,'c'),(4,'d'),(5,'f'),(6,'e');
6
 
select a,b from t1 union distinct select a,b from t2;
7
 
a       b
8
 
1       a
9
 
2       b
10
 
3       c
11
 
4       d
12
 
5       f
13
 
6       e
14
 
select a,b from t1 union all select a,b from t2;
15
 
a       b
16
 
1       a
17
 
2       b
18
 
3       c
19
 
3       c
20
 
3       c
21
 
4       d
22
 
5       f
23
 
6       e
24
 
select a,b from t1 union all select a,b from t2 order by b;
25
 
a       b
26
 
1       a
27
 
2       b
28
 
3       c
29
 
3       c
30
 
3       c
31
 
4       d
32
 
6       e
33
 
5       f
34
 
select a,b from t1 union all select a,b from t2 union select 7,'g';
35
 
a       b
36
 
1       a
37
 
2       b
38
 
3       c
39
 
4       d
40
 
5       f
41
 
6       e
42
 
7       g
43
 
select 0,'#' union select a,b from t1 union all select a,b from t2 union select 7,'gg';
44
 
0       #
45
 
0       #
46
 
1       a
47
 
2       b
48
 
3       c
49
 
4       d
50
 
5       f
51
 
6       e
52
 
7       gg
53
 
select a,b from t1 union select a,b from t1;
54
 
a       b
55
 
1       a
56
 
2       b
57
 
3       c
58
 
select 't1',b,count(*) from t1 group by b UNION select 't2',b,count(*) from t2 group by b;
59
 
t1      b       count(*)
60
 
t1      a       1
61
 
t1      b       1
62
 
t1      c       2
63
 
t2      c       1
64
 
t2      d       1
65
 
t2      e       1
66
 
t2      f       1
67
 
(select a,b from t1 limit 2)  union all (select a,b from t2 order by a) limit 4;
68
 
a       b
69
 
1       a
70
 
2       b
71
 
3       c
72
 
4       d
73
 
(select a,b from t1 limit 2)  union all (select a,b from t2 order by a limit 1);
74
 
a       b
75
 
1       a
76
 
2       b
77
 
3       c
78
 
(select a,b from t1 limit 2)  union all (select a,b from t2 order by a limit 1) order by b desc;
79
 
a       b
80
 
3       c
81
 
2       b
82
 
1       a
83
 
(select a,b from t1 limit 2)  union all (select a,b from t2 order by a limit 1) order by t1.b;
84
 
ERROR 42000: Table 't1' from one of the SELECTs cannot be used in global ORDER clause
85
 
explain extended (select a,b from t1 limit 2)  union all (select a,b from t2 order by a limit 1) order by b desc;
86
 
id      select_type     table   type    possible_keys   key     key_len ref     rows    filtered        Extra
87
 
1       PRIMARY t1      ALL     NULL    NULL    NULL    NULL    #       100.00  
88
 
2       UNION   t2      ALL     NULL    NULL    NULL    NULL    #       100.00  Using filesort
89
 
NULL    UNION RESULT    <union1,2>      ALL     NULL    NULL    NULL    NULL    #       NULL    Using filesort
90
 
Warnings:
91
 
Note    1003    (select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b` from `test`.`t1` limit 2) union all (select `test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b` from `test`.`t2` order by `test`.`t2`.`a` limit 1) order by `b` desc
92
 
(select sql_calc_found_rows  a,b from t1 limit 2)  union all (select a,b from t2 order by a) limit 2;
93
 
a       b
94
 
1       a
95
 
2       b
96
 
select found_rows();
97
 
found_rows()
98
 
6
99
 
select sql_calc_found_rows  a,b from t1  union all select a,b from t2 limit 2;
100
 
a       b
101
 
1       a
102
 
2       b
103
 
select found_rows();
104
 
found_rows()
105
 
8
106
 
explain select a,b from t1 union all select a,b from t2;
107
 
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
108
 
1       PRIMARY t1      ALL     NULL    NULL    NULL    NULL    #       
109
 
2       UNION   t2      ALL     NULL    NULL    NULL    NULL    #       
110
 
NULL    UNION RESULT    <union1,2>      ALL     NULL    NULL    NULL    NULL    #       
111
 
explain select xx from t1 union select 1;
112
 
ERROR 42S22: Unknown column 'xx' in 'field list'
113
 
explain select a,b from t1 union select 1;
114
 
ERROR 21000: The used SELECT statements have a different number of columns
115
 
explain select 1 union select a,b from t1 union select 1;
116
 
ERROR 21000: The used SELECT statements have a different number of columns
117
 
explain select a,b from t1 union select 1 limit 0;
118
 
ERROR 21000: The used SELECT statements have a different number of columns
119
 
select a,b from t1 into outfile 'skr' union select a,b from t2;
120
 
ERROR HY000: Incorrect usage of UNION and INTO
121
 
select a,b from t1 order by a union select a,b from t2;
122
 
ERROR HY000: Incorrect usage of UNION and order_st BY
123
 
insert into t3 select a from t1 order by a union select a from t2;
124
 
ERROR HY000: Incorrect usage of UNION and order_st BY
125
 
create table t3 select a,b from t1 union select a from t2;
126
 
ERROR 21000: The used SELECT statements have a different number of columns
127
 
select a,b from t1 union select a from t2;
128
 
ERROR 21000: The used SELECT statements have a different number of columns
129
 
select * from t1 union select a from t2;
130
 
ERROR 21000: The used SELECT statements have a different number of columns
131
 
select a from t1 union select * from t2;
132
 
ERROR 21000: The used SELECT statements have a different number of columns
133
 
select * from t1 union select SQL_BUFFER_RESULT * from t2;
134
 
ERROR 42000: Incorrect usage/placement of 'SQL_BUFFER_RESULT'
135
 
create table t3 select a,b from t1 union all select a,b from t2;
136
 
insert into t3 select a,b from t1 union all select a,b from t2;
137
 
replace into t3 select a,b as c from t1 union all select a,b from t2;
138
 
drop table t1,t2,t3;
139
 
select * union select 1;
140
 
ERROR HY000: No tables used
141
 
select 1 as a,(select a union select a);
142
 
a       (select a union select a)
143
 
1       1
144
 
(select 1) union (select 2) order by 0;
145
 
ERROR 42S22: Unknown column '0' in 'order clause'
146
 
SELECT @a:=1 UNION SELECT @a:=@a+1;
147
 
@a:=1
148
 
1
149
 
2
150
 
(SELECT 1) UNION (SELECT 2) ORDER BY (SELECT a);
151
 
ERROR 42S22: Unknown column 'a' in 'field list'
152
 
(SELECT 1,3) UNION (SELECT 2,1) ORDER BY (SELECT 2);
153
 
1       3
154
 
1       3
155
 
2       1
156
 
CREATE TABLE t1 (
157
 
`pseudo` char(35) NOT NULL default '',
158
 
`pseudo1` char(35) NOT NULL default '',
159
 
`same` int NOT NULL default '1',
160
 
PRIMARY KEY  (`pseudo1`),
161
 
KEY `pseudo` (`pseudo`)
162
 
);
163
 
INSERT INTO t1 (pseudo,pseudo1,same) VALUES ('joce', 'testtt', 1),('joce', 'tsestset', 1),('dekad', 'joce', 1);
164
 
SELECT pseudo FROM t1 WHERE pseudo1='joce' UNION SELECT pseudo FROM t1 WHERE pseudo='joce';
165
 
pseudo
166
 
dekad
167
 
joce
168
 
SELECT pseudo1 FROM t1 WHERE pseudo1='joce' UNION SELECT pseudo1 FROM t1 WHERE pseudo='joce';
169
 
pseudo1
170
 
joce
171
 
testtt
172
 
tsestset
173
 
SELECT * FROM t1 WHERE pseudo1='joce' UNION SELECT * FROM t1 WHERE pseudo='joce' order by pseudo desc,pseudo1 desc;
174
 
pseudo  pseudo1 same
175
 
joce    tsestset        1
176
 
joce    testtt  1
177
 
dekad   joce    1
178
 
SELECT pseudo1 FROM t1 WHERE pseudo='joce' UNION SELECT pseudo FROM t1 WHERE pseudo1='joce';
179
 
pseudo1
180
 
testtt
181
 
tsestset
182
 
dekad
183
 
SELECT pseudo1 FROM t1 WHERE pseudo='joce' UNION ALL SELECT pseudo FROM t1 WHERE pseudo1='joce';
184
 
pseudo1
185
 
testtt
186
 
tsestset
187
 
dekad
188
 
SELECT pseudo1 FROM t1 WHERE pseudo='joce' UNION SELECT 1;
189
 
pseudo1
190
 
testtt
191
 
tsestset
192
 
1
193
 
drop table t1;
194
 
create table t1 (a int);
195
 
create table t2 (a int);
196
 
insert into t1 values (1),(2),(3),(4),(5);
197
 
insert into t2 values (11),(12),(13),(14),(15);
198
 
(select * from t1 limit 2) union (select * from t2 limit 3) limit 4;
199
 
a
200
 
1
201
 
2
202
 
11
203
 
12
204
 
(select * from t1 limit 2) union (select * from t2 limit 3);
205
 
a
206
 
1
207
 
2
208
 
11
209
 
12
210
 
13
211
 
(select * from t1 limit 2) union (select * from t2 limit 20,3);
212
 
a
213
 
1
214
 
2
215
 
set SQL_SELECT_LIMIT=2;
216
 
(select * from t1 limit 1) union (select * from t2 limit 3);
217
 
a
218
 
1
219
 
11
220
 
set SQL_SELECT_LIMIT=DEFAULT;
221
 
drop table t1,t2;
222
 
CREATE TABLE t1 (
223
 
cid int NOT NULL default '0',
224
 
cv varchar(190) NOT NULL default '',
225
 
PRIMARY KEY  (cid),
226
 
UNIQUE KEY cv (cv)
227
 
) ;
228
 
INSERT INTO t1 VALUES (8,'dummy');
229
 
CREATE TABLE t2 (
230
 
cid int NOT NULL auto_increment,
231
 
cap varchar(255) NOT NULL default '',
232
 
PRIMARY KEY  (cid),
233
 
KEY cap (cap)
234
 
) ;
235
 
CREATE TABLE t3 (
236
 
gid int NOT NULL auto_increment,
237
 
gn varchar(255) NOT NULL default '',
238
 
must int default NULL,
239
 
PRIMARY KEY  (gid),
240
 
KEY gn (gn)
241
 
) ;
242
 
INSERT INTO t3 VALUES (1,'V1',NULL);
243
 
CREATE TABLE t4 (
244
 
uid bigint NOT NULL default '0',
245
 
gid bigint default NULL,
246
 
rid bigint default NULL,
247
 
cid bigint default NULL,
248
 
UNIQUE KEY m (uid,gid,rid,cid),
249
 
KEY uid (uid),
250
 
KEY rid (rid),
251
 
KEY cid (cid),
252
 
KEY container (gid,rid,cid)
253
 
) ;
254
 
INSERT INTO t4 VALUES (1,1,NULL,NULL);
255
 
CREATE TABLE t5 (
256
 
rid bigint NOT NULL auto_increment,
257
 
rl varchar(255) NOT NULL default '',
258
 
PRIMARY KEY  (rid),
259
 
KEY rl (rl)
260
 
) ;
261
 
CREATE TABLE t6 (
262
 
uid bigint NOT NULL auto_increment,
263
 
un varchar(190) NOT NULL default '',
264
 
uc int NOT NULL default '0',
265
 
PRIMARY KEY  (uid),
266
 
UNIQUE KEY nc (un,uc),
267
 
KEY un (un)
268
 
) ;
269
 
INSERT INTO t6 VALUES (1,'test',8);
270
 
SELECT t4.uid, t5.rl, t3.gn as g1, t4.cid, t4.gid as gg FROM t3, t6, t1, t4 left join t5 on t5.rid = t4.rid left join t2 on t2.cid = t4.cid WHERE t3.gid=t4.gid AND t6.uid = t4.uid AND t6.uc  = t1.cid AND t1.cv = "dummy" AND t6.un = "test";
271
 
uid     rl      g1      cid     gg
272
 
1       NULL    V1      NULL    1
273
 
SELECT t4.uid, t5.rl, t3.gn as g1, t4.cid, t4.gid as gg FROM t3, t6, t1, t4 left join t5 on t5.rid = t4.rid left join t2 on t2.cid = t4.cid WHERE t3.gid=t4.gid AND t6.uid = t4.uid AND t3.must IS NOT NULL AND t6.uc  = t1.cid AND t1.cv = "dummy" AND t6.un = "test";
274
 
uid     rl      g1      cid     gg
275
 
(SELECT t4.uid, t5.rl, t3.gn as g1, t4.cid, t4.gid as gg FROM t3, t6, t1, t4 left join t5 on t5.rid = t4.rid left join t2 on t2.cid = t4.cid WHERE t3.gid=t4.gid AND t6.uid = t4.uid AND t3.must IS NOT NULL AND t6.uc  = t1.cid AND t1.cv = "dummy" AND t6.un = "test") UNION (SELECT t4.uid, t5.rl, t3.gn as g1, t4.cid, t4.gid as gg FROM t3, t6, t1, t4 left join t5 on t5.rid = t4.rid left join t2 on t2.cid = t4.cid WHERE t3.gid=t4.gid AND t6.uid = t4.uid AND t6.uc  = t1.cid AND t1.cv = "dummy" AND t6.un = "test");
276
 
uid     rl      g1      cid     gg
277
 
1       NULL    V1      NULL    1
278
 
drop table t1,t2,t3,t4,t5,t6;
279
 
CREATE TABLE t1 (a int not null, b char (10) not null);
280
 
insert into t1 values(1,'a'),(2,'b'),(3,'c'),(3,'c');
281
 
CREATE TABLE t2 (a int not null, b char (10) not null);
282
 
insert into t2 values (3,'c'),(4,'d'),(5,'f'),(6,'e');
283
 
create table t3 select a,b from t1 union select a,b from t2;
284
 
create table t4 (select a,b from t1) union (select a,b from t2) limit 2;
285
 
insert into  t4 select a,b from t1 union select a,b from t2;
286
 
insert into  t3 (select a,b from t1) union (select a,b from t2) limit 2;
287
 
select * from t3;
288
 
a       b
289
 
1       a
290
 
2       b
291
 
3       c
292
 
4       d
293
 
5       f
294
 
6       e
295
 
1       a
296
 
2       b
297
 
select * from t4;
298
 
a       b
299
 
1       a
300
 
2       b
301
 
1       a
302
 
2       b
303
 
3       c
304
 
4       d
305
 
5       f
306
 
6       e
307
 
drop table t1,t2,t3,t4;
308
 
create table t1 (a int);
309
 
insert into t1 values (1),(2),(3);
310
 
create table t2 (a int);
311
 
insert into t2 values (3),(4),(5);
312
 
(SELECT SQL_CALC_FOUND_ROWS * FROM t1) UNION all (SELECT * FROM t2) LIMIT 1;
313
 
a
314
 
1
315
 
select found_rows();
316
 
found_rows()
317
 
6
318
 
(SELECT SQL_CALC_FOUND_ROWS * FROM t1 LIMIT 1) UNION all (SELECT * FROM t2) LIMIT 2;
319
 
a
320
 
1
321
 
3
322
 
select found_rows();
323
 
found_rows()
324
 
4
325
 
(SELECT SQL_CALC_FOUND_ROWS * FROM t1 LIMIT 1) UNION all (SELECT * FROM t2);
326
 
a
327
 
1
328
 
3
329
 
4
330
 
5
331
 
select found_rows();
332
 
found_rows()
333
 
4
334
 
(SELECT SQL_CALC_FOUND_ROWS * FROM t1) UNION all (SELECT * FROM t2 LIMIT 1);
335
 
a
336
 
1
337
 
2
338
 
3
339
 
3
340
 
select found_rows();
341
 
found_rows()
342
 
4
343
 
(SELECT SQL_CALC_FOUND_ROWS * FROM t1 LIMIT 1) UNION SELECT * FROM t2 LIMIT 1;
344
 
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your Drizzle server version for the right syntax to use near '' at line 1
345
 
SELECT SQL_CALC_FOUND_ROWS * FROM t1 LIMIT 1 UNION all SELECT * FROM t2 LIMIT 2;
346
 
a
347
 
1
348
 
3
349
 
select found_rows();
350
 
found_rows()
351
 
6
352
 
SELECT SQL_CALC_FOUND_ROWS * FROM t1 UNION all SELECT * FROM t2 LIMIT 2;
353
 
a
354
 
1
355
 
2
356
 
select found_rows();
357
 
found_rows()
358
 
6
359
 
SELECT SQL_CALC_FOUND_ROWS * FROM t1 UNION SELECT * FROM t2 LIMIT 2;
360
 
a
361
 
1
362
 
2
363
 
select found_rows();
364
 
found_rows()
365
 
6
366
 
SELECT SQL_CALC_FOUND_ROWS * FROM t1 UNION SELECT * FROM t2 LIMIT 100;
367
 
a
368
 
1
369
 
2
370
 
3
371
 
4
372
 
5
373
 
select found_rows();
374
 
found_rows()
375
 
6
376
 
SELECT SQL_CALC_FOUND_ROWS * FROM t1 LIMIT 100 UNION SELECT * FROM t2;
377
 
a
378
 
1
379
 
2
380
 
3
381
 
4
382
 
5
383
 
select found_rows();
384
 
found_rows()
385
 
5
386
 
SELECT SQL_CALC_FOUND_ROWS * FROM t1 LIMIT 1 UNION SELECT * FROM t2;
387
 
a
388
 
1
389
 
3
390
 
4
391
 
5
392
 
select found_rows();
393
 
found_rows()
394
 
6
395
 
SELECT SQL_CALC_FOUND_ROWS * FROM t1 LIMIT 1 UNION SELECT * FROM t2 LIMIT 2;
396
 
a
397
 
1
398
 
3
399
 
select found_rows();
400
 
found_rows()
401
 
6
402
 
SELECT SQL_CALC_FOUND_ROWS * FROM t1 UNION SELECT * FROM t2 LIMIT 2,2;
403
 
a
404
 
3
405
 
4
406
 
select found_rows();
407
 
found_rows()
408
 
6
409
 
SELECT SQL_CALC_FOUND_ROWS * FROM t1 limit 2,2 UNION SELECT * FROM t2;
410
 
a
411
 
3
412
 
4
413
 
5
414
 
select found_rows();
415
 
found_rows()
416
 
5
417
 
SELECT * FROM t1 UNION SELECT * FROM t2 ORDER BY a desc LIMIT 1;
418
 
a
419
 
5
420
 
(SELECT * FROM t1 ORDER by a) UNION ALL (SELECT * FROM t2 ORDER BY a) ORDER BY A desc LIMIT 4;
421
 
a
422
 
5
423
 
4
424
 
3
425
 
3
426
 
(SELECT * FROM t1) UNION all (SELECT SQL_CALC_FOUND_ROWS * FROM t2) LIMIT 1;
427
 
ERROR 42000: Incorrect usage/placement of 'SQL_CALC_FOUND_ROWS'
428
 
create temporary table t1 select a from t1 union select a from t2;
429
 
drop temporary table t1;
430
 
create table t1 select a from t1 union select a from t2;
431
 
ERROR HY000: You can't specify target table 't1' for update in FROM clause
432
 
select a from t1 union select a from t2 order by t2.a;
433
 
ERROR 42S22: Unknown column 't2.a' in 'order clause'
434
 
drop table t1,t2;
435
 
select length(version()) > 1 as `*` UNION select 2;
436
 
*
437
 
1
438
 
2
439
 
create table t1 (a int);
440
 
insert into t1 values (0), (3), (1), (2);
441
 
explain (select * from t1) union (select * from t1) order by a;
442
 
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
443
 
1       PRIMARY t1      ALL     NULL    NULL    NULL    NULL    4       
444
 
2       UNION   t1      ALL     NULL    NULL    NULL    NULL    4       
445
 
NULL    UNION RESULT    <union1,2>      ALL     NULL    NULL    NULL    NULL    NULL    Using filesort
446
 
drop table t1;
447
 
CREATE TEMPORARY TABLE t1 (  id int default '0') ENGINE=MyISAM;
448
 
INSERT INTO t1 (id) VALUES("1");
449
 
CREATE TEMPORARY TABLE t2 ( id int default '0',  id_master int default '0',  text1 varchar(5) default NULL,  text2 varchar(5) default NULL) ENGINE=MyISAM;
450
 
INSERT INTO t2 (id, id_master, text1, text2) VALUES("1", "1",
451
 
"foo1", "bar1");
452
 
INSERT INTO t2 (id, id_master, text1, text2) VALUES("2", "1",
453
 
"foo2", "bar2");
454
 
INSERT INTO t2 (id, id_master, text1, text2) VALUES("3", "1", NULL,
455
 
"bar3");
456
 
INSERT INTO t2 (id, id_master, text1, text2) VALUES("4", "1",
457
 
"foo4", "bar4");
458
 
SELECT 1 AS id_master, 1 AS id, NULL AS text1, 'ABCDE' AS text2 UNION SELECT id_master, t2.id, text1, text2 FROM t1 LEFT JOIN t2 ON t1.id = t2.id_master;
459
 
id_master       id      text1   text2
460
 
1       1       NULL    ABCDE
461
 
1       1       foo1    bar1
462
 
1       2       foo2    bar2
463
 
1       3       NULL    bar3
464
 
1       4       foo4    bar4
465
 
SELECT 1 AS id_master, 1 AS id, 'ABCDE' AS text1, 'ABCDE' AS text2 UNION SELECT id_master, t2.id, text1, text2 FROM t1 LEFT JOIN t2 ON t1.id = t2.id_master;
466
 
id_master       id      text1   text2
467
 
1       1       ABCDE   ABCDE
468
 
1       1       foo1    bar1
469
 
1       2       foo2    bar2
470
 
1       3       NULL    bar3
471
 
1       4       foo4    bar4
472
 
drop table if exists t1,t2;
473
 
create table t1 (a int not null primary key auto_increment, b int, key(b));
474
 
create table t2 (a int not null primary key auto_increment, b int);
475
 
insert into t1 (b) values (1),(2),(2),(3);
476
 
insert into t2 (b) values (10),(11),(12),(13);
477
 
explain extended (select * from t1 where a=1) union (select * from t2 where a=1);
478
 
id      select_type     table   type    possible_keys   key     key_len ref     rows    filtered        Extra
479
 
1       PRIMARY t1      const   PRIMARY PRIMARY 4       const   1       100.00  
480
 
2       UNION   t2      const   PRIMARY PRIMARY 4       const   1       100.00  
481
 
NULL    UNION RESULT    <union1,2>      ALL     NULL    NULL    NULL    NULL    NULL    NULL    
482
 
Warnings:
483
 
Note    1003    (select '1' AS `a`,'1' AS `b` from `test`.`t1` where ('1' = 1)) union (select '1' AS `a`,'10' AS `b` from `test`.`t2` where ('1' = 1))
484
 
(select * from t1 where a=5) union (select * from t2 where a=1);
485
 
a       b
486
 
1       10
487
 
(select * from t1 where a=5 and a=6) union (select * from t2 where a=1);
488
 
a       b
489
 
1       10
490
 
(select t1.a,t1.b from t1,t2 where t1.a=5) union (select * from t2 where a=1);
491
 
a       b
492
 
1       10
493
 
(select * from t1 where a=1) union (select t1.a,t2.a from t1,t2 where t1.a=t2.a);
494
 
a       b
495
 
1       1
496
 
2       2
497
 
3       3
498
 
4       4
499
 
explain (select * from t1 where a=1 and b=10) union (select straight_join t1.a,t2.a from t1,t2 where t1.a=t2.a);
500
 
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
501
 
1       PRIMARY NULL    NULL    NULL    NULL    NULL    NULL    NULL    Impossible WHERE noticed after reading const tables
502
 
2       UNION   t1      index   PRIMARY PRIMARY 4       NULL    4       Using index
503
 
2       UNION   t2      index   PRIMARY PRIMARY 4       NULL    4       Using where; Using index; Using join buffer
504
 
NULL    UNION RESULT    <union1,2>      ALL     NULL    NULL    NULL    NULL    NULL    
505
 
explain (select * from t1 where a=1) union (select * from t1 where b=1);
506
 
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
507
 
1       PRIMARY t1      const   PRIMARY PRIMARY 4       const   1       
508
 
2       UNION   t1      ref     b       b       5       const   1       
509
 
NULL    UNION RESULT    <union1,2>      ALL     NULL    NULL    NULL    NULL    NULL    
510
 
drop table t1,t2;
511
 
create table t1 (   id int not null auto_increment, primary key (id)   ,user_name text );
512
 
create table t2 (    id int not null auto_increment, primary key (id)   ,group_name text );
513
 
create table t3 (    id int not null auto_increment, primary key (id)   ,user_id int   ,index user_idx (user_id)   ,foreign key (user_id) references t1(id)   ,group_id int   ,index group_idx (group_id)   ,foreign key (group_id) references t2(id) );
514
 
insert into t1 (user_name) values ('Tester');
515
 
insert into t2 (group_name) values ('Group A');
516
 
insert into t2 (group_name) values ('Group B');
517
 
insert into t3 (user_id, group_id) values (1,1);
518
 
select 1 'is_in_group', a.user_name, c.group_name, b.id from t1 a, t3 b, t2 c where a.id = b.user_id and b.group_id = c.id UNION  select 0 'is_in_group', a.user_name, c.group_name, null from t1 a, t2 c;
519
 
is_in_group     user_name       group_name      id
520
 
1       Tester  Group A 1
521
 
0       Tester  Group A NULL
522
 
0       Tester  Group B NULL
523
 
drop table t3, t1, t2;
524
 
create table t1 (mat_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, matintnum CHAR(6) NOT NULL, test INT NULL);
525
 
create table t2 (mat_id INT NOT NULL, pla_id INT NOT NULL);
526
 
insert into t1 values (NULL, 'a', 1), (NULL, 'b', 2), (NULL, 'c', 3), (NULL, 'd', 4), (NULL, 'e', 5), (NULL, 'f', 6), (NULL, 'g', 7), (NULL, 'h', 8), (NULL, 'i', 9);
527
 
insert into t2 values (1, 100), (1, 101), (1, 102), (2, 100), (2, 103), (2, 104), (3, 101), (3, 102), (3, 105);
528
 
SELECT mp.pla_id, MIN(m1.matintnum) AS matintnum FROM t2 mp INNER JOIN t1 m1 ON mp.mat_id=m1.mat_id GROUP BY mp.pla_id union SELECT 0, 0;
529
 
pla_id  matintnum
530
 
100     a
531
 
101     a
532
 
102     a
533
 
103     b
534
 
104     b
535
 
105     c
536
 
0       0
537
 
drop table t1, t2;
538
 
create table t1 SELECT "a" as a UNION select "aa" as a;
539
 
select * from t1;
540
 
a
541
 
a
542
 
show create table t1;
543
 
Table   Create Table
544
 
t1      CREATE TABLE `t1` (
545
 
  `a` varchar(1) NOT NULL DEFAULT ''
546
 
) ENGINE=DEFAULT
547
 
drop table t1;
548
 
create table t1 SELECT 12 as a UNION select "aa" as a;
549
 
select * from t1;
550
 
a
551
 
12
552
 
aa
553
 
show create table t1;
554
 
Table   Create Table
555
 
t1      CREATE TABLE `t1` (
556
 
  `a` varbinary(4) NOT NULL DEFAULT ''
557
 
) ENGINE=DEFAULT
558
 
drop table t1;
559
 
create table t1 SELECT 12 as a UNION select 12.2 as a;
560
 
select * from t1;
561
 
a
562
 
12.0
563
 
12.2
564
 
show create table t1;
565
 
Table   Create Table
566
 
t1      CREATE TABLE `t1` (
567
 
  `a` decimal(3,1) NOT NULL DEFAULT '0.0'
568
 
) ENGINE=DEFAULT
569
 
drop table t1;
570
 
create table t2 (it1 int, it2 int not null, i int not null, ib int, f float, d double, da date, dt datetime, sc char(10), sv varchar(10), b blob, tx text);
571
 
insert into t2 values (NULL, 1, 3, 4, 1.5, 2.5, '1972-10-22', '1972-10-22 11:50:00', 'testc', 'testv', 'tetetetetest', 'teeeeeeeeeeeest');
572
 
create table t1 SELECT it2 from t2 UNION select it1 from t2;
573
 
select * from t1;
574
 
it2
575
 
1
576
 
NULL
577
 
show create table t1;
578
 
Table   Create Table
579
 
t1      CREATE TABLE `t1` (
580
 
  `it2` int DEFAULT NULL
581
 
) ENGINE=DEFAULT
582
 
drop table t1;
583
 
create table t1 SELECT it2 from t2 UNION select i from t2;
584
 
select * from t1;
585
 
it2
586
 
1
587
 
3
588
 
show create table t1;
589
 
Table   Create Table
590
 
t1      CREATE TABLE `t1` (
591
 
  `it2` int NOT NULL DEFAULT '0'
592
 
) ENGINE=DEFAULT
593
 
drop table t1;
594
 
create table t1 SELECT i from t2 UNION select f from t2;
595
 
select * from t1;
596
 
i
597
 
3
598
 
1.5
599
 
show create table t1;
600
 
Table   Create Table
601
 
t1      CREATE TABLE `t1` (
602
 
  `i` double DEFAULT NULL
603
 
) ENGINE=DEFAULT
604
 
drop table t1;
605
 
create table t1 SELECT f from t2 UNION select d from t2;
606
 
select * from t1;
607
 
f
608
 
1.5
609
 
2.5
610
 
show create table t1;
611
 
Table   Create Table
612
 
t1      CREATE TABLE `t1` (
613
 
  `f` double DEFAULT NULL
614
 
) ENGINE=DEFAULT
615
 
drop table t1;
616
 
create table t1 SELECT ib from t2 UNION select f from t2;
617
 
select * from t1;
618
 
ib
619
 
4
620
 
1.5
621
 
show create table t1;
622
 
Table   Create Table
623
 
t1      CREATE TABLE `t1` (
624
 
  `ib` double DEFAULT NULL
625
 
) ENGINE=DEFAULT
626
 
drop table t1;
627
 
create table t1 SELECT ib from t2 UNION select d from t2;
628
 
select * from t1;
629
 
ib
630
 
4
631
 
2.5
632
 
show create table t1;
633
 
Table   Create Table
634
 
t1      CREATE TABLE `t1` (
635
 
  `ib` double DEFAULT NULL
636
 
) ENGINE=DEFAULT
637
 
drop table t1;
638
 
create table t1 SELECT f from t2 UNION select da from t2;
639
 
select * from t1;
640
 
f
641
 
1.5
642
 
1972-10-22
643
 
show create table t1;
644
 
Table   Create Table
645
 
t1      CREATE TABLE `t1` (
646
 
  `f` varbinary(22) DEFAULT NULL
647
 
) ENGINE=DEFAULT
648
 
drop table t1;
649
 
create table t1 SELECT da from t2 UNION select dt from t2;
650
 
select * from t1;
651
 
da
652
 
1972-10-22 00:00:00
653
 
1972-10-22 11:50:00
654
 
show create table t1;
655
 
Table   Create Table
656
 
t1      CREATE TABLE `t1` (
657
 
  `da` datetime DEFAULT NULL
658
 
) ENGINE=DEFAULT
659
 
drop table t1;
660
 
create table t1 SELECT dt from t2 UNION select trim(sc) from t2;
661
 
select trim(dt) from t1;
662
 
trim(dt)
663
 
1972-10-22 11:50:00
664
 
testc
665
 
show create table t1;
666
 
Table   Create Table
667
 
t1      CREATE TABLE `t1` (
668
 
  `dt` varbinary(19) DEFAULT NULL
669
 
) ENGINE=DEFAULT
670
 
drop table t1;
671
 
create table t1 SELECT dt from t2 UNION select sv from t2;
672
 
select * from t1;
673
 
dt
674
 
1972-10-22 11:50:00
675
 
testv
676
 
show create table t1;
677
 
Table   Create Table
678
 
t1      CREATE TABLE `t1` (
679
 
  `dt` varbinary(40) DEFAULT NULL
680
 
) ENGINE=DEFAULT
681
 
drop table t1;
682
 
create table t1 SELECT sc from t2 UNION select sv from t2;
683
 
select * from t1;
684
 
sc
685
 
testc
686
 
testv
687
 
show create table t1;
688
 
Table   Create Table
689
 
t1      CREATE TABLE `t1` (
690
 
  `sc` varchar(10) DEFAULT NULL
691
 
) ENGINE=DEFAULT
692
 
drop table t1;
693
 
create table t1 SELECT dt from t2 UNION select b from t2;
694
 
select * from t1;
695
 
dt
696
 
1972-10-22 11:50:00
697
 
tetetetetest
698
 
show create table t1;
699
 
Table   Create Table
700
 
t1      CREATE TABLE `t1` (
701
 
  `dt` blob
702
 
) ENGINE=DEFAULT
703
 
drop table t1;
704
 
create table t1 SELECT sv from t2 UNION select b from t2;
705
 
select * from t1;
706
 
sv
707
 
testv
708
 
tetetetetest
709
 
show create table t1;
710
 
Table   Create Table
711
 
t1      CREATE TABLE `t1` (
712
 
  `sv` blob
713
 
) ENGINE=DEFAULT
714
 
drop table t1;
715
 
create table t1 SELECT i from t2 UNION select d from t2 UNION select b from t2;
716
 
select * from t1;
717
 
i
718
 
3
719
 
2.5
720
 
tetetetetest
721
 
show create table t1;
722
 
Table   Create Table
723
 
t1      CREATE TABLE `t1` (
724
 
  `i` blob
725
 
) ENGINE=DEFAULT
726
 
drop table t1;
727
 
create table t1 SELECT sv from t2 UNION select tx from t2;
728
 
select * from t1;
729
 
sv
730
 
testv
731
 
teeeeeeeeeeeest
732
 
show create table t1;
733
 
Table   Create Table
734
 
t1      CREATE TABLE `t1` (
735
 
  `sv` text
736
 
) ENGINE=DEFAULT
737
 
drop table t1;
738
 
create table t1 SELECT b from t2 UNION select tx from t2;
739
 
select * from t1;
740
 
b
741
 
tetetetetest
742
 
teeeeeeeeeeeest
743
 
show create table t1;
744
 
Table   Create Table
745
 
t1      CREATE TABLE `t1` (
746
 
  `b` blob
747
 
) ENGINE=DEFAULT
748
 
drop table t1,t2;
749
 
create table t1 select 1 union select -1;
750
 
select * from t1;
751
 
1
752
 
1
753
 
-1
754
 
show create table t1;
755
 
Table   Create Table
756
 
t1      CREATE TABLE `t1` (
757
 
  `1` bigint NOT NULL DEFAULT '0'
758
 
) ENGINE=DEFAULT
759
 
drop table t1;
760
 
create table t1 select _latin1"test" union select _latin1"testt" ;
761
 
ERROR 42S22: Unknown column '_latin1' in 'field list'
762
 
create table t1 select _utf8"test" union select _utf8"testt" ;
763
 
ERROR 42S22: Unknown column '_utf8' in 'field list'
764
 
create table t1 select "test" union select "testt" ;
765
 
show create table t1;
766
 
Table   Create Table
767
 
t1      CREATE TABLE `t1` (
768
 
  `test` varchar(4) NOT NULL DEFAULT ''
769
 
) ENGINE=DEFAULT
770
 
drop table t1;
771
 
create table t1 (s char(200));
772
 
insert into t1 values (repeat("1",200));
773
 
create table t2 select * from t1;
774
 
insert into t2 select * from t1;
775
 
insert into t1 select * from t2;
776
 
insert into t2 select * from t1;
777
 
insert into t1 select * from t2;
778
 
insert into t2 select * from t1;
779
 
set local tmp_table_size=1024;
780
 
select count(*) from (select * from t1 union all select * from t2 order by 1) b;
781
 
count(*)
782
 
21
783
 
select count(*) from t1;
784
 
count(*)
785
 
8
786
 
select count(*) from t2;
787
 
count(*)
788
 
13
789
 
drop table t1,t2;
790
 
set local tmp_table_size=default;
791
 
create table t1 (a int, index (a), b int);
792
 
insert t1 values (1,1),(2,2),(3,3),(4,4),(5,5);
793
 
insert t1 select a+1, a+b from t1;
794
 
insert t1 select a+1, a+b from t1;
795
 
insert t1 select a+1, a+b from t1;
796
 
insert t1 select a+1, a+b from t1;
797
 
insert t1 select a+1, a+b from t1;
798
 
FLUSH STATUS;
799
 
show status like 'Slow_queries';
800
 
Variable_name   Value
801
 
Slow_queries    0
802
 
select count(*) from t1 where a=7;
803
 
count(*)
804
 
26
805
 
show status like 'Slow_queries';
806
 
Variable_name   Value
807
 
Slow_queries    0
808
 
select count(*) from t1 where b=13;
809
 
count(*)
810
 
10
811
 
show status like 'Slow_queries';
812
 
Variable_name   Value
813
 
Slow_queries    0
814
 
select count(*) from t1 where b=13 union select count(*) from t1 where a=7;
815
 
count(*)
816
 
10
817
 
26
818
 
show status like 'Slow_queries';
819
 
Variable_name   Value
820
 
Slow_queries    0
821
 
select count(*) from t1 where a=7 union select count(*) from t1 where b=13;
822
 
count(*)
823
 
26
824
 
10
825
 
show status like 'Slow_queries';
826
 
Variable_name   Value
827
 
Slow_queries    0
828
 
flush status;
829
 
select a from t1 where b not in (1,2,3) union select a from t1 where b not in (4,5,6);
830
 
a
831
 
4
832
 
5
833
 
3
834
 
6
835
 
7
836
 
8
837
 
9
838
 
10
839
 
1
840
 
2
841
 
show status like 'Slow_queries';
842
 
Variable_name   Value
843
 
Slow_queries    0
844
 
drop table t1;
845
 
create table t1 (   RID int not null default '0',   IID int not null default '0',    nada varchar(50)  not null,NAME varchar(50) not null,PHONE varchar(50) not null);
846
 
insert into t1 ( RID,IID,nada,NAME,PHONE) values (1, 1, 'main', 'a', '111'), (2, 1, 'main', 'b', '222'), (3, 1, 'main', 'c', '333'), (4, 1, 'main', 'd', '444'), (5, 1, 'main', 'e', '555'), (6, 2, 'main', 'c', '333'), (7, 2, 'main', 'd', '454'), (8, 2, 'main', 'e', '555'), (9, 2, 'main', 'f', '666'), (10, 2, 'main', 'g', '777');
847
 
select A.NAME, A.PHONE, B.NAME, B.PHONE from t1 A left join t1 B on A.NAME = B.NAME and B.IID = 2 where A.IID = 1 and (A.PHONE <> B.PHONE or B.NAME is null) union select A.NAME, A.PHONE, B.NAME, B.PHONE from t1 B left join t1 A on B.NAME = A.NAME and A.IID = 1 where B.IID = 2 and (A.PHONE <> B.PHONE or A.NAME is null);
848
 
NAME    PHONE   NAME    PHONE
849
 
a       111     NULL    NULL
850
 
b       222     NULL    NULL
851
 
d       444     d       454
852
 
NULL    NULL    f       666
853
 
NULL    NULL    g       777
854
 
drop  table t1;
855
 
create table t1 (col1 int, col2 int);
856
 
insert into t1 values (1,2),(3,4),(5,6),(7,8),(9,10);
857
 
select col1 n from t1 union select col2 n from t1 order by n;
858
 
n
859
 
1
860
 
2
861
 
3
862
 
4
863
 
5
864
 
6
865
 
7
866
 
8
867
 
9
868
 
10
869
 
alter table t1 add index myindex (col2);
870
 
select col1 n from t1 union select col2 n from t1 order by n;
871
 
n
872
 
1
873
 
2
874
 
3
875
 
4
876
 
5
877
 
6
878
 
7
879
 
8
880
 
9
881
 
10
882
 
drop  table t1;
883
 
create table t1 (i int);
884
 
insert into t1 values (1);
885
 
select * from t1 UNION select * from t1;
886
 
i
887
 
1
888
 
select * from t1 UNION ALL select * from t1;
889
 
i
890
 
1
891
 
1
892
 
select * from t1 UNION select * from t1 UNION ALL select * from t1;
893
 
i
894
 
1
895
 
1
896
 
drop table t1;
897
 
select 1 as a union all select 1 union all select 2 union select 1 union all select 2;
898
 
a
899
 
1
900
 
2
901
 
2
902
 
set sql_select_limit=1;
903
 
select 1 union select 2;
904
 
1
905
 
1
906
 
(select 1) union (select 2);
907
 
1
908
 
1
909
 
(select 1) union (select 2) union (select 3) limit 2;
910
 
1
911
 
1
912
 
2
913
 
set sql_select_limit=default;
914
 
create table t1 (a int);
915
 
insert into t1 values (100), (1);
916
 
create table t2 (a int);
917
 
insert into t2 values (100);
918
 
select a from t1 union select a from t2 order by a;
919
 
a
920
 
1
921
 
100
922
 
SET SQL_SELECT_LIMIT=1;
923
 
select a from t1 union select a from t2 order by a;
924
 
a
925
 
1
926
 
drop table t1, t2;
927
 
set sql_select_limit=default;
928
 
CREATE TABLE t1 (i int default NULL,c char(1) default NULL,KEY i (i));
929
 
CREATE TABLE t2 (i int default NULL,c char(1) default NULL,KEY i (i));
930
 
explain (select * from t1) union (select * from t2) order by not_existing_column;
931
 
ERROR 42S22: Unknown column 'not_existing_column' in 'order clause'
932
 
drop table t1, t2;
933
 
CREATE TABLE t1 (uid int);
934
 
INSERT INTO t1 SELECT 150;
935
 
SELECT 'a' UNION SELECT uid FROM t1;
936
 
a
937
 
a
938
 
150
939
 
drop table t1;
940
 
CREATE TABLE t1 ( ID1 int NOT NULL DEFAULT '0' , ID2 datetime, DATA1 varchar(10) , DATA2 double(5,4) , DATA3 datetime , PRIMARY KEY (ID1,ID2));
941
 
CREATE TABLE t2 ( ID int NOT NULL DEFAULT '0' , DATA1 timestamp NULL, PRIMARY KEY (ID));
942
 
(SELECT * FROM t1 AS PARTITIONED, t2 AS
943
 
PARTITIONED_B WHERE PARTITIONED_B.ID=PARTITIONED.ID1) UNION
944
 
(SELECT * FROM t1 AS PARTITIONED, t2 AS
945
 
PARTITIONED_B WHERE PARTITIONED_B.ID=PARTITIONED.ID1) UNION
946
 
(SELECT * FROM t1 AS PARTITIONED, t2 AS
947
 
PARTITIONED_B WHERE PARTITIONED_B.ID=PARTITIONED.ID1) UNION
948
 
(SELECT * FROM t1 AS PARTITIONED, t2 AS
949
 
PARTITIONED_B WHERE PARTITIONED_B.ID=PARTITIONED.ID1) UNION
950
 
(SELECT * FROM t1 AS PARTITIONED, t2 AS
951
 
PARTITIONED_B WHERE PARTITIONED_B.ID=PARTITIONED.ID1) UNION
952
 
(SELECT * FROM t1 AS PARTITIONED, t2 AS
953
 
PARTITIONED_B WHERE PARTITIONED_B.ID=PARTITIONED.ID1) UNION
954
 
(SELECT * FROM t1 AS PARTITIONED, t2 AS
955
 
PARTITIONED_B WHERE PARTITIONED_B.ID=PARTITIONED.ID1) UNION
956
 
(SELECT * FROM t1 AS PARTITIONED, t2 AS
957
 
PARTITIONED_B WHERE PARTITIONED_B.ID=PARTITIONED.ID1) UNION
958
 
(SELECT * FROM t1 AS PARTITIONED, t2 AS
959
 
PARTITIONED_B WHERE PARTITIONED_B.ID=PARTITIONED.ID1) UNION
960
 
(SELECT * FROM t1 AS PARTITIONED, t2 AS
961
 
PARTITIONED_B WHERE PARTITIONED_B.ID=PARTITIONED.ID1) UNION
962
 
(SELECT * FROM t1 AS PARTITIONED, t2 AS
963
 
PARTITIONED_B WHERE PARTITIONED_B.ID=PARTITIONED.ID1) UNION
964
 
(SELECT * FROM t1 AS PARTITIONED, t2 AS
965
 
PARTITIONED_B WHERE PARTITIONED_B.ID=PARTITIONED.ID1);
966
 
ID1     ID2     DATA1   DATA2   DATA3   ID      DATA1
967
 
drop table t1,t2;
968
 
create table t1 (a ENUM('Yes', 'No') NOT NULL);
969
 
create table t2 (a ENUM('aaa', 'bbb') NOT NULL);
970
 
insert into t1 values ('No');
971
 
insert into t2 values ('bbb');
972
 
create table t3 (a ENUM('Yes', 'No') NOT NULL);
973
 
create table t4 (a ENUM('aaa', 'bbb') NOT NULL);
974
 
insert into t3 values (1);
975
 
insert into t4 values (3);
976
 
ERROR HY000: Received an invalid enum value '3'.
977
 
select "1" as a union select a from t1;
978
 
a
979
 
1
980
 
No
981
 
select a as a from t1 union select "1";
982
 
a
983
 
No
984
 
1
985
 
select a as a from t2 union select a from t1;
986
 
a
987
 
bbb
988
 
No
989
 
select "1" as a union select a from t3;
990
 
a
991
 
1
992
 
Yes
993
 
select a as a from t3 union select "1";
994
 
a
995
 
Yes
996
 
1
997
 
select a as a from t4 union select a from t3;
998
 
a
999
 
Yes
1000
 
select a as a from t1 union select a from t4;
1001
 
a
1002
 
No
1003
 
drop table t1,t2,t3,t4;
1004
 
create table t1 as
1005
 
(select 'test') union
1006
 
(select 'TEST') union
1007
 
(select 'TeST');
1008
 
show create table t1;
1009
 
Table   Create Table
1010
 
t1      CREATE TABLE `t1` (
1011
 
  `test` varchar(4) NOT NULL DEFAULT ''
1012
 
) ENGINE=DEFAULT
1013
 
select count(*) from t1;
1014
 
count(*)
1015
 
1
1016
 
drop table t1;
1017
 
create table t1 as
1018
 
(select 'test' collate utf8_bin) union
1019
 
(select 'TEST') union
1020
 
(select 'TeST');
1021
 
show create table t1;
1022
 
Table   Create Table
1023
 
t1      CREATE TABLE `t1` (
1024
 
  `'test' collate utf8_bin` varchar(4) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL
1025
 
) ENGINE=DEFAULT
1026
 
select count(*) from t1;
1027
 
count(*)
1028
 
3
1029
 
drop table t1;
1030
 
create table t1 as
1031
 
(select 'test') union
1032
 
(select 'TEST' collate utf8_bin) union
1033
 
(select 'TeST');
1034
 
show create table t1;
1035
 
Table   Create Table
1036
 
t1      CREATE TABLE `t1` (
1037
 
  `test` varchar(4) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL
1038
 
) ENGINE=DEFAULT
1039
 
select count(*) from t1;
1040
 
count(*)
1041
 
3
1042
 
drop table t1;
1043
 
create table t1 as
1044
 
(select 'test') union
1045
 
(select 'TEST') union
1046
 
(select 'TeST' collate utf8_bin);
1047
 
show create table t1;
1048
 
Table   Create Table
1049
 
t1      CREATE TABLE `t1` (
1050
 
  `test` varchar(4) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL
1051
 
) ENGINE=DEFAULT
1052
 
select count(*) from t1;
1053
 
count(*)
1054
 
3
1055
 
drop table t1;
1056
 
create table t2 (
1057
 
a char character set utf8 collate utf8_swedish_ci,
1058
 
b char character set utf8 collate utf8_spanish_ci);
1059
 
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your Drizzle server version for the right syntax to use near 'character set utf8 collate utf8_swedish_ci,
1060
 
b char character set utf8 collate ut' at line 2
1061
 
create table t2 (
1062
 
a char collate utf8_swedish_ci,
1063
 
b char collate utf8_spanish_ci);
1064
 
create table t1 as
1065
 
(select a from t2) union
1066
 
(select b from t2);
1067
 
ERROR HY000: Illegal mix of collations for operation 'UNION'
1068
 
create table t1 as
1069
 
(select a collate utf8_swedish_ci from t2) union
1070
 
(select b from t2);
1071
 
ERROR 42000: Incorrect column name 'a collate utf8_swedish_ci '
1072
 
create table t1 as
1073
 
(select a from t2) union
1074
 
(select b collate utf8_swedish_ci from t2);
1075
 
show create table t1;
1076
 
Table   Create Table
1077
 
t1      CREATE TABLE `t1` (
1078
 
  `a` varchar(1) CHARACTER SET utf8 COLLATE utf8_swedish_ci DEFAULT NULL
1079
 
) ENGINE=DEFAULT
1080
 
drop table t1;
1081
 
create table t1 as
1082
 
(select a from t2) union
1083
 
(select b from t2) union
1084
 
(select 'c' collate utf8_spanish_ci from t2);
1085
 
show create table t1;
1086
 
Table   Create Table
1087
 
t1      CREATE TABLE `t1` (
1088
 
  `a` varchar(1) CHARACTER SET utf8 COLLATE utf8_spanish_ci DEFAULT NULL
1089
 
) ENGINE=DEFAULT
1090
 
drop table t1;
1091
 
drop table t2;
1092
 
create table t1(a1 int, f1 char(10));
1093
 
create table t2
1094
 
select f2,a1 from (select a1, CAST('2004-12-31' AS DATE) f2 from t1) a
1095
 
union
1096
 
select f2,a1 from (select a1, CAST('2004-12-31' AS DATE) f2 from t1) a
1097
 
order by f2, a1;
1098
 
show columns from t2;
1099
 
Field   Type    Null    Key     Default Extra
1100
 
f2      date    YES             NULL    
1101
 
a1      int     YES             NULL    
1102
 
drop table t1, t2;
1103
 
create table t1 (f1 int);
1104
 
create table t2 (f1 int, f2 int ,f3 date);
1105
 
create table t3 (f1 int, f2 char(10));
1106
 
create table t4
1107
 
(
1108
 
select t2.f3 as sdate
1109
 
from t1
1110
 
left outer join t2 on (t1.f1 = t2.f1)
1111
 
inner join t3 on (t2.f2 = t3.f1)
1112
 
order by t1.f1, t3.f1, t2.f3
1113
 
)
1114
 
union
1115
 
(
1116
 
select cast('2004-12-31' as date) as sdate
1117
 
from t1
1118
 
left outer join t2 on (t1.f1 = t2.f1)
1119
 
inner join t3 on (t2.f2 = t3.f1)
1120
 
group by t1.f1
1121
 
order by t1.f1, t3.f1, t2.f3
1122
 
)
1123
 
order by sdate;
1124
 
show columns from t4;
1125
 
Field   Type    Null    Key     Default Extra
1126
 
sdate   date    YES             NULL    
1127
 
drop table t1, t2, t3, t4;
1128
 
create table t1 (a int not null, b char (10) not null);
1129
 
insert into t1 values(1,'a'),(2,'b'),(3,'c'),(3,'c');
1130
 
select * from ((select * from t1 limit 1)) a;
1131
 
a       b
1132
 
1       a
1133
 
select * from ((select * from t1 limit 1) union (select * from t1 limit 1)) a;
1134
 
a       b
1135
 
1       a
1136
 
select * from ((select * from t1 limit 1) union (select * from t1 limit 1) union (select * from t1 limit 1)) a;
1137
 
a       b
1138
 
1       a
1139
 
select * from ((((select * from t1))) union (select * from t1) union (select * from t1)) a;
1140
 
a       b
1141
 
1       a
1142
 
2       b
1143
 
3       c
1144
 
select * from ((select * from t1) union (((select * from t1))) union (select * from t1)) a;
1145
 
a       b
1146
 
1       a
1147
 
2       b
1148
 
3       c
1149
 
drop table t1;
1150
 
set @val:=6;
1151
 
select concat('value is: ', @val) union select 'some text';
1152
 
concat('value is: ', @val)
1153
 
value is: 6
1154
 
some text
1155
 
select concat('a', 'b' collate utf8_bin);
1156
 
concat('a', 'b' collate utf8_bin)
1157
 
ab
1158
 
create table t1 (foo varchar(100)) collate utf8_bin;
1159
 
insert into t1 (foo) values ("foo");
1160
 
select foo from t1 union select 'bar' as foo from dual;
1161
 
ERROR 42S02: Table 'test.dual' doesn't exist
1162
 
select foo from t1 union select 'bar' as foo;
1163
 
foo
1164
 
foo
1165
 
bar
1166
 
drop table t1;
1167
 
create table t1 (f1 decimal(60,25), f2 decimal(60,25));
1168
 
insert into t1 values (0.0,0.0);
1169
 
select f1 from t1 union all select f2 from t1;
1170
 
f1
1171
 
0.0000000000000000000000000
1172
 
0.0000000000000000000000000
1173
 
select 'XXXXXXXXXXXXXXXXXXXX' as description, f1 from t1
1174
 
union all
1175
 
select 'YYYYYYYYYYYYYYYYYYYY' as description, f2 from t1;
1176
 
description     f1
1177
 
XXXXXXXXXXXXXXXXXXXX    0.0000000000000000000000000
1178
 
YYYYYYYYYYYYYYYYYYYY    0.0000000000000000000000000
1179
 
drop table t1;
1180
 
create table t1 (f1 decimal(60,24), f2 decimal(60,24));
1181
 
insert into t1 values (0.0,0.0);
1182
 
select f1 from t1 union all select f2 from t1;
1183
 
f1
1184
 
0.000000000000000000000000
1185
 
0.000000000000000000000000
1186
 
select 'XXXXXXXXXXXXXXXXXXXX' as description, f1 from t1
1187
 
union all
1188
 
select 'YYYYYYYYYYYYYYYYYYYY' as description, f2 from t1;
1189
 
description     f1
1190
 
XXXXXXXXXXXXXXXXXXXX    0.000000000000000000000000
1191
 
YYYYYYYYYYYYYYYYYYYY    0.000000000000000000000000
1192
 
drop table t1;
1193
 
create table t1 (a varchar(5));
1194
 
create table t2 select * from t1 union select 'abcdefghijkl';
1195
 
show create table t2;
1196
 
Table   Create Table
1197
 
t2      CREATE TABLE `t2` (
1198
 
  `a` varchar(5) DEFAULT NULL
1199
 
) ENGINE=DEFAULT
1200
 
select row_format from information_schema.TABLES where table_schema="test" and table_name="t2";
1201
 
row_format
1202
 
Dynamic
1203
 
alter table t2 ROW_FORMAT=fixed;
1204
 
show create table t2;
1205
 
Table   Create Table
1206
 
t2      CREATE TABLE `t2` (
1207
 
  `a` varchar(5) DEFAULT NULL
1208
 
) ENGINE=DEFAULT ROW_FORMAT=FIXED
1209
 
drop table t1,t2;
1210
 
CREATE TABLE t1 (a mediumtext);
1211
 
CREATE TABLE t2 (b varchar(20));
1212
 
INSERT INTO t1 VALUES ('a'),('b');
1213
 
SELECT left(a,100000000) FROM t1 UNION  SELECT b FROM t2;
1214
 
left(a,100000000)
1215
 
a
1216
 
b
1217
 
create table t3 SELECT left(a,100000000) FROM t1 UNION  SELECT b FROM t2;
1218
 
show create table t3;
1219
 
Table   Create Table
1220
 
t3      CREATE TABLE `t3` (
1221
 
  `left(a,100000000)` text
1222
 
) ENGINE=DEFAULT
1223
 
drop tables t1,t2,t3;
1224
 
CREATE TABLE t1 (a longtext);
1225
 
CREATE TABLE t2 (b varchar(20));
1226
 
INSERT INTO t1 VALUES ('a'),('b');
1227
 
SELECT left(a,100000000) FROM t1 UNION  SELECT b FROM t2;
1228
 
left(a,100000000)
1229
 
a
1230
 
b
1231
 
create table t3 SELECT left(a,100000000) FROM t1 UNION  SELECT b FROM t2;
1232
 
show create table t3;
1233
 
Table   Create Table
1234
 
t3      CREATE TABLE `t3` (
1235
 
  `left(a,100000000)` text
1236
 
) ENGINE=DEFAULT
1237
 
drop tables t1,t2,t3;
1238
 
SELECT @tmp_max:= @@max_allowed_packet;
1239
 
@tmp_max:= @@max_allowed_packet
1240
 
1048576
1241
 
SET max_allowed_packet=25000000;
1242
 
CREATE TABLE t1 (a mediumtext);
1243
 
CREATE TABLE t2 (b varchar(20));
1244
 
INSERT INTO t1 VALUES ('a');
1245
 
CREATE TABLE t3 SELECT REPEAT(a,20000000) AS a FROM t1 UNION SELECT b FROM t2;
1246
 
SHOW CREATE TABLE t3;
1247
 
Table   Create Table
1248
 
t3      CREATE TABLE `t3` (
1249
 
  `a` text
1250
 
) ENGINE=DEFAULT
1251
 
DROP TABLES t1,t3;
1252
 
CREATE TABLE t1 (a tinytext);
1253
 
INSERT INTO t1 VALUES ('a');
1254
 
CREATE TABLE t3 SELECT REPEAT(a,2) AS a FROM t1 UNION SELECT b FROM t2;
1255
 
SHOW CREATE TABLE t3;
1256
 
Table   Create Table
1257
 
t3      CREATE TABLE `t3` (
1258
 
  `a` text
1259
 
) ENGINE=DEFAULT
1260
 
DROP TABLES t1,t3;
1261
 
CREATE TABLE t1 (a mediumtext);
1262
 
INSERT INTO t1 VALUES ('a');
1263
 
CREATE TABLE t3 SELECT REPEAT(a,2) AS a FROM t1 UNION SELECT b FROM t2;
1264
 
SHOW CREATE TABLE t3;
1265
 
Table   Create Table
1266
 
t3      CREATE TABLE `t3` (
1267
 
  `a` text
1268
 
) ENGINE=DEFAULT
1269
 
DROP TABLES t1,t3;
1270
 
CREATE TABLE t1 (a tinyblob);
1271
 
INSERT INTO t1 VALUES ('a');
1272
 
CREATE TABLE t3 SELECT REPEAT(a,2) AS a FROM t1 UNION SELECT b FROM t2;
1273
 
SHOW CREATE TABLE t3;
1274
 
Table   Create Table
1275
 
t3      CREATE TABLE `t3` (
1276
 
  `a` blob
1277
 
) ENGINE=DEFAULT
1278
 
DROP TABLES t1,t2,t3;
1279
 
SET max_allowed_packet:= @tmp_max;
1280
 
create table t1 ( id int not null auto_increment, primary key (id), col1 int);
1281
 
insert into t1 (col1) values (2),(3),(4),(5),(6);
1282
 
select 99 union all select id from t1 order by 1;
1283
 
99
1284
 
1
1285
 
2
1286
 
3
1287
 
4
1288
 
5
1289
 
99
1290
 
select id from t1 union all select 99 order by 1;
1291
 
id
1292
 
1
1293
 
2
1294
 
3
1295
 
4
1296
 
5
1297
 
99
1298
 
drop table t1;
1299
 
create table t1(f1 char(1), f2 char(5), f3 blob, f4 blob, f5 timestamp, f6 varchar(1) collate utf8_general_ci, f7 text);
1300
 
create table t2 as select *, f6 as f8 from t1 union select *, f7 from t1;
1301
 
show create table t2;
1302
 
Table   Create Table
1303
 
t2      CREATE TABLE `t2` (
1304
 
  `f1` varchar(1) DEFAULT NULL,
1305
 
  `f2` varchar(5) DEFAULT NULL,
1306
 
  `f3` blob,
1307
 
  `f4` blob,
1308
 
  `f5` timestamp NULL DEFAULT NULL,
1309
 
  `f6` varchar(1) DEFAULT NULL,
1310
 
  `f7` text,
1311
 
  `f8` text
1312
 
) ENGINE=DEFAULT
1313
 
drop table t1, t2;
1314
 
(select avg(1)) union (select avg(1)) union (select avg(1)) union
1315
 
(select avg(1)) union (select avg(1)) union (select avg(1)) union
1316
 
(select avg(1)) union (select avg(1)) union (select avg(1)) union
1317
 
(select avg(1)) union (select avg(1)) union (select avg(1)) union
1318
 
(select avg(1)) union (select avg(1)) union (select avg(1)) union
1319
 
(select avg(1)) union (select avg(1)) union (select avg(1)) union
1320
 
(select avg(1)) union (select avg(1)) union (select avg(1)) union
1321
 
(select avg(1)) union (select avg(1)) union (select avg(1)) union
1322
 
(select avg(1)) union (select avg(1)) union (select avg(1)) union
1323
 
(select avg(1)) union (select avg(1)) union (select avg(1)) union
1324
 
(select avg(1)) union (select avg(1)) union (select avg(1)) union
1325
 
(select avg(1)) union (select avg(1)) union (select avg(1)) union
1326
 
(select avg(1)) union (select avg(1)) union (select avg(1)) union
1327
 
(select avg(1)) union (select avg(1)) union (select avg(1)) union
1328
 
(select avg(1)) union (select avg(1)) union (select avg(1)) union
1329
 
(select avg(1)) union (select avg(1)) union (select avg(1)) union
1330
 
(select avg(1)) union (select avg(1)) union (select avg(1)) union
1331
 
(select avg(1)) union (select avg(1)) union (select avg(1)) union
1332
 
(select avg(1)) union (select avg(1)) union (select avg(1)) union
1333
 
(select avg(1)) union (select avg(1)) union (select avg(1)) union
1334
 
(select avg(1)) union (select avg(1)) union (select avg(1)) union
1335
 
(select avg(1)) union (select avg(1)) union (select avg(1)) union
1336
 
(select avg(1)) union (select avg(1)) union (select avg(1)) union
1337
 
(select avg(1)) union (select avg(1)) union (select avg(1)) union
1338
 
(select avg(1)) union (select avg(1)) union (select avg(1)) union
1339
 
(select avg(1)) union (select avg(1)) union (select avg(1)) union
1340
 
(select avg(1)) union (select avg(1)) union (select avg(1)) union
1341
 
(select avg(1)) union (select avg(1)) union (select avg(1)) union
1342
 
(select avg(1)) union (select avg(1)) union (select avg(1)) union
1343
 
(select avg(1)) union (select avg(1)) union (select avg(1)) union
1344
 
(select avg(1)) union (select avg(1)) union (select avg(1)) union
1345
 
(select avg(1)) union (select avg(1)) union (select avg(1)) union
1346
 
(select avg(1)) union (select avg(1)) union (select avg(1)) union
1347
 
(select avg(1)) union (select avg(1)) union (select avg(1)) union
1348
 
(select avg(1)) union (select avg(1)) union (select avg(1)) union
1349
 
(select avg(1)) union (select avg(1)) union (select avg(1)) union
1350
 
(select avg(1)) union (select avg(1)) union (select avg(1)) union
1351
 
(select avg(1)) union (select avg(1)) union (select avg(1)) union
1352
 
(select avg(1)) union (select avg(1)) union (select avg(1)) union
1353
 
(select avg(1)) union (select avg(1)) union (select avg(1)) union
1354
 
(select avg(1)) union (select avg(1)) union (select avg(1)) union
1355
 
(select avg(1)) union (select avg(1)) union (select avg(1)) union
1356
 
(select avg(1)) union (select avg(1)) union (select avg(1));
1357
 
avg(1)
1358
 
1.0000
1359
 
select '12' union select '12345';
1360
 
12
1361
 
12
1362
 
CREATE TABLE t1 (a int);
1363
 
INSERT INTO t1 VALUES (3),(1),(2),(4),(1);
1364
 
SELECT a FROM (SELECT a FROM t1 UNION SELECT a FROM t1 ORDER BY a) AS test;
1365
 
a
1366
 
1
1367
 
2
1368
 
3
1369
 
4
1370
 
SELECT a FROM (SELECT a FROM t1 UNION SELECT a FROM t1 ORDER BY c) AS test;
1371
 
ERROR 42S22: Unknown column 'c' in 'order clause'
1372
 
DROP TABLE t1;
1373
 
(select 1 into @var) union (select 1);
1374
 
ERROR HY000: Incorrect usage of UNION and INTO
1375
 
(select 1) union (select 1 into @var);
1376
 
select @var;
1377
 
@var
1378
 
1
1379
 
(select 2) union (select 1 into @var);
1380
 
ERROR 42000: Result consisted of more than one row
1381
 
CREATE TABLE t1 (a int);
1382
 
INSERT INTO t1 VALUES (10), (20);
1383
 
CREATE TABLE t2 (b int);
1384
 
INSERT INTO t2 VALUES (10), (50), (50);
1385
 
SELECT a,1 FROM t1 
1386
 
UNION
1387
 
SELECT b, COUNT(*) FROM t2 GROUP BY b WITH ROLLUP
1388
 
ORDER BY a;
1389
 
a       1
1390
 
NULL    3
1391
 
10      1
1392
 
20      1
1393
 
50      2
1394
 
SELECT a,1 FROM t1 
1395
 
UNION
1396
 
SELECT b, COUNT(*) FROM t2 GROUP BY b WITH ROLLUP
1397
 
ORDER BY a DESC;
1398
 
a       1
1399
 
50      2
1400
 
20      1
1401
 
10      1
1402
 
NULL    3
1403
 
SELECT a,1 FROM t1 
1404
 
UNION
1405
 
SELECT b, COUNT(*) FROM t2 GROUP BY b WITH ROLLUP
1406
 
ORDER BY a ASC LIMIT 3;
1407
 
a       1
1408
 
NULL    3
1409
 
10      1
1410
 
20      1
1411
 
SELECT a,1 FROM t1 
1412
 
UNION ALL 
1413
 
SELECT b, COUNT(*) FROM t2 GROUP BY b WITH ROLLUP
1414
 
ORDER BY a DESC;
1415
 
a       1
1416
 
50      2
1417
 
20      1
1418
 
10      1
1419
 
10      1
1420
 
NULL    3
1421
 
SELECT a,1 FROM t1
1422
 
UNION 
1423
 
(SELECT b, COUNT(*) FROM t2 GROUP BY b WITH ROLLUP ORDER BY a);
1424
 
ERROR HY000: Incorrect usage of CUBE/ROLLUP and ORDER BY
1425
 
SELECT a,1 FROM t1
1426
 
UNION ALL
1427
 
SELECT b, COUNT(*) FROM t2 GROUP BY b WITH ROLLUP ORDER BY a
1428
 
UNION
1429
 
SELECT 1,1;
1430
 
ERROR HY000: Incorrect usage of UNION and order_st BY
1431
 
DROP TABLE t1,t2;
1432
 
CREATE TABLE t1 (a INT);
1433
 
INSERT INTO t1 VALUES (1), (2), (3);
1434
 
CREATE TABLE t2 SELECT * FROM (SELECT NULL) a UNION SELECT a FROM t1;
1435
 
DESC t2;
1436
 
Field   Type    Null    Key     Default Extra
1437
 
NULL    int     YES             NULL    
1438
 
CREATE TABLE t3 SELECT a FROM t1 UNION SELECT * FROM (SELECT NULL) a;
1439
 
DESC t3;
1440
 
Field   Type    Null    Key     Default Extra
1441
 
a       int     YES             NULL    
1442
 
CREATE TABLE t4 SELECT NULL;
1443
 
DESC t4;
1444
 
Field   Type    Null    Key     Default Extra
1445
 
NULL    varbinary(0)    YES             NULL    
1446
 
CREATE TABLE t5 SELECT NULL UNION SELECT NULL;
1447
 
DESC t5;
1448
 
Field   Type    Null    Key     Default Extra
1449
 
NULL    varbinary(0)    YES             NULL    
1450
 
CREATE TABLE t6 
1451
 
SELECT * FROM (SELECT * FROM (SELECT NULL)a) b UNION SELECT a FROM t1;
1452
 
DESC t6;
1453
 
Field   Type    Null    Key     Default Extra
1454
 
NULL    int     YES             NULL    
1455
 
DROP TABLE t1, t2, t3, t4, t5, t6;
1456
 
End of 5.0 tests