equal
deleted
inserted
replaced
|
1 # 2006 February 27 |
|
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 make sure abusively large triggers |
|
14 # (triggers with 100s or 1000s of statements) work. |
|
15 # |
|
16 # $Id: $ |
|
17 |
|
18 set testdir [file dirname $argv0] |
|
19 source $testdir/tester.tcl |
|
20 ifcapable {!trigger} { |
|
21 finish_test |
|
22 return |
|
23 } |
|
24 |
|
25 # Set variable $nStatement to the number of statements to include in the |
|
26 # body of the trigger. On a workstation with virtually unlimited memory, |
|
27 # use 10000. But on symbian, which allows each application at most a 32MB |
|
28 # heap, use 1000. |
|
29 # |
|
30 set nStatement 10000 |
|
31 if {$tcl_platform(platform) == "symbian"} { |
|
32 set nStatement 1000 |
|
33 } |
|
34 |
|
35 do_test trigger8-1.1 { |
|
36 execsql { |
|
37 CREATE TABLE t1(x); |
|
38 CREATE TABLE t2(y); |
|
39 } |
|
40 set sql "CREATE TRIGGER r${nStatement} AFTER INSERT ON t1 BEGIN\n" |
|
41 for {set i 0} {$i<$nStatement} {incr i} { |
|
42 append sql " INSERT INTO t2 VALUES($i);\n" |
|
43 } |
|
44 append sql "END;" |
|
45 execsql $sql |
|
46 execsql { |
|
47 INSERT INTO t1 VALUES(5); |
|
48 SELECT count(*) FROM t2; |
|
49 } |
|
50 } $nStatement |
|
51 |
|
52 finish_test |