1 # 2007 May 6 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 # 12 # $Id: tkt2339.test,v 1.2 2007/09/12 17:01:45 danielk1977 Exp $ 13 # 14 15 set testdir [file dirname $argv0] 16 source $testdir/tester.tcl 17 18 ifcapable !subquery||!compound { 19 finish_test 20 return 21 } 22 23 do_test tkt2339.1 { 24 execsql { 25 create table t1(num int); 26 insert into t1 values (1); 27 insert into t1 values (2); 28 insert into t1 values (3); 29 insert into t1 values (4); 30 31 create table t2(num int); 32 insert into t2 values (11); 33 insert into t2 values (12); 34 insert into t2 values (13); 35 insert into t2 values (14); 36 37 SELECT * FROM (SELECT * FROM t1 ORDER BY num DESC LIMIT 2) 38 UNION 39 SELECT * FROM (SELECT * FROM t2 ORDER BY num DESC LIMIT 2) 40 } 41 } {3 4 13 14} 42 do_test tkt2339.2 { 43 execsql { 44 SELECT * FROM (SELECT * FROM t1 ORDER BY num DESC LIMIT 2) 45 UNION ALL 46 SELECT * FROM (SELECT * FROM t2 ORDER BY num DESC LIMIT 2) 47 } 48 } {4 3 14 13} 49 do_test tkt2339.3 { 50 execsql { 51 SELECT * FROM (SELECT * FROM t1 ORDER BY num DESC) 52 UNION ALL 53 SELECT * FROM (SELECT * FROM t2 ORDER BY num DESC LIMIT 2) 54 } 55 } {4 3 2 1 14 13} 56 do_test tkt2339.4 { 57 execsql { 58 SELECT * FROM (SELECT * FROM t1 ORDER BY num DESC LIMIT 2) 59 UNION ALL 60 SELECT * FROM (SELECT * FROM t2 ORDER BY num DESC) 61 } 62 } {4 3 14 13 12 11} 63 do_test tkt2339.5 { 64 execsql { 65 SELECT * FROM (SELECT * FROM t1 ORDER BY num DESC LIMIT 2) 66 UNION 67 SELECT * FROM (SELECT * FROM t2 ORDER BY num DESC) 68 } 69 } {3 4 11 12 13 14} 70 do_test tkt2339.6 { 71 execsql { 72 SELECT * FROM (SELECT * FROM t1 ORDER BY num DESC LIMIT 2) 73 EXCEPT 74 SELECT * FROM (SELECT * FROM t2 ORDER BY num DESC) 75 } 76 } {3 4} 77 do_test tkt2339.7 { 78 execsql { 79 SELECT * FROM (SELECT * FROM t1 LIMIT 2) 80 UNION 81 SELECT * FROM (SELECT * FROM t2 ORDER BY num DESC LIMIT 2) 82 } 83 } {1 2 13 14} 84 do_test tkt2339.8 { 85 execsql { 86 SELECT * FROM (SELECT * FROM t1 LIMIT 2) 87 UNION 88 SELECT * FROM (SELECT * FROM t2 LIMIT 2) 89 } 90 } {1 2 11 12} 91 do_test tkt2339.9 { 92 execsql { 93 SELECT * FROM (SELECT * FROM t1 ORDER BY num DESC LIMIT 2) 94 UNION 95 SELECT * FROM (SELECT * FROM t2 LIMIT 2) 96 } 97 } {3 4 11 12} 98 99 100 finish_test 101