mirror of
https://github.com/nextcloud/desktop.git
synced 2024-10-24 13:25:52 +03:00
SQL: Add debugging options. #2693
OWNCLOUD_SQLITE_JOURNAL_MODE: To use something else than WAL OWNCLOUD_SQLITE_TEMP_STORE: To test with storing temporaries in memory.
This commit is contained in:
parent
cd0ad21132
commit
43d6dbb0f2
3 changed files with 21 additions and 3 deletions
|
@ -692,7 +692,8 @@ int csync_ftw(CSYNC *ctx, const char *uri, csync_walker_fn fn,
|
|||
|| c_streq(path, ".csync_journal.db.ctmp-journal")
|
||||
|| c_streq(path, ".csync-progressdatabase")
|
||||
|| c_streq(path, ".csync_journal.db-shm")
|
||||
|| c_streq(path, ".csync_journal.db-wal")) {
|
||||
|| c_streq(path, ".csync_journal.db-wal")
|
||||
|| c_streq(path, ".csync_journal.db-journal")) {
|
||||
csync_vio_file_stat_destroy(dirent);
|
||||
dirent = NULL;
|
||||
SAFE_FREE(filename);
|
||||
|
|
|
@ -706,6 +706,7 @@ void Folder::wipe()
|
|||
QFile::remove( stateDbFile + ".ctmp" );
|
||||
QFile::remove( stateDbFile + "-shm" );
|
||||
QFile::remove( stateDbFile + "-wal" );
|
||||
QFile::remove( stateDbFile + "-journal" );
|
||||
}
|
||||
|
||||
bool Folder::setIgnoredFiles()
|
||||
|
|
|
@ -140,13 +140,28 @@ bool SyncJournalDb::checkConnect()
|
|||
qDebug() << "sqlite3 version" << pragma1.stringValue(0);
|
||||
}
|
||||
|
||||
pragma1.prepare("PRAGMA journal_mode=WAL;");
|
||||
// Enable WAL by default but allow switching the journal mode for debugging
|
||||
static QString env_journal_mode = QString::fromLocal8Bit(qgetenv("OWNCLOUD_SQLITE_JOURNAL_MODE"));
|
||||
QString journal_mode = env_journal_mode;
|
||||
if (journal_mode.isEmpty()) {
|
||||
journal_mode = "WAL";
|
||||
}
|
||||
pragma1.prepare(QString("PRAGMA journal_mode=%1;").arg(journal_mode));
|
||||
if (!pragma1.exec()) {
|
||||
return sqlFail("Set PRAGMA synchronous", pragma1);
|
||||
return sqlFail("Set PRAGMA journal_mode", pragma1);
|
||||
} else {
|
||||
pragma1.next();
|
||||
qDebug() << "sqlite3 journal_mode=" << pragma1.stringValue(0);
|
||||
}
|
||||
|
||||
// For debugging purposes, allow temp_store to be set
|
||||
static QString env_temp_store = QString::fromLocal8Bit(qgetenv("OWNCLOUD_SQLITE_TEMP_STORE"));
|
||||
if (!env_temp_store.isEmpty()) {
|
||||
pragma1.prepare(QString("PRAGMA temp_store = %1;").arg(env_temp_store));
|
||||
if (!pragma1.exec()) {
|
||||
return sqlFail("Set PRAGMA temp_store", pragma1);
|
||||
}
|
||||
qDebug() << "sqlite3 with temp_store =" << env_temp_store;
|
||||
}
|
||||
|
||||
pragma1.prepare("PRAGMA synchronous = 1;");
|
||||
|
@ -348,6 +363,7 @@ bool SyncJournalDb::checkConnect()
|
|||
FileSystem::setFileHidden(databaseFilePath(), true);
|
||||
FileSystem::setFileHidden(databaseFilePath() + "-wal", true);
|
||||
FileSystem::setFileHidden(databaseFilePath() + "-shm", true);
|
||||
FileSystem::setFileHidden(databaseFilePath() + "-journal", true);
|
||||
|
||||
return rc;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue