On Jan 5, 2010, at 6:25 AM, Noah Hart wrote: > Using the command line tools from the website > 3.6.18 reports the error correctly; > > SQLite version 3.6.18 > sqlite> PRAGMA recursive_triggers = on; > sqlite> CREATE TABLE t5 (a primary key, b, c); > sqlite> INSERT INTO t5 values (1, 2, 3); > sqlite> CREATE TRIGGER au_tbl AFTER UPDATE ON t5 BEGIN UPDATE OR > IGNORE > t5 SET a = new.a, c = 10; END; > sqlite> UPDATE OR REPLACE t5 SET a = 4 WHERE a = 1 ; > SQL error: too many levels of trigger recursion > > > 3.6.21 does not handle it properly > > SQLite version 3.6.21 > sqlite> PRAGMA recursive_triggers = on; > sqlite> CREATE TABLE t5 (a primary key, b, c); > sqlite> INSERT INTO t5 values (1, 2, 3); > sqlite> CREATE TRIGGER au_tbl AFTER UPDATE ON t5 BEGIN UPDATE OR > IGNORE > t5 SET a = new.a, c = 10; END; > sqlite> UPDATE OR REPLACE t5 SET a = 4 WHERE a = 1 ; > Error: SQL logic error or missing database
Thanks. Turns out this was just a shell tool problem, not a problem with the library. Fixed here: http://www.sqlite.org/src/vinfo/e5d07045fa > BACKGROUND: > I was trying to get the test triggerC-1.11 in triggerC.test to work > correctly; > The assert in btree.c at line 3699 in the routine sqlite3BtreeRollback > was > failing returning a 2000, rather than 0 > > assert( countWriteCursors(pBt)==0 ); How did you make this happen? Dan. _______________________________________________ sqlite-users mailing list [email protected] http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

