[yunqa.de] Re: DISQLite: Pragma and VACUUM

  • From: "Delphi Inspiration" <delphi@xxxxxxxx>
  • To: yunqa@xxxxxxxxxxxxx
  • Date: Fri, 25 Dec 2009 13:57:18 +0100 (MET)

Gesendet: Fr, 25. Dez 2009
Von: Gregory Whitesides<whitesidesg@xxxxxxxxx>

> > >Also, how to set temporary journal file on another hard
> > disk?
> > 
> > This PRAGMA allows to adjust the directory where files used
> > for storing temporary tables and indices are kept:
> > 
> >    PRAGMA temp_store_directory = 'directory-name';
> 
> Yes, thank you it works perfectly except for the temporary *.journal file
> that was created together witn *.db and deleted after VACUUM. Is any way to
> adjust directory for *.journal file?

The location of *.journal files can not be changed, they must always be in the 
same folder as the database file.

Why? The reason is simple: Without a rollback journal, DISQLite3 would be 
unable to rollback an incomplete transaction, and if a crash or power loss 
occurred in the middle of a transaction the entire database would likely go 
corrupt without a rollback journal. So if you store *.journal files at some 
other place, any standard SQLite implementation will not be able to find them 
and can not roll back transactions.

If you are really desperate to change the location of *.jorunal files, you can 
register your custom VFS (virtual file system) and overwrite its xOpen() 
function. Details are in the help file. But be warned: This will render your 
database files incompatible with unmodified SQLite engines in case of 
application failure or power loss!

Ralf
_______________________________________________
Delphi Inspiration mailing list
yunqa@xxxxxxxxxxxxx
//www.freelists.org/list/yunqa



Other related posts: