wasCSharpSQLite – Blame information for rev

Subversion Repositories:
Rev:
Rev Author Line No. Line
1 office 1 # 2008 June 24
2 #
3 # The author disclaims copyright to this source code. In place of
4 # a legal notice, here is a blessing:
5 #
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.
9 #
10 #***********************************************************************
11 # This file implements regression tests for SQLite library.
12 #
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.
19 #
20 # $Id: selectA.test,v 1.6 2008/08/21 14:24:29 drh Exp $
21  
22 set testdir [file dirname $argv0]
23 source $testdir/tester.tcl
24  
25 ifcapable !compound {
26 finish_test
27 return
28 }
29  
30 do_test selectA-1.0 {
31 execsql {
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');
38 SELECT * FROM t1;
39 }
40 } {1 a a 9.9 b B {} C c hello d D abc e e}
41 do_test selectA-1.1 {
42 execsql {
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');
49 SELECT * FROM t2;
50 }
51 } {{} U u mad Z z hare m M 5200000.0 X x -23 Y y}
52 do_test selectA-1.2 {
53 execsql {
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;
62 }
63 } {30}
64  
65 do_test selectA-2.1 {
66 execsql {
67 SELECT a,b,c FROM t1 UNION ALL SELECT x,y,z FROM t2
68 ORDER BY a,b,c
69 }
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
72 execsql {
73 SELECT t1.a, t1.b, t1.c FROM t1 UNION ALL SELECT x,y,z FROM t2
74 ORDER BY a,b,c
75 }
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
78 execsql {
79 SELECT a,b,c FROM t1 UNION ALL SELECT x,y,z FROM t2
80 ORDER BY t1.a, t1.b, t1.c
81 }
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}
83 do_test selectA-2.2 {
84 execsql {
85 SELECT a,b,c FROM t1 UNION ALL SELECT x,y,z FROM t2
86 ORDER BY a DESC,b,c
87 }
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}
89 do_test selectA-2.3 {
90 execsql {
91 SELECT a,b,c FROM t1 UNION ALL SELECT x,y,z FROM t2
92 ORDER BY a,c,b
93 }
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}
95 do_test selectA-2.4 {
96 execsql {
97 SELECT a,b,c FROM t1 UNION ALL SELECT x,y,z FROM t2
98 ORDER BY b,a,c
99 }
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 {
102 execsql {
103 SELECT a,b,c FROM t1 UNION ALL SELECT x,y,z FROM t2
104 ORDER BY b COLLATE NOCASE,a,c
105 }
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 {
108 execsql {
109 SELECT a,b,c FROM t1 UNION ALL SELECT x,y,z FROM t2
110 ORDER BY b COLLATE NOCASE DESC,a,c
111 }
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 {
114 execsql {
115 SELECT a,b,c FROM t1 UNION ALL SELECT x,y,z FROM t2
116 ORDER BY c,b,a
117 }
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 {
120 execsql {
121 SELECT a,b,c FROM t1 UNION ALL SELECT x,y,z FROM t2
122 ORDER BY c,a,b
123 }
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 {
126 execsql {
127 SELECT a,b,c FROM t1 UNION ALL SELECT x,y,z FROM t2
128 ORDER BY c DESC,a,b
129 }
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 {
132 execsql {
133 SELECT a,b,c FROM t1 UNION ALL SELECT x,y,z FROM t2
134 ORDER BY c COLLATE BINARY DESC,a,b
135 }
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 {
138 execsql {
139 SELECT x,y,z FROM t2 UNION ALL SELECT a,b,c FROM t1
140 ORDER BY a,b,c
141 }
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 {
144 execsql {
145 SELECT x,y,z FROM t2 UNION ALL SELECT a,b,c FROM t1
146 ORDER BY a DESC,b,c
147 }
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 {
150 execsql {
151 SELECT x,y,z FROM t2 UNION ALL SELECT a,b,c FROM t1
152 ORDER BY a,c,b
153 }
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 {
156 execsql {
157 SELECT x,y,z FROM t2 UNION ALL SELECT a,b,c FROM t1
158 ORDER BY b,a,c
159 }
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 {
162 execsql {
163 SELECT x,y,z FROM t2 UNION ALL SELECT a,b,c FROM t1
164 ORDER BY b COLLATE NOCASE,a,c
165 }
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 {
168 execsql {
169 SELECT x,y,z FROM t2 UNION ALL SELECT a,b,c FROM t1
170 ORDER BY b COLLATE NOCASE DESC,a,c
171 }
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 {
174 execsql {
175 SELECT x,y,z FROM t2 UNION ALL SELECT a,b,c FROM t1
176 ORDER BY c,b,a
177 }
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 {
180 execsql {
181 SELECT x,y,z FROM t2 UNION ALL SELECT a,b,c FROM t1
182 ORDER BY c,a,b
183 }
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 {
186 execsql {
187 SELECT x,y,z FROM t2 UNION ALL SELECT a,b,c FROM t1
188 ORDER BY c DESC,a,b
189 }
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 {
192 execsql {
193 SELECT x,y,z FROM t2 UNION ALL SELECT a,b,c FROM t1
194 ORDER BY c COLLATE BINARY DESC,a,b
195 }
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 {
198 execsql {
199 SELECT a,b,c FROM t1 UNION SELECT x,y,z FROM t2
200 ORDER BY a,b,c
201 }
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 {
204 execsql {
205 SELECT a,b,c FROM t1 UNION SELECT x,y,z FROM t2
206 ORDER BY a DESC,b,c
207 }
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 {
210 execsql {
211 SELECT a,b,c FROM t1 UNION SELECT x,y,z FROM t2
212 ORDER BY a,c,b
213 }
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 {
216 execsql {
217 SELECT a,b,c FROM t1 UNION SELECT x,y,z FROM t2
218 ORDER BY b,a,c
219 }
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 {
222 execsql {
223 SELECT a,b,c FROM t1 UNION SELECT x,y,z FROM t2
224 ORDER BY b COLLATE NOCASE,a,c
225 }
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 {
228 execsql {
229 SELECT a,b,c FROM t1 UNION SELECT x,y,z FROM t2
230 ORDER BY b COLLATE NOCASE DESC,a,c
231 }
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 {
234 execsql {
235 SELECT a,b,c FROM t1 UNION SELECT x,y,z FROM t2
236 ORDER BY c,b,a
237 }
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 {
240 execsql {
241 SELECT a,b,c FROM t1 UNION SELECT x,y,z FROM t2
242 ORDER BY c,a,b
243 }
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 {
246 execsql {
247 SELECT a,b,c FROM t1 UNION SELECT x,y,z FROM t2
248 ORDER BY c DESC,a,b
249 }
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 {
252 execsql {
253 SELECT a,b,c FROM t1 UNION SELECT x,y,z FROM t2
254 ORDER BY c COLLATE BINARY DESC,a,b
255 }
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 {
258 execsql {
259 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1
260 ORDER BY a,b,c
261 }
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 {
264 execsql {
265 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1
266 ORDER BY a DESC,b,c
267 }
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 {
270 execsql {
271 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1
272 ORDER BY a,c,b
273 }
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 {
276 execsql {
277 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1
278 ORDER BY b,a,c
279 }
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 {
282 execsql {
283 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1
284 ORDER BY b COLLATE NOCASE,a,c
285 }
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 {
288 execsql {
289 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1
290 ORDER BY b COLLATE NOCASE DESC,a,c
291 }
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 {
294 execsql {
295 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1
296 ORDER BY c,b,a
297 }
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 {
300 execsql {
301 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1
302 ORDER BY c,a,b
303 }
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 {
306 execsql {
307 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1
308 ORDER BY c DESC,a,b
309 }
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 {
312 execsql {
313 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1
314 ORDER BY c COLLATE BINARY DESC,a,b
315 }
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 {
318 execsql {
319 SELECT a,b,c FROM t1 EXCEPT SELECT a,b,c FROM t1 WHERE b>='d'
320 ORDER BY a,b,c
321 }
322 } {{} C c 1 a a 9.9 b B}
323 do_test selectA-2.42 {
324 execsql {
325 SELECT a,b,c FROM t1 INTERSECT SELECT a,b,c FROM t1 WHERE b>='d'
326 ORDER BY a,b,c
327 }
328 } {hello d D abc e e}
329 do_test selectA-2.43 {
330 execsql {
331 SELECT a,b,c FROM t1 WHERE b>='d' INTERSECT SELECT a,b,c FROM t1
332 ORDER BY a,b,c
333 }
334 } {hello d D abc e e}
335 do_test selectA-2.44 {
336 execsql {
337 SELECT a,b,c FROM t1 EXCEPT SELECT a,b,c FROM t1 WHERE b<'d'
338 ORDER BY a,b,c
339 }
340 } {hello d D abc e e}
341 do_test selectA-2.45 {
342 execsql {
343 SELECT a,b,c FROM t1 INTERSECT SELECT a,b,c FROM t1 WHERE b<'d'
344 ORDER BY a,b,c
345 }
346 } {{} C c 1 a a 9.9 b B}
347 do_test selectA-2.46 {
348 execsql {
349 SELECT a,b,c FROM t1 WHERE b<'d' INTERSECT SELECT a,b,c FROM t1
350 ORDER BY a,b,c
351 }
352 } {{} C c 1 a a 9.9 b B}
353 do_test selectA-2.47 {
354 execsql {
355 SELECT a,b,c FROM t1 EXCEPT SELECT a,b,c FROM t1 WHERE b>='d'
356 ORDER BY a DESC
357 }
358 } {9.9 b B 1 a a {} C c}
359 do_test selectA-2.48 {
360 execsql {
361 SELECT a,b,c FROM t1 INTERSECT SELECT a,b,c FROM t1 WHERE b>='d'
362 ORDER BY a DESC
363 }
364 } {abc e e hello d D}
365 do_test selectA-2.49 {
366 execsql {
367 SELECT a,b,c FROM t1 WHERE b>='d' INTERSECT SELECT a,b,c FROM t1
368 ORDER BY a DESC
369 }
370 } {abc e e hello d D}
371 do_test selectA-2.50 {
372 execsql {
373 SELECT a,b,c FROM t1 EXCEPT SELECT a,b,c FROM t1 WHERE b<'d'
374 ORDER BY a DESC
375 }
376 } {abc e e hello d D}
377 do_test selectA-2.51 {
378 execsql {
379 SELECT a,b,c FROM t1 INTERSECT SELECT a,b,c FROM t1 WHERE b<'d'
380 ORDER BY a DESC
381 }
382 } {9.9 b B 1 a a {} C c}
383 do_test selectA-2.52 {
384 execsql {
385 SELECT a,b,c FROM t1 WHERE b<'d' INTERSECT SELECT a,b,c FROM t1
386 ORDER BY a DESC
387 }
388 } {9.9 b B 1 a a {} C c}
389 do_test selectA-2.53 {
390 execsql {
391 SELECT a,b,c FROM t1 EXCEPT SELECT a,b,c FROM t1 WHERE b>='d'
392 ORDER BY b, a DESC
393 }
394 } {{} C c 1 a a 9.9 b B}
395 do_test selectA-2.54 {
396 execsql {
397 SELECT a,b,c FROM t1 INTERSECT SELECT a,b,c FROM t1 WHERE b>='d'
398 ORDER BY b
399 }
400 } {hello d D abc e e}
401 do_test selectA-2.55 {
402 execsql {
403 SELECT a,b,c FROM t1 WHERE b>='d' INTERSECT SELECT a,b,c FROM t1
404 ORDER BY b DESC, c
405 }
406 } {abc e e hello d D}
407 do_test selectA-2.56 {
408 execsql {
409 SELECT a,b,c FROM t1 EXCEPT SELECT a,b,c FROM t1 WHERE b<'d'
410 ORDER BY b, c DESC, a
411 }
412 } {hello d D abc e e}
413 do_test selectA-2.57 {
414 execsql {
415 SELECT a,b,c FROM t1 INTERSECT SELECT a,b,c FROM t1 WHERE b<'d'
416 ORDER BY b COLLATE NOCASE
417 }
418 } {1 a a 9.9 b B {} C c}
419 do_test selectA-2.58 {
420 execsql {
421 SELECT a,b,c FROM t1 WHERE b<'d' INTERSECT SELECT a,b,c FROM t1
422 ORDER BY b
423 }
424 } {{} C c 1 a a 9.9 b B}
425 do_test selectA-2.59 {
426 execsql {
427 SELECT a,b,c FROM t1 EXCEPT SELECT a,b,c FROM t1 WHERE b>='d'
428 ORDER BY c, a DESC
429 }
430 } {1 a a 9.9 b B {} C c}
431 do_test selectA-2.60 {
432 execsql {
433 SELECT a,b,c FROM t1 INTERSECT SELECT a,b,c FROM t1 WHERE b>='d'
434 ORDER BY c
435 }
436 } {hello d D abc e e}
437 do_test selectA-2.61 {
438 execsql {
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
441 }
442 } {hello d D abc e e}
443 do_test selectA-2.62 {
444 execsql {
445 SELECT a,b,c FROM t1 EXCEPT SELECT a,b,c FROM t1 WHERE b<'d'
446 ORDER BY c DESC, a
447 }
448 } {abc e e hello d D}
449 do_test selectA-2.63 {
450 execsql {
451 SELECT a,b,c FROM t1 INTERSECT SELECT a,b,c FROM t1 WHERE b<'d'
452 ORDER BY c COLLATE NOCASE
453 }
454 } {1 a a 9.9 b B {} C c}
455 do_test selectA-2.64 {
456 execsql {
457 SELECT a,b,c FROM t1 WHERE b<'d' INTERSECT SELECT a,b,c FROM t1
458 ORDER BY c
459 }
460 } {1 a a 9.9 b B {} C c}
461 do_test selectA-2.65 {
462 execsql {
463 SELECT a,b,c FROM t3 INTERSECT SELECT a,b,c FROM t1 WHERE b<'d'
464 ORDER BY c COLLATE NOCASE
465 }
466 } {1 a a 9.9 b B {} C c}
467 do_test selectA-2.66 {
468 execsql {
469 SELECT a,b,c FROM t1 WHERE b<'d' INTERSECT SELECT a,b,c FROM t3
470 ORDER BY c
471 }
472 } {1 a a 9.9 b B {} C c}
473 do_test selectA-2.67 {
474 execsql {
475 SELECT a,b,c FROM t1 EXCEPT SELECT a,b,c FROM t3 WHERE b<'d'
476 ORDER BY c DESC, a
477 }
478 } {abc e e hello d D}
479 do_test selectA-2.68 {
480 execsql {
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
484 ORDER BY c DESC, a
485 }
486 } {abc e e hello d D}
487 do_test selectA-2.69 {
488 execsql {
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
493 }
494 } {1 a a 9.9 b B {} C c}
495 do_test selectA-2.70 {
496 execsql {
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
500 ORDER BY c
501 }
502 } {1 a a 9.9 b B {} C c}
503 do_test selectA-2.71 {
504 execsql {
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
515 ORDER BY c
516 }
517 } {1 a a 9.9 b B {} C c}
518 do_test selectA-2.72 {
519 execsql {
520 SELECT a,b,c FROM t3 UNION SELECT x,y,z FROM t2
521 ORDER BY a,b,c
522 }
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 {
525 execsql {
526 SELECT a,b,c FROM t3 UNION SELECT x,y,z FROM t2
527 ORDER BY a DESC,b,c
528 }
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 {
531 execsql {
532 SELECT a,b,c FROM t3 UNION SELECT x,y,z FROM t2
533 ORDER BY a,c,b
534 }
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 {
537 execsql {
538 SELECT a,b,c FROM t3 UNION SELECT x,y,z FROM t2
539 ORDER BY b,a,c
540 }
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 {
543 execsql {
544 SELECT a,b,c FROM t3 UNION SELECT x,y,z FROM t2
545 ORDER BY b COLLATE NOCASE,a,c
546 }
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 {
549 execsql {
550 SELECT a,b,c FROM t3 UNION SELECT x,y,z FROM t2
551 ORDER BY b COLLATE NOCASE DESC,a,c
552 }
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 {
555 execsql {
556 SELECT a,b,c FROM t3 UNION SELECT x,y,z FROM t2
557 ORDER BY c,b,a
558 }
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 {
561 execsql {
562 SELECT a,b,c FROM t3 UNION SELECT x,y,z FROM t2
563 ORDER BY c,a,b
564 }
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 {
567 execsql {
568 SELECT a,b,c FROM t3 UNION SELECT x,y,z FROM t2
569 ORDER BY c DESC,a,b
570 }
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 {
573 execsql {
574 SELECT a,b,c FROM t3 UNION SELECT x,y,z FROM t2
575 ORDER BY c COLLATE BINARY DESC,a,b
576 }
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 {
579 execsql {
580 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3
581 ORDER BY a,b,c
582 }
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 {
585 execsql {
586 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3
587 ORDER BY a DESC,b,c
588 }
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 {
591 execsql {
592 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3
593 ORDER BY a,c,b
594 }
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 {
597 execsql {
598 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3
599 ORDER BY b,a,c
600 }
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 {
603 execsql {
604 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3
605 ORDER BY b COLLATE NOCASE,a,c
606 }
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 {
609 execsql {
610 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3
611 ORDER BY y COLLATE NOCASE DESC,x,z
612 }
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 {
615 execsql {
616 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3
617 ORDER BY c,b,a
618 }
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 {
621 execsql {
622 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3
623 ORDER BY c,a,b
624 }
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 {
627 execsql {
628 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3
629 ORDER BY c DESC,a,b
630 }
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 {
633 execsql {
634 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3
635 ORDER BY c COLLATE BINARY DESC,a,b
636 }
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 {
639 execsql {
640 SELECT x,y,z FROM t2
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
648 }
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 {
651 execsql {
652 SELECT upper((SELECT c FROM t1 UNION SELECT z FROM t2 ORDER BY 1));
653 }
654 } {A}
655 do_test selectA-2.94 {
656 execsql {
657 SELECT lower((SELECT c FROM t1 UNION ALL SELECT z FROM t2 ORDER BY 1));
658 }
659 } {a}
660 do_test selectA-2.95 {
661 execsql {
662 SELECT lower((SELECT c FROM t1 INTERSECT SELECT z FROM t2 ORDER BY 1));
663 }
664 } {{}}
665 do_test selectA-2.96 {
666 execsql {
667 SELECT lower((SELECT z FROM t2 EXCEPT SELECT c FROM t1 ORDER BY 1));
668 }
669 } {m}
670  
671  
672 do_test selectA-3.0 {
673 execsql {
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'
681 }
682 } {t1a t1b t1c t2x t2y t2z}
683 do_test selectA-3.1 {
684 execsql {
685 SELECT a,b,c FROM t1 UNION ALL SELECT x,y,z FROM t2
686 ORDER BY a,b,c
687 }
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
690 execsql {
691 SELECT t1.a,b,t1.c FROM t1 UNION ALL SELECT x,y,z FROM t2
692 ORDER BY a,t1.b,t1.c
693 }
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 {
696 execsql {
697 SELECT a,b,c FROM t1 UNION ALL SELECT x,y,z FROM t2
698 ORDER BY a DESC,b,c
699 }
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 {
702 execsql {
703 SELECT a,b,c FROM t1 UNION ALL SELECT x,y,z FROM t2
704 ORDER BY a,c,b
705 }
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 {
708 execsql {
709 SELECT a,b,c FROM t1 UNION ALL SELECT x,y,z FROM t2
710 ORDER BY b,a,c
711 }
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 {
714 execsql {
715 SELECT a,b,c FROM t1 UNION ALL SELECT x,y,z FROM t2
716 ORDER BY b COLLATE NOCASE,a,c
717 }
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 {
720 execsql {
721 SELECT a,b,c FROM t1 UNION ALL SELECT x,y,z FROM t2
722 ORDER BY b COLLATE NOCASE DESC,a,c
723 }
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 {
726 execsql {
727 SELECT a,b,c FROM t1 UNION ALL SELECT x,y,z FROM t2
728 ORDER BY c,b,a
729 }
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 {
732 execsql {
733 SELECT a,b,c FROM t1 UNION ALL SELECT x,y,z FROM t2
734 ORDER BY c,a,b
735 }
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 {
738 execsql {
739 SELECT a,b,c FROM t1 UNION ALL SELECT x,y,z FROM t2
740 ORDER BY c DESC,a,b
741 }
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 {
744 execsql {
745 SELECT a,b,c FROM t1 UNION ALL SELECT x,y,z FROM t2
746 ORDER BY c COLLATE BINARY DESC,a,b
747 }
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 {
750 execsql {
751 SELECT x,y,z FROM t2 UNION ALL SELECT a,b,c FROM t1
752 ORDER BY a,b,c
753 }
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 {
756 execsql {
757 SELECT x,y,z FROM t2 UNION ALL SELECT a,b,c FROM t1
758 ORDER BY a DESC,b,c
759 }
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 {
762 execsql {
763 SELECT x,y,z FROM t2 UNION ALL SELECT a,b,c FROM t1
764 ORDER BY a,c,b
765 }
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 {
768 execsql {
769 SELECT x,y,z FROM t2 UNION ALL SELECT a,b,c FROM t1
770 ORDER BY b,a,c
771 }
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 {
774 execsql {
775 SELECT x,y,z FROM t2 UNION ALL SELECT a,b,c FROM t1
776 ORDER BY b COLLATE NOCASE,a,c
777 }
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 {
780 execsql {
781 SELECT x,y,z FROM t2 UNION ALL SELECT a,b,c FROM t1
782 ORDER BY b COLLATE NOCASE DESC,a,c
783 }
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 {
786 execsql {
787 SELECT x,y,z FROM t2 UNION ALL SELECT a,b,c FROM t1
788 ORDER BY c,b,a
789 }
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 {
792 execsql {
793 SELECT x,y,z FROM t2 UNION ALL SELECT a,b,c FROM t1
794 ORDER BY c,a,b
795 }
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 {
798 execsql {
799 SELECT x,y,z FROM t2 UNION ALL SELECT a,b,c FROM t1
800 ORDER BY c DESC,a,b
801 }
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 {
804 execsql {
805 SELECT x,y,z FROM t2 UNION ALL SELECT a,b,c FROM t1
806 ORDER BY c COLLATE BINARY DESC,a,b
807 }
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 {
810 execsql {
811 SELECT a,b,c FROM t1 UNION SELECT x,y,z FROM t2
812 ORDER BY a,b,c
813 }
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 {
816 execsql {
817 SELECT a,b,c FROM t1 UNION SELECT x,y,z FROM t2
818 ORDER BY a DESC,b,c
819 }
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 {
822 execsql {
823 SELECT a,b,c FROM t1 UNION SELECT x,y,z FROM t2
824 ORDER BY a,c,b
825 }
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 {
828 execsql {
829 SELECT a,b,c FROM t1 UNION SELECT x,y,z FROM t2
830 ORDER BY b,a,c
831 }
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 {
834 execsql {
835 SELECT a,b,c FROM t1 UNION SELECT x,y,z FROM t2
836 ORDER BY b COLLATE NOCASE,a,c
837 }
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 {
840 execsql {
841 SELECT a,b,c FROM t1 UNION SELECT x,y,z FROM t2
842 ORDER BY b COLLATE NOCASE DESC,a,c
843 }
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 {
846 execsql {
847 SELECT a,b,c FROM t1 UNION SELECT x,y,z FROM t2
848 ORDER BY c,b,a
849 }
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 {
852 execsql {
853 SELECT a,b,c FROM t1 UNION SELECT x,y,z FROM t2
854 ORDER BY c,a,b
855 }
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 {
858 execsql {
859 SELECT a,b,c FROM t1 UNION SELECT x,y,z FROM t2
860 ORDER BY c DESC,a,b
861 }
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 {
864 execsql {
865 SELECT a,b,c FROM t1 UNION SELECT x,y,z FROM t2
866 ORDER BY c COLLATE BINARY DESC,a,b
867 }
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 {
870 execsql {
871 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1
872 ORDER BY a,b,c
873 }
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 {
876 execsql {
877 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1
878 ORDER BY a DESC,b,c
879 }
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 {
882 execsql {
883 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1
884 ORDER BY a,c,b
885 }
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 {
888 execsql {
889 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1
890 ORDER BY b,a,c
891 }
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 {
894 execsql {
895 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1
896 ORDER BY b COLLATE NOCASE,a,c
897 }
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 {
900 execsql {
901 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1
902 ORDER BY b COLLATE NOCASE DESC,a,c
903 }
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 {
906 execsql {
907 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1
908 ORDER BY c,b,a
909 }
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 {
912 execsql {
913 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1
914 ORDER BY c,a,b
915 }
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 {
918 execsql {
919 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1
920 ORDER BY c DESC,a,b
921 }
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 {
924 execsql {
925 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1
926 ORDER BY c COLLATE BINARY DESC,a,b
927 }
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 {
930 execsql {
931 SELECT a,b,c FROM t1 EXCEPT SELECT a,b,c FROM t1 WHERE b>='d'
932 ORDER BY a,b,c
933 }
934 } {{} C c 1 a a 9.9 b B}
935 do_test selectA-3.42 {
936 execsql {
937 SELECT a,b,c FROM t1 INTERSECT SELECT a,b,c FROM t1 WHERE b>='d'
938 ORDER BY a,b,c
939 }
940 } {hello d D abc e e}
941 do_test selectA-3.43 {
942 execsql {
943 SELECT a,b,c FROM t1 WHERE b>='d' INTERSECT SELECT a,b,c FROM t1
944 ORDER BY a,b,c
945 }
946 } {hello d D abc e e}
947 do_test selectA-3.44 {
948 execsql {
949 SELECT a,b,c FROM t1 EXCEPT SELECT a,b,c FROM t1 WHERE b<'d'
950 ORDER BY a,b,c
951 }
952 } {hello d D abc e e}
953 do_test selectA-3.45 {
954 execsql {
955 SELECT a,b,c FROM t1 INTERSECT SELECT a,b,c FROM t1 WHERE b<'d'
956 ORDER BY a,b,c
957 }
958 } {{} C c 1 a a 9.9 b B}
959 do_test selectA-3.46 {
960 execsql {
961 SELECT a,b,c FROM t1 WHERE b<'d' INTERSECT SELECT a,b,c FROM t1
962 ORDER BY a,b,c
963 }
964 } {{} C c 1 a a 9.9 b B}
965 do_test selectA-3.47 {
966 execsql {
967 SELECT a,b,c FROM t1 EXCEPT SELECT a,b,c FROM t1 WHERE b>='d'
968 ORDER BY a DESC
969 }
970 } {9.9 b B 1 a a {} C c}
971 do_test selectA-3.48 {
972 execsql {
973 SELECT a,b,c FROM t1 INTERSECT SELECT a,b,c FROM t1 WHERE b>='d'
974 ORDER BY a DESC
975 }
976 } {abc e e hello d D}
977 do_test selectA-3.49 {
978 execsql {
979 SELECT a,b,c FROM t1 WHERE b>='d' INTERSECT SELECT a,b,c FROM t1
980 ORDER BY a DESC
981 }
982 } {abc e e hello d D}
983 do_test selectA-3.50 {
984 execsql {
985 SELECT a,b,c FROM t1 EXCEPT SELECT a,b,c FROM t1 WHERE b<'d'
986 ORDER BY a DESC
987 }
988 } {abc e e hello d D}
989 do_test selectA-3.51 {
990 execsql {
991 SELECT a,b,c FROM t1 INTERSECT SELECT a,b,c FROM t1 WHERE b<'d'
992 ORDER BY a DESC
993 }
994 } {9.9 b B 1 a a {} C c}
995 do_test selectA-3.52 {
996 execsql {
997 SELECT a,b,c FROM t1 WHERE b<'d' INTERSECT SELECT a,b,c FROM t1
998 ORDER BY a DESC
999 }
1000 } {9.9 b B 1 a a {} C c}
1001 do_test selectA-3.53 {
1002 execsql {
1003 SELECT a,b,c FROM t1 EXCEPT SELECT a,b,c FROM t1 WHERE b>='d'
1004 ORDER BY b, a DESC
1005 }
1006 } {{} C c 1 a a 9.9 b B}
1007 do_test selectA-3.54 {
1008 execsql {
1009 SELECT a,b,c FROM t1 INTERSECT SELECT a,b,c FROM t1 WHERE b>='d'
1010 ORDER BY b
1011 }
1012 } {hello d D abc e e}
1013 do_test selectA-3.55 {
1014 execsql {
1015 SELECT a,b,c FROM t1 WHERE b>='d' INTERSECT SELECT a,b,c FROM t1
1016 ORDER BY b DESC, c
1017 }
1018 } {abc e e hello d D}
1019 do_test selectA-3.56 {
1020 execsql {
1021 SELECT a,b,c FROM t1 EXCEPT SELECT a,b,c FROM t1 WHERE b<'d'
1022 ORDER BY b, c DESC, a
1023 }
1024 } {hello d D abc e e}
1025 do_test selectA-3.57 {
1026 execsql {
1027 SELECT a,b,c FROM t1 INTERSECT SELECT a,b,c FROM t1 WHERE b<'d'
1028 ORDER BY b COLLATE NOCASE
1029 }
1030 } {1 a a 9.9 b B {} C c}
1031 do_test selectA-3.58 {
1032 execsql {
1033 SELECT a,b,c FROM t1 WHERE b<'d' INTERSECT SELECT a,b,c FROM t1
1034 ORDER BY b
1035 }
1036 } {{} C c 1 a a 9.9 b B}
1037 do_test selectA-3.59 {
1038 execsql {
1039 SELECT a,b,c FROM t1 EXCEPT SELECT a,b,c FROM t1 WHERE b>='d'
1040 ORDER BY c, a DESC
1041 }
1042 } {1 a a 9.9 b B {} C c}
1043 do_test selectA-3.60 {
1044 execsql {
1045 SELECT a,b,c FROM t1 INTERSECT SELECT a,b,c FROM t1 WHERE b>='d'
1046 ORDER BY c
1047 }
1048 } {hello d D abc e e}
1049 do_test selectA-3.61 {
1050 execsql {
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
1053 }
1054 } {hello d D abc e e}
1055 do_test selectA-3.62 {
1056 execsql {
1057 SELECT a,b,c FROM t1 EXCEPT SELECT a,b,c FROM t1 WHERE b<'d'
1058 ORDER BY c DESC, a
1059 }
1060 } {abc e e hello d D}
1061 do_test selectA-3.63 {
1062 execsql {
1063 SELECT a,b,c FROM t1 INTERSECT SELECT a,b,c FROM t1 WHERE b<'d'
1064 ORDER BY c COLLATE NOCASE
1065 }
1066 } {1 a a 9.9 b B {} C c}
1067 do_test selectA-3.64 {
1068 execsql {
1069 SELECT a,b,c FROM t1 WHERE b<'d' INTERSECT SELECT a,b,c FROM t1
1070 ORDER BY c
1071 }
1072 } {1 a a 9.9 b B {} C c}
1073 do_test selectA-3.65 {
1074 execsql {
1075 SELECT a,b,c FROM t3 INTERSECT SELECT a,b,c FROM t1 WHERE b<'d'
1076 ORDER BY c COLLATE NOCASE
1077 }
1078 } {1 a a 9.9 b B {} C c}
1079 do_test selectA-3.66 {
1080 execsql {
1081 SELECT a,b,c FROM t1 WHERE b<'d' INTERSECT SELECT a,b,c FROM t3
1082 ORDER BY c
1083 }
1084 } {1 a a 9.9 b B {} C c}
1085 do_test selectA-3.67 {
1086 execsql {
1087 SELECT a,b,c FROM t1 EXCEPT SELECT a,b,c FROM t3 WHERE b<'d'
1088 ORDER BY c DESC, a
1089 }
1090 } {abc e e hello d D}
1091 do_test selectA-3.68 {
1092 execsql {
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
1096 ORDER BY c DESC, a
1097 }
1098 } {abc e e hello d D}
1099 do_test selectA-3.69 {
1100 execsql {
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
1105 }
1106 } {1 a a 9.9 b B {} C c}
1107 do_test selectA-3.70 {
1108 execsql {
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
1112 ORDER BY c
1113 }
1114 } {1 a a 9.9 b B {} C c}
1115 do_test selectA-3.71 {
1116 execsql {
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
1127 ORDER BY c
1128 }
1129 } {1 a a 9.9 b B {} C c}
1130 do_test selectA-3.72 {
1131 execsql {
1132 SELECT a,b,c FROM t3 UNION SELECT x,y,z FROM t2
1133 ORDER BY a,b,c
1134 }
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 {
1137 execsql {
1138 SELECT a,b,c FROM t3 UNION SELECT x,y,z FROM t2
1139 ORDER BY a DESC,b,c
1140 }
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 {
1143 execsql {
1144 SELECT a,b,c FROM t3 UNION SELECT x,y,z FROM t2
1145 ORDER BY a,c,b
1146 }
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 {
1149 execsql {
1150 SELECT a,b,c FROM t3 UNION SELECT x,y,z FROM t2
1151 ORDER BY b,a,c
1152 }
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 {
1155 execsql {
1156 SELECT a,b,c FROM t3 UNION SELECT x,y,z FROM t2
1157 ORDER BY b COLLATE NOCASE,a,c
1158 }
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 {
1161 execsql {
1162 SELECT a,b,c FROM t3 UNION SELECT x,y,z FROM t2
1163 ORDER BY b COLLATE NOCASE DESC,a,c
1164 }
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 {
1167 execsql {
1168 SELECT a,b,c FROM t3 UNION SELECT x,y,z FROM t2
1169 ORDER BY c,b,a
1170 }
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 {
1173 execsql {
1174 SELECT a,b,c FROM t3 UNION SELECT x,y,z FROM t2
1175 ORDER BY c,a,b
1176 }
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 {
1179 execsql {
1180 SELECT a,b,c FROM t3 UNION SELECT x,y,z FROM t2
1181 ORDER BY c DESC,a,b
1182 }
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 {
1185 execsql {
1186 SELECT a,b,c FROM t3 UNION SELECT x,y,z FROM t2
1187 ORDER BY c COLLATE BINARY DESC,a,b
1188 }
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 {
1191 execsql {
1192 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3
1193 ORDER BY a,b,c
1194 }
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 {
1197 execsql {
1198 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3
1199 ORDER BY a DESC,b,c
1200 }
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 {
1203 execsql {
1204 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3
1205 ORDER BY a,c,b
1206 }
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 {
1209 execsql {
1210 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3
1211 ORDER BY b,a,c
1212 }
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 {
1215 execsql {
1216 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3
1217 ORDER BY b COLLATE NOCASE,a,c
1218 }
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 {
1221 execsql {
1222 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3
1223 ORDER BY y COLLATE NOCASE DESC,x,z
1224 }
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 {
1227 execsql {
1228 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3
1229 ORDER BY c,b,a
1230 }
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 {
1233 execsql {
1234 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3
1235 ORDER BY c,a,b
1236 }
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 {
1239 execsql {
1240 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3
1241 ORDER BY c DESC,a,b
1242 }
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 {
1245 execsql {
1246 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3
1247 ORDER BY c COLLATE BINARY DESC,a,b
1248 }
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 {
1251 execsql {
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
1260 }
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 {
1263 execsql {
1264 SELECT upper((SELECT c FROM t1 UNION SELECT z FROM t2 ORDER BY 1));
1265 }
1266 } {A}
1267 do_test selectA-3.94 {
1268 execsql {
1269 SELECT lower((SELECT c FROM t1 UNION ALL SELECT z FROM t2 ORDER BY 1));
1270 }
1271 } {a}
1272 do_test selectA-3.95 {
1273 execsql {
1274 SELECT lower((SELECT c FROM t1 INTERSECT SELECT z FROM t2 ORDER BY 1));
1275 }
1276 } {{}}
1277 do_test selectA-3.96 {
1278 execsql {
1279 SELECT lower((SELECT z FROM t2 EXCEPT SELECT c FROM t1 ORDER BY 1));
1280 }
1281 } {m}
1282 do_test selectA-3.97 {
1283 execsql {
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)))
1293 }
1294 } {MAD}
1295  
1296 finish_test