Force SQLite temp files to be stored in memory (#505) r=rnewman (#506)

* Force SQLite temp files to be stored in memory (#505) r=rnewman
This commit is contained in:
Grisha Kruglov 2017-12-20 01:52:09 -05:00 committed by GitHub
parent c61bc79b99
commit 1589104841
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -69,12 +69,19 @@ pub fn new_connection<T>(uri: T) -> rusqlite::Result<rusqlite::Connection> where
_ => 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("
PRAGMA page_size=32768;
PRAGMA journal_mode=wal;
PRAGMA wal_autocheckpoint=32;
PRAGMA journal_size_limit=3145728;
PRAGMA foreign_keys=ON;
PRAGMA temp_store=2;
")?;
Ok(conn)