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: trigger8.test,v 1.1.1.1 2012/02/21 17:04:16 misho Exp $
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: set nStatement 5
36: do_test trigger8-1.1 {
37: execsql {
38: CREATE TABLE t1(x);
39: CREATE TABLE t2(y);
40: }
41: set sql "CREATE TRIGGER r${nStatement} AFTER INSERT ON t1 BEGIN\n"
42: for {set i 0} {$i<$nStatement} {incr i} {
43: append sql " INSERT INTO t2 VALUES($i);\n"
44: }
45: append sql "END;"
46: execsql $sql
47: execsql {
48: INSERT INTO t1 VALUES(5);
49: SELECT count(*) FROM t2;
50: }
51: } $nStatement
52:
53: finish_test
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>