Sqlite Database Pragma Usage

The data below has been added as a tool for future pragma analysis work and is expected to be useful so long as our pragma usage remains stable or this doc is kept up-to-date. This should help us understand our current pragma usage and where we may be able to make improvements.

PragmaValueComponentNotes
cache_size-6144places
foreign_keysONautofill, places, tabs, webext-storage
journal_modeWALautofill, places, tabs, webext-storage
page_size32768places
secure_deletetruelogins
temp_store2autofill, logins, places, tabs, webext_storageSetting temp_store to 2 (MEMORY) is necessary to avoid SQLITE_IOERR_GETTEMPPATH errors on Android (see here for details)
wal_autocheckpoint62places
wal_checkpointPASSIVEplacesUsed in the sync finished step in history and bookmarks syncing and in the places run_maintenance function
  • The user_version pragma is excluded because the value varies and sqlite does not do anything with the value.
  • The push component does not implement any of the commonly used pragmas noted above.
  • The sqlcipher pragmas that we set have been excluded from this list as we are trying to remove sqlcipher and do not want to encourage future use.