Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(172)

Side by Side Diff: third_party/sqlite/sqlite-src-3080704/test/selectA.test

Issue 2363173002: [sqlite] Remove obsolete reference version 3.8.7.4. (Closed)
Patch Set: Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
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 set testprefix selectA
25
26 ifcapable !compound {
27 finish_test
28 return
29 }
30
31 do_test selectA-1.0 {
32 execsql {
33 CREATE TABLE t1(a,b,c COLLATE NOCASE);
34 INSERT INTO t1 VALUES(1,'a','a');
35 INSERT INTO t1 VALUES(9.9, 'b', 'B');
36 INSERT INTO t1 VALUES(NULL, 'C', 'c');
37 INSERT INTO t1 VALUES('hello', 'd', 'D');
38 INSERT INTO t1 VALUES(x'616263', 'e', 'e');
39 SELECT * FROM t1;
40 }
41 } {1 a a 9.9 b B {} C c hello d D abc e e}
42 do_test selectA-1.1 {
43 execsql {
44 CREATE TABLE t2(x,y,z COLLATE NOCASE);
45 INSERT INTO t2 VALUES(NULL,'U','u');
46 INSERT INTO t2 VALUES('mad', 'Z', 'z');
47 INSERT INTO t2 VALUES(x'68617265', 'm', 'M');
48 INSERT INTO t2 VALUES(5.2e6, 'X', 'x');
49 INSERT INTO t2 VALUES(-23, 'Y', 'y');
50 SELECT * FROM t2;
51 }
52 } {{} U u mad Z z hare m M 5200000.0 X x -23 Y y}
53 do_test selectA-1.2 {
54 execsql {
55 CREATE TABLE t3(a,b,c COLLATE NOCASE);
56 INSERT INTO t3 SELECT * FROM t1;
57 INSERT INTO t3 SELECT * FROM t2;
58 INSERT INTO t3 SELECT * FROM t1;
59 INSERT INTO t3 SELECT * FROM t2;
60 INSERT INTO t3 SELECT * FROM t1;
61 INSERT INTO t3 SELECT * FROM t2;
62 SELECT count(*) FROM t3;
63 }
64 } {30}
65
66 do_test selectA-2.1 {
67 execsql {
68 SELECT a,b,c FROM t1 UNION ALL SELECT x,y,z FROM t2
69 ORDER BY a,b,c
70 }
71 } {{} 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 h are m M}
72 do_test selectA-2.1.1 { # Ticket #3314
73 execsql {
74 SELECT t1.a, t1.b, t1.c FROM t1 UNION ALL SELECT x,y,z FROM t2
75 ORDER BY a,b,c
76 }
77 } {{} 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 h are m M}
78 do_test selectA-2.1.2 { # Ticket #3314
79 execsql {
80 SELECT a,b,c FROM t1 UNION ALL SELECT x,y,z FROM t2
81 ORDER BY t1.a, t1.b, t1.c
82 }
83 } {{} 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 h are m M}
84 do_test selectA-2.2 {
85 execsql {
86 SELECT a,b,c FROM t1 UNION ALL SELECT x,y,z FROM t2
87 ORDER BY a DESC,b,c
88 }
89 } {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}
90 do_test selectA-2.3 {
91 execsql {
92 SELECT a,b,c FROM t1 UNION ALL SELECT x,y,z FROM t2
93 ORDER BY a,c,b
94 }
95 } {{} 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 h are m M}
96 do_test selectA-2.4 {
97 execsql {
98 SELECT a,b,c FROM t1 UNION ALL SELECT x,y,z FROM t2
99 ORDER BY b,a,c
100 }
101 } {{} 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 h are m M}
102 do_test selectA-2.5 {
103 execsql {
104 SELECT a,b,c FROM t1 UNION ALL SELECT x,y,z FROM t2
105 ORDER BY b COLLATE NOCASE,a,c
106 }
107 } {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}
108 do_test selectA-2.6 {
109 execsql {
110 SELECT a,b,c FROM t1 UNION ALL SELECT x,y,z FROM t2
111 ORDER BY b COLLATE NOCASE DESC,a,c
112 }
113 } {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}
114 do_test selectA-2.7 {
115 execsql {
116 SELECT a,b,c FROM t1 UNION ALL SELECT x,y,z FROM t2
117 ORDER BY c,b,a
118 }
119 } {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}
120 do_test selectA-2.8 {
121 execsql {
122 SELECT a,b,c FROM t1 UNION ALL SELECT x,y,z FROM t2
123 ORDER BY c,a,b
124 }
125 } {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}
126 do_test selectA-2.9 {
127 execsql {
128 SELECT a,b,c FROM t1 UNION ALL SELECT x,y,z FROM t2
129 ORDER BY c DESC,a,b
130 }
131 } {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}
132 do_test selectA-2.10 {
133 execsql {
134 SELECT a,b,c FROM t1 UNION ALL SELECT x,y,z FROM t2
135 ORDER BY c COLLATE BINARY DESC,a,b
136 }
137 } {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}
138 do_test selectA-2.11 {
139 execsql {
140 SELECT x,y,z FROM t2 UNION ALL SELECT a,b,c FROM t1
141 ORDER BY a,b,c
142 }
143 } {{} 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 h are m M}
144 do_test selectA-2.12 {
145 execsql {
146 SELECT x,y,z FROM t2 UNION ALL SELECT a,b,c FROM t1
147 ORDER BY a DESC,b,c
148 }
149 } {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}
150 do_test selectA-2.13 {
151 execsql {
152 SELECT x,y,z FROM t2 UNION ALL SELECT a,b,c FROM t1
153 ORDER BY a,c,b
154 }
155 } {{} 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 h are m M}
156 do_test selectA-2.14 {
157 execsql {
158 SELECT x,y,z FROM t2 UNION ALL SELECT a,b,c FROM t1
159 ORDER BY b,a,c
160 }
161 } {{} 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 h are m M}
162 do_test selectA-2.15 {
163 execsql {
164 SELECT x,y,z FROM t2 UNION ALL SELECT a,b,c FROM t1
165 ORDER BY b COLLATE NOCASE,a,c
166 }
167 } {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}
168 do_test selectA-2.16 {
169 execsql {
170 SELECT x,y,z FROM t2 UNION ALL SELECT a,b,c FROM t1
171 ORDER BY b COLLATE NOCASE DESC,a,c
172 }
173 } {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}
174 do_test selectA-2.17 {
175 execsql {
176 SELECT x,y,z FROM t2 UNION ALL SELECT a,b,c FROM t1
177 ORDER BY c,b,a
178 }
179 } {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}
180 do_test selectA-2.18 {
181 execsql {
182 SELECT x,y,z FROM t2 UNION ALL SELECT a,b,c FROM t1
183 ORDER BY c,a,b
184 }
185 } {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}
186 do_test selectA-2.19 {
187 execsql {
188 SELECT x,y,z FROM t2 UNION ALL SELECT a,b,c FROM t1
189 ORDER BY c DESC,a,b
190 }
191 } {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}
192 do_test selectA-2.20 {
193 execsql {
194 SELECT x,y,z FROM t2 UNION ALL SELECT a,b,c FROM t1
195 ORDER BY c COLLATE BINARY DESC,a,b
196 }
197 } {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}
198 do_test selectA-2.21 {
199 execsql {
200 SELECT a,b,c FROM t1 UNION SELECT x,y,z FROM t2
201 ORDER BY a,b,c
202 }
203 } {{} 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 h are m M}
204 do_test selectA-2.22 {
205 execsql {
206 SELECT a,b,c FROM t1 UNION SELECT x,y,z FROM t2
207 ORDER BY a DESC,b,c
208 }
209 } {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}
210 do_test selectA-2.23 {
211 execsql {
212 SELECT a,b,c FROM t1 UNION SELECT x,y,z FROM t2
213 ORDER BY a,c,b
214 }
215 } {{} 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 h are m M}
216 do_test selectA-2.24 {
217 execsql {
218 SELECT a,b,c FROM t1 UNION SELECT x,y,z FROM t2
219 ORDER BY b,a,c
220 }
221 } {{} 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 h are m M}
222 do_test selectA-2.25 {
223 execsql {
224 SELECT a,b,c FROM t1 UNION SELECT x,y,z FROM t2
225 ORDER BY b COLLATE NOCASE,a,c
226 }
227 } {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}
228 do_test selectA-2.26 {
229 execsql {
230 SELECT a,b,c FROM t1 UNION SELECT x,y,z FROM t2
231 ORDER BY b COLLATE NOCASE DESC,a,c
232 }
233 } {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}
234 do_test selectA-2.27 {
235 execsql {
236 SELECT a,b,c FROM t1 UNION SELECT x,y,z FROM t2
237 ORDER BY c,b,a
238 }
239 } {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}
240 do_test selectA-2.28 {
241 execsql {
242 SELECT a,b,c FROM t1 UNION SELECT x,y,z FROM t2
243 ORDER BY c,a,b
244 }
245 } {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}
246 do_test selectA-2.29 {
247 execsql {
248 SELECT a,b,c FROM t1 UNION SELECT x,y,z FROM t2
249 ORDER BY c DESC,a,b
250 }
251 } {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}
252 do_test selectA-2.30 {
253 execsql {
254 SELECT a,b,c FROM t1 UNION SELECT x,y,z FROM t2
255 ORDER BY c COLLATE BINARY DESC,a,b
256 }
257 } {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}
258 do_test selectA-2.31 {
259 execsql {
260 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1
261 ORDER BY a,b,c
262 }
263 } {{} 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 h are m M}
264 do_test selectA-2.32 {
265 execsql {
266 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1
267 ORDER BY a DESC,b,c
268 }
269 } {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}
270 do_test selectA-2.33 {
271 execsql {
272 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1
273 ORDER BY a,c,b
274 }
275 } {{} 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 h are m M}
276 do_test selectA-2.34 {
277 execsql {
278 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1
279 ORDER BY b,a,c
280 }
281 } {{} 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 h are m M}
282 do_test selectA-2.35 {
283 execsql {
284 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1
285 ORDER BY y COLLATE NOCASE,x,z
286 }
287 } {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}
288 do_test selectA-2.36 {
289 execsql {
290 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1
291 ORDER BY y COLLATE NOCASE DESC,x,z
292 }
293 } {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}
294 do_test selectA-2.37 {
295 execsql {
296 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1
297 ORDER BY c,b,a
298 }
299 } {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}
300 do_test selectA-2.38 {
301 execsql {
302 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1
303 ORDER BY c,a,b
304 }
305 } {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}
306 do_test selectA-2.39 {
307 execsql {
308 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1
309 ORDER BY c DESC,a,b
310 }
311 } {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}
312 do_test selectA-2.40 {
313 execsql {
314 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1
315 ORDER BY z COLLATE BINARY DESC,x,y
316 }
317 } {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}
318 do_test selectA-2.41 {
319 execsql {
320 SELECT a,b,c FROM t1 EXCEPT SELECT a,b,c FROM t1 WHERE b>='d'
321 ORDER BY a,b,c
322 }
323 } {{} C c 1 a a 9.9 b B}
324 do_test selectA-2.42 {
325 execsql {
326 SELECT a,b,c FROM t1 INTERSECT SELECT a,b,c FROM t1 WHERE b>='d'
327 ORDER BY a,b,c
328 }
329 } {hello d D abc e e}
330 do_test selectA-2.43 {
331 execsql {
332 SELECT a,b,c FROM t1 WHERE b>='d' INTERSECT SELECT a,b,c FROM t1
333 ORDER BY a,b,c
334 }
335 } {hello d D abc e e}
336 do_test selectA-2.44 {
337 execsql {
338 SELECT a,b,c FROM t1 EXCEPT SELECT a,b,c FROM t1 WHERE b<'d'
339 ORDER BY a,b,c
340 }
341 } {hello d D abc e e}
342 do_test selectA-2.45 {
343 execsql {
344 SELECT a,b,c FROM t1 INTERSECT SELECT a,b,c FROM t1 WHERE b<'d'
345 ORDER BY a,b,c
346 }
347 } {{} C c 1 a a 9.9 b B}
348 do_test selectA-2.46 {
349 execsql {
350 SELECT a,b,c FROM t1 WHERE b<'d' INTERSECT SELECT a,b,c FROM t1
351 ORDER BY a,b,c
352 }
353 } {{} C c 1 a a 9.9 b B}
354 do_test selectA-2.47 {
355 execsql {
356 SELECT a,b,c FROM t1 EXCEPT SELECT a,b,c FROM t1 WHERE b>='d'
357 ORDER BY a DESC
358 }
359 } {9.9 b B 1 a a {} C c}
360 do_test selectA-2.48 {
361 execsql {
362 SELECT a,b,c FROM t1 INTERSECT SELECT a,b,c FROM t1 WHERE b>='d'
363 ORDER BY a DESC
364 }
365 } {abc e e hello d D}
366 do_test selectA-2.49 {
367 execsql {
368 SELECT a,b,c FROM t1 WHERE b>='d' INTERSECT SELECT a,b,c FROM t1
369 ORDER BY a DESC
370 }
371 } {abc e e hello d D}
372 do_test selectA-2.50 {
373 execsql {
374 SELECT a,b,c FROM t1 EXCEPT SELECT a,b,c FROM t1 WHERE b<'d'
375 ORDER BY a DESC
376 }
377 } {abc e e hello d D}
378 do_test selectA-2.51 {
379 execsql {
380 SELECT a,b,c FROM t1 INTERSECT SELECT a,b,c FROM t1 WHERE b<'d'
381 ORDER BY a DESC
382 }
383 } {9.9 b B 1 a a {} C c}
384 do_test selectA-2.52 {
385 execsql {
386 SELECT a,b,c FROM t1 WHERE b<'d' INTERSECT SELECT a,b,c FROM t1
387 ORDER BY a DESC
388 }
389 } {9.9 b B 1 a a {} C c}
390 do_test selectA-2.53 {
391 execsql {
392 SELECT a,b,c FROM t1 EXCEPT SELECT a,b,c FROM t1 WHERE b>='d'
393 ORDER BY b, a DESC
394 }
395 } {{} C c 1 a a 9.9 b B}
396 do_test selectA-2.54 {
397 execsql {
398 SELECT a,b,c FROM t1 INTERSECT SELECT a,b,c FROM t1 WHERE b>='d'
399 ORDER BY b
400 }
401 } {hello d D abc e e}
402 do_test selectA-2.55 {
403 execsql {
404 SELECT a,b,c FROM t1 WHERE b>='d' INTERSECT SELECT a,b,c FROM t1
405 ORDER BY b DESC, c
406 }
407 } {abc e e hello d D}
408 do_test selectA-2.56 {
409 execsql {
410 SELECT a,b,c FROM t1 EXCEPT SELECT a,b,c FROM t1 WHERE b<'d'
411 ORDER BY b, c DESC, a
412 }
413 } {hello d D abc e e}
414 do_test selectA-2.57 {
415 execsql {
416 SELECT a,b,c FROM t1 INTERSECT SELECT a,b,c FROM t1 WHERE b<'d'
417 ORDER BY b COLLATE NOCASE
418 }
419 } {1 a a 9.9 b B {} C c}
420 do_test selectA-2.58 {
421 execsql {
422 SELECT a,b,c FROM t1 WHERE b<'d' INTERSECT SELECT a,b,c FROM t1
423 ORDER BY b
424 }
425 } {{} C c 1 a a 9.9 b B}
426 do_test selectA-2.59 {
427 execsql {
428 SELECT a,b,c FROM t1 EXCEPT SELECT a,b,c FROM t1 WHERE b>='d'
429 ORDER BY c, a DESC
430 }
431 } {1 a a 9.9 b B {} C c}
432 do_test selectA-2.60 {
433 execsql {
434 SELECT a,b,c FROM t1 INTERSECT SELECT a,b,c FROM t1 WHERE b>='d'
435 ORDER BY c
436 }
437 } {hello d D abc e e}
438 do_test selectA-2.61 {
439 execsql {
440 SELECT a,b,c FROM t1 WHERE b>='d' INTERSECT SELECT a,b,c FROM t1
441 ORDER BY c COLLATE BINARY, b DESC, c, a, b, c, a, b, c
442 }
443 } {hello d D abc e e}
444 do_test selectA-2.62 {
445 execsql {
446 SELECT a,b,c FROM t1 EXCEPT SELECT a,b,c FROM t1 WHERE b<'d'
447 ORDER BY c DESC, a
448 }
449 } {abc e e hello d D}
450 do_test selectA-2.63 {
451 execsql {
452 SELECT a,b,c FROM t1 INTERSECT SELECT a,b,c FROM t1 WHERE b<'d'
453 ORDER BY c COLLATE NOCASE
454 }
455 } {1 a a 9.9 b B {} C c}
456 do_test selectA-2.64 {
457 execsql {
458 SELECT a,b,c FROM t1 WHERE b<'d' INTERSECT SELECT a,b,c FROM t1
459 ORDER BY c
460 }
461 } {1 a a 9.9 b B {} C c}
462 do_test selectA-2.65 {
463 execsql {
464 SELECT a,b,c FROM t3 INTERSECT SELECT a,b,c FROM t1 WHERE b<'d'
465 ORDER BY c COLLATE NOCASE
466 }
467 } {1 a a 9.9 b B {} C c}
468 do_test selectA-2.66 {
469 execsql {
470 SELECT a,b,c FROM t1 WHERE b<'d' INTERSECT SELECT a,b,c FROM t3
471 ORDER BY c
472 }
473 } {1 a a 9.9 b B {} C c}
474 do_test selectA-2.67 {
475 execsql {
476 SELECT a,b,c FROM t1 EXCEPT SELECT a,b,c FROM t3 WHERE b<'d'
477 ORDER BY c DESC, a
478 }
479 } {abc e e hello d D}
480 do_test selectA-2.68 {
481 execsql {
482 SELECT a,b,c FROM t1 EXCEPT SELECT a,b,c FROM t1 WHERE b<'d'
483 INTERSECT SELECT a,b,c FROM t3
484 EXCEPT SELECT b,c,a FROM t3
485 ORDER BY c DESC, a
486 }
487 } {abc e e hello d D}
488 do_test selectA-2.69 {
489 execsql {
490 SELECT a,b,c FROM t1 INTERSECT SELECT a,b,c FROM t1 WHERE b<'d'
491 INTERSECT SELECT a,b,c FROM t3
492 EXCEPT SELECT b,c,a FROM t3
493 ORDER BY c COLLATE NOCASE
494 }
495 } {1 a a 9.9 b B {} C c}
496 do_test selectA-2.70 {
497 execsql {
498 SELECT a,b,c FROM t1 WHERE b<'d' INTERSECT SELECT a,b,c FROM t1
499 INTERSECT SELECT a,b,c FROM t3
500 EXCEPT SELECT b,c,a FROM t3
501 ORDER BY c
502 }
503 } {1 a a 9.9 b B {} C c}
504 do_test selectA-2.71 {
505 execsql {
506 SELECT a,b,c FROM t1 WHERE b<'d'
507 INTERSECT SELECT a,b,c FROM t1
508 INTERSECT SELECT a,b,c FROM t3
509 EXCEPT SELECT b,c,a FROM t3
510 INTERSECT SELECT a,b,c FROM t1
511 EXCEPT SELECT x,y,z FROM t2
512 INTERSECT SELECT a,b,c FROM t3
513 EXCEPT SELECT y,x,z FROM t2
514 INTERSECT SELECT a,b,c FROM t1
515 EXCEPT SELECT c,b,a FROM t3
516 ORDER BY c
517 }
518 } {1 a a 9.9 b B {} C c}
519 do_test selectA-2.72 {
520 execsql {
521 SELECT a,b,c FROM t3 UNION SELECT x,y,z FROM t2
522 ORDER BY a,b,c
523 }
524 } {{} 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 h are m M}
525 do_test selectA-2.73 {
526 execsql {
527 SELECT a,b,c FROM t3 UNION SELECT x,y,z FROM t2
528 ORDER BY a DESC,b,c
529 }
530 } {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}
531 do_test selectA-2.74 {
532 execsql {
533 SELECT a,b,c FROM t3 UNION SELECT x,y,z FROM t2
534 ORDER BY a,c,b
535 }
536 } {{} 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 h are m M}
537 do_test selectA-2.75 {
538 execsql {
539 SELECT a,b,c FROM t3 UNION SELECT x,y,z FROM t2
540 ORDER BY b,a,c
541 }
542 } {{} 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 h are m M}
543 do_test selectA-2.76 {
544 execsql {
545 SELECT a,b,c FROM t3 UNION SELECT x,y,z FROM t2
546 ORDER BY b COLLATE NOCASE,a,c
547 }
548 } {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}
549 do_test selectA-2.77 {
550 execsql {
551 SELECT a,b,c FROM t3 UNION SELECT x,y,z FROM t2
552 ORDER BY b COLLATE NOCASE DESC,a,c
553 }
554 } {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}
555 do_test selectA-2.78 {
556 execsql {
557 SELECT a,b,c FROM t3 UNION SELECT x,y,z FROM t2
558 ORDER BY c,b,a
559 }
560 } {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}
561 do_test selectA-2.79 {
562 execsql {
563 SELECT a,b,c FROM t3 UNION SELECT x,y,z FROM t2
564 ORDER BY c,a,b
565 }
566 } {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}
567 do_test selectA-2.80 {
568 execsql {
569 SELECT a,b,c FROM t3 UNION SELECT x,y,z FROM t2
570 ORDER BY c DESC,a,b
571 }
572 } {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}
573 do_test selectA-2.81 {
574 execsql {
575 SELECT a,b,c FROM t3 UNION SELECT x,y,z FROM t2
576 ORDER BY c COLLATE BINARY DESC,a,b
577 }
578 } {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}
579 do_test selectA-2.82 {
580 execsql {
581 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3
582 ORDER BY a,b,c
583 }
584 } {{} 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 h are m M}
585 do_test selectA-2.83 {
586 execsql {
587 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3
588 ORDER BY a DESC,b,c
589 }
590 } {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}
591 do_test selectA-2.84 {
592 execsql {
593 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3
594 ORDER BY a,c,b
595 }
596 } {{} 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 h are m M}
597 do_test selectA-2.85 {
598 execsql {
599 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3
600 ORDER BY b,a,c
601 }
602 } {{} 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 h are m M}
603 do_test selectA-2.86 {
604 execsql {
605 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3
606 ORDER BY y COLLATE NOCASE,x,z
607 }
608 } {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}
609 do_test selectA-2.87 {
610 execsql {
611 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3
612 ORDER BY y COLLATE NOCASE DESC,x,z
613 }
614 } {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}
615 do_test selectA-2.88 {
616 execsql {
617 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3
618 ORDER BY c,b,a
619 }
620 } {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}
621 do_test selectA-2.89 {
622 execsql {
623 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3
624 ORDER BY c,a,b
625 }
626 } {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}
627 do_test selectA-2.90 {
628 execsql {
629 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3
630 ORDER BY c DESC,a,b
631 }
632 } {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}
633 do_test selectA-2.91 {
634 execsql {
635 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3
636 ORDER BY z COLLATE BINARY DESC,x,y
637 }
638 } {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}
639 do_test selectA-2.92 {
640 execsql {
641 SELECT x,y,z FROM t2
642 INTERSECT SELECT a,b,c FROM t3
643 EXCEPT SELECT c,b,a FROM t1
644 UNION SELECT a,b,c FROM t3
645 INTERSECT SELECT a,b,c FROM t3
646 EXCEPT SELECT c,b,a FROM t1
647 UNION SELECT a,b,c FROM t3
648 ORDER BY y COLLATE NOCASE DESC,x,z
649 }
650 } {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}
651 do_test selectA-2.93 {
652 execsql {
653 SELECT upper((SELECT c FROM t1 UNION SELECT z FROM t2 ORDER BY 1));
654 }
655 } {A}
656 do_test selectA-2.94 {
657 execsql {
658 SELECT lower((SELECT c FROM t1 UNION ALL SELECT z FROM t2 ORDER BY 1));
659 }
660 } {a}
661 do_test selectA-2.95 {
662 execsql {
663 SELECT lower((SELECT c FROM t1 INTERSECT SELECT z FROM t2 ORDER BY 1));
664 }
665 } {{}}
666 do_test selectA-2.96 {
667 execsql {
668 SELECT lower((SELECT z FROM t2 EXCEPT SELECT c FROM t1 ORDER BY 1));
669 }
670 } {m}
671
672
673 do_test selectA-3.0 {
674 execsql {
675 CREATE UNIQUE INDEX t1a ON t1(a);
676 CREATE UNIQUE INDEX t1b ON t1(b);
677 CREATE UNIQUE INDEX t1c ON t1(c);
678 CREATE UNIQUE INDEX t2x ON t2(x);
679 CREATE UNIQUE INDEX t2y ON t2(y);
680 CREATE UNIQUE INDEX t2z ON t2(z);
681 SELECT name FROM sqlite_master WHERE type='index'
682 }
683 } {t1a t1b t1c t2x t2y t2z}
684 do_test selectA-3.1 {
685 execsql {
686 SELECT a,b,c FROM t1 UNION ALL SELECT x,y,z FROM t2
687 ORDER BY a,b,c
688 }
689 } {{} 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 h are m M}
690 do_test selectA-3.1.1 { # Ticket #3314
691 execsql {
692 SELECT t1.a,b,t1.c FROM t1 UNION ALL SELECT x,y,z FROM t2
693 ORDER BY a,t1.b,t1.c
694 }
695 } {{} 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 h are m M}
696 do_test selectA-3.2 {
697 execsql {
698 SELECT a,b,c FROM t1 UNION ALL SELECT x,y,z FROM t2
699 ORDER BY a DESC,b,c
700 }
701 } {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}
702 do_test selectA-3.3 {
703 execsql {
704 SELECT a,b,c FROM t1 UNION ALL SELECT x,y,z FROM t2
705 ORDER BY a,c,b
706 }
707 } {{} 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 h are m M}
708 do_test selectA-3.4 {
709 execsql {
710 SELECT a,b,c FROM t1 UNION ALL SELECT x,y,z FROM t2
711 ORDER BY b,a,c
712 }
713 } {{} 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 h are m M}
714 do_test selectA-3.5 {
715 execsql {
716 SELECT a,b,c FROM t1 UNION ALL SELECT x,y,z FROM t2
717 ORDER BY b COLLATE NOCASE,a,c
718 }
719 } {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}
720 do_test selectA-3.6 {
721 execsql {
722 SELECT a,b,c FROM t1 UNION ALL SELECT x,y,z FROM t2
723 ORDER BY b COLLATE NOCASE DESC,a,c
724 }
725 } {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}
726 do_test selectA-3.7 {
727 execsql {
728 SELECT a,b,c FROM t1 UNION ALL SELECT x,y,z FROM t2
729 ORDER BY c,b,a
730 }
731 } {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}
732 do_test selectA-3.8 {
733 execsql {
734 SELECT a,b,c FROM t1 UNION ALL SELECT x,y,z FROM t2
735 ORDER BY c,a,b
736 }
737 } {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}
738 do_test selectA-3.9 {
739 execsql {
740 SELECT a,b,c FROM t1 UNION ALL SELECT x,y,z FROM t2
741 ORDER BY c DESC,a,b
742 }
743 } {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}
744 do_test selectA-3.10 {
745 execsql {
746 SELECT a,b,c FROM t1 UNION ALL SELECT x,y,z FROM t2
747 ORDER BY c COLLATE BINARY DESC,a,b
748 }
749 } {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}
750 do_test selectA-3.11 {
751 execsql {
752 SELECT x,y,z FROM t2 UNION ALL SELECT a,b,c FROM t1
753 ORDER BY a,b,c
754 }
755 } {{} 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 h are m M}
756 do_test selectA-3.12 {
757 execsql {
758 SELECT x,y,z FROM t2 UNION ALL SELECT a,b,c FROM t1
759 ORDER BY a DESC,b,c
760 }
761 } {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}
762 do_test selectA-3.13 {
763 execsql {
764 SELECT x,y,z FROM t2 UNION ALL SELECT a,b,c FROM t1
765 ORDER BY a,c,b
766 }
767 } {{} 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 h are m M}
768 do_test selectA-3.14 {
769 execsql {
770 SELECT x,y,z FROM t2 UNION ALL SELECT a,b,c FROM t1
771 ORDER BY b,a,c
772 }
773 } {{} 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 h are m M}
774 do_test selectA-3.15 {
775 execsql {
776 SELECT x,y,z FROM t2 UNION ALL SELECT a,b,c FROM t1
777 ORDER BY b COLLATE NOCASE,a,c
778 }
779 } {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}
780 do_test selectA-3.16 {
781 execsql {
782 SELECT x,y,z FROM t2 UNION ALL SELECT a,b,c FROM t1
783 ORDER BY b COLLATE NOCASE DESC,a,c
784 }
785 } {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}
786 do_test selectA-3.17 {
787 execsql {
788 SELECT x,y,z FROM t2 UNION ALL SELECT a,b,c FROM t1
789 ORDER BY c,b,a
790 }
791 } {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}
792 do_test selectA-3.18 {
793 execsql {
794 SELECT x,y,z FROM t2 UNION ALL SELECT a,b,c FROM t1
795 ORDER BY c,a,b
796 }
797 } {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}
798 do_test selectA-3.19 {
799 execsql {
800 SELECT x,y,z FROM t2 UNION ALL SELECT a,b,c FROM t1
801 ORDER BY c DESC,a,b
802 }
803 } {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}
804 do_test selectA-3.20 {
805 execsql {
806 SELECT x,y,z FROM t2 UNION ALL SELECT a,b,c FROM t1
807 ORDER BY c COLLATE BINARY DESC,a,b
808 }
809 } {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}
810 do_test selectA-3.21 {
811 execsql {
812 SELECT a,b,c FROM t1 UNION SELECT x,y,z FROM t2
813 ORDER BY a,b,c
814 }
815 } {{} 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 h are m M}
816 do_test selectA-3.22 {
817 execsql {
818 SELECT a,b,c FROM t1 UNION SELECT x,y,z FROM t2
819 ORDER BY a DESC,b,c
820 }
821 } {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}
822 do_test selectA-3.23 {
823 execsql {
824 SELECT a,b,c FROM t1 UNION SELECT x,y,z FROM t2
825 ORDER BY a,c,b
826 }
827 } {{} 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 h are m M}
828 do_test selectA-3.24 {
829 execsql {
830 SELECT a,b,c FROM t1 UNION SELECT x,y,z FROM t2
831 ORDER BY b,a,c
832 }
833 } {{} 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 h are m M}
834 do_test selectA-3.25 {
835 execsql {
836 SELECT a,b,c FROM t1 UNION SELECT x,y,z FROM t2
837 ORDER BY b COLLATE NOCASE,a,c
838 }
839 } {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}
840 do_test selectA-3.26 {
841 execsql {
842 SELECT a,b,c FROM t1 UNION SELECT x,y,z FROM t2
843 ORDER BY b COLLATE NOCASE DESC,a,c
844 }
845 } {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}
846 do_test selectA-3.27 {
847 execsql {
848 SELECT a,b,c FROM t1 UNION SELECT x,y,z FROM t2
849 ORDER BY c,b,a
850 }
851 } {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}
852 do_test selectA-3.28 {
853 execsql {
854 SELECT a,b,c FROM t1 UNION SELECT x,y,z FROM t2
855 ORDER BY c,a,b
856 }
857 } {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}
858 do_test selectA-3.29 {
859 execsql {
860 SELECT a,b,c FROM t1 UNION SELECT x,y,z FROM t2
861 ORDER BY c DESC,a,b
862 }
863 } {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}
864 do_test selectA-3.30 {
865 execsql {
866 SELECT a,b,c FROM t1 UNION SELECT x,y,z FROM t2
867 ORDER BY c COLLATE BINARY DESC,a,b
868 }
869 } {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}
870 do_test selectA-3.31 {
871 execsql {
872 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1
873 ORDER BY a,b,c
874 }
875 } {{} 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 h are m M}
876 do_test selectA-3.32 {
877 execsql {
878 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1
879 ORDER BY a DESC,b,c
880 }
881 } {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}
882 do_test selectA-3.33 {
883 execsql {
884 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1
885 ORDER BY a,c,b
886 }
887 } {{} 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 h are m M}
888 do_test selectA-3.34 {
889 execsql {
890 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1
891 ORDER BY b,a,c
892 }
893 } {{} 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 h are m M}
894 do_test selectA-3.35 {
895 execsql {
896 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1
897 ORDER BY y COLLATE NOCASE,x,z
898 }
899 } {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}
900 do_test selectA-3.36 {
901 execsql {
902 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1
903 ORDER BY y COLLATE NOCASE DESC,x,z
904 }
905 } {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}
906 do_test selectA-3.37 {
907 execsql {
908 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1
909 ORDER BY c,b,a
910 }
911 } {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}
912 do_test selectA-3.38 {
913 execsql {
914 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1
915 ORDER BY c,a,b
916 }
917 } {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}
918 do_test selectA-3.39 {
919 execsql {
920 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1
921 ORDER BY c DESC,a,b
922 }
923 } {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}
924 do_test selectA-3.40 {
925 execsql {
926 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1
927 ORDER BY z COLLATE BINARY DESC,x,y
928 }
929 } {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}
930 do_test selectA-3.41 {
931 execsql {
932 SELECT a,b,c FROM t1 EXCEPT SELECT a,b,c FROM t1 WHERE b>='d'
933 ORDER BY a,b,c
934 }
935 } {{} C c 1 a a 9.9 b B}
936 do_test selectA-3.42 {
937 execsql {
938 SELECT a,b,c FROM t1 INTERSECT SELECT a,b,c FROM t1 WHERE b>='d'
939 ORDER BY a,b,c
940 }
941 } {hello d D abc e e}
942 do_test selectA-3.43 {
943 execsql {
944 SELECT a,b,c FROM t1 WHERE b>='d' INTERSECT SELECT a,b,c FROM t1
945 ORDER BY a,b,c
946 }
947 } {hello d D abc e e}
948 do_test selectA-3.44 {
949 execsql {
950 SELECT a,b,c FROM t1 EXCEPT SELECT a,b,c FROM t1 WHERE b<'d'
951 ORDER BY a,b,c
952 }
953 } {hello d D abc e e}
954 do_test selectA-3.45 {
955 execsql {
956 SELECT a,b,c FROM t1 INTERSECT SELECT a,b,c FROM t1 WHERE b<'d'
957 ORDER BY a,b,c
958 }
959 } {{} C c 1 a a 9.9 b B}
960 do_test selectA-3.46 {
961 execsql {
962 SELECT a,b,c FROM t1 WHERE b<'d' INTERSECT SELECT a,b,c FROM t1
963 ORDER BY a,b,c
964 }
965 } {{} C c 1 a a 9.9 b B}
966 do_test selectA-3.47 {
967 execsql {
968 SELECT a,b,c FROM t1 EXCEPT SELECT a,b,c FROM t1 WHERE b>='d'
969 ORDER BY a DESC
970 }
971 } {9.9 b B 1 a a {} C c}
972 do_test selectA-3.48 {
973 execsql {
974 SELECT a,b,c FROM t1 INTERSECT SELECT a,b,c FROM t1 WHERE b>='d'
975 ORDER BY a DESC
976 }
977 } {abc e e hello d D}
978 do_test selectA-3.49 {
979 execsql {
980 SELECT a,b,c FROM t1 WHERE b>='d' INTERSECT SELECT a,b,c FROM t1
981 ORDER BY a DESC
982 }
983 } {abc e e hello d D}
984 do_test selectA-3.50 {
985 execsql {
986 SELECT a,b,c FROM t1 EXCEPT SELECT a,b,c FROM t1 WHERE b<'d'
987 ORDER BY a DESC
988 }
989 } {abc e e hello d D}
990 do_test selectA-3.51 {
991 execsql {
992 SELECT a,b,c FROM t1 INTERSECT SELECT a,b,c FROM t1 WHERE b<'d'
993 ORDER BY a DESC
994 }
995 } {9.9 b B 1 a a {} C c}
996 do_test selectA-3.52 {
997 execsql {
998 SELECT a,b,c FROM t1 WHERE b<'d' INTERSECT SELECT a,b,c FROM t1
999 ORDER BY a DESC
1000 }
1001 } {9.9 b B 1 a a {} C c}
1002 do_test selectA-3.53 {
1003 execsql {
1004 SELECT a,b,c FROM t1 EXCEPT SELECT a,b,c FROM t1 WHERE b>='d'
1005 ORDER BY b, a DESC
1006 }
1007 } {{} C c 1 a a 9.9 b B}
1008 do_test selectA-3.54 {
1009 execsql {
1010 SELECT a,b,c FROM t1 INTERSECT SELECT a,b,c FROM t1 WHERE b>='d'
1011 ORDER BY b
1012 }
1013 } {hello d D abc e e}
1014 do_test selectA-3.55 {
1015 execsql {
1016 SELECT a,b,c FROM t1 WHERE b>='d' INTERSECT SELECT a,b,c FROM t1
1017 ORDER BY b DESC, c
1018 }
1019 } {abc e e hello d D}
1020 do_test selectA-3.56 {
1021 execsql {
1022 SELECT a,b,c FROM t1 EXCEPT SELECT a,b,c FROM t1 WHERE b<'d'
1023 ORDER BY b, c DESC, a
1024 }
1025 } {hello d D abc e e}
1026 do_test selectA-3.57 {
1027 execsql {
1028 SELECT a,b,c FROM t1 INTERSECT SELECT a,b,c FROM t1 WHERE b<'d'
1029 ORDER BY b COLLATE NOCASE
1030 }
1031 } {1 a a 9.9 b B {} C c}
1032 do_test selectA-3.58 {
1033 execsql {
1034 SELECT a,b,c FROM t1 WHERE b<'d' INTERSECT SELECT a,b,c FROM t1
1035 ORDER BY b
1036 }
1037 } {{} C c 1 a a 9.9 b B}
1038 do_test selectA-3.59 {
1039 execsql {
1040 SELECT a,b,c FROM t1 EXCEPT SELECT a,b,c FROM t1 WHERE b>='d'
1041 ORDER BY c, a DESC
1042 }
1043 } {1 a a 9.9 b B {} C c}
1044 do_test selectA-3.60 {
1045 execsql {
1046 SELECT a,b,c FROM t1 INTERSECT SELECT a,b,c FROM t1 WHERE b>='d'
1047 ORDER BY c
1048 }
1049 } {hello d D abc e e}
1050 do_test selectA-3.61 {
1051 execsql {
1052 SELECT a,b,c FROM t1 WHERE b>='d' INTERSECT SELECT a,b,c FROM t1
1053 ORDER BY c COLLATE BINARY, b DESC, c, a, b, c, a, b, c
1054 }
1055 } {hello d D abc e e}
1056 do_test selectA-3.62 {
1057 execsql {
1058 SELECT a,b,c FROM t1 EXCEPT SELECT a,b,c FROM t1 WHERE b<'d'
1059 ORDER BY c DESC, a
1060 }
1061 } {abc e e hello d D}
1062 do_test selectA-3.63 {
1063 execsql {
1064 SELECT a,b,c FROM t1 INTERSECT SELECT a,b,c FROM t1 WHERE b<'d'
1065 ORDER BY c COLLATE NOCASE
1066 }
1067 } {1 a a 9.9 b B {} C c}
1068 do_test selectA-3.64 {
1069 execsql {
1070 SELECT a,b,c FROM t1 WHERE b<'d' INTERSECT SELECT a,b,c FROM t1
1071 ORDER BY c
1072 }
1073 } {1 a a 9.9 b B {} C c}
1074 do_test selectA-3.65 {
1075 execsql {
1076 SELECT a,b,c FROM t3 INTERSECT SELECT a,b,c FROM t1 WHERE b<'d'
1077 ORDER BY c COLLATE NOCASE
1078 }
1079 } {1 a a 9.9 b B {} C c}
1080 do_test selectA-3.66 {
1081 execsql {
1082 SELECT a,b,c FROM t1 WHERE b<'d' INTERSECT SELECT a,b,c FROM t3
1083 ORDER BY c
1084 }
1085 } {1 a a 9.9 b B {} C c}
1086 do_test selectA-3.67 {
1087 execsql {
1088 SELECT a,b,c FROM t1 EXCEPT SELECT a,b,c FROM t3 WHERE b<'d'
1089 ORDER BY c DESC, a
1090 }
1091 } {abc e e hello d D}
1092 do_test selectA-3.68 {
1093 execsql {
1094 SELECT a,b,c FROM t1 EXCEPT SELECT a,b,c FROM t1 WHERE b<'d'
1095 INTERSECT SELECT a,b,c FROM t3
1096 EXCEPT SELECT b,c,a FROM t3
1097 ORDER BY c DESC, a
1098 }
1099 } {abc e e hello d D}
1100 do_test selectA-3.69 {
1101 execsql {
1102 SELECT a,b,c FROM t1 INTERSECT SELECT a,b,c FROM t1 WHERE b<'d'
1103 INTERSECT SELECT a,b,c FROM t3
1104 EXCEPT SELECT b,c,a FROM t3
1105 ORDER BY c COLLATE NOCASE
1106 }
1107 } {1 a a 9.9 b B {} C c}
1108 do_test selectA-3.70 {
1109 execsql {
1110 SELECT a,b,c FROM t1 WHERE b<'d' INTERSECT SELECT a,b,c FROM t1
1111 INTERSECT SELECT a,b,c FROM t3
1112 EXCEPT SELECT b,c,a FROM t3
1113 ORDER BY c
1114 }
1115 } {1 a a 9.9 b B {} C c}
1116 do_test selectA-3.71 {
1117 execsql {
1118 SELECT a,b,c FROM t1 WHERE b<'d'
1119 INTERSECT SELECT a,b,c FROM t1
1120 INTERSECT SELECT a,b,c FROM t3
1121 EXCEPT SELECT b,c,a FROM t3
1122 INTERSECT SELECT a,b,c FROM t1
1123 EXCEPT SELECT x,y,z FROM t2
1124 INTERSECT SELECT a,b,c FROM t3
1125 EXCEPT SELECT y,x,z FROM t2
1126 INTERSECT SELECT a,b,c FROM t1
1127 EXCEPT SELECT c,b,a FROM t3
1128 ORDER BY c
1129 }
1130 } {1 a a 9.9 b B {} C c}
1131 do_test selectA-3.72 {
1132 execsql {
1133 SELECT a,b,c FROM t3 UNION SELECT x,y,z FROM t2
1134 ORDER BY a,b,c
1135 }
1136 } {{} 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 h are m M}
1137 do_test selectA-3.73 {
1138 execsql {
1139 SELECT a,b,c FROM t3 UNION SELECT x,y,z FROM t2
1140 ORDER BY a DESC,b,c
1141 }
1142 } {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}
1143 do_test selectA-3.74 {
1144 execsql {
1145 SELECT a,b,c FROM t3 UNION SELECT x,y,z FROM t2
1146 ORDER BY a,c,b
1147 }
1148 } {{} 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 h are m M}
1149 do_test selectA-3.75 {
1150 execsql {
1151 SELECT a,b,c FROM t3 UNION SELECT x,y,z FROM t2
1152 ORDER BY b,a,c
1153 }
1154 } {{} 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 h are m M}
1155 do_test selectA-3.76 {
1156 execsql {
1157 SELECT a,b,c FROM t3 UNION SELECT x,y,z FROM t2
1158 ORDER BY b COLLATE NOCASE,a,c
1159 }
1160 } {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}
1161 do_test selectA-3.77 {
1162 execsql {
1163 SELECT a,b,c FROM t3 UNION SELECT x,y,z FROM t2
1164 ORDER BY b COLLATE NOCASE DESC,a,c
1165 }
1166 } {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}
1167 do_test selectA-3.78 {
1168 execsql {
1169 SELECT a,b,c FROM t3 UNION SELECT x,y,z FROM t2
1170 ORDER BY c,b,a
1171 }
1172 } {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}
1173 do_test selectA-3.79 {
1174 execsql {
1175 SELECT a,b,c FROM t3 UNION SELECT x,y,z FROM t2
1176 ORDER BY c,a,b
1177 }
1178 } {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}
1179 do_test selectA-3.80 {
1180 execsql {
1181 SELECT a,b,c FROM t3 UNION SELECT x,y,z FROM t2
1182 ORDER BY c DESC,a,b
1183 }
1184 } {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}
1185 do_test selectA-3.81 {
1186 execsql {
1187 SELECT a,b,c FROM t3 UNION SELECT x,y,z FROM t2
1188 ORDER BY c COLLATE BINARY DESC,a,b
1189 }
1190 } {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}
1191 do_test selectA-3.82 {
1192 execsql {
1193 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3
1194 ORDER BY a,b,c
1195 }
1196 } {{} 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 h are m M}
1197 do_test selectA-3.83 {
1198 execsql {
1199 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3
1200 ORDER BY a DESC,b,c
1201 }
1202 } {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}
1203 do_test selectA-3.84 {
1204 execsql {
1205 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3
1206 ORDER BY a,c,b
1207 }
1208 } {{} 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 h are m M}
1209 do_test selectA-3.85 {
1210 execsql {
1211 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3
1212 ORDER BY b,a,c
1213 }
1214 } {{} 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 h are m M}
1215 do_test selectA-3.86 {
1216 execsql {
1217 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3
1218 ORDER BY y COLLATE NOCASE,x,z
1219 }
1220 } {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}
1221 do_test selectA-3.87 {
1222 execsql {
1223 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3
1224 ORDER BY y COLLATE NOCASE DESC,x,z
1225 }
1226 } {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}
1227 do_test selectA-3.88 {
1228 execsql {
1229 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3
1230 ORDER BY c,b,a
1231 }
1232 } {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}
1233 do_test selectA-3.89 {
1234 execsql {
1235 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3
1236 ORDER BY c,a,b
1237 }
1238 } {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}
1239 do_test selectA-3.90 {
1240 execsql {
1241 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3
1242 ORDER BY c DESC,a,b
1243 }
1244 } {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}
1245 do_test selectA-3.91 {
1246 execsql {
1247 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3
1248 ORDER BY z COLLATE BINARY DESC,x,y
1249 }
1250 } {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}
1251 do_test selectA-3.92 {
1252 execsql {
1253 SELECT x,y,z FROM t2
1254 INTERSECT SELECT a,b,c FROM t3
1255 EXCEPT SELECT c,b,a FROM t1
1256 UNION SELECT a,b,c FROM t3
1257 INTERSECT SELECT a,b,c FROM t3
1258 EXCEPT SELECT c,b,a FROM t1
1259 UNION SELECT a,b,c FROM t3
1260 ORDER BY y COLLATE NOCASE DESC,x,z
1261 }
1262 } {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}
1263 do_test selectA-3.93 {
1264 execsql {
1265 SELECT upper((SELECT c FROM t1 UNION SELECT z FROM t2 ORDER BY 1));
1266 }
1267 } {A}
1268 do_test selectA-3.94 {
1269 execsql {
1270 SELECT lower((SELECT c FROM t1 UNION ALL SELECT z FROM t2 ORDER BY 1));
1271 }
1272 } {a}
1273 do_test selectA-3.95 {
1274 execsql {
1275 SELECT lower((SELECT c FROM t1 INTERSECT SELECT z FROM t2 ORDER BY 1));
1276 }
1277 } {{}}
1278 do_test selectA-3.96 {
1279 execsql {
1280 SELECT lower((SELECT z FROM t2 EXCEPT SELECT c FROM t1 ORDER BY 1));
1281 }
1282 } {m}
1283 do_test selectA-3.97 {
1284 execsql {
1285 SELECT upper((SELECT x FROM (
1286 SELECT x,y,z FROM t2
1287 INTERSECT SELECT a,b,c FROM t3
1288 EXCEPT SELECT c,b,a FROM t1
1289 UNION SELECT a,b,c FROM t3
1290 INTERSECT SELECT a,b,c FROM t3
1291 EXCEPT SELECT c,b,a FROM t1
1292 UNION SELECT a,b,c FROM t3
1293 ORDER BY y COLLATE NOCASE DESC,x,z)))
1294 }
1295 } {MAD}
1296 do_execsql_test selectA-3.98 {
1297 WITH RECURSIVE
1298 xyz(n) AS (
1299 SELECT upper((SELECT x FROM (
1300 SELECT x,y,z FROM t2
1301 INTERSECT SELECT a,b,c FROM t3
1302 EXCEPT SELECT c,b,a FROM t1
1303 UNION SELECT a,b,c FROM t3
1304 INTERSECT SELECT a,b,c FROM t3
1305 EXCEPT SELECT c,b,a FROM t1
1306 UNION SELECT a,b,c FROM t3
1307 ORDER BY y COLLATE NOCASE DESC,x,z)))
1308 UNION ALL
1309 SELECT n || '+' FROM xyz WHERE length(n)<5
1310 )
1311 SELECT n FROM xyz ORDER BY +n;
1312 } {MAD MAD+ MAD++}
1313
1314 #-------------------------------------------------------------------------
1315 # At one point the following code exposed a temp register reuse problem.
1316 #
1317 proc f {args} { return 1 }
1318 db func f f
1319
1320 do_execsql_test 4.1.1 {
1321 CREATE TABLE t4(a, b);
1322 CREATE TABLE t5(c, d);
1323
1324 INSERT INTO t5 VALUES(1, 'x');
1325 INSERT INTO t5 VALUES(2, 'x');
1326 INSERT INTO t4 VALUES(3, 'x');
1327 INSERT INTO t4 VALUES(4, 'x');
1328
1329 CREATE INDEX i1 ON t4(a);
1330 CREATE INDEX i2 ON t5(c);
1331 }
1332
1333 do_eqp_test 4.1.2 {
1334 SELECT c, d FROM t5
1335 UNION ALL
1336 SELECT a, b FROM t4 WHERE f()==f()
1337 ORDER BY 1,2
1338 } {
1339 1 0 0 {SCAN TABLE t5 USING INDEX i2}
1340 1 0 0 {USE TEMP B-TREE FOR RIGHT PART OF ORDER BY}
1341 2 0 0 {SCAN TABLE t4 USING INDEX i1}
1342 2 0 0 {USE TEMP B-TREE FOR RIGHT PART OF ORDER BY}
1343 0 0 0 {COMPOUND SUBQUERIES 1 AND 2 (UNION ALL)}
1344 }
1345
1346 do_execsql_test 4.1.3 {
1347 SELECT c, d FROM t5
1348 UNION ALL
1349 SELECT a, b FROM t4 WHERE f()==f()
1350 ORDER BY 1,2
1351 } {
1352 1 x 2 x 3 x 4 x
1353 }
1354
1355 do_execsql_test 4.2.1 {
1356 CREATE TABLE t6(a, b);
1357 CREATE TABLE t7(c, d);
1358
1359 INSERT INTO t7 VALUES(2, 9);
1360 INSERT INTO t6 VALUES(3, 0);
1361 INSERT INTO t6 VALUES(4, 1);
1362 INSERT INTO t7 VALUES(5, 6);
1363 INSERT INTO t6 VALUES(6, 0);
1364 INSERT INTO t7 VALUES(7, 6);
1365
1366 CREATE INDEX i6 ON t6(a);
1367 CREATE INDEX i7 ON t7(c);
1368 }
1369
1370 do_execsql_test 4.2.2 {
1371 SELECT c, f(d,c,d,c,d) FROM t7
1372 UNION ALL
1373 SELECT a, b FROM t6
1374 ORDER BY 1,2
1375 } {/2 . 3 . 4 . 5 . 6 . 7 ./}
1376
1377
1378 finish_test
OLDNEW
« no previous file with comments | « third_party/sqlite/sqlite-src-3080704/test/select9.test ('k') | third_party/sqlite/sqlite-src-3080704/test/selectB.test » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698