diff options
author | proller <proller@github.com> | 2013-09-17 02:09:28 +0400 |
---|---|---|
committer | proller <proller@github.com> | 2013-09-17 02:11:30 +0400 |
commit | 4c704fe30673eecad0903683fae627b7226c92d6 (patch) | |
tree | 42f902b1ad287599fc463ead0152dadb0d292ace /src | |
parent | d308352dbd4121d12d4f44d591463468c09d37f9 (diff) | |
download | minetest-4c704fe30673eecad0903683fae627b7226c92d6.tar.gz minetest-4c704fe30673eecad0903683fae627b7226c92d6.tar.bz2 minetest-4c704fe30673eecad0903683fae627b7226c92d6.zip |
Add configurable PRAGMA synchronous =
Diffstat (limited to 'src')
-rw-r--r-- | src/database-sqlite3.cpp | 11 | ||||
-rw-r--r-- | src/defaultsettings.cpp | 1 |
2 files changed, 11 insertions, 1 deletions
diff --git a/src/database-sqlite3.cpp b/src/database-sqlite3.cpp index 17484d48c..9714d1035 100644 --- a/src/database-sqlite3.cpp +++ b/src/database-sqlite3.cpp @@ -108,7 +108,16 @@ void Database_SQLite3::verifyDatabase() { if(needs_create) createDatabase(); - + + std::string querystr = std::string("PRAGMA synchronous = ") + + itos(g_settings->getU16("sqlite_synchronous")); + d = sqlite3_exec(m_database, querystr.c_str(), NULL, NULL, NULL); + if(d != SQLITE_OK) { + infostream<<"WARNING: Database pragma set failed: " + <<sqlite3_errmsg(m_database)<<std::endl; + throw FileNotGoodException("Cannot set pragma"); + } + d = sqlite3_prepare(m_database, "SELECT `data` FROM `blocks` WHERE `pos`=? LIMIT 1", -1, &m_database_read, NULL); if(d != SQLITE_OK) { infostream<<"WARNING: SQLite3 database read statment failed to prepare: "<<sqlite3_errmsg(m_database)<<std::endl; diff --git a/src/defaultsettings.cpp b/src/defaultsettings.cpp index 373a74746..3fbdad4f2 100644 --- a/src/defaultsettings.cpp +++ b/src/defaultsettings.cpp @@ -191,6 +191,7 @@ void set_default_settings(Settings *settings) settings->setDefault("server_unload_unused_data_timeout", "29"); settings->setDefault("max_objects_per_block", "49"); settings->setDefault("server_map_save_interval", "5.3"); + settings->setDefault("sqlite_synchronous", "2"); settings->setDefault("full_block_send_enable_min_time_from_building", "2.0"); settings->setDefault("dedicated_server_step", "0.1"); settings->setDefault("ignore_world_load_errors", "false"); |