diff options
author | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2015-06-20 22:31:31 +0100 |
---|---|---|
committer | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2015-06-20 22:31:31 +0100 |
commit | a87e53fc9647f4a67f087a77b90da46d52421589 (patch) | |
tree | ff9f806acfebe816e2b3ee86ab77c29fd598c079 /src/libstat | |
parent | 96d2adcc5b55c6d1d0463bd051495fbf69f9fcc4 (diff) | |
download | rspamd-a87e53fc9647f4a67f087a77b90da46d52421589.tar.gz rspamd-a87e53fc9647f4a67f087a77b90da46d52421589.zip |
Use WAL in sqlite3.
Diffstat (limited to 'src/libstat')
-rw-r--r-- | src/libstat/backends/sqlite3_backend.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/libstat/backends/sqlite3_backend.c b/src/libstat/backends/sqlite3_backend.c index 112393f98..d784cea20 100644 --- a/src/libstat/backends/sqlite3_backend.c +++ b/src/libstat/backends/sqlite3_backend.c @@ -91,7 +91,7 @@ static struct rspamd_sqlite3_prstmt { { { .idx = RSPAMD_STAT_BACKEND_TRANSACTION_START, - .sql = "BEGIN TRANSACTION;", + .sql = "BEGIN IMMEDIATE TRANSACTION;", .args = "", .stmt = NULL, .result = SQLITE_DONE, @@ -288,6 +288,7 @@ rspamd_sqlite3_opendb (const gchar *path, const ucl_object_t *opts, struct rspamd_stat_sqlite3_db *bk; sqlite3 *sqlite; gint rc, flags; + static const char sqlite_wal[] = "PRAGMA journal_mode=WAL;"; flags = SQLITE_OPEN_READWRITE; @@ -315,6 +316,10 @@ rspamd_sqlite3_opendb (const gchar *path, const ucl_object_t *opts, } } + if (sqlite3_exec (sqlite, sqlite_wal, NULL, NULL, NULL) != SQLITE_OK) { + msg_warn ("WAL mode is not supported, locking issues might occur"); + } + bk = g_slice_alloc0 (sizeof (*bk)); bk->sqlite = sqlite; bk->prstmt = g_slice_alloc0 (sizeof (prepared_stmts)); |