mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-12-02 10:00:54 +00:00
Bug 1142269 - Auto-vacuum the DOM Cache database; r=bkelly
It's easiest if we use auto_vaccum for now. In the future if this proves to be insufficient we can look into more sophisticated vacuuming strategies.
This commit is contained in:
parent
988454ac8a
commit
acab4ce118
13
dom/cache/DBSchema.cpp
vendored
13
dom/cache/DBSchema.cpp
vendored
@ -20,8 +20,8 @@ namespace dom {
|
||||
namespace cache {
|
||||
|
||||
|
||||
const int32_t DBSchema::kMaxWipeSchemaVersion = 2;
|
||||
const int32_t DBSchema::kLatestSchemaVersion = 2;
|
||||
const int32_t DBSchema::kMaxWipeSchemaVersion = 3;
|
||||
const int32_t DBSchema::kLatestSchemaVersion = 3;
|
||||
const int32_t DBSchema::kMaxEntriesPerStatement = 255;
|
||||
|
||||
using mozilla::void_t;
|
||||
@ -41,6 +41,9 @@ DBSchema::CreateSchema(mozIStorageConnection* aConn)
|
||||
"PRAGMA journal_mode = TRUNCATE; "
|
||||
#endif
|
||||
"PRAGMA foreign_keys = ON; "
|
||||
// Enable auto-vaccum but in incremental mode in order to avoid doing a lot
|
||||
// of work at the end of each transaction.
|
||||
"PRAGMA auto_vacuum = INCREMENTAL; "
|
||||
|
||||
// Note, the default encoding of UTF-8 is preferred. mozStorage does all
|
||||
// the work necessary to convert UTF-16 nsString values for us. We don't
|
||||
@ -56,6 +59,12 @@ DBSchema::CreateSchema(mozIStorageConnection* aConn)
|
||||
if (NS_WARN_IF(NS_FAILED(rv))) { return rv; }
|
||||
|
||||
if (schemaVersion == kLatestSchemaVersion) {
|
||||
// We already have the correct schema, so just do an incremental vaccum and
|
||||
// get started.
|
||||
rv = aConn->ExecuteSimpleSQL(NS_LITERAL_CSTRING(
|
||||
"PRAGMA incremental_vacuum;"));
|
||||
if (NS_WARN_IF(NS_FAILED(rv))) { return rv; }
|
||||
|
||||
return rv;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user