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