From 8871d75a8e98117ca20e93901744898de66786a0 Mon Sep 17 00:00:00 2001 From: Ben Johnson Date: Tue, 5 Jan 2021 14:17:13 -0700 Subject: [PATCH] Fix max checkpoint size check --- db.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/db.go b/db.go index 8e248b5..f3fe6cc 100644 --- a/db.go +++ b/db.go @@ -677,10 +677,10 @@ func (db *DB) Sync() (err error) { // If WAL size is greater than min threshold, attempt checkpoint. var checkpoint bool checkpointMode := CheckpointModePassive - if newWALSize >= calcWALSize(db.pageSize, db.MinCheckpointPageN) { - checkpoint = true - } else if db.MaxCheckpointPageN > 0 && newWALSize >= calcWALSize(db.pageSize, db.MaxCheckpointPageN) { + if db.MaxCheckpointPageN > 0 && newWALSize >= calcWALSize(db.pageSize, db.MaxCheckpointPageN) { checkpoint, checkpointMode = true, CheckpointModeRestart + } else if newWALSize >= calcWALSize(db.pageSize, db.MinCheckpointPageN) { + checkpoint = true } else if db.CheckpointInterval > 0 && !info.dbModTime.IsZero() && time.Since(info.dbModTime) > db.CheckpointInterval && newWALSize > calcWALSize(db.pageSize, 1) { checkpoint = true }