tkt2339.test 2.4 KB

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