]> source.dussan.org Git - rspamd.git/commitdiff
Fix old sqlite support
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Tue, 1 Dec 2015 18:31:16 +0000 (18:31 +0000)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Tue, 1 Dec 2015 18:31:16 +0000 (18:31 +0000)
src/libserver/fuzzy_backend.c

index 718274ca5d492247eebdb0a0eaa65843f9d46c24..a73de509cb372416e24cc0c4468c83ec1657345e 100644 (file)
@@ -674,7 +674,7 @@ rspamd_fuzzy_backend_add (struct rspamd_fuzzy_backend *backend,
 gboolean
 rspamd_fuzzy_backend_finish_update (struct rspamd_fuzzy_backend *backend)
 {
-       gint rc, wal_frames, wal_checkpointed;
+       gint rc, wal_frames, wal_checkpointed, mode;
 
        rc = rspamd_fuzzy_backend_run_stmt (backend, TRUE,
                        RSPAMD_FUZZY_BACKEND_TRANSACTION_COMMIT);
@@ -687,10 +687,18 @@ rspamd_fuzzy_backend_finish_update (struct rspamd_fuzzy_backend *backend)
                return FALSE;
        }
        else {
+#ifdef SQLITE_OPEN_WAL
+#ifdef SQLITE_CHECKPOINT_TRUNCATE
+               mode = SQLITE_CHECKPOINT_TRUNCATE;
+#elif defined(SQLITE_CHECKPOINT_RESTART)
+               mode = SQLITE_CHECKPOINT_RESTART;
+#elif defined(SQLITE_CHECKPOINT_FULL)
+               mode = SQLITE_CHECKPOINT_FULL;
+#endif
                /* Perform wal checkpoint (might be long) */
                if (sqlite3_wal_checkpoint_v2 (backend->db,
                                NULL,
-                               SQLITE_CHECKPOINT_TRUNCATE,
+                               mode,
                                &wal_frames,
                                &wal_checkpointed) != SQLITE_OK) {
                        msg_warn_fuzzy_backend ("cannot commit checkpoint: %s",
@@ -701,7 +709,7 @@ rspamd_fuzzy_backend_finish_update (struct rspamd_fuzzy_backend *backend)
                                        "%d, checkpointed: %d", wal_frames, wal_checkpointed);
                }
        }
-
+#endif
        return TRUE;
 }