The strange thing is that it doesn't happen all the time, I'm trying to work out a pattern, but the schema and statement (taken out of C++ code and I had to remove the field names, because of privacy, each table contains from 4 to 60 fields) are those:
"CREATE TABLE TABLE1 (\ UID INTEGER PRIMARY KEY,\ fieldsHere\ )\ "; "CREATE TABLE SUBTABLE1 (\ UID INTEGER PRIMARY KEY,\ fieldsHere\ PARENTENVELOPEID,\ VMSGID\ )\ "; "CREATE TABLE SUBTABLE2 (\ UID INTEGER PRIMARY KEY,\ fieldsHere\ ENVELOPEID,\ VMSGID\ )\ "; "CREATE TABLE SUBTABLE3 (\ fieldsHere\ DATAID NOT NULL\ )\ "; "CREATE TABLE SUBTABLE4 (\ fieldsHere\ DATAID NOT NULL\ )\ "; "CREATE TABLE SUBTABLE5 (\ fieldsHere\ DATAID NOT NULL\ )\ "; "CREATE TABLE SUBTABLE6 (\ fieldsHere\ DATAID NOT NULL\ )\ "; "CREATE TRIGGER DeleteTable\ BEFORE DELETE ON TABLE1 FOR EACH ROW\ BEGIN\ DELETE FROM SUBTABLE2 WHERE VMSGID=OLD._ROWID_;\ DELETE FROM SUBTABLE1 WHERE VMSGID=OLD._ROWID_;\ END\ "; "CREATE TRIGGER DeleteSubtable1\ BEFORE DELETE ON SUBTABLE1 FOR EACH ROW\ BEGIN\ DELETE FROM SUBTABLE2 WHERE ENVELOPEID=OLD._ROWID_;\ DELETE FROM SUBTABLE1 WHERE PARENTENVELOPEID=OLD._ROWID_;\ END\ "; "CREATE TRIGGER DeleteSubtable2\ BEFORE DELETE ON SUBTABLE2 FOR EACH ROW\ BEGIN\ DELETE FROM SUBTABLE5 WHERE DATAID=OLD._ROWID_;\ DELETE FROM SUBTABLE4 WHERE DATAID=OLD._ROWID_;\ DELETE FROM SUBTABLE3 WHERE DATAID=OLD._ROWID_;\ DELETE FROM SUBTABLE6 WHERE DATAID=OLD._ROWID_;\ END\ "; DELETE FROM TABLE1 WHERE UID='1' Please note that at the point when the DELETE is called, some of the subtables (probably most) will be empty, if that makes any difference. Thank you for the help, Dennis -----Original Message----- From: D. Richard Hipp [mailto:[EMAIL PROTECTED] Sent: Sunday, May 01, 2005 9:27 PM To: sqlite-users@sqlite.org Subject: Re: [sqlite] ASSERT in btree.c On Sun, 2005-05-01 at 16:19 +1000, Dennis Volodomanov wrote: > Hello all, > > I'm getting an assert(pCur->isValid) i Please provide the schema and an SQL statement that makes this happen. -- D. Richard Hipp <[EMAIL PROTECTED]>