I am using sqlite 3.7.8.
My custom VFS xDelete method returned SQLITE_NOTFOUND in a case when the
file to be deleted was not found, and this worked fine for older
versions (probably prior to 3.7.x where the write ahead log was
introduced), particularly for 3.6.10.
But now the sqlite core system asks a VFS to delete the <db-name>.db-wal
file at the start of the opening the database. When the VFS returns
SQLITE_NOTFOUND error, the core system refuses opening the database.
I've patched my custom VFS to return SQLITE_OK in this case, but IMHO
this is a bug, because returning SQLITE_NOTFOUND error is a normal way
to report about this particular case - the file requested to be deleted
is not found. I've looked briefly into previous logs and noticed that
older sqlite subsystems used to check access to the file using xAccess
method before trying to delete it. I think this is a most proper way to
delete a file also in case of <db-name>.db-wal file.
I think that xDelete should be explained deeply in the documentation. I
didn't find any description for xDelete-specific return values in the
documentation, and examples are the only source introducing them.
Regards,
Vsevolod Novikov
_______________________________________________
sqlite-users mailing list
[email protected]
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users