aboutsummaryrefslogtreecommitdiff
path: root/app/Models/FeedDAOPGSQL.php
diff options
context:
space:
mode:
authorGravatar Alexandre Alapetite <alexandre@alapetite.fr> 2025-11-17 13:48:48 +0100
committerGravatar GitHub <noreply@github.com> 2025-11-17 13:48:48 +0100
commitdeb7633c4932d1838cb0a67aebdab5e37aae7206 (patch)
tree0759233d06580ec952d050c064f547a16958db99 /app/Models/FeedDAOPGSQL.php
parent419a1978b6d8052f88783a4624cd17602422030a (diff)
Change SQL update query (#6957)
* Change SQL update query for MariaDB / MySQL fix https://github.com/FreshRSS/FreshRSS/issues/5707 * No change for SQLite * Fix merge error * Update MySQL version on the model of PostgreSQL Performance to be tested * Fix LEFT JOIN, also for PostgreSQL / SQLite * Fix alias * Reduce MySQL deadlock * Fix compatibility with SQLite * Back to identical SQL for all databases
Diffstat (limited to 'app/Models/FeedDAOPGSQL.php')
-rw-r--r--app/Models/FeedDAOPGSQL.php36
1 files changed, 0 insertions, 36 deletions
diff --git a/app/Models/FeedDAOPGSQL.php b/app/Models/FeedDAOPGSQL.php
index 954a6e0ff..f436a2ec4 100644
--- a/app/Models/FeedDAOPGSQL.php
+++ b/app/Models/FeedDAOPGSQL.php
@@ -10,40 +10,4 @@ SELECT setval('`_feed_id_seq`', COALESCE(MAX(id), 0) + 1, false) FROM `_feed`
SQL;
return $this->pdo->exec($sql) !== false;
}
-
- #[\Override]
- public function updateCachedValues(int ...$feedIds): int|false {
- // Faster than the MySQL version
- if (empty($feedIds)) {
- $whereFeedIds = 'true';
- $whereEntryIdFeeds = 'true';
- } else {
- $whereFeedIds = 'id IN (' . str_repeat('?,', count($feedIds) - 1) . '?)';
- $whereEntryIdFeeds = 'id_feed IN (' . str_repeat('?,', count($feedIds) - 1) . '?)';
- }
- $sql = <<<SQL
- WITH entry_counts AS (
- SELECT
- id_feed,
- COUNT(*) AS total_entries,
- SUM(CASE WHEN is_read = 0 THEN 1 ELSE 0 END) AS unread_entries
- FROM `_entry`
- WHERE $whereEntryIdFeeds
- GROUP BY id_feed
- )
- UPDATE `_feed`
- SET `cache_nbEntries` = COALESCE(c.total_entries, 0),
- `cache_nbUnreads` = COALESCE(c.unread_entries, 0)
- FROM entry_counts c
- WHERE id = c.id_feed AND $whereFeedIds
- SQL;
- $stm = $this->pdo->prepare($sql);
- if ($stm !== false && $stm->execute(array_merge($feedIds, $feedIds))) {
- return $stm->rowCount();
- } else {
- $info = $stm === false ? $this->pdo->errorInfo() : $stm->errorInfo();
- Minz_Log::error('SQL error ' . __METHOD__ . json_encode($info));
- return false;
- }
- }
}