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

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

Issue 901033002: Import SQLite 3.8.7.4. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Chromium changes to support SQLite 3.8.7.4. Created 5 years, 10 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
1 # 2008 June 24 1 # 2008 June 24
2 # 2 #
3 # The author disclaims copyright to this source code. In place of 3 # The author disclaims copyright to this source code. In place of
4 # a legal notice, here is a blessing: 4 # a legal notice, here is a blessing:
5 # 5 #
6 # May you do good and not evil. 6 # May you do good and not evil.
7 # May you find forgiveness for yourself and forgive others. 7 # May you find forgiveness for yourself and forgive others.
8 # May you share freely, never taking more than you give. 8 # May you share freely, never taking more than you give.
9 # 9 #
10 #*********************************************************************** 10 #***********************************************************************
11 # This file implements regression tests for SQLite library. 11 # This file implements regression tests for SQLite library.
12 # 12 #
13 # The focus of this file is testing the compound-SELECT merge 13 # The focus of this file is testing the compound-SELECT merge
14 # optimization. Or, in other words, making sure that all 14 # optimization. Or, in other words, making sure that all
15 # possible combinations of UNION, UNION ALL, EXCEPT, and 15 # possible combinations of UNION, UNION ALL, EXCEPT, and
16 # INTERSECT work together with an ORDER BY clause (with or w/o 16 # INTERSECT work together with an ORDER BY clause (with or w/o
17 # explicit sort order and explicit collating secquites) and 17 # explicit sort order and explicit collating secquites) and
18 # with and without optional LIMIT and OFFSET clauses. 18 # with and without optional LIMIT and OFFSET clauses.
19 # 19 #
20 # $Id: selectA.test,v 1.6 2008/08/21 14:24:29 drh Exp $ 20 # $Id: selectA.test,v 1.6 2008/08/21 14:24:29 drh Exp $
21 21
22 set testdir [file dirname $argv0] 22 set testdir [file dirname $argv0]
23 source $testdir/tester.tcl 23 source $testdir/tester.tcl
24 set testprefix selectA
24 25
25 ifcapable !compound { 26 ifcapable !compound {
26 finish_test 27 finish_test
27 return 28 return
28 } 29 }
29 30
30 do_test selectA-1.0 { 31 do_test selectA-1.0 {
31 execsql { 32 execsql {
32 CREATE TABLE t1(a,b,c COLLATE NOCASE); 33 CREATE TABLE t1(a,b,c COLLATE NOCASE);
33 INSERT INTO t1 VALUES(1,'a','a'); 34 INSERT INTO t1 VALUES(1,'a','a');
(...skipping 240 matching lines...) Expand 10 before | Expand all | Expand 10 after
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 h are m M} 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}
275 do_test selectA-2.34 { 276 do_test selectA-2.34 {
276 execsql { 277 execsql {
277 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1 278 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1
278 ORDER BY b,a,c 279 ORDER BY b,a,c
279 } 280 }
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 h are m M} 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}
281 do_test selectA-2.35 { 282 do_test selectA-2.35 {
282 execsql { 283 execsql {
283 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1 284 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1
284 ORDER BY b COLLATE NOCASE,a,c 285 ORDER BY y COLLATE NOCASE,x,z
285 } 286 }
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 } {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 do_test selectA-2.36 {
288 execsql { 289 execsql {
289 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1 290 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1
290 ORDER BY b COLLATE NOCASE DESC,a,c 291 ORDER BY y COLLATE NOCASE DESC,x,z
291 } 292 }
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 } {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 do_test selectA-2.37 {
294 execsql { 295 execsql {
295 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1 296 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1
296 ORDER BY c,b,a 297 ORDER BY c,b,a
297 } 298 }
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 } {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 do_test selectA-2.38 {
300 execsql { 301 execsql {
301 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1 302 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1
302 ORDER BY c,a,b 303 ORDER BY c,a,b
303 } 304 }
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 } {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 do_test selectA-2.39 {
306 execsql { 307 execsql {
307 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1 308 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1
308 ORDER BY c DESC,a,b 309 ORDER BY c DESC,a,b
309 } 310 }
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 } {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 do_test selectA-2.40 {
312 execsql { 313 execsql {
313 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1 314 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1
314 ORDER BY c COLLATE BINARY DESC,a,b 315 ORDER BY z COLLATE BINARY DESC,x,y
315 } 316 }
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 } {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 do_test selectA-2.41 {
318 execsql { 319 execsql {
319 SELECT a,b,c FROM t1 EXCEPT SELECT a,b,c FROM t1 WHERE b>='d' 320 SELECT a,b,c FROM t1 EXCEPT SELECT a,b,c FROM t1 WHERE b>='d'
320 ORDER BY a,b,c 321 ORDER BY a,b,c
321 } 322 }
322 } {{} C c 1 a a 9.9 b B} 323 } {{} C c 1 a a 9.9 b B}
323 do_test selectA-2.42 { 324 do_test selectA-2.42 {
324 execsql { 325 execsql {
(...skipping 270 matching lines...) Expand 10 before | Expand all | Expand 10 after
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 h are m M} 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}
596 do_test selectA-2.85 { 597 do_test selectA-2.85 {
597 execsql { 598 execsql {
598 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3 599 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3
599 ORDER BY b,a,c 600 ORDER BY b,a,c
600 } 601 }
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 h are m M} 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}
602 do_test selectA-2.86 { 603 do_test selectA-2.86 {
603 execsql { 604 execsql {
604 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3 605 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3
605 ORDER BY b COLLATE NOCASE,a,c 606 ORDER BY y COLLATE NOCASE,x,z
606 } 607 }
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 } {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 do_test selectA-2.87 {
609 execsql { 610 execsql {
610 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3 611 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3
611 ORDER BY y COLLATE NOCASE DESC,x,z 612 ORDER BY y COLLATE NOCASE DESC,x,z
612 } 613 }
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 } {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 do_test selectA-2.88 {
615 execsql { 616 execsql {
616 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3 617 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3
617 ORDER BY c,b,a 618 ORDER BY c,b,a
618 } 619 }
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 } {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 do_test selectA-2.89 {
621 execsql { 622 execsql {
622 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3 623 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3
623 ORDER BY c,a,b 624 ORDER BY c,a,b
624 } 625 }
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 } {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 do_test selectA-2.90 {
627 execsql { 628 execsql {
628 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3 629 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3
629 ORDER BY c DESC,a,b 630 ORDER BY c DESC,a,b
630 } 631 }
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 } {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 do_test selectA-2.91 {
633 execsql { 634 execsql {
634 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3 635 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3
635 ORDER BY c COLLATE BINARY DESC,a,b 636 ORDER BY z COLLATE BINARY DESC,x,y
636 } 637 }
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 } {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 do_test selectA-2.92 {
639 execsql { 640 execsql {
640 SELECT x,y,z FROM t2 641 SELECT x,y,z FROM t2
641 INTERSECT SELECT a,b,c FROM t3 642 INTERSECT SELECT a,b,c FROM t3
642 EXCEPT SELECT c,b,a FROM t1 643 EXCEPT SELECT c,b,a FROM t1
643 UNION SELECT a,b,c FROM t3 644 UNION SELECT a,b,c FROM t3
644 INTERSECT SELECT a,b,c FROM t3 645 INTERSECT SELECT a,b,c FROM t3
645 EXCEPT SELECT c,b,a FROM t1 646 EXCEPT SELECT c,b,a FROM t1
(...skipping 240 matching lines...) Expand 10 before | Expand all | Expand 10 after
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 h are m M} 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}
887 do_test selectA-3.34 { 888 do_test selectA-3.34 {
888 execsql { 889 execsql {
889 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1 890 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1
890 ORDER BY b,a,c 891 ORDER BY b,a,c
891 } 892 }
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 h are m M} 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}
893 do_test selectA-3.35 { 894 do_test selectA-3.35 {
894 execsql { 895 execsql {
895 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1 896 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1
896 ORDER BY b COLLATE NOCASE,a,c 897 ORDER BY y COLLATE NOCASE,x,z
897 } 898 }
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 } {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 do_test selectA-3.36 {
900 execsql { 901 execsql {
901 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1 902 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1
902 ORDER BY b COLLATE NOCASE DESC,a,c 903 ORDER BY y COLLATE NOCASE DESC,x,z
903 } 904 }
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 } {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 do_test selectA-3.37 {
906 execsql { 907 execsql {
907 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1 908 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1
908 ORDER BY c,b,a 909 ORDER BY c,b,a
909 } 910 }
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 } {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 do_test selectA-3.38 {
912 execsql { 913 execsql {
913 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1 914 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1
914 ORDER BY c,a,b 915 ORDER BY c,a,b
915 } 916 }
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 } {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 do_test selectA-3.39 {
918 execsql { 919 execsql {
919 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1 920 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1
920 ORDER BY c DESC,a,b 921 ORDER BY c DESC,a,b
921 } 922 }
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 } {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 do_test selectA-3.40 {
924 execsql { 925 execsql {
925 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1 926 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t1
926 ORDER BY c COLLATE BINARY DESC,a,b 927 ORDER BY z COLLATE BINARY DESC,x,y
927 } 928 }
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 } {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 do_test selectA-3.41 {
930 execsql { 931 execsql {
931 SELECT a,b,c FROM t1 EXCEPT SELECT a,b,c FROM t1 WHERE b>='d' 932 SELECT a,b,c FROM t1 EXCEPT SELECT a,b,c FROM t1 WHERE b>='d'
932 ORDER BY a,b,c 933 ORDER BY a,b,c
933 } 934 }
934 } {{} C c 1 a a 9.9 b B} 935 } {{} C c 1 a a 9.9 b B}
935 do_test selectA-3.42 { 936 do_test selectA-3.42 {
936 execsql { 937 execsql {
(...skipping 270 matching lines...) Expand 10 before | Expand all | Expand 10 after
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 h are m M} 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}
1208 do_test selectA-3.85 { 1209 do_test selectA-3.85 {
1209 execsql { 1210 execsql {
1210 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3 1211 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3
1211 ORDER BY b,a,c 1212 ORDER BY b,a,c
1212 } 1213 }
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 h are m M} 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}
1214 do_test selectA-3.86 { 1215 do_test selectA-3.86 {
1215 execsql { 1216 execsql {
1216 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3 1217 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3
1217 ORDER BY b COLLATE NOCASE,a,c 1218 ORDER BY y COLLATE NOCASE,x,z
1218 } 1219 }
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 } {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 do_test selectA-3.87 {
1221 execsql { 1222 execsql {
1222 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3 1223 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3
1223 ORDER BY y COLLATE NOCASE DESC,x,z 1224 ORDER BY y COLLATE NOCASE DESC,x,z
1224 } 1225 }
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 } {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 do_test selectA-3.88 {
1227 execsql { 1228 execsql {
1228 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3 1229 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3
1229 ORDER BY c,b,a 1230 ORDER BY c,b,a
1230 } 1231 }
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 } {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 do_test selectA-3.89 {
1233 execsql { 1234 execsql {
1234 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3 1235 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3
1235 ORDER BY c,a,b 1236 ORDER BY c,a,b
1236 } 1237 }
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 } {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 do_test selectA-3.90 {
1239 execsql { 1240 execsql {
1240 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3 1241 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3
1241 ORDER BY c DESC,a,b 1242 ORDER BY c DESC,a,b
1242 } 1243 }
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 } {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 do_test selectA-3.91 {
1245 execsql { 1246 execsql {
1246 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3 1247 SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3
1247 ORDER BY c COLLATE BINARY DESC,a,b 1248 ORDER BY z COLLATE BINARY DESC,x,y
1248 } 1249 }
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 } {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 do_test selectA-3.92 {
1251 execsql { 1252 execsql {
1252 SELECT x,y,z FROM t2 1253 SELECT x,y,z FROM t2
1253 INTERSECT SELECT a,b,c FROM t3 1254 INTERSECT SELECT a,b,c FROM t3
1254 EXCEPT SELECT c,b,a FROM t1 1255 EXCEPT SELECT c,b,a FROM t1
1255 UNION SELECT a,b,c FROM t3 1256 UNION SELECT a,b,c FROM t3
1256 INTERSECT SELECT a,b,c FROM t3 1257 INTERSECT SELECT a,b,c FROM t3
1257 EXCEPT SELECT c,b,a FROM t1 1258 EXCEPT SELECT c,b,a FROM t1
(...skipping 27 matching lines...) Expand all
1285 SELECT x,y,z FROM t2 1286 SELECT x,y,z FROM t2
1286 INTERSECT SELECT a,b,c FROM t3 1287 INTERSECT SELECT a,b,c FROM t3
1287 EXCEPT SELECT c,b,a FROM t1 1288 EXCEPT SELECT c,b,a FROM t1
1288 UNION SELECT a,b,c FROM t3 1289 UNION SELECT a,b,c FROM t3
1289 INTERSECT SELECT a,b,c FROM t3 1290 INTERSECT SELECT a,b,c FROM t3
1290 EXCEPT SELECT c,b,a FROM t1 1291 EXCEPT SELECT c,b,a FROM t1
1291 UNION SELECT a,b,c FROM t3 1292 UNION SELECT a,b,c FROM t3
1292 ORDER BY y COLLATE NOCASE DESC,x,z))) 1293 ORDER BY y COLLATE NOCASE DESC,x,z)))
1293 } 1294 }
1294 } {MAD} 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
1295 1377
1296 finish_test 1378 finish_test
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698