summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBenjamin Brahmer <info@b-brahmer.de>2020-09-24 17:58:45 +0200
committerBenjamin Brahmer <info@b-brahmer.de>2020-09-25 19:18:04 +0200
commit66ce13a0c7abdd90d96fc2725e3ea69f9e981377 (patch)
tree30fc76b9a6f3fc33e732232e6174864541fe8ecf
parentf26cb243ea302c27be5e6dda204eb4b97e86a6cb (diff)
change statement for deleting items with help from @Talon24
Signed-off-by: Benjamin Brahmer <info@b-brahmer.de>
-rw-r--r--composer.lock20
-rw-r--r--lib/Db/ItemMapper.php23
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);
}
}