|
|
@@ -249,7 +249,8 @@ rspamd_sqlite3_open_or_create (rspamd_mempool_t *pool, const gchar *path, const |
|
|
|
gchar lock_path[PATH_MAX], dbdir[PATH_MAX], *pdir; |
|
|
|
static const char sqlite_wal[] = "PRAGMA journal_mode=\"wal\";", |
|
|
|
exclusive_lock_sql[] = "PRAGMA locking_mode=\"exclusive\";", |
|
|
|
fsync_sql[] = "PRAGMA synchronous=1;"; |
|
|
|
fsync_sql[] = "PRAGMA synchronous=1;", |
|
|
|
foreign_keys[] = "PRAGMA foreign_keys=\"ON\";"; |
|
|
|
gboolean create = FALSE, has_lock = FALSE; |
|
|
|
|
|
|
|
flags = SQLITE_OPEN_READWRITE; |
|
|
@@ -377,6 +378,12 @@ rspamd_sqlite3_open_or_create (rspamd_mempool_t *pool, const gchar *path, const |
|
|
|
sqlite3_errmsg (sqlite)); |
|
|
|
} |
|
|
|
|
|
|
|
if ((rc = sqlite3_exec (sqlite, foreign_keys, NULL, NULL, NULL)) != |
|
|
|
SQLITE_OK) { |
|
|
|
msg_warn_pool ("cannot enable foreign keys: %s", |
|
|
|
sqlite3_errmsg (sqlite)); |
|
|
|
} |
|
|
|
|
|
|
|
if (has_lock) { |
|
|
|
msg_debug_pool ("removing lock from %s", lock_path); |
|
|
|
rspamd_file_unlock (lock_fd, FALSE); |