Home | History | Annotate | Download | only in test
      1 # 2005 September 19
      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 # This file implements tests to verify that ticket #1444 has been
     14 # fixed.  
     15 #
     16 
     17 set testdir [file dirname $argv0]
     18 source $testdir/tester.tcl
     19 
     20 ifcapable !compound||!view {
     21   finish_test
     22   return 
     23 }
     24 
     25 # The use of a VIEW that contained an ORDER BY clause within a UNION ALL
     26 # was causing problems.  See ticket #1444.
     27 #
     28 do_test tkt1444-1.1 {
     29   execsql {
     30     CREATE TABLE DemoTable (x INTEGER, TextKey TEXT, DKey Real);
     31     CREATE INDEX DemoTableIdx ON DemoTable (TextKey);
     32     INSERT INTO DemoTable VALUES(9,8,7);
     33     INSERT INTO DemoTable VALUES(1,2,3);
     34     CREATE VIEW DemoView AS SELECT * FROM DemoTable ORDER BY TextKey;
     35     SELECT * FROM DemoTable UNION ALL SELECT * FROM DemoView ORDER BY 1;
     36   }
     37 } {1 2 3.0 1 2 3.0 9 8 7.0 9 8 7.0}
     38 do_test tkt1444-1.2 {
     39   execsql {
     40     SELECT * FROM DemoTable UNION ALL SELECT * FROM DemoView;
     41   }
     42 } {9 8 7.0 1 2 3.0 1 2 3.0 9 8 7.0}
     43 do_test tkt1444-1.3 {
     44   execsql {
     45     DROP VIEW DemoView;
     46     CREATE VIEW DemoView AS SELECT * FROM DemoTable;
     47     SELECT * FROM DemoTable UNION ALL SELECT * FROM DemoView ORDER BY 1;
     48   }
     49 } {1 2 3.0 1 2 3.0 9 8 7.0 9 8 7.0}
     50 do_test tkt1444-1.4 {
     51   execsql {
     52     SELECT * FROM DemoTable UNION ALL SELECT * FROM DemoView;
     53   }
     54 } {9 8 7.0 1 2 3.0 9 8 7.0 1 2 3.0}
     55 
     56 finish_test
     57