From 1b8bc1ae8b9810eb66ff798093b89d2ce690373f Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Tue, 14 Oct 2025 23:56:57 +0200 Subject: Fix SQLite GREATEST() (#8118) * Fix SQLite GREATEST() fix https://github.com/FreshRSS/FreshRSS/pull/8105 Related to https://github.com/FreshRSS/FreshRSS/pull/7886 --- app/Models/EntryDAO.php | 6 +++++- app/Models/EntryDAOPGSQL.php | 5 +++++ app/Models/EntryDAOSQLite.php | 5 +++++ 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/app/Models/EntryDAO.php b/app/Models/EntryDAO.php index f05f10f6e..6eefd684c 100644 --- a/app/Models/EntryDAO.php +++ b/app/Models/EntryDAO.php @@ -42,6 +42,10 @@ class FreshRSS_EntryDAO extends Minz_ModelPdo { return "LIMIT {$limit} OFFSET {$offset}"; } + public static function sqlGreatest(string $a, string $b): string { + return 'GREATEST(' . $a . ', ' . $b . ')'; + } + public static function sqlRandom(): string { return 'RAND()'; } @@ -290,7 +294,7 @@ SQL; . 'SET title=:title, author=:author, ' . (static::isCompressed() ? 'content_bin=COMPRESS(:content)' : 'content=:content') . ', link=:link, date=:date, `lastSeen`=:last_seen' - . ', `lastUserModified`=GREATEST(:last_user_modified, `lastUserModified`)' + . ', `lastUserModified`=' . static::sqlGreatest(':last_user_modified', '`lastUserModified`') . ', hash=' . static::sqlHexDecode(':hash') . ', is_read=COALESCE(:is_read, is_read)' . ', is_favorite=COALESCE(:is_favorite, is_favorite)' diff --git a/app/Models/EntryDAOPGSQL.php b/app/Models/EntryDAOPGSQL.php index 72bdd7f3e..6211b9a6b 100644 --- a/app/Models/EntryDAOPGSQL.php +++ b/app/Models/EntryDAOPGSQL.php @@ -29,6 +29,11 @@ class FreshRSS_EntryDAOPGSQL extends FreshRSS_EntryDAOSQLite { return 'ALL'; } + #[\Override] + public static function sqlGreatest(string $a, string $b): string { + return 'GREATEST(' . $a . ', ' . $b . ')'; + } + #[\Override] public static function sqlRandom(): string { return 'RANDOM()'; diff --git a/app/Models/EntryDAOSQLite.php b/app/Models/EntryDAOSQLite.php index 8bf0e2209..c272272b0 100644 --- a/app/Models/EntryDAOSQLite.php +++ b/app/Models/EntryDAOSQLite.php @@ -34,6 +34,11 @@ class FreshRSS_EntryDAOSQLite extends FreshRSS_EntryDAO { return '-1'; } + #[\Override] + public static function sqlGreatest(string $a, string $b): string { + return 'MAX(' . $a . ', ' . $b . ')'; + } + #[\Override] public static function sqlRandom(): string { return 'RANDOM()'; -- cgit v1.2.3