Page MenuHomePhabricator

D5378.diff
No OneTemporary

D5378.diff

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
@@ -308,6 +308,88 @@
return false;
}
+bool create_schema(sqlite3 *db) {
+ char *error;
+ sqlite3_exec(
+ db,
+ "CREATE TABLE IF NOT EXISTS drafts ("
+ " key TEXT UNIQUE PRIMARY KEY NOT NULL,"
+ " text TEXT NOT NULL"
+ ");"
+
+ "CREATE TABLE IF NOT EXISTS messages ("
+ " id TEXT UNIQUE PRIMARY KEY NOT NULL,"
+ " local_id TEXT,"
+ " thread TEXT NOT NULL,"
+ " user TEXT NOT NULL,"
+ " type INTEGER NOT NULL,"
+ " future_type INTEGER,"
+ " content TEXT,"
+ " time INTEGER NOT NULL"
+ ");"
+
+ "CREATE TABLE IF NOT EXISTS olm_persist_account ("
+ " id INTEGER UNIQUE PRIMARY KEY NOT NULL,"
+ " account_data TEXT NOT NULL"
+ ");"
+
+ "CREATE TABLE IF NOT EXISTS olm_persist_sessions ("
+ " target_user_id TEXT UNIQUE PRIMARY KEY NOT NULL,"
+ " session_data TEXT NOT NULL"
+ ");"
+
+ "CREATE TABLE IF NOT EXISTS media ("
+ " id TEXT UNIQUE PRIMARY KEY NOT NULL,"
+ " container TEXT NOT NULL,"
+ " thread TEXT NOT NULL,"
+ " uri TEXT NOT NULL,"
+ " type TEXT NOT NULL,"
+ " extras TEXT NOT NULL"
+ ");"
+
+ "CREATE TABLE IF NOT EXISTS threads ("
+ " id TEXT UNIQUE PRIMARY KEY NOT NULL,"
+ " type INTEGER NOT NULL,"
+ " name TEXT,"
+ " description TEXT,"
+ " color TEXT NOT NULL,"
+ " creation_time BIGINT NOT NULL,"
+ " parent_thread_id TEXT,"
+ " containing_thread_id TEXT,"
+ " community TEXT,"
+ " members TEXT NOT NULL,"
+ " roles TEXT NOT NULL,"
+ " current_user TEXT NOT NULL,"
+ " source_message_id TEXT,"
+ " replies_count INTEGER NOT NULL"
+ ");"
+
+ "CREATE TABLE IF NOT EXISTS metadata ("
+ " name TEXT UNIQUE PRIMARY KEY NOT NULL,"
+ " data TEXT NOT NULL"
+ ");"
+
+ "CREATE INDEX IF NOT EXISTS media_idx_container"
+ " ON media (container);"
+
+ "CREATE INDEX IF NOT EXISTS messages_idx_thread_time"
+ " ON messages (thread, time);",
+ nullptr,
+ nullptr,
+ &error);
+
+ if (!error) {
+ return true;
+ }
+
+ std::ostringstream stringStream;
+ stringStream << "Error creating tables: " << error;
+ Logger::log(stringStream.str());
+
+ sqlite3_free(error);
+ return false;
+}
+
void set_encryption_key(sqlite3 *db) {
std::string set_encryption_key_query =
"PRAGMA key = \"x'" + SQLiteQueryExecutor::encryptionKey + "'\";";

File Metadata

Mime Type
text/plain
Expires
Fri, Jan 10, 2:05 AM (13 h, 33 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
2843463
Default Alt Text
D5378.diff (2 KB)

Event Timeline