diff --git a/native/cpp/CommonCpp/DatabaseManagers/CMakeLists.txt b/native/cpp/CommonCpp/DatabaseManagers/CMakeLists.txt --- a/native/cpp/CommonCpp/DatabaseManagers/CMakeLists.txt +++ b/native/cpp/CommonCpp/DatabaseManagers/CMakeLists.txt @@ -9,6 +9,7 @@ "SQLiteQueryExecutor.h" "SQLiteUtils.h" "SQLiteSchema.h" + "SQLiteBackup.h" "SQLiteConnectionManager.h" "NativeSQLiteConnectionManager.h" "entities/SQLiteStatementWrapper.h" @@ -28,6 +29,7 @@ "SQLiteUtils.cpp" "SQLiteSchema.cpp" "SQLiteSchemaMigrations.cpp" + "SQLiteBackup.cpp" "SQLiteConnectionManager.cpp" "NativeSQLiteConnectionManager.cpp" "entities/SQLiteDataConverters.cpp" diff --git a/native/cpp/CommonCpp/DatabaseManagers/SQLiteBackup.h b/native/cpp/CommonCpp/DatabaseManagers/SQLiteBackup.h new file mode 100644 --- /dev/null +++ b/native/cpp/CommonCpp/DatabaseManagers/SQLiteBackup.h @@ -0,0 +1,11 @@ +#pragma once + +#include +#include + +namespace comm { +class SQLiteBackup { +public: + static std::unordered_set tablesAllowlist; +}; +} // namespace comm diff --git a/native/cpp/CommonCpp/DatabaseManagers/SQLiteBackup.cpp b/native/cpp/CommonCpp/DatabaseManagers/SQLiteBackup.cpp new file mode 100644 --- /dev/null +++ b/native/cpp/CommonCpp/DatabaseManagers/SQLiteBackup.cpp @@ -0,0 +1,18 @@ +#include "SQLiteBackup.h" + +#include +#include + +namespace comm { + +std::unordered_set SQLiteBackup::tablesAllowlist = { + "drafts", + "threads", + "message_store_threads", + "users", + "synced_metadata", + "aux_users", + "entries", +}; + +} // namespace comm diff --git a/native/cpp/CommonCpp/DatabaseManagers/SQLiteQueryExecutor.h b/native/cpp/CommonCpp/DatabaseManagers/SQLiteQueryExecutor.h --- a/native/cpp/CommonCpp/DatabaseManagers/SQLiteQueryExecutor.h +++ b/native/cpp/CommonCpp/DatabaseManagers/SQLiteQueryExecutor.h @@ -20,7 +20,6 @@ #include #include -#include namespace comm { @@ -33,7 +32,6 @@ static int backupDataKeySize; static std::string backupLogDataKey; static int backupLogDataKeySize; - static std::unordered_set backedUpTablesAllowlist; #ifndef EMSCRIPTEN static NativeSQLiteConnectionManager connectionManager; diff --git a/native/cpp/CommonCpp/DatabaseManagers/SQLiteQueryExecutor.cpp b/native/cpp/CommonCpp/DatabaseManagers/SQLiteQueryExecutor.cpp --- a/native/cpp/CommonCpp/DatabaseManagers/SQLiteQueryExecutor.cpp +++ b/native/cpp/CommonCpp/DatabaseManagers/SQLiteQueryExecutor.cpp @@ -1,5 +1,6 @@ #include "SQLiteQueryExecutor.h" #include "Logger.h" +#include "SQLiteBackup.h" #include "SQLiteSchema.h" #include "SQLiteUtils.h" @@ -42,16 +43,6 @@ std::string SQLiteQueryExecutor::backupLogDataKey; int SQLiteQueryExecutor::backupLogDataKeySize = 32; -std::unordered_set SQLiteQueryExecutor::backedUpTablesAllowlist = { - "drafts", - "threads", - "message_store_threads", - "users", - "synced_metadata", - "aux_users", - "entries", -}; - #ifndef EMSCRIPTEN NativeSQLiteConnectionManager SQLiteQueryExecutor::connectionManager; #else @@ -1729,8 +1720,8 @@ stepResult = sqlite3_step(preparedSQL)) { std::string table_name = reinterpret_cast(sqlite3_column_text(preparedSQL, 0)); - if (SQLiteQueryExecutor::backedUpTablesAllowlist.find(table_name) != - SQLiteQueryExecutor::backedUpTablesAllowlist.end()) { + if (SQLiteBackup::tablesAllowlist.find(table_name) != + SQLiteBackup::tablesAllowlist.end()) { tablesToMonitor.emplace_back(table_name); } } @@ -1746,8 +1737,8 @@ std::ostringstream removeDeviceSpecificDataSQL; for (const auto &tableName : tables) { - if (backedUpTablesAllowlist.find(tableName) == - backedUpTablesAllowlist.end()) { + if (SQLiteBackup::tablesAllowlist.find(tableName) == + SQLiteBackup::tablesAllowlist.end()) { removeDeviceSpecificDataSQL << "DELETE FROM " << tableName << ";" << std::endl; } @@ -2016,8 +2007,8 @@ } std::vector tablesVector( - SQLiteQueryExecutor::backedUpTablesAllowlist.begin(), - SQLiteQueryExecutor::backedUpTablesAllowlist.end()); + SQLiteBackup::tablesAllowlist.begin(), + SQLiteBackup::tablesAllowlist.end()); copyTablesDataUsingAttach( SQLiteQueryExecutor::getConnection(), plaintextBackupPath, tablesVector); diff --git a/native/ios/Comm.xcodeproj/project.pbxproj b/native/ios/Comm.xcodeproj/project.pbxproj --- a/native/ios/Comm.xcodeproj/project.pbxproj +++ b/native/ios/Comm.xcodeproj/project.pbxproj @@ -62,6 +62,7 @@ 8E86A6D329537EBB000BBE7D /* DatabaseManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8E86A6D229537EBB000BBE7D /* DatabaseManager.cpp */; }; 8EA59BD62A6E8E0400EB4F53 /* DraftStore.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8EA59BD42A6E8E0400EB4F53 /* DraftStore.cpp */; }; 8EA59BD92A73DAB000EB4F53 /* rustJSI-generated.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8EA59BD72A73DAB000EB4F53 /* rustJSI-generated.cpp */; }; + 8EF0F6032DCA43CD00F2B171 /* SQLiteBackup.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8EF0F6022DCA43CD00F2B171 /* SQLiteBackup.cpp */; }; 8EF29DAA2DA52AE7003D677E /* SQLiteUtils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8EF29DA92DA52AE7003D677E /* SQLiteUtils.cpp */; }; 8EF775682A74032C0046A385 /* CommRustModule.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8EF775672A74032C0046A385 /* CommRustModule.cpp */; }; 8EF7756B2A7433630046A385 /* ThreadStore.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8EF775692A7433630046A385 /* ThreadStore.cpp */; }; @@ -273,6 +274,8 @@ 8EA59BD82A73DAB000EB4F53 /* rustJSI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = rustJSI.h; sourceTree = ""; }; 8EE6E49F2A39CCAB00AE6BCD /* ReportStoreOperations.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ReportStoreOperations.h; sourceTree = ""; }; 8EE6E4A02A39CCAB00AE6BCD /* DraftStoreOperations.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DraftStoreOperations.h; sourceTree = ""; }; + 8EF0F6012DCA43CD00F2B171 /* SQLiteBackup.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SQLiteBackup.h; sourceTree = ""; }; + 8EF0F6022DCA43CD00F2B171 /* SQLiteBackup.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = SQLiteBackup.cpp; sourceTree = ""; }; 8EF29DA82DA52AE7003D677E /* SQLiteUtils.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SQLiteUtils.h; sourceTree = ""; }; 8EF29DA92DA52AE7003D677E /* SQLiteUtils.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = SQLiteUtils.cpp; sourceTree = ""; }; 8EF775662A74032C0046A385 /* CommRustModule.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CommRustModule.h; sourceTree = ""; }; @@ -556,6 +559,8 @@ 71BE843F2636A944002849D2 /* DatabaseManagers */ = { isa = PBXGroup; children = ( + 8EF0F6012DCA43CD00F2B171 /* SQLiteBackup.h */, + 8EF0F6022DCA43CD00F2B171 /* SQLiteBackup.cpp */, 8E1805582DA95E7C00B772A4 /* SQLiteSchemaMigrations.cpp */, 8E1805542DA954B600B772A4 /* SQLiteSchema.h */, 8E1805552DA954B600B772A4 /* SQLiteSchema.cpp */, @@ -1256,6 +1261,7 @@ CB38B48228771C7A00171182 /* NonBlockingLock.mm in Sources */, 718DE99E2653D41C00365824 /* WorkerThread.cpp in Sources */, 8B99BAAE28D511FF00EB5ADB /* lib.rs.cc in Sources */, + 8EF0F6032DCA43CD00F2B171 /* SQLiteBackup.cpp in Sources */, 71CA4AEC262F236100835C89 /* Tools.mm in Sources */, CBB0DF602B768007008E22FF /* CommMMKV.mm in Sources */, 71762A75270D8AAE00F565ED /* PlatformSpecificTools.mm in Sources */, diff --git a/web/cpp/SQLiteQueryExecutorBindings.cpp b/web/cpp/SQLiteQueryExecutorBindings.cpp --- a/web/cpp/SQLiteQueryExecutorBindings.cpp +++ b/web/cpp/SQLiteQueryExecutorBindings.cpp @@ -1,3 +1,4 @@ +#include "SQLiteBackup.cpp" #include "SQLiteQueryExecutor.cpp" #include "SQLiteSchema.cpp" #include "SQLiteSchemaMigrations.cpp" diff --git a/web/shared-worker/_generated/comm_query_executor.wasm b/web/shared-worker/_generated/comm_query_executor.wasm index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc$@