1 # 2008 October 06 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 # This file implements regression tests for SQLite library. The 13 # focus of this file is testing the fix for ticket #3419. 14 # Ticket #3419 is really a duplication of #3408 and had already 15 # been fixed by the time it was reported. But it never hurts to 16 # add new test cases. 17 # 18 # $Id: tkt3419.test,v 1.1 2008/10/06 15:31:13 drh Exp $ 19 20 set testdir [file dirname $argv0] 21 source $testdir/tester.tcl 22 23 do_test tkt3419-1.1 { 24 execsql { 25 create table a(id integer primary key); 26 create table b(id integer primary key, a_id integer); 27 create table c(id integer primary key, b_id integer); 28 29 insert into a values (1); 30 insert into a values (2); 31 32 insert into b values (3, 1); 33 insert into b values (4, 1); 34 insert into b values (5, 1); 35 insert into b values (6, 1); 36 insert into b values (9, 2); 37 38 insert into c values (4, 3); 39 insert into c values (5, 5); 40 insert into c values (6, 4); 41 insert into c values (7, 6); 42 insert into c values (8, 9); 43 44 select * FROM a, b, c WHERE a.id=2 AND b.a_id = a.id AND b.id=c.b_id; 45 } 46 } {2 9 2 8 9} 47 do_test tkt3419-1.2 { 48 execsql { 49 select * FROM a, c, b WHERE a.id=2 AND b.a_id = a.id AND b.id=c.b_id; 50 } 51 } {2 8 9 9 2} 52 do_test tkt3419-1.3 { 53 execsql { 54 select * FROM b, a, c WHERE a.id=2 AND b.a_id = a.id AND b.id=c.b_id; 55 } 56 } {9 2 2 8 9} 57 do_test tkt3419-1.4 { 58 execsql { 59 select * FROM b, c, a WHERE a.id=2 AND b.a_id = a.id AND b.id=c.b_id; 60 } 61 } {9 2 8 9 2} 62 do_test tkt3419-1.5 { 63 execsql { 64 select * FROM c, a, b WHERE a.id=2 AND b.a_id = a.id AND b.id=c.b_id; 65 } 66 } {8 9 2 9 2} 67 do_test tkt3419-1.6 { 68 execsql { 69 select * FROM c, b, a WHERE a.id=2 AND b.a_id = a.id AND b.id=c.b_id; 70 } 71 } {8 9 9 2 2} 72 73 finish_test 74