1 # 2007 December 02 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 # Specifically, it tests that bug 2817 is fixed. 14 # 15 # $Id: tkt2817.test,v 1.2 2008/07/12 14:52:21 drh Exp $ 16 17 set testdir [file dirname $argv0] 18 source $testdir/tester.tcl 19 20 do_test tkt2817-1.0 { 21 execsql { 22 CREATE TEMP TABLE tbl(a, b, c); 23 -- INSERT INTO tbl VALUES(1, 'abc', 'def'); 24 -- INSERT INTO tbl VALUES(2, 'ghi', 'jkl'); 25 } 26 } {} 27 do_test tkt2817-1.1 { 28 execsql { 29 CREATE TABLE main.tbl(a, b, c); 30 CREATE INDEX main.tbli ON tbl(a, b, c); 31 INSERT INTO main.tbl SELECT a, b, c FROM temp.tbl; 32 } 33 } {} 34 35 # When bug #2817 existed, this test was failing. 36 # 37 integrity_check tkt2817-1.2 38 39 # So was this one. 40 # 41 db close 42 sqlite3 db test.db 43 integrity_check tkt2817-1.3 44 45 46 # These tests - tkt2817-2.* - are the same as the previous block, except 47 # for the fact that the temp-table and the main table do not share the 48 # same name. #2817 did not cause a problem with these tests. 49 # 50 db close 51 file delete -force test.db 52 sqlite3 db test.db 53 do_test tkt2817-2.0 { 54 execsql { 55 CREATE TEMP TABLE tmp(a, b, c); 56 INSERT INTO tmp VALUES(1, 'abc', 'def'); 57 INSERT INTO tmp VALUES(2, 'ghi', 'jkl'); 58 } 59 } {} 60 do_test tkt2817-2.1 { 61 execsql { 62 CREATE TABLE main.tbl(a, b, c); 63 CREATE INDEX main.tbli ON tbl(a, b, c); 64 INSERT INTO main.tbl SELECT a, b, c FROM temp.tmp; 65 } 66 } {} 67 integrity_check tkt2817-2.2 68 db close 69 sqlite3 db test.db 70 integrity_check tkt2817-2.3 71 72 finish_test 73