diff options
author | dan miller | 2007-10-21 08:36:32 +0000 |
---|---|---|
committer | dan miller | 2007-10-21 08:36:32 +0000 |
commit | 2f8d7092bc2c9609fa98d6888106b96f38b22828 (patch) | |
tree | da6c37579258cc965b52a75aee6135fe44237698 /libraries/sqlite/unix/sqlite-3.5.1/test/trigger4.test | |
parent | * Committing new PolicyManager based on an ACL system. (diff) | |
download | opensim-SC-2f8d7092bc2c9609fa98d6888106b96f38b22828.zip opensim-SC-2f8d7092bc2c9609fa98d6888106b96f38b22828.tar.gz opensim-SC-2f8d7092bc2c9609fa98d6888106b96f38b22828.tar.bz2 opensim-SC-2f8d7092bc2c9609fa98d6888106b96f38b22828.tar.xz |
libraries moved to opensim-libs, a new repository
Diffstat (limited to 'libraries/sqlite/unix/sqlite-3.5.1/test/trigger4.test')
-rw-r--r-- | libraries/sqlite/unix/sqlite-3.5.1/test/trigger4.test | 200 |
1 files changed, 0 insertions, 200 deletions
diff --git a/libraries/sqlite/unix/sqlite-3.5.1/test/trigger4.test b/libraries/sqlite/unix/sqlite-3.5.1/test/trigger4.test deleted file mode 100644 index 0e44ce6..0000000 --- a/libraries/sqlite/unix/sqlite-3.5.1/test/trigger4.test +++ /dev/null | |||
@@ -1,200 +0,0 @@ | |||
1 | # The author disclaims copyright to this source code. In place of | ||
2 | # a legal notice, here is a blessing: | ||
3 | # | ||
4 | # May you do good and not evil. | ||
5 | # May you find forgiveness for yourself and forgive others. | ||
6 | # May you share freely, never taking more than you give. | ||
7 | # | ||
8 | #*********************************************************************** | ||
9 | # | ||
10 | # This file tests the triggers of views. | ||
11 | # | ||
12 | |||
13 | set testdir [file dirname $argv0] | ||
14 | source $testdir/tester.tcl | ||
15 | |||
16 | # If either views or triggers are disabled in this build, omit this file. | ||
17 | ifcapable {!trigger || !view} { | ||
18 | finish_test | ||
19 | return | ||
20 | } | ||
21 | |||
22 | do_test trigger4-1.1 { | ||
23 | execsql { | ||
24 | create table test1(id integer primary key,a); | ||
25 | create table test2(id integer,b); | ||
26 | create view test as | ||
27 | select test1.id as id,a as a,b as b | ||
28 | from test1 join test2 on test2.id = test1.id; | ||
29 | create trigger I_test instead of insert on test | ||
30 | begin | ||
31 | insert into test1 (id,a) values (NEW.id,NEW.a); | ||
32 | insert into test2 (id,b) values (NEW.id,NEW.b); | ||
33 | end; | ||
34 | insert into test values(1,2,3); | ||
35 | select * from test1; | ||
36 | } | ||
37 | } {1 2} | ||
38 | do_test trigger4-1.2 { | ||
39 | execsql { | ||
40 | select * from test2; | ||
41 | } | ||
42 | } {1 3} | ||
43 | do_test trigger4-1.3 { | ||
44 | db close | ||
45 | sqlite3 db test.db | ||
46 | execsql { | ||
47 | insert into test values(4,5,6); | ||
48 | select * from test1; | ||
49 | } | ||
50 | } {1 2 4 5} | ||
51 | do_test trigger4-1.4 { | ||
52 | execsql { | ||
53 | select * from test2; | ||
54 | } | ||
55 | } {1 3 4 6} | ||
56 | |||
57 | do_test trigger4-2.1 { | ||
58 | execsql { | ||
59 | create trigger U_test instead of update on test | ||
60 | begin | ||
61 | update test1 set a=NEW.a where id=NEW.id; | ||
62 | update test2 set b=NEW.b where id=NEW.id; | ||
63 | end; | ||
64 | update test set a=22 where id=1; | ||
65 | select * from test1; | ||
66 | } | ||
67 | } {1 22 4 5} | ||
68 | do_test trigger4-2.2 { | ||
69 | execsql { | ||
70 | select * from test2; | ||
71 | } | ||
72 | } {1 3 4 6} | ||
73 | do_test trigger4-2.3 { | ||
74 | db close | ||
75 | sqlite3 db test.db | ||
76 | execsql { | ||
77 | update test set b=66 where id=4; | ||
78 | select * from test1; | ||
79 | } | ||
80 | } {1 22 4 5} | ||
81 | do_test trigger4-2.4 { | ||
82 | execsql { | ||
83 | select * from test2; | ||
84 | } | ||
85 | } {1 3 4 66} | ||
86 | |||
87 | do_test trigger4-3.1 { | ||
88 | catchsql { | ||
89 | drop table test2; | ||
90 | insert into test values(7,8,9); | ||
91 | } | ||
92 | } {1 {no such table: main.test2}} | ||
93 | do_test trigger4-3.2 { | ||
94 | db close | ||
95 | sqlite3 db test.db | ||
96 | catchsql { | ||
97 | insert into test values(7,8,9); | ||
98 | } | ||
99 | } {1 {no such table: main.test2}} | ||
100 | do_test trigger4-3.3 { | ||
101 | catchsql { | ||
102 | update test set a=222 where id=1; | ||
103 | } | ||
104 | } {1 {no such table: main.test2}} | ||
105 | do_test trigger4-3.4 { | ||
106 | execsql { | ||
107 | select * from test1; | ||
108 | } | ||
109 | } {1 22 4 5} | ||
110 | do_test trigger4-3.5 { | ||
111 | execsql { | ||
112 | create table test2(id,b); | ||
113 | insert into test values(7,8,9); | ||
114 | select * from test1; | ||
115 | } | ||
116 | } {1 22 4 5 7 8} | ||
117 | do_test trigger4-3.6 { | ||
118 | execsql { | ||
119 | select * from test2; | ||
120 | } | ||
121 | } {7 9} | ||
122 | do_test trigger4-3.7 { | ||
123 | db close | ||
124 | sqlite3 db test.db | ||
125 | execsql { | ||
126 | update test set b=99 where id=7; | ||
127 | select * from test2; | ||
128 | } | ||
129 | } {7 99} | ||
130 | |||
131 | do_test trigger4-4.1 { | ||
132 | db close | ||
133 | file delete -force trigtest.db | ||
134 | file delete -force trigtest.db-journal | ||
135 | sqlite3 db trigtest.db | ||
136 | catchsql {drop table tbl; drop view vw} | ||
137 | execsql { | ||
138 | create table tbl(a integer primary key, b integer); | ||
139 | create view vw as select * from tbl; | ||
140 | create trigger t_del_tbl instead of delete on vw for each row begin | ||
141 | delete from tbl where a = old.a; | ||
142 | end; | ||
143 | create trigger t_upd_tbl instead of update on vw for each row begin | ||
144 | update tbl set a=new.a, b=new.b where a = old.a; | ||
145 | end; | ||
146 | create trigger t_ins_tbl instead of insert on vw for each row begin | ||
147 | insert into tbl values (new.a,new.b); | ||
148 | end; | ||
149 | insert into tbl values(101,1001); | ||
150 | insert into tbl values(102,1002); | ||
151 | insert into tbl select a+2, b+2 from tbl; | ||
152 | insert into tbl select a+4, b+4 from tbl; | ||
153 | insert into tbl select a+8, b+8 from tbl; | ||
154 | insert into tbl select a+16, b+16 from tbl; | ||
155 | insert into tbl select a+32, b+32 from tbl; | ||
156 | insert into tbl select a+64, b+64 from tbl; | ||
157 | select count(*) from vw; | ||
158 | } | ||
159 | } {128} | ||
160 | do_test trigger4-4.2 { | ||
161 | execsql {select a, b from vw where a<103 or a>226 order by a} | ||
162 | } {101 1001 102 1002 227 1127 228 1128} | ||
163 | |||
164 | #test delete from view | ||
165 | do_test trigger4-5.1 { | ||
166 | catchsql {delete from vw where a>101 and a<2000} | ||
167 | } {0 {}} | ||
168 | do_test trigger4-5.2 { | ||
169 | execsql {select * from vw} | ||
170 | } {101 1001} | ||
171 | |||
172 | #test insert into view | ||
173 | do_test trigger4-6.1 { | ||
174 | catchsql { | ||
175 | insert into vw values(102,1002); | ||
176 | insert into vw select a+2, b+2 from vw; | ||
177 | insert into vw select a+4, b+4 from vw; | ||
178 | insert into vw select a+8, b+8 from vw; | ||
179 | insert into vw select a+16, b+16 from vw; | ||
180 | insert into vw select a+32, b+32 from vw; | ||
181 | insert into vw select a+64, b+64 from vw; | ||
182 | } | ||
183 | } {0 {}} | ||
184 | do_test trigger4-6.2 { | ||
185 | execsql {select count(*) from vw} | ||
186 | } {128} | ||
187 | |||
188 | #test update of view | ||
189 | do_test trigger4-7.1 { | ||
190 | catchsql {update vw set b=b+1000 where a>101 and a<2000} | ||
191 | } {0 {}} | ||
192 | do_test trigger4-7.2 { | ||
193 | execsql {select a, b from vw where a<=102 or a>=227 order by a} | ||
194 | } {101 1001 102 2002 227 2127 228 2128} | ||
195 | |||
196 | integrity_check trigger4-99.9 | ||
197 | db close | ||
198 | file delete -force trigtest.db trigtest.db-journal | ||
199 | |||
200 | finish_test | ||