3 # The author disclaims copyright to this source code. In place of
4 # a legal notice, here is a blessing:
6 # May you do good and not evil.
7 # May you find forgiveness for yourself and forgive others.
8 # May you share freely, never taking more than you give.
10 #***********************************************************************
11 # This file implements regression tests for SQLite library.
13 # The focus of this file is testing the compound-SELECT merge
14 # optimization. Or, in other words, making sure that all
15 # possible combinations of UNION, UNION ALL, EXCEPT, and
16 # INTERSECT work together with an ORDER BY clause (with or w/o
17 # explicit sort order and explicit collating secquites) and
18 # with and without optional LIMIT and OFFSET clauses.
20 # $Id: selectA.test,v 1.6 2008/08/21 14:24:29 drh Exp $
22 set testdir [file dirname $argv0]
23 source $testdir/tester.tcl
32 CREATE TABLE t1(a,b,c COLLATE NOCASE);
33 INSERT INTO t1 VALUES(1,'a','a');
34 INSERT INTO t1 VALUES(9.9, 'b', 'B');
35 INSERT INTO t1 VALUES(NULL, 'C', 'c');
36 INSERT INTO t1 VALUES('hello', 'd', 'D');
37 INSERT INTO t1 VALUES(x'616263', 'e', 'e');
40 } {1 a a 9.9 b B {} C c hello d D abc e e}
43 CREATE TABLE t2(x,y,z COLLATE NOCASE);
44 INSERT INTO t2 VALUES(NULL,'U','u');
45 INSERT INTO t2 VALUES('mad', 'Z', 'z');
46 INSERT INTO t2 VALUES(x'68617265', 'm', 'M');
47 INSERT INTO t2 VALUES(5.2e6, 'X', 'x');
48 INSERT INTO t2 VALUES(-23, 'Y', 'y');
51 } {{} U u mad Z z hare m M 5200000.0 X x -23 Y y}
54 CREATE TABLE t3(a,b,c COLLATE NOCASE);
55 INSERT INTO t3 SELECT * FROM t1;
56 INSERT INTO t3 SELECT * FROM t2;
57 INSERT INTO t3 SELECT * FROM t1;
58 INSERT INTO t3 SELECT * FROM t2;
59 INSERT INTO t3 SELECT * FROM t1;
60 INSERT INTO t3 SELECT * FROM t2;
61 SELECT count(*) FROM t3;
67 SELECT a,b,c FROM t1 UNION ALL SELECT x,y,z FROM t2
70 } {{} C c {} U u -23 Y y 1 a a 9.9 b B 5200000.0 X x hello d D mad Z z abc e e hare m M}
71 do_test selectA-2.1.1 { # Ticket #3314
73 SELECT t1.a, t1.b, t1.c FROM t1 UNION ALL SELECT x,y,z FROM t2
76 } {{} C c {} U u -23 Y y 1 a a 9.9 b B 5200000.0 X x hello d D mad Z z abc e e hare m M}
77 do_test selectA-2.1.2 { # Ticket #3314
79 SELECT a,b,c FROM t1 UNION ALL SELECT x,y,z FROM t2
80 ORDER BY t1.a, t1.b, t1.c
82 } {{} C c {} U u -23 Y y 1 a a 9.9 b B 5200000.0 X x hello d D mad Z z abc e e hare m M}
85 SELECT a,b,c FROM t1 UNION ALL SELECT x,y,z FROM t2
88 } {hare m M abc e e mad Z z hello d D 5200000.0 X x 9.9 b B 1 a a -23 Y y {} C c {} U u}
91 SELECT a,b,c FROM t1 UNION ALL SELECT x,y,z FROM t2
94 } {{} C c {} U u -23 Y y 1 a a 9.9 b B 5200000.0 X x hello d D mad Z z abc e e hare m M}
97 SELECT a,b,c FROM t1 UNION ALL SELECT x,y,z FROM t2
100 } {{} C c {} U u 5200000.0 X x -23 Y y mad Z z 1 a a 9.9 b B hello d D abc e e hare m M}
101 do_test selectA-2.5 {
103 SELECT a,b,c FROM t1 UNION ALL SELECT x,y,z FROM t2
104 ORDER BY b COLLATE NOCASE,a,c
106 } {1 a a 9.9 b B {} C c hello d D abc e e hare m M {} U u 5200000.0 X x -23 Y y mad Z z}
107 do_test selectA-2.6 {
109 SELECT a,b,c FROM t1 UNION ALL SELECT x,y,z FROM t2
110 ORDER BY b COLLATE NOCASE DESC,a,c
112 } {mad Z z -23 Y y 5200000.0 X x {} U u hare m M abc e e hello d D {} C c 9.9 b B 1 a a}
113 do_test selectA-2.7 {
115 SELECT a,b,c FROM t1 UNION ALL SELECT x,y,z FROM t2
118 } {1 a a 9.9 b B {} C c hello d D abc e e hare m M {} U u 5200000.0 X x -23 Y y mad Z z}
119 do_test selectA-2.8 {
121 SELECT a,b,c FROM t1 UNION ALL SELECT x,y,z FROM t2
124 } {1 a a 9.9 b B {} C c hello d D abc e e hare m M {} U u 5200000.0 X x -23 Y y mad Z z}
125 do_test selectA-2.9 {
127 SELECT a,b,c FROM t1 UNION ALL SELECT x,y,z FROM t2
130 } {mad Z z -23 Y y 5200000.0 X x {} U u hare m M abc e e hello d D {} C c 9.9 b B 1 a a}
131 do_test selectA-2.10 {
133 SELECT a,b,c FROM t1 UNION ALL SELECT x,y,z FROM t2
134 ORDER BY c COLLATE BINARY DESC,a,b
136 } {mad Z z -23 Y y 5200000.0 X x {} U u abc e e {} C c 1 a a hare m M hello d D 9.9 b B}
137 do_test selectA-2.11 {
139 SELECT x,y,z FROM t2 UNION ALL SELECT a,b,c FROM t1
142 } {{} C c {} U u -23 Y y 1 a a 9.9 b B 5200000.0 X x hello d D mad Z z abc e e hare m M}
143 do_test selectA-2.12 {
145 SELECT x,y,z FROM t2 UNION ALL SELECT a,b,c FROM t1
148 } {hare m M abc e e mad Z z hello d D 5200000.0 X x 9.9 b B 1 a a -23 Y y {} C c {} U u}
149 do_test selectA-2.13 {
151 SELECT x,y,z FROM t2 UNION ALL SELECT a,b,c FROM t1
154 } {{} C c {} U u -23 Y y 1 a a 9.9 b B 5200000.0 X x hello d D mad Z z abc e e hare m M}
155 do_test selectA-2.14 {
157 SELECT x,y,z FROM t2 UNION ALL SELECT a,b,c FROM t1
160 } {{} C c {} U u 5200000.0 X x -23 Y y mad Z z 1 a a 9.9 b B hello d D abc e e hare m M}
161 do_test selectA-2.15 {
163 SELECT x,y,z FROM t2 UNION ALL SELECT a,b,c FROM t1
164 ORDER BY b COLLATE NOCASE,a,c
166 } {1 a a 9.9 b B {} C c hello d D abc e e hare m M {} U u 5200000.0 X x -23 Y y mad Z z}
167 do_test selectA-2.16 {
169 SELECT x,y,z FROM t2 UNION ALL SELECT a,b,c FROM t1
170 ORDER BY b COLLATE NOCASE DESC,a,c
172 } {mad Z z -23 Y y 5200000.0 X x {} U u hare m M abc e e hello d D {} C c 9.9 b B 1 a a}
173 do_test selectA-2.17 {
175 SELECT x,y,z FROM t2 UNION ALL SELECT a,b,c FROM t1
178 } {1 a a 9.9 b B {} C c hello d D abc e e hare m M {} U u 5200000.0 X x -23 Y y mad Z z}
179 do_test selectA-2.18 {
181 SELECT x,y,z FROM t2 UNION ALL SELECT a,b,c FROM t1
184 } {1 a a 9.9 b B {} C c hello d D abc e e hare m M {} U u 5200000.0 X x -23 Y y mad Z z}
185 do_test selectA-2.19 {
187 SELECT x,y,z FROM t2 UNION ALL SELECT a,b,c FROM t1
190 } {mad Z z -23 Y y 5200000.0 X x {} U u hare m M abc e e hello d D {} C c 9.9 b B 1 a a}
191 do_test selectA-2.20 {
193 SELECT x,y,z FROM t2 UNION ALL SELECT a,b,c FROM t1
194 ORDER BY c COLLATE BINARY DESC,a,b
196 } {mad Z z -23 Y y 5200000.0 X x {} U u abc e e {} C c 1 a a hare m M hello d D 9.9 b B}
197 do_test selectA-2.21 {
199 SELECT a,b,c FROM t1 UNION SELECT x,y,z FROM t2
202 } {{} C c {} U u -23 Y y 1 a a 9.9 b B 5200000.0 X x hello d D mad Z z abc e e hare m M}
203 do_test selectA-2.22 {
205 SELECT a,b,c FROM t1 UNION SELECT x,y,z FROM t2
208 } {hare m M abc e e mad Z z hello d D 5200000.0 X x 9.9 b B 1 a a -23 Y y {} C c {} U u}
209 do_test selectA-2.23 {
211 SELECT a,b,c FROM t1 UNION SELECT x,y,z FROM t2
214 } {{} C c {} U u -23 Y y 1 a a 9.9 b B 5200000.0 X x hello d D mad Z z abc e e hare m M}
215 do_test selectA-2.24 {
217 SELECT a,b,c FROM t1 UNION SELECT x,y,z FROM t2
220 } {{} C c {} U u 5200000.0 X x -23 Y y mad Z z 1 a a 9.9 b B hello d D abc e e hare m M}
221 do_test selectA-2.25 {
223 SELECT a,b,c FROM t1 UNION SELECT x,y,z FROM t2
224 ORDER BY b COLLATE NOCASE,a,c
226 } {1 a a 9.9 b B {} C c hello d D abc e e hare m M {} U u 5200000.0 X x -23 Y y mad Z z}
227 do_test selectA-2.26 {
229 SELECT a,b,c FROM t1 UNION SELECT x,y,z FROM t2
230 ORDER BY b COLLATE NOCASE DESC,a,c
232 } {mad Z z -23 Y y 5200000.0 X x {} U u hare m M abc e e hello d D {} C c 9.9 b B 1 a a}
233 do_test selectA-2.27 {
235 SELECT a,b,c FROM t1 UNION SELECT x,y,z FROM t2
238 } {1 a a 9.9 b B {} C c hello d D abc e e hare m M {} U u 5200000.0 X x -23 Y y mad Z z}
239 do_test selectA-2.28 {
241 SELECT a,b,c FROM t1 UNION SELECT x,y,z FROM t2
244 } {1 a a 9.9 b B {} C c hello d D abc e e hare m M {} U u 5200000.0 X x -23 Y y mad Z z}
245 do_test selectA-2.29 {
247 SELECT a,b,c FROM t1 UNION SELECT x,y,z FROM t2
250 } {mad Z z -23 Y y 5200000.0 X x {} U u hare m M abc e e hello d D {} C c 9.9 b B 1 a a}
251 do_test selectA-2.30 {
253 SELECT a,b,c FROM t1 UNION SELECT x,y,z FROM t2
254 ORDER BY c COLLATE BINARY DESC,a,b
256 } {mad Z z -23 Y y 5200000.0 X x {} U u abc e e {} C c 1 a a hare m M hello d D 9.9 b B}
257 do_test selectA-2.31 {
259 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1
262 } {{} C c {} U u -23 Y y 1 a a 9.9 b B 5200000.0 X x hello d D mad Z z abc e e hare m M}
263 do_test selectA-2.32 {
265 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1
268 } {hare m M abc e e mad Z z hello d D 5200000.0 X x 9.9 b B 1 a a -23 Y y {} C c {} U u}
269 do_test selectA-2.33 {
271 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1
274 } {{} C c {} U u -23 Y y 1 a a 9.9 b B 5200000.0 X x hello d D mad Z z abc e e hare m M}
275 do_test selectA-2.34 {
277 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1
280 } {{} C c {} U u 5200000.0 X x -23 Y y mad Z z 1 a a 9.9 b B hello d D abc e e hare m M}
281 do_test selectA-2.35 {
283 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1
284 ORDER BY b COLLATE NOCASE,a,c
286 } {1 a a 9.9 b B {} C c hello d D abc e e hare m M {} U u 5200000.0 X x -23 Y y mad Z z}
287 do_test selectA-2.36 {
289 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1
290 ORDER BY b COLLATE NOCASE DESC,a,c
292 } {mad Z z -23 Y y 5200000.0 X x {} U u hare m M abc e e hello d D {} C c 9.9 b B 1 a a}
293 do_test selectA-2.37 {
295 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1
298 } {1 a a 9.9 b B {} C c hello d D abc e e hare m M {} U u 5200000.0 X x -23 Y y mad Z z}
299 do_test selectA-2.38 {
301 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1
304 } {1 a a 9.9 b B {} C c hello d D abc e e hare m M {} U u 5200000.0 X x -23 Y y mad Z z}
305 do_test selectA-2.39 {
307 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1
310 } {mad Z z -23 Y y 5200000.0 X x {} U u hare m M abc e e hello d D {} C c 9.9 b B 1 a a}
311 do_test selectA-2.40 {
313 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1
314 ORDER BY c COLLATE BINARY DESC,a,b
316 } {mad Z z -23 Y y 5200000.0 X x {} U u abc e e {} C c 1 a a hare m M hello d D 9.9 b B}
317 do_test selectA-2.41 {
319 SELECT a,b,c FROM t1 EXCEPT SELECT a,b,c FROM t1 WHERE b>='d'
322 } {{} C c 1 a a 9.9 b B}
323 do_test selectA-2.42 {
325 SELECT a,b,c FROM t1 INTERSECT SELECT a,b,c FROM t1 WHERE b>='d'
328 } {hello d D abc e e}
329 do_test selectA-2.43 {
331 SELECT a,b,c FROM t1 WHERE b>='d' INTERSECT SELECT a,b,c FROM t1
334 } {hello d D abc e e}
335 do_test selectA-2.44 {
337 SELECT a,b,c FROM t1 EXCEPT SELECT a,b,c FROM t1 WHERE b<'d'
340 } {hello d D abc e e}
341 do_test selectA-2.45 {
343 SELECT a,b,c FROM t1 INTERSECT SELECT a,b,c FROM t1 WHERE b<'d'
346 } {{} C c 1 a a 9.9 b B}
347 do_test selectA-2.46 {
349 SELECT a,b,c FROM t1 WHERE b<'d' INTERSECT SELECT a,b,c FROM t1
352 } {{} C c 1 a a 9.9 b B}
353 do_test selectA-2.47 {
355 SELECT a,b,c FROM t1 EXCEPT SELECT a,b,c FROM t1 WHERE b>='d'
358 } {9.9 b B 1 a a {} C c}
359 do_test selectA-2.48 {
361 SELECT a,b,c FROM t1 INTERSECT SELECT a,b,c FROM t1 WHERE b>='d'
364 } {abc e e hello d D}
365 do_test selectA-2.49 {
367 SELECT a,b,c FROM t1 WHERE b>='d' INTERSECT SELECT a,b,c FROM t1
370 } {abc e e hello d D}
371 do_test selectA-2.50 {
373 SELECT a,b,c FROM t1 EXCEPT SELECT a,b,c FROM t1 WHERE b<'d'
376 } {abc e e hello d D}
377 do_test selectA-2.51 {
379 SELECT a,b,c FROM t1 INTERSECT SELECT a,b,c FROM t1 WHERE b<'d'
382 } {9.9 b B 1 a a {} C c}
383 do_test selectA-2.52 {
385 SELECT a,b,c FROM t1 WHERE b<'d' INTERSECT SELECT a,b,c FROM t1
388 } {9.9 b B 1 a a {} C c}
389 do_test selectA-2.53 {
391 SELECT a,b,c FROM t1 EXCEPT SELECT a,b,c FROM t1 WHERE b>='d'
394 } {{} C c 1 a a 9.9 b B}
395 do_test selectA-2.54 {
397 SELECT a,b,c FROM t1 INTERSECT SELECT a,b,c FROM t1 WHERE b>='d'
400 } {hello d D abc e e}
401 do_test selectA-2.55 {
403 SELECT a,b,c FROM t1 WHERE b>='d' INTERSECT SELECT a,b,c FROM t1
406 } {abc e e hello d D}
407 do_test selectA-2.56 {
409 SELECT a,b,c FROM t1 EXCEPT SELECT a,b,c FROM t1 WHERE b<'d'
410 ORDER BY b, c DESC, a
412 } {hello d D abc e e}
413 do_test selectA-2.57 {
415 SELECT a,b,c FROM t1 INTERSECT SELECT a,b,c FROM t1 WHERE b<'d'
416 ORDER BY b COLLATE NOCASE
418 } {1 a a 9.9 b B {} C c}
419 do_test selectA-2.58 {
421 SELECT a,b,c FROM t1 WHERE b<'d' INTERSECT SELECT a,b,c FROM t1
424 } {{} C c 1 a a 9.9 b B}
425 do_test selectA-2.59 {
427 SELECT a,b,c FROM t1 EXCEPT SELECT a,b,c FROM t1 WHERE b>='d'
430 } {1 a a 9.9 b B {} C c}
431 do_test selectA-2.60 {
433 SELECT a,b,c FROM t1 INTERSECT SELECT a,b,c FROM t1 WHERE b>='d'
436 } {hello d D abc e e}
437 do_test selectA-2.61 {
439 SELECT a,b,c FROM t1 WHERE b>='d' INTERSECT SELECT a,b,c FROM t1
440 ORDER BY c COLLATE BINARY, b DESC, c, a, b, c, a, b, c
442 } {hello d D abc e e}
443 do_test selectA-2.62 {
445 SELECT a,b,c FROM t1 EXCEPT SELECT a,b,c FROM t1 WHERE b<'d'
448 } {abc e e hello d D}
449 do_test selectA-2.63 {
451 SELECT a,b,c FROM t1 INTERSECT SELECT a,b,c FROM t1 WHERE b<'d'
452 ORDER BY c COLLATE NOCASE
454 } {1 a a 9.9 b B {} C c}
455 do_test selectA-2.64 {
457 SELECT a,b,c FROM t1 WHERE b<'d' INTERSECT SELECT a,b,c FROM t1
460 } {1 a a 9.9 b B {} C c}
461 do_test selectA-2.65 {
463 SELECT a,b,c FROM t3 INTERSECT SELECT a,b,c FROM t1 WHERE b<'d'
464 ORDER BY c COLLATE NOCASE
466 } {1 a a 9.9 b B {} C c}
467 do_test selectA-2.66 {
469 SELECT a,b,c FROM t1 WHERE b<'d' INTERSECT SELECT a,b,c FROM t3
472 } {1 a a 9.9 b B {} C c}
473 do_test selectA-2.67 {
475 SELECT a,b,c FROM t1 EXCEPT SELECT a,b,c FROM t3 WHERE b<'d'
478 } {abc e e hello d D}
479 do_test selectA-2.68 {
481 SELECT a,b,c FROM t1 EXCEPT SELECT a,b,c FROM t1 WHERE b<'d'
482 INTERSECT SELECT a,b,c FROM t3
483 EXCEPT SELECT b,c,a FROM t3
486 } {abc e e hello d D}
487 do_test selectA-2.69 {
489 SELECT a,b,c FROM t1 INTERSECT SELECT a,b,c FROM t1 WHERE b<'d'
490 INTERSECT SELECT a,b,c FROM t3
491 EXCEPT SELECT b,c,a FROM t3
492 ORDER BY c COLLATE NOCASE
494 } {1 a a 9.9 b B {} C c}
495 do_test selectA-2.70 {
497 SELECT a,b,c FROM t1 WHERE b<'d' INTERSECT SELECT a,b,c FROM t1
498 INTERSECT SELECT a,b,c FROM t3
499 EXCEPT SELECT b,c,a FROM t3
502 } {1 a a 9.9 b B {} C c}
503 do_test selectA-2.71 {
505 SELECT a,b,c FROM t1 WHERE b<'d'
506 INTERSECT SELECT a,b,c FROM t1
507 INTERSECT SELECT a,b,c FROM t3
508 EXCEPT SELECT b,c,a FROM t3
509 INTERSECT SELECT a,b,c FROM t1
510 EXCEPT SELECT x,y,z FROM t2
511 INTERSECT SELECT a,b,c FROM t3
512 EXCEPT SELECT y,x,z FROM t2
513 INTERSECT SELECT a,b,c FROM t1
514 EXCEPT SELECT c,b,a FROM t3
517 } {1 a a 9.9 b B {} C c}
518 do_test selectA-2.72 {
520 SELECT a,b,c FROM t3 UNION SELECT x,y,z FROM t2
523 } {{} C c {} U u -23 Y y 1 a a 9.9 b B 5200000.0 X x hello d D mad Z z abc e e hare m M}
524 do_test selectA-2.73 {
526 SELECT a,b,c FROM t3 UNION SELECT x,y,z FROM t2
529 } {hare m M abc e e mad Z z hello d D 5200000.0 X x 9.9 b B 1 a a -23 Y y {} C c {} U u}
530 do_test selectA-2.74 {
532 SELECT a,b,c FROM t3 UNION SELECT x,y,z FROM t2
535 } {{} C c {} U u -23 Y y 1 a a 9.9 b B 5200000.0 X x hello d D mad Z z abc e e hare m M}
536 do_test selectA-2.75 {
538 SELECT a,b,c FROM t3 UNION SELECT x,y,z FROM t2
541 } {{} C c {} U u 5200000.0 X x -23 Y y mad Z z 1 a a 9.9 b B hello d D abc e e hare m M}
542 do_test selectA-2.76 {
544 SELECT a,b,c FROM t3 UNION SELECT x,y,z FROM t2
545 ORDER BY b COLLATE NOCASE,a,c
547 } {1 a a 9.9 b B {} C c hello d D abc e e hare m M {} U u 5200000.0 X x -23 Y y mad Z z}
548 do_test selectA-2.77 {
550 SELECT a,b,c FROM t3 UNION SELECT x,y,z FROM t2
551 ORDER BY b COLLATE NOCASE DESC,a,c
553 } {mad Z z -23 Y y 5200000.0 X x {} U u hare m M abc e e hello d D {} C c 9.9 b B 1 a a}
554 do_test selectA-2.78 {
556 SELECT a,b,c FROM t3 UNION SELECT x,y,z FROM t2
559 } {1 a a 9.9 b B {} C c hello d D abc e e hare m M {} U u 5200000.0 X x -23 Y y mad Z z}
560 do_test selectA-2.79 {
562 SELECT a,b,c FROM t3 UNION SELECT x,y,z FROM t2
565 } {1 a a 9.9 b B {} C c hello d D abc e e hare m M {} U u 5200000.0 X x -23 Y y mad Z z}
566 do_test selectA-2.80 {
568 SELECT a,b,c FROM t3 UNION SELECT x,y,z FROM t2
571 } {mad Z z -23 Y y 5200000.0 X x {} U u hare m M abc e e hello d D {} C c 9.9 b B 1 a a}
572 do_test selectA-2.81 {
574 SELECT a,b,c FROM t3 UNION SELECT x,y,z FROM t2
575 ORDER BY c COLLATE BINARY DESC,a,b
577 } {mad Z z -23 Y y 5200000.0 X x {} U u abc e e {} C c 1 a a hare m M hello d D 9.9 b B}
578 do_test selectA-2.82 {
580 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3
583 } {{} C c {} U u -23 Y y 1 a a 9.9 b B 5200000.0 X x hello d D mad Z z abc e e hare m M}
584 do_test selectA-2.83 {
586 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3
589 } {hare m M abc e e mad Z z hello d D 5200000.0 X x 9.9 b B 1 a a -23 Y y {} C c {} U u}
590 do_test selectA-2.84 {
592 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3
595 } {{} C c {} U u -23 Y y 1 a a 9.9 b B 5200000.0 X x hello d D mad Z z abc e e hare m M}
596 do_test selectA-2.85 {
598 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3
601 } {{} C c {} U u 5200000.0 X x -23 Y y mad Z z 1 a a 9.9 b B hello d D abc e e hare m M}
602 do_test selectA-2.86 {
604 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3
605 ORDER BY b COLLATE NOCASE,a,c
607 } {1 a a 9.9 b B {} C c hello d D abc e e hare m M {} U u 5200000.0 X x -23 Y y mad Z z}
608 do_test selectA-2.87 {
610 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3
611 ORDER BY y COLLATE NOCASE DESC,x,z
613 } {mad Z z -23 Y y 5200000.0 X x {} U u hare m M abc e e hello d D {} C c 9.9 b B 1 a a}
614 do_test selectA-2.88 {
616 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3
619 } {1 a a 9.9 b B {} C c hello d D abc e e hare m M {} U u 5200000.0 X x -23 Y y mad Z z}
620 do_test selectA-2.89 {
622 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3
625 } {1 a a 9.9 b B {} C c hello d D abc e e hare m M {} U u 5200000.0 X x -23 Y y mad Z z}
626 do_test selectA-2.90 {
628 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3
631 } {mad Z z -23 Y y 5200000.0 X x {} U u hare m M abc e e hello d D {} C c 9.9 b B 1 a a}
632 do_test selectA-2.91 {
634 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3
635 ORDER BY c COLLATE BINARY DESC,a,b
637 } {mad Z z -23 Y y 5200000.0 X x {} U u abc e e {} C c 1 a a hare m M hello d D 9.9 b B}
638 do_test selectA-2.92 {
641 INTERSECT SELECT a,b,c FROM t3
642 EXCEPT SELECT c,b,a FROM t1
643 UNION SELECT a,b,c FROM t3
644 INTERSECT SELECT a,b,c FROM t3
645 EXCEPT SELECT c,b,a FROM t1
646 UNION SELECT a,b,c FROM t3
647 ORDER BY y COLLATE NOCASE DESC,x,z
649 } {mad Z z -23 Y y 5200000.0 X x {} U u hare m M abc e e hello d D {} C c 9.9 b B 1 a a}
650 do_test selectA-2.93 {
652 SELECT upper((SELECT c FROM t1 UNION SELECT z FROM t2 ORDER BY 1));
655 do_test selectA-2.94 {
657 SELECT lower((SELECT c FROM t1 UNION ALL SELECT z FROM t2 ORDER BY 1));
660 do_test selectA-2.95 {
662 SELECT lower((SELECT c FROM t1 INTERSECT SELECT z FROM t2 ORDER BY 1));
665 do_test selectA-2.96 {
667 SELECT lower((SELECT z FROM t2 EXCEPT SELECT c FROM t1 ORDER BY 1));
672 do_test selectA-3.0 {
674 CREATE UNIQUE INDEX t1a ON t1(a);
675 CREATE UNIQUE INDEX t1b ON t1(b);
676 CREATE UNIQUE INDEX t1c ON t1(c);
677 CREATE UNIQUE INDEX t2x ON t2(x);
678 CREATE UNIQUE INDEX t2y ON t2(y);
679 CREATE UNIQUE INDEX t2z ON t2(z);
680 SELECT name FROM sqlite_master WHERE type='index'
682 } {t1a t1b t1c t2x t2y t2z}
683 do_test selectA-3.1 {
685 SELECT a,b,c FROM t1 UNION ALL SELECT x,y,z FROM t2
688 } {{} C c {} U u -23 Y y 1 a a 9.9 b B 5200000.0 X x hello d D mad Z z abc e e hare m M}
689 do_test selectA-3.1.1 { # Ticket #3314
691 SELECT t1.a,b,t1.c FROM t1 UNION ALL SELECT x,y,z FROM t2
694 } {{} C c {} U u -23 Y y 1 a a 9.9 b B 5200000.0 X x hello d D mad Z z abc e e hare m M}
695 do_test selectA-3.2 {
697 SELECT a,b,c FROM t1 UNION ALL SELECT x,y,z FROM t2
700 } {hare m M abc e e mad Z z hello d D 5200000.0 X x 9.9 b B 1 a a -23 Y y {} C c {} U u}
701 do_test selectA-3.3 {
703 SELECT a,b,c FROM t1 UNION ALL SELECT x,y,z FROM t2
706 } {{} C c {} U u -23 Y y 1 a a 9.9 b B 5200000.0 X x hello d D mad Z z abc e e hare m M}
707 do_test selectA-3.4 {
709 SELECT a,b,c FROM t1 UNION ALL SELECT x,y,z FROM t2
712 } {{} C c {} U u 5200000.0 X x -23 Y y mad Z z 1 a a 9.9 b B hello d D abc e e hare m M}
713 do_test selectA-3.5 {
715 SELECT a,b,c FROM t1 UNION ALL SELECT x,y,z FROM t2
716 ORDER BY b COLLATE NOCASE,a,c
718 } {1 a a 9.9 b B {} C c hello d D abc e e hare m M {} U u 5200000.0 X x -23 Y y mad Z z}
719 do_test selectA-3.6 {
721 SELECT a,b,c FROM t1 UNION ALL SELECT x,y,z FROM t2
722 ORDER BY b COLLATE NOCASE DESC,a,c
724 } {mad Z z -23 Y y 5200000.0 X x {} U u hare m M abc e e hello d D {} C c 9.9 b B 1 a a}
725 do_test selectA-3.7 {
727 SELECT a,b,c FROM t1 UNION ALL SELECT x,y,z FROM t2
730 } {1 a a 9.9 b B {} C c hello d D abc e e hare m M {} U u 5200000.0 X x -23 Y y mad Z z}
731 do_test selectA-3.8 {
733 SELECT a,b,c FROM t1 UNION ALL SELECT x,y,z FROM t2
736 } {1 a a 9.9 b B {} C c hello d D abc e e hare m M {} U u 5200000.0 X x -23 Y y mad Z z}
737 do_test selectA-3.9 {
739 SELECT a,b,c FROM t1 UNION ALL SELECT x,y,z FROM t2
742 } {mad Z z -23 Y y 5200000.0 X x {} U u hare m M abc e e hello d D {} C c 9.9 b B 1 a a}
743 do_test selectA-3.10 {
745 SELECT a,b,c FROM t1 UNION ALL SELECT x,y,z FROM t2
746 ORDER BY c COLLATE BINARY DESC,a,b
748 } {mad Z z -23 Y y 5200000.0 X x {} U u abc e e {} C c 1 a a hare m M hello d D 9.9 b B}
749 do_test selectA-3.11 {
751 SELECT x,y,z FROM t2 UNION ALL SELECT a,b,c FROM t1
754 } {{} C c {} U u -23 Y y 1 a a 9.9 b B 5200000.0 X x hello d D mad Z z abc e e hare m M}
755 do_test selectA-3.12 {
757 SELECT x,y,z FROM t2 UNION ALL SELECT a,b,c FROM t1
760 } {hare m M abc e e mad Z z hello d D 5200000.0 X x 9.9 b B 1 a a -23 Y y {} C c {} U u}
761 do_test selectA-3.13 {
763 SELECT x,y,z FROM t2 UNION ALL SELECT a,b,c FROM t1
766 } {{} C c {} U u -23 Y y 1 a a 9.9 b B 5200000.0 X x hello d D mad Z z abc e e hare m M}
767 do_test selectA-3.14 {
769 SELECT x,y,z FROM t2 UNION ALL SELECT a,b,c FROM t1
772 } {{} C c {} U u 5200000.0 X x -23 Y y mad Z z 1 a a 9.9 b B hello d D abc e e hare m M}
773 do_test selectA-3.15 {
775 SELECT x,y,z FROM t2 UNION ALL SELECT a,b,c FROM t1
776 ORDER BY b COLLATE NOCASE,a,c
778 } {1 a a 9.9 b B {} C c hello d D abc e e hare m M {} U u 5200000.0 X x -23 Y y mad Z z}
779 do_test selectA-3.16 {
781 SELECT x,y,z FROM t2 UNION ALL SELECT a,b,c FROM t1
782 ORDER BY b COLLATE NOCASE DESC,a,c
784 } {mad Z z -23 Y y 5200000.0 X x {} U u hare m M abc e e hello d D {} C c 9.9 b B 1 a a}
785 do_test selectA-3.17 {
787 SELECT x,y,z FROM t2 UNION ALL SELECT a,b,c FROM t1
790 } {1 a a 9.9 b B {} C c hello d D abc e e hare m M {} U u 5200000.0 X x -23 Y y mad Z z}
791 do_test selectA-3.18 {
793 SELECT x,y,z FROM t2 UNION ALL SELECT a,b,c FROM t1
796 } {1 a a 9.9 b B {} C c hello d D abc e e hare m M {} U u 5200000.0 X x -23 Y y mad Z z}
797 do_test selectA-3.19 {
799 SELECT x,y,z FROM t2 UNION ALL SELECT a,b,c FROM t1
802 } {mad Z z -23 Y y 5200000.0 X x {} U u hare m M abc e e hello d D {} C c 9.9 b B 1 a a}
803 do_test selectA-3.20 {
805 SELECT x,y,z FROM t2 UNION ALL SELECT a,b,c FROM t1
806 ORDER BY c COLLATE BINARY DESC,a,b
808 } {mad Z z -23 Y y 5200000.0 X x {} U u abc e e {} C c 1 a a hare m M hello d D 9.9 b B}
809 do_test selectA-3.21 {
811 SELECT a,b,c FROM t1 UNION SELECT x,y,z FROM t2
814 } {{} C c {} U u -23 Y y 1 a a 9.9 b B 5200000.0 X x hello d D mad Z z abc e e hare m M}
815 do_test selectA-3.22 {
817 SELECT a,b,c FROM t1 UNION SELECT x,y,z FROM t2
820 } {hare m M abc e e mad Z z hello d D 5200000.0 X x 9.9 b B 1 a a -23 Y y {} C c {} U u}
821 do_test selectA-3.23 {
823 SELECT a,b,c FROM t1 UNION SELECT x,y,z FROM t2
826 } {{} C c {} U u -23 Y y 1 a a 9.9 b B 5200000.0 X x hello d D mad Z z abc e e hare m M}
827 do_test selectA-3.24 {
829 SELECT a,b,c FROM t1 UNION SELECT x,y,z FROM t2
832 } {{} C c {} U u 5200000.0 X x -23 Y y mad Z z 1 a a 9.9 b B hello d D abc e e hare m M}
833 do_test selectA-3.25 {
835 SELECT a,b,c FROM t1 UNION SELECT x,y,z FROM t2
836 ORDER BY b COLLATE NOCASE,a,c
838 } {1 a a 9.9 b B {} C c hello d D abc e e hare m M {} U u 5200000.0 X x -23 Y y mad Z z}
839 do_test selectA-3.26 {
841 SELECT a,b,c FROM t1 UNION SELECT x,y,z FROM t2
842 ORDER BY b COLLATE NOCASE DESC,a,c
844 } {mad Z z -23 Y y 5200000.0 X x {} U u hare m M abc e e hello d D {} C c 9.9 b B 1 a a}
845 do_test selectA-3.27 {
847 SELECT a,b,c FROM t1 UNION SELECT x,y,z FROM t2
850 } {1 a a 9.9 b B {} C c hello d D abc e e hare m M {} U u 5200000.0 X x -23 Y y mad Z z}
851 do_test selectA-3.28 {
853 SELECT a,b,c FROM t1 UNION SELECT x,y,z FROM t2
856 } {1 a a 9.9 b B {} C c hello d D abc e e hare m M {} U u 5200000.0 X x -23 Y y mad Z z}
857 do_test selectA-3.29 {
859 SELECT a,b,c FROM t1 UNION SELECT x,y,z FROM t2
862 } {mad Z z -23 Y y 5200000.0 X x {} U u hare m M abc e e hello d D {} C c 9.9 b B 1 a a}
863 do_test selectA-3.30 {
865 SELECT a,b,c FROM t1 UNION SELECT x,y,z FROM t2
866 ORDER BY c COLLATE BINARY DESC,a,b
868 } {mad Z z -23 Y y 5200000.0 X x {} U u abc e e {} C c 1 a a hare m M hello d D 9.9 b B}
869 do_test selectA-3.31 {
871 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1
874 } {{} C c {} U u -23 Y y 1 a a 9.9 b B 5200000.0 X x hello d D mad Z z abc e e hare m M}
875 do_test selectA-3.32 {
877 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1
880 } {hare m M abc e e mad Z z hello d D 5200000.0 X x 9.9 b B 1 a a -23 Y y {} C c {} U u}
881 do_test selectA-3.33 {
883 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1
886 } {{} C c {} U u -23 Y y 1 a a 9.9 b B 5200000.0 X x hello d D mad Z z abc e e hare m M}
887 do_test selectA-3.34 {
889 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1
892 } {{} C c {} U u 5200000.0 X x -23 Y y mad Z z 1 a a 9.9 b B hello d D abc e e hare m M}
893 do_test selectA-3.35 {
895 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1
896 ORDER BY b COLLATE NOCASE,a,c
898 } {1 a a 9.9 b B {} C c hello d D abc e e hare m M {} U u 5200000.0 X x -23 Y y mad Z z}
899 do_test selectA-3.36 {
901 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1
902 ORDER BY b COLLATE NOCASE DESC,a,c
904 } {mad Z z -23 Y y 5200000.0 X x {} U u hare m M abc e e hello d D {} C c 9.9 b B 1 a a}
905 do_test selectA-3.37 {
907 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1
910 } {1 a a 9.9 b B {} C c hello d D abc e e hare m M {} U u 5200000.0 X x -23 Y y mad Z z}
911 do_test selectA-3.38 {
913 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1
916 } {1 a a 9.9 b B {} C c hello d D abc e e hare m M {} U u 5200000.0 X x -23 Y y mad Z z}
917 do_test selectA-3.39 {
919 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1
922 } {mad Z z -23 Y y 5200000.0 X x {} U u hare m M abc e e hello d D {} C c 9.9 b B 1 a a}
923 do_test selectA-3.40 {
925 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1
926 ORDER BY c COLLATE BINARY DESC,a,b
928 } {mad Z z -23 Y y 5200000.0 X x {} U u abc e e {} C c 1 a a hare m M hello d D 9.9 b B}
929 do_test selectA-3.41 {
931 SELECT a,b,c FROM t1 EXCEPT SELECT a,b,c FROM t1 WHERE b>='d'
934 } {{} C c 1 a a 9.9 b B}
935 do_test selectA-3.42 {
937 SELECT a,b,c FROM t1 INTERSECT SELECT a,b,c FROM t1 WHERE b>='d'
940 } {hello d D abc e e}
941 do_test selectA-3.43 {
943 SELECT a,b,c FROM t1 WHERE b>='d' INTERSECT SELECT a,b,c FROM t1
946 } {hello d D abc e e}
947 do_test selectA-3.44 {
949 SELECT a,b,c FROM t1 EXCEPT SELECT a,b,c FROM t1 WHERE b<'d'
952 } {hello d D abc e e}
953 do_test selectA-3.45 {
955 SELECT a,b,c FROM t1 INTERSECT SELECT a,b,c FROM t1 WHERE b<'d'
958 } {{} C c 1 a a 9.9 b B}
959 do_test selectA-3.46 {
961 SELECT a,b,c FROM t1 WHERE b<'d' INTERSECT SELECT a,b,c FROM t1
964 } {{} C c 1 a a 9.9 b B}
965 do_test selectA-3.47 {
967 SELECT a,b,c FROM t1 EXCEPT SELECT a,b,c FROM t1 WHERE b>='d'
970 } {9.9 b B 1 a a {} C c}
971 do_test selectA-3.48 {
973 SELECT a,b,c FROM t1 INTERSECT SELECT a,b,c FROM t1 WHERE b>='d'
976 } {abc e e hello d D}
977 do_test selectA-3.49 {
979 SELECT a,b,c FROM t1 WHERE b>='d' INTERSECT SELECT a,b,c FROM t1
982 } {abc e e hello d D}
983 do_test selectA-3.50 {
985 SELECT a,b,c FROM t1 EXCEPT SELECT a,b,c FROM t1 WHERE b<'d'
988 } {abc e e hello d D}
989 do_test selectA-3.51 {
991 SELECT a,b,c FROM t1 INTERSECT SELECT a,b,c FROM t1 WHERE b<'d'
994 } {9.9 b B 1 a a {} C c}
995 do_test selectA-3.52 {
997 SELECT a,b,c FROM t1 WHERE b<'d' INTERSECT SELECT a,b,c FROM t1
1000 } {9.9 b B 1 a a {} C c}
1001 do_test selectA-3.53 {
1003 SELECT a,b,c FROM t1 EXCEPT SELECT a,b,c FROM t1 WHERE b>='d'
1006 } {{} C c 1 a a 9.9 b B}
1007 do_test selectA-3.54 {
1009 SELECT a,b,c FROM t1 INTERSECT SELECT a,b,c FROM t1 WHERE b>='d'
1012 } {hello d D abc e e}
1013 do_test selectA-3.55 {
1015 SELECT a,b,c FROM t1 WHERE b>='d' INTERSECT SELECT a,b,c FROM t1
1018 } {abc e e hello d D}
1019 do_test selectA-3.56 {
1021 SELECT a,b,c FROM t1 EXCEPT SELECT a,b,c FROM t1 WHERE b<'d'
1022 ORDER BY b, c DESC, a
1024 } {hello d D abc e e}
1025 do_test selectA-3.57 {
1027 SELECT a,b,c FROM t1 INTERSECT SELECT a,b,c FROM t1 WHERE b<'d'
1028 ORDER BY b COLLATE NOCASE
1030 } {1 a a 9.9 b B {} C c}
1031 do_test selectA-3.58 {
1033 SELECT a,b,c FROM t1 WHERE b<'d' INTERSECT SELECT a,b,c FROM t1
1036 } {{} C c 1 a a 9.9 b B}
1037 do_test selectA-3.59 {
1039 SELECT a,b,c FROM t1 EXCEPT SELECT a,b,c FROM t1 WHERE b>='d'
1042 } {1 a a 9.9 b B {} C c}
1043 do_test selectA-3.60 {
1045 SELECT a,b,c FROM t1 INTERSECT SELECT a,b,c FROM t1 WHERE b>='d'
1048 } {hello d D abc e e}
1049 do_test selectA-3.61 {
1051 SELECT a,b,c FROM t1 WHERE b>='d' INTERSECT SELECT a,b,c FROM t1
1052 ORDER BY c COLLATE BINARY, b DESC, c, a, b, c, a, b, c
1054 } {hello d D abc e e}
1055 do_test selectA-3.62 {
1057 SELECT a,b,c FROM t1 EXCEPT SELECT a,b,c FROM t1 WHERE b<'d'
1060 } {abc e e hello d D}
1061 do_test selectA-3.63 {
1063 SELECT a,b,c FROM t1 INTERSECT SELECT a,b,c FROM t1 WHERE b<'d'
1064 ORDER BY c COLLATE NOCASE
1066 } {1 a a 9.9 b B {} C c}
1067 do_test selectA-3.64 {
1069 SELECT a,b,c FROM t1 WHERE b<'d' INTERSECT SELECT a,b,c FROM t1
1072 } {1 a a 9.9 b B {} C c}
1073 do_test selectA-3.65 {
1075 SELECT a,b,c FROM t3 INTERSECT SELECT a,b,c FROM t1 WHERE b<'d'
1076 ORDER BY c COLLATE NOCASE
1078 } {1 a a 9.9 b B {} C c}
1079 do_test selectA-3.66 {
1081 SELECT a,b,c FROM t1 WHERE b<'d' INTERSECT SELECT a,b,c FROM t3
1084 } {1 a a 9.9 b B {} C c}
1085 do_test selectA-3.67 {
1087 SELECT a,b,c FROM t1 EXCEPT SELECT a,b,c FROM t3 WHERE b<'d'
1090 } {abc e e hello d D}
1091 do_test selectA-3.68 {
1093 SELECT a,b,c FROM t1 EXCEPT SELECT a,b,c FROM t1 WHERE b<'d'
1094 INTERSECT SELECT a,b,c FROM t3
1095 EXCEPT SELECT b,c,a FROM t3
1098 } {abc e e hello d D}
1099 do_test selectA-3.69 {
1101 SELECT a,b,c FROM t1 INTERSECT SELECT a,b,c FROM t1 WHERE b<'d'
1102 INTERSECT SELECT a,b,c FROM t3
1103 EXCEPT SELECT b,c,a FROM t3
1104 ORDER BY c COLLATE NOCASE
1106 } {1 a a 9.9 b B {} C c}
1107 do_test selectA-3.70 {
1109 SELECT a,b,c FROM t1 WHERE b<'d' INTERSECT SELECT a,b,c FROM t1
1110 INTERSECT SELECT a,b,c FROM t3
1111 EXCEPT SELECT b,c,a FROM t3
1114 } {1 a a 9.9 b B {} C c}
1115 do_test selectA-3.71 {
1117 SELECT a,b,c FROM t1 WHERE b<'d'
1118 INTERSECT SELECT a,b,c FROM t1
1119 INTERSECT SELECT a,b,c FROM t3
1120 EXCEPT SELECT b,c,a FROM t3
1121 INTERSECT SELECT a,b,c FROM t1
1122 EXCEPT SELECT x,y,z FROM t2
1123 INTERSECT SELECT a,b,c FROM t3
1124 EXCEPT SELECT y,x,z FROM t2
1125 INTERSECT SELECT a,b,c FROM t1
1126 EXCEPT SELECT c,b,a FROM t3
1129 } {1 a a 9.9 b B {} C c}
1130 do_test selectA-3.72 {
1132 SELECT a,b,c FROM t3 UNION SELECT x,y,z FROM t2
1135 } {{} C c {} U u -23 Y y 1 a a 9.9 b B 5200000.0 X x hello d D mad Z z abc e e hare m M}
1136 do_test selectA-3.73 {
1138 SELECT a,b,c FROM t3 UNION SELECT x,y,z FROM t2
1141 } {hare m M abc e e mad Z z hello d D 5200000.0 X x 9.9 b B 1 a a -23 Y y {} C c {} U u}
1142 do_test selectA-3.74 {
1144 SELECT a,b,c FROM t3 UNION SELECT x,y,z FROM t2
1147 } {{} C c {} U u -23 Y y 1 a a 9.9 b B 5200000.0 X x hello d D mad Z z abc e e hare m M}
1148 do_test selectA-3.75 {
1150 SELECT a,b,c FROM t3 UNION SELECT x,y,z FROM t2
1153 } {{} C c {} U u 5200000.0 X x -23 Y y mad Z z 1 a a 9.9 b B hello d D abc e e hare m M}
1154 do_test selectA-3.76 {
1156 SELECT a,b,c FROM t3 UNION SELECT x,y,z FROM t2
1157 ORDER BY b COLLATE NOCASE,a,c
1159 } {1 a a 9.9 b B {} C c hello d D abc e e hare m M {} U u 5200000.0 X x -23 Y y mad Z z}
1160 do_test selectA-3.77 {
1162 SELECT a,b,c FROM t3 UNION SELECT x,y,z FROM t2
1163 ORDER BY b COLLATE NOCASE DESC,a,c
1165 } {mad Z z -23 Y y 5200000.0 X x {} U u hare m M abc e e hello d D {} C c 9.9 b B 1 a a}
1166 do_test selectA-3.78 {
1168 SELECT a,b,c FROM t3 UNION SELECT x,y,z FROM t2
1171 } {1 a a 9.9 b B {} C c hello d D abc e e hare m M {} U u 5200000.0 X x -23 Y y mad Z z}
1172 do_test selectA-3.79 {
1174 SELECT a,b,c FROM t3 UNION SELECT x,y,z FROM t2
1177 } {1 a a 9.9 b B {} C c hello d D abc e e hare m M {} U u 5200000.0 X x -23 Y y mad Z z}
1178 do_test selectA-3.80 {
1180 SELECT a,b,c FROM t3 UNION SELECT x,y,z FROM t2
1183 } {mad Z z -23 Y y 5200000.0 X x {} U u hare m M abc e e hello d D {} C c 9.9 b B 1 a a}
1184 do_test selectA-3.81 {
1186 SELECT a,b,c FROM t3 UNION SELECT x,y,z FROM t2
1187 ORDER BY c COLLATE BINARY DESC,a,b
1189 } {mad Z z -23 Y y 5200000.0 X x {} U u abc e e {} C c 1 a a hare m M hello d D 9.9 b B}
1190 do_test selectA-3.82 {
1192 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3
1195 } {{} C c {} U u -23 Y y 1 a a 9.9 b B 5200000.0 X x hello d D mad Z z abc e e hare m M}
1196 do_test selectA-3.83 {
1198 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3
1201 } {hare m M abc e e mad Z z hello d D 5200000.0 X x 9.9 b B 1 a a -23 Y y {} C c {} U u}
1202 do_test selectA-3.84 {
1204 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3
1207 } {{} C c {} U u -23 Y y 1 a a 9.9 b B 5200000.0 X x hello d D mad Z z abc e e hare m M}
1208 do_test selectA-3.85 {
1210 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3
1213 } {{} C c {} U u 5200000.0 X x -23 Y y mad Z z 1 a a 9.9 b B hello d D abc e e hare m M}
1214 do_test selectA-3.86 {
1216 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3
1217 ORDER BY b COLLATE NOCASE,a,c
1219 } {1 a a 9.9 b B {} C c hello d D abc e e hare m M {} U u 5200000.0 X x -23 Y y mad Z z}
1220 do_test selectA-3.87 {
1222 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3
1223 ORDER BY y COLLATE NOCASE DESC,x,z
1225 } {mad Z z -23 Y y 5200000.0 X x {} U u hare m M abc e e hello d D {} C c 9.9 b B 1 a a}
1226 do_test selectA-3.88 {
1228 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3
1231 } {1 a a 9.9 b B {} C c hello d D abc e e hare m M {} U u 5200000.0 X x -23 Y y mad Z z}
1232 do_test selectA-3.89 {
1234 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3
1237 } {1 a a 9.9 b B {} C c hello d D abc e e hare m M {} U u 5200000.0 X x -23 Y y mad Z z}
1238 do_test selectA-3.90 {
1240 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3
1243 } {mad Z z -23 Y y 5200000.0 X x {} U u hare m M abc e e hello d D {} C c 9.9 b B 1 a a}
1244 do_test selectA-3.91 {
1246 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3
1247 ORDER BY c COLLATE BINARY DESC,a,b
1249 } {mad Z z -23 Y y 5200000.0 X x {} U u abc e e {} C c 1 a a hare m M hello d D 9.9 b B}
1250 do_test selectA-3.92 {
1252 SELECT x,y,z FROM t2
1253 INTERSECT SELECT a,b,c FROM t3
1254 EXCEPT SELECT c,b,a FROM t1
1255 UNION SELECT a,b,c FROM t3
1256 INTERSECT SELECT a,b,c FROM t3
1257 EXCEPT SELECT c,b,a FROM t1
1258 UNION SELECT a,b,c FROM t3
1259 ORDER BY y COLLATE NOCASE DESC,x,z
1261 } {mad Z z -23 Y y 5200000.0 X x {} U u hare m M abc e e hello d D {} C c 9.9 b B 1 a a}
1262 do_test selectA-3.93 {
1264 SELECT upper((SELECT c FROM t1 UNION SELECT z FROM t2 ORDER BY 1));
1267 do_test selectA-3.94 {
1269 SELECT lower((SELECT c FROM t1 UNION ALL SELECT z FROM t2 ORDER BY 1));
1272 do_test selectA-3.95 {
1274 SELECT lower((SELECT c FROM t1 INTERSECT SELECT z FROM t2 ORDER BY 1));
1277 do_test selectA-3.96 {
1279 SELECT lower((SELECT z FROM t2 EXCEPT SELECT c FROM t1 ORDER BY 1));
1282 do_test selectA-3.97 {
1284 SELECT upper((SELECT x FROM (
1285 SELECT x,y,z FROM t2
1286 INTERSECT SELECT a,b,c FROM t3
1287 EXCEPT SELECT c,b,a FROM t1
1288 UNION SELECT a,b,c FROM t3
1289 INTERSECT SELECT a,b,c FROM t3
1290 EXCEPT SELECT c,b,a FROM t1
1291 UNION SELECT a,b,c FROM t3
1292 ORDER BY y COLLATE NOCASE DESC,x,z)))