Thanks for your replies. Actually, in my last email (probably you got it after sending yours), there is a script which exec the create statements, and check the prepare returned value of a SELECT (and not delete). Still I get the same bug. So the problem must be in other place.
On 5/23/06, Robert Simpson <[EMAIL PROTECTED]> wrote:
> -----Original Message----- > From: Jay Sprenkle [mailto:[EMAIL PROTECTED] > Sent: Tuesday, May 23, 2006 8:13 AM > To: sqlite-users@sqlite.org > Subject: Re: [sqlite] "SQL logic error or missing database" > > hmmm... > it gives a schema changed because 'delete * from x' actually > drops the table but I'm not sure why it gave an error since > the prepare was done after the other change was committed... sqlite3_prepare() will return a SQLITE_SCHEMA error if SQLite detects the connection's schema is outdated. There's arguments for and against transparently handling it in prepare. I figured DRH's logic behind returning the error is maintaining consistency. If some schema change errors were transparently handled and some were not, then a programmer interested in capturing all schema change events would not be able to do so. Robert