Jeffrey Rennie wrote:
Debugging the code:

winWrite returns SQLITE_FULL, which propagates back up the stack to
vdbeaux.c, line 1270, in function sqlite3VdbeHalt(Vdbe *p):

      }else if( rc!=SQLITE_OK ){
         p->rc = rc;
         sqlite3RollbackAll(db);

Which is good, it's putting the SQLITE_FULL return code into p->rc and
rolling everything back.  Good.

But then the function returns SQLITE_OK on line 1337, so sqlite_step returns
SQLITE_DONE.

So indeed, when a COMMIT TRANSACTION fails because there isn't enough disk
space, sqlite_step returns SQLITE_DONE.

Is there a bug filed for this? Has it been fixed in more recent releases?
I had an instance once where I filled a disk up and thought I'd lost some data, but because the testsuite has a disk full test I assumed it was a problem on my part. I can't remember if it was repeatable but I know I didn't look into it as the disk getting full in the first place was caused by a bug in my code. ISTR one of the tests is skipped (or is it only in the full test?) because it takes ages to fill the disk up. Have/can you run the suite on your "full" disk?

Martin


-----------------------------------------------------------------------------
To unsubscribe, send email to [EMAIL PROTECTED]
-----------------------------------------------------------------------------

Reply via email to