diff --git a/src/core/database.c b/src/core/database.c index 7ad9dae..edebd7c 100644 --- a/src/core/database.c +++ b/src/core/database.c @@ -955,6 +955,7 @@ void DATABASE_Dump(void) int OpenUspDatabase(char *db_file) { int err; + char *err_msg = 0; // Exit if unable to open the database err = sqlite3_open(db_file, &db_handle); @@ -965,6 +966,15 @@ int OpenUspDatabase(char *db_file) return USP_ERR_INTERNAL_ERROR; } + // Execute the PRAGMA statement + const char *sql = "PRAGMA journal_mode = MEMORY;"; + err = sqlite3_exec(db_handle, sql, 0, 0, &err_msg); + if (err != SQLITE_OK) { + USP_LOG_Error("%s: Failed to set journal_mode: %s", __func__, err_msg); + sqlite3_free(err_msg); + return USP_ERR_INTERNAL_ERROR; + } + // Exit if unable to create the data model parameter table (if it does not already exist) #define CREATE_TABLE_STR "create table if not exists data_model (hash integer, instances text, value text, primary key (hash, instances));" err = sqlite3_exec(db_handle, CREATE_TABLE_STR, NULL, NULL, NULL);