sl@0: # 2007 May 6 sl@0: # sl@0: # The author disclaims copyright to this source code. In place of sl@0: # a legal notice, here is a blessing: sl@0: # sl@0: # May you do good and not evil. sl@0: # May you find forgiveness for yourself and forgive others. sl@0: # May you share freely, never taking more than you give. sl@0: # sl@0: #*********************************************************************** sl@0: # sl@0: # $Id: tkt2339.test,v 1.2 2007/09/12 17:01:45 danielk1977 Exp $ sl@0: # sl@0: sl@0: set testdir [file dirname $argv0] sl@0: source $testdir/tester.tcl sl@0: sl@0: ifcapable !subquery||!compound { sl@0: finish_test sl@0: return sl@0: } sl@0: sl@0: do_test tkt2339.1 { sl@0: execsql { sl@0: create table t1(num int); sl@0: insert into t1 values (1); sl@0: insert into t1 values (2); sl@0: insert into t1 values (3); sl@0: insert into t1 values (4); sl@0: sl@0: create table t2(num int); sl@0: insert into t2 values (11); sl@0: insert into t2 values (12); sl@0: insert into t2 values (13); sl@0: insert into t2 values (14); sl@0: sl@0: SELECT * FROM (SELECT * FROM t1 ORDER BY num DESC LIMIT 2) sl@0: UNION sl@0: SELECT * FROM (SELECT * FROM t2 ORDER BY num DESC LIMIT 2) sl@0: } sl@0: } {3 4 13 14} sl@0: do_test tkt2339.2 { sl@0: execsql { sl@0: SELECT * FROM (SELECT * FROM t1 ORDER BY num DESC LIMIT 2) sl@0: UNION ALL sl@0: SELECT * FROM (SELECT * FROM t2 ORDER BY num DESC LIMIT 2) sl@0: } sl@0: } {4 3 14 13} sl@0: do_test tkt2339.3 { sl@0: execsql { sl@0: SELECT * FROM (SELECT * FROM t1 ORDER BY num DESC) sl@0: UNION ALL sl@0: SELECT * FROM (SELECT * FROM t2 ORDER BY num DESC LIMIT 2) sl@0: } sl@0: } {4 3 2 1 14 13} sl@0: do_test tkt2339.4 { sl@0: execsql { sl@0: SELECT * FROM (SELECT * FROM t1 ORDER BY num DESC LIMIT 2) sl@0: UNION ALL sl@0: SELECT * FROM (SELECT * FROM t2 ORDER BY num DESC) sl@0: } sl@0: } {4 3 14 13 12 11} sl@0: do_test tkt2339.5 { sl@0: execsql { sl@0: SELECT * FROM (SELECT * FROM t1 ORDER BY num DESC LIMIT 2) sl@0: UNION sl@0: SELECT * FROM (SELECT * FROM t2 ORDER BY num DESC) sl@0: } sl@0: } {3 4 11 12 13 14} sl@0: do_test tkt2339.6 { sl@0: execsql { sl@0: SELECT * FROM (SELECT * FROM t1 ORDER BY num DESC LIMIT 2) sl@0: EXCEPT sl@0: SELECT * FROM (SELECT * FROM t2 ORDER BY num DESC) sl@0: } sl@0: } {3 4} sl@0: do_test tkt2339.7 { sl@0: execsql { sl@0: SELECT * FROM (SELECT * FROM t1 LIMIT 2) sl@0: UNION sl@0: SELECT * FROM (SELECT * FROM t2 ORDER BY num DESC LIMIT 2) sl@0: } sl@0: } {1 2 13 14} sl@0: do_test tkt2339.8 { sl@0: execsql { sl@0: SELECT * FROM (SELECT * FROM t1 LIMIT 2) sl@0: UNION sl@0: SELECT * FROM (SELECT * FROM t2 LIMIT 2) sl@0: } sl@0: } {1 2 11 12} sl@0: do_test tkt2339.9 { sl@0: execsql { sl@0: SELECT * FROM (SELECT * FROM t1 ORDER BY num DESC LIMIT 2) sl@0: UNION sl@0: SELECT * FROM (SELECT * FROM t2 LIMIT 2) sl@0: } sl@0: } {3 4 11 12} sl@0: sl@0: sl@0: finish_test