diff options
author | Benjamin Brahmer <info@b-brahmer.de> | 2020-09-24 17:58:45 +0200 |
---|---|---|
committer | Benjamin Brahmer <info@b-brahmer.de> | 2020-09-25 19:18:04 +0200 |
commit | 66ce13a0c7abdd90d96fc2725e3ea69f9e981377 (patch) | |
tree | 30fc76b9a6f3fc33e732232e6174864541fe8ecf | |
parent | f26cb243ea302c27be5e6dda204eb4b97e86a6cb (diff) |
change statement for deleting items with help from @Talon24
Signed-off-by: Benjamin Brahmer <info@b-brahmer.de>
-rw-r--r-- | composer.lock | 20 | ||||
-rw-r--r-- | lib/Db/ItemMapper.php | 23 |
2 files changed, 25 insertions, 18 deletions
diff --git a/composer.lock b/composer.lock index e5e4ef9f0..7b31b1ac9 100644 --- a/composer.lock +++ b/composer.lock @@ -111,16 +111,16 @@ }, { "name": "debril/feed-io", - "version": "v4.7.8", + "version": "v4.7.9", "source": { "type": "git", "url": "https://github.com/alexdebril/feed-io.git", - "reference": "2fe979f7e288fff334deaa0ddeaa1f229632ab6e" + "reference": "3fbc023b52d7b97fed7e7ab0dd9a83fb9c556414" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/alexdebril/feed-io/zipball/2fe979f7e288fff334deaa0ddeaa1f229632ab6e", - "reference": "2fe979f7e288fff334deaa0ddeaa1f229632ab6e", + "url": "https://api.github.com/repos/alexdebril/feed-io/zipball/3fbc023b52d7b97fed7e7ab0dd9a83fb9c556414", + "reference": "3fbc023b52d7b97fed7e7ab0dd9a83fb9c556414", "shasum": "" }, "require": { @@ -174,7 +174,7 @@ "type": "github" } ], - "time": "2020-08-17T13:46:18+00:00" + "time": "2020-09-21T08:29:55+00:00" }, { "name": "ezyang/htmlpurifier", @@ -826,16 +826,16 @@ }, { "name": "phpstan/phpstan", - "version": "0.12.43", + "version": "0.12.44", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan.git", - "reference": "54221b44766cb4bdfe40d1828d5bba5dd79c38c6" + "reference": "330b45776ea77f167b150e24787412414a8fa469" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/54221b44766cb4bdfe40d1828d5bba5dd79c38c6", - "reference": "54221b44766cb4bdfe40d1828d5bba5dd79c38c6", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/330b45776ea77f167b150e24787412414a8fa469", + "reference": "330b45776ea77f167b150e24787412414a8fa469", "shasum": "" }, "require": { @@ -878,7 +878,7 @@ "type": "tidelift" } ], - "time": "2020-09-19T21:19:38+00:00" + "time": "2020-09-24T15:28:47+00:00" }, { "name": "phpunit/php-code-coverage", diff --git a/lib/Db/ItemMapper.php b/lib/Db/ItemMapper.php index f0442aee9..2e08471db 100644 --- a/lib/Db/ItemMapper.php +++ b/lib/Db/ItemMapper.php @@ -357,20 +357,27 @@ class ItemMapper extends NewsMapper while ($row = $result->fetch()) { $size = (int)$row['size']; $limit = $size - $threshold; + $feed_id = $row['feed_id']; if ($limit > 0) { - $params = [false, false, $row['feed_id'], $limit]; - - $sql = 'DELETE FROM `*PREFIX*news_items` ' . - 'WHERE `id` IN (' . - 'SELECT `id` FROM `*PREFIX*news_items` ' . + $params = [false, false, $feed_id, $limit]; + $sql = 'SELECT `id` FROM `*PREFIX*news_items` ' . 'WHERE `unread` = ? ' . 'AND `starred` = ? ' . 'AND `feed_id` = ? ' . 'ORDER BY `id` ASC ' . - 'LIMIT ?' . - ')'; - + 'LIMIT 1 ' . + 'OFFSET ? '; + } + $limit_result = $this->execute($sql, $params); + if ($limit_row = $limit_result->fetch()) { + $limit_id = (int)$limit_row['id']; + $params = [false, false, $feed_id, $limit_id]; + $sql = 'DELETE FROM `*PREFIX*news_items` ' . + 'WHERE `unread` = ? ' . + 'AND `starred` = ? ' . + 'AND `feed_id` = ? ' . + 'AND `id` < ? '; $this->execute($sql, $params); } } |