From f49f4fdab3e72b4145a7a275bdf412a7bbb101cf Mon Sep 17 00:00:00 2001 From: Tomasz Sobkowiak Date: Sun, 16 May 2021 20:39:11 +0200 Subject: [PATCH] [EGD-5512] Don't log pragma errors Ignore false pragma errors caused by our VFS and sqlite. --- module-db/Database/Database.cpp | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/module-db/Database/Database.cpp b/module-db/Database/Database.cpp index f7536ea0b8e3564759fed5f8c576fce6512c520f..0d77f81f38862f9c8799a496b38fad75a9d7878d 100644 --- a/module-db/Database/Database.cpp +++ b/module-db/Database/Database.cpp @@ -16,6 +16,11 @@ /* Declarations *********************/ extern sqlite3_vfs *sqlite3_ecophonevfs(void); +[[nodiscard]] static bool isNotPragmaRelated(const char *msg) +{ + return nullptr == strstr(msg, "PRAGMA"); +} + extern "C" { int sqlite3_os_init(void) @@ -60,7 +65,9 @@ extern "C" /* Internal Defines ***********************/ void errorLogCallback(void *pArg, int iErrCode, const char *zMsg) { - LOG_ERROR("(%d) %s\n", iErrCode, zMsg); + if (isNotPragmaRelated(zMsg)) { + LOG_ERROR("(%d) %s\n", iErrCode, zMsg); + } } } @@ -157,7 +164,9 @@ std::unique_ptr Database::query(const char *format, ...) auto queryResult = std::make_unique(); if (const int result = sqlite3_exec(dbConnection, queryStatementBuffer, queryCallback, queryResult.get(), nullptr); result != SQLITE_OK) { - LOG_ERROR("SQL query \'%s\' failed selecting : %d", queryStatementBuffer, result); + if (isNotPragmaRelated(queryStatementBuffer)) { + LOG_ERROR("SQL query \'%s\' failed selecting : %d", queryStatementBuffer, result); + } return nullptr; } return queryResult;