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

Reply via email to