Home | History | Annotate | Download | only in test
      1 # 2009 March 18
      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: tkt3731.test,v 1.1 2009/03/17 22:33:01 drh Exp $
     13 
     14 set testdir [file dirname $argv0]
     15 source $testdir/tester.tcl
     16 ifcapable {!trigger} {
     17   finish_test
     18   return
     19 }
     20 
     21 # The tests in this file were written before SQLite supported recursive
     22 # trigger invocation, and some tests depend on that to pass. So disable
     23 # recursive triggers for this file.
     24 catchsql { pragma recursive_triggers = off } 
     25 
     26 do_test tkt3731-1.1 {
     27   execsql {
     28     CREATE TABLE t1(a PRIMARY KEY, b);
     29     CREATE TRIGGER tr1 AFTER INSERT ON t1 BEGIN
     30       INSERT INTO t1 VALUES(new.a || '+', new.b || '+');
     31     END;
     32   }
     33 } {}
     34 
     35 do_test tkt3731-1.2 {
     36   execsql {
     37     INSERT INTO t1 VALUES('a', 'b');
     38     INSERT INTO t1 VALUES('c', 'd');
     39     SELECT * FROM t1;
     40   }
     41 } {a b a+ b+ c d c+ d+}
     42 
     43 do_test tkt3731-1.3 {
     44   execsql {
     45     DELETE FROM t1;
     46     CREATE TABLE t2(a, b);
     47     INSERT INTO t2 VALUES('e', 'f');
     48     INSERT INTO t2 VALUES('g', 'h');
     49     INSERT INTO t1 SELECT * FROM t2;
     50     SELECT * FROM t1;
     51   }
     52 } {e f e+ f+ g h g+ h+}
     53 
     54 integrity_check tkt3731-1.4
     55 
     56 finish_test
     57