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]>





Reply via email to