Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(210)

Side by Side Diff: third_party/sqlite/src/test/triggerD.test

Issue 901033002: Import SQLite 3.8.7.4. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Chromium changes to support SQLite 3.8.7.4. Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 # 2009 December 29 1 # 2009 December 29
2 # 2 #
3 # The author disclaims copyright to this source code. In place of 3 # The author disclaims copyright to this source code. In place of
4 # a legal notice', here is a blessing: 4 # a legal notice', here is a blessing:
5 # 5 #
6 # May you do good and not evil. 6 # May you do good and not evil.
7 # May you find forgiveness for yourself and forgive others. 7 # May you find forgiveness for yourself and forgive others.
8 # May you share freely, never taking more than you give. 8 # May you share freely, never taking more than you give.
9 # 9 #
10 #*********************************************************************** 10 #***********************************************************************
11 # 11 #
12 # Verify that when columns named "rowid", "oid", and "_rowid_" appear 12 # Verify that when columns named "rowid", "oid", and "_rowid_" appear
13 # in a table as ordinary columns (not as the INTEGER PRIMARY KEY) then 13 # in a table as ordinary columns (not as the INTEGER PRIMARY KEY) then
14 # the use of these columns in triggers will refer to the column and not 14 # the use of these columns in triggers will refer to the column and not
15 # to the actual ROWID. Ticket [34d2ae1c6d08b5271ba5e5592936d4a1d913ffe3] 15 # to the actual ROWID. Ticket [34d2ae1c6d08b5271ba5e5592936d4a1d913ffe3]
16 # 16 #
17 # Also, verify that triggers created like this:
18 #
19 # CREATE TRIGGER attached.trig AFTER INSERT ON attached.tab ...
20 #
21 # can be reparsed as a main database. Ticket [d6ddba6706353915ceedc56b4e3]
22 #
17 23
18 set testdir [file dirname $argv0] 24 set testdir [file dirname $argv0]
19 source $testdir/tester.tcl 25 source $testdir/tester.tcl
20 ifcapable {!trigger} { 26 ifcapable {!trigger} {
21 finish_test 27 finish_test
22 return 28 return
23 } 29 }
24 30
25 # Triggers on tables where the table has ordinary columns named 31 # Triggers on tables where the table has ordinary columns named
26 # rowid, oid, and _rowid_. 32 # rowid, oid, and _rowid_.
(...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after
164 CREATE TRIGGER temp.r301 AFTER INSERT ON t300 BEGIN 170 CREATE TRIGGER temp.r301 AFTER INSERT ON t300 BEGIN
165 INSERT INTO t301 VALUES(20000 + new.x); 171 INSERT INTO t301 VALUES(20000 + new.x);
166 END; 172 END;
167 INSERT INTO main.t300 VALUES(3); 173 INSERT INTO main.t300 VALUES(3);
168 INSERT INTO temp.t300 VALUES(4); 174 INSERT INTO temp.t300 VALUES(4);
169 SELECT * FROM t301; 175 SELECT * FROM t301;
170 } 176 }
171 } {10003 20004} 177 } {10003 20004}
172 178
173 179
180 #############################################################################
181 #
182 # Ticket [d6ddba6706353915ceedc56b4e3e72ecb4d77ba4]
183 #
184 # The following syntax really should not be allowed:
185 #
186 # CREATE TRIGGER xyz.trig BEFORE UPDATE ON xyz.tab BEGIN ...
187 #
188 # But a long-standing bug does allow it. And the "xyz.tab" slips into
189 # the sqlite_master table. We cannot fix the bug simply by disallowing
190 # "xyz.tab" since that could break legacy applications. We have to
191 # fix the system so that the "xyz." on "xyz.tab" is ignored.
192 # Verify that this is the case.
193 #
194 do_test triggerD-4.1 {
195 db close
196 forcedelete test.db test2.db
197 sqlite3 db test.db
198 db eval {
199 CREATE TABLE t1(x);
200 ATTACH 'test2.db' AS db2;
201 CREATE TABLE db2.t2(y);
202 CREATE TABLE db2.log(z);
203 CREATE TRIGGER db2.trig AFTER INSERT ON db2.t2 BEGIN
204 INSERT INTO log(z) VALUES(new.y);
205 END;
206 INSERT INTO t2 VALUES(123);
207 SELECT * FROM log;
208 }
209 } {123}
210 do_test triggerD-4.2 {
211 sqlite3 db2 test2.db
212 db2 eval {
213 INSERT INTO t2 VALUES(234);
214 SELECT * FROM log;
215 }
216 } {123 234}
217 db2 close
218
174 finish_test 219 finish_test
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698