From: Matthieu Gallien Date: Thu, 18 Nov 2021 14:47:04 +0000 (+0100) Subject: properly query sync journal DB to know when to run fix for VFS X-Git-Tag: archive/raspbian/3.16.7-1_deb13u1+rpi1~1^2~12^2~18^2~100^2 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=f1d834df8e7118585d1e0306eb274c51b62d26e9;p=nextcloud-desktop.git properly query sync journal DB to know when to run fix for VFS the new method added to query the db is not working and so the fix for vfs is executed at each sync run the new method for bool was not really needed so let's just remove it (and that will make the usage of SqlQuery be correct Signed-off-by: Matthieu Gallien --- diff --git a/src/common/syncjournaldb.cpp b/src/common/syncjournaldb.cpp index 9d1fd8fb6..0b66a6cc0 100644 --- a/src/common/syncjournaldb.cpp +++ b/src/common/syncjournaldb.cpp @@ -995,43 +995,26 @@ void SyncJournalDb::keyValueStoreSet(const QString &key, QVariant value) } qint64 SyncJournalDb::keyValueStoreGetInt(const QString &key, qint64 defaultValue) -{ - const auto sqlQuery = keyValueStoreExecuteSelectQuery(key); - if (sqlQuery.isValid()) { - return sqlQuery.get()->int64Value(0); - } - return defaultValue; -} - -bool SyncJournalDb::keyValueStoreGetBool(const QString &key, const bool defaultValue) -{ - const auto sqlQuery = keyValueStoreExecuteSelectQuery(key); - if (sqlQuery.isValid()) { - return sqlQuery.get()->intValue(0); - } - return defaultValue; -} - -OCC::Optional SyncJournalDb::keyValueStoreExecuteSelectQuery(const QString &key) { QMutexLocker locker(&_mutex); if (!checkConnect()) { - return {}; + return defaultValue; } - const auto query = _queryManager.get(PreparedSqlQueryManager::GetKeyValueStoreQuery, QByteArrayLiteral("SELECT value FROM key_value_store WHERE key = ?1;"), _db); + const auto query = _queryManager.get(PreparedSqlQueryManager::GetKeyValueStoreQuery, QByteArrayLiteral("SELECT value FROM key_value_store WHERE key=?1"), _db); if (!query) { - return {}; + return defaultValue; } query->bindValue(1, key); query->exec(); + auto result = query->next(); - if (!query->next().hasData) { - return {}; + if (!result.ok || !result.hasData) { + return defaultValue; } - return query; + return query->int64Value(0); } void SyncJournalDb::keyValueStoreDelete(const QString &key) diff --git a/src/common/syncjournaldb.h b/src/common/syncjournaldb.h index 9c90b4908..d51919f49 100644 --- a/src/common/syncjournaldb.h +++ b/src/common/syncjournaldb.h @@ -70,7 +70,6 @@ public: void keyValueStoreSet(const QString &key, QVariant value); qint64 keyValueStoreGetInt(const QString &key, qint64 defaultValue); - bool keyValueStoreGetBool(const QString &key, const bool defaultValue); void keyValueStoreDelete(const QString &key); bool deleteFileRecord(const QString &filename, bool recursively = false); @@ -372,7 +371,6 @@ public: int autotestFailCounter = -1; private: - OCC::Optional keyValueStoreExecuteSelectQuery(const QString &key); int getFileRecordCount(); bool updateDatabaseStructure(); bool updateMetadataTableStructure(); diff --git a/src/gui/folder.cpp b/src/gui/folder.cpp index 39e4d37a9..33a1634d9 100644 --- a/src/gui/folder.cpp +++ b/src/gui/folder.cpp @@ -879,7 +879,7 @@ void Folder::correctPlaceholderFiles() return; } static const auto placeholdersCorrectedKey = QStringLiteral("placeholders_corrected"); - const auto placeholdersCorrected = _journal.keyValueStoreGetBool(placeholdersCorrectedKey, false); + const auto placeholdersCorrected = _journal.keyValueStoreGetInt(placeholdersCorrectedKey, 0); if (!placeholdersCorrected) { qCDebug(lcFolder) << "Make sure all virtual files are placeholder files"; switchToVirtualFiles();