From 4fa7648de4c9656fc6f6d2d4c5b095c8188a8777 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Thu, 15 Dec 2022 19:47:49 +0530 Subject: [PATCH] Fix test failing on Windows Use an AUTOINCREMENT id rather than epoch which is not predictable since system clocks can change. --- src/calibre/srv/last_read.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/calibre/srv/last_read.py b/src/calibre/srv/last_read.py index df04e7a4e4..44230b6c6f 100644 --- a/src/calibre/srv/last_read.py +++ b/src/calibre/srv/last_read.py @@ -11,7 +11,7 @@ from time import time_ns from calibre.constants import cache_dir creation_sql = ''' -CREATE TABLE IF NOT EXISTS last_read_positions ( id INTEGER PRIMARY KEY, +CREATE TABLE IF NOT EXISTS last_read_positions ( id INTEGER PRIMARY KEY AUTOINCREMENT, library_id TEXT NOT NULL, book INTEGER NOT NULL, format TEXT NOT NULL COLLATE NOCASE, @@ -57,10 +57,10 @@ class LastReadCache: self.execute( 'INSERT OR REPLACE INTO last_read_positions(library_id,book,format,user,cfi,epoch,pos_frac,tooltip) VALUES (?,?,?,?,?,?,?,?)', (library_id, book_id, fmt, user, cfi, epoch, pos_frac, tooltip)) - items = tuple(self.get('SELECT epoch FROM last_read_positions WHERE user=? ORDER BY epoch DESC', (user,), all=True)) + items = tuple(self.get('SELECT id FROM last_read_positions WHERE user=? ORDER BY epoch DESC', (user,), all=True)) if len(items) > self.limit: - limit_epoch = items[self.limit][0] - self.execute('DELETE FROM last_read_positions WHERE user=? AND epoch <= ?', (user, limit_epoch)) + limit_id = items[self.limit][0] + self.execute('DELETE FROM last_read_positions WHERE user=? AND id <= ?', (user, limit_id)) return epoch def get_recently_read(self, user):