* Force SQLite temp files to be stored in memory (#505) r=rnewman
This commit is contained in:
parent
c61bc79b99
commit
1589104841
1 changed files with 7 additions and 0 deletions
|
@ -69,12 +69,19 @@ pub fn new_connection<T>(uri: T) -> rusqlite::Result<rusqlite::Connection> where
|
||||||
_ => rusqlite::Connection::open(uri)?,
|
_ => rusqlite::Connection::open(uri)?,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/// See https://github.com/mozilla/mentat/issues/505 for details on temp_store
|
||||||
|
/// pragma and how it might interact together with consumers such as Firefox.
|
||||||
|
/// temp_store=2 is currently present to force SQLite to store temp files in memory.
|
||||||
|
/// Some of the platforms we support do not have a tmp partition (e.g. Android)
|
||||||
|
/// necessary to store temp files on disk. Ideally, consumers should be able to
|
||||||
|
/// override this behaviour (see issue 505).
|
||||||
conn.execute_batch("
|
conn.execute_batch("
|
||||||
PRAGMA page_size=32768;
|
PRAGMA page_size=32768;
|
||||||
PRAGMA journal_mode=wal;
|
PRAGMA journal_mode=wal;
|
||||||
PRAGMA wal_autocheckpoint=32;
|
PRAGMA wal_autocheckpoint=32;
|
||||||
PRAGMA journal_size_limit=3145728;
|
PRAGMA journal_size_limit=3145728;
|
||||||
PRAGMA foreign_keys=ON;
|
PRAGMA foreign_keys=ON;
|
||||||
|
PRAGMA temp_store=2;
|
||||||
")?;
|
")?;
|
||||||
|
|
||||||
Ok(conn)
|
Ok(conn)
|
||||||
|
|
Loading…
Reference in a new issue