From c8954a25ba8a2191509c9079eeb43d8707bb6f95 Mon Sep 17 00:00:00 2001 From: Michael Date: Sun, 17 May 2020 05:24:51 +0000 Subject: [PATCH] Limit the tag query to a range of one day Fixes #8619 --- mod/network.php | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/mod/network.php b/mod/network.php index 1506c7073..1912ce788 100644 --- a/mod/network.php +++ b/mod/network.php @@ -786,6 +786,13 @@ function networkThreadedView(App $a, $update, $parent) $top_limit = DateTimeFormat::utcNow(); } + // Handle bad performance situations when the distance between top and bottom is too high + // See issue https://github.com/friendica/friendica/issues/8619 + if (strtotime($top_limit) - strtotime($bottom_limit) > 86400) { + // Set the bottom limit to one day in the past at maximum + $bottom_limit = DateTimeFormat::utc(date('c', strtotime($top_limit) - 86400)); + } + $items = DBA::p("SELECT `item`.`parent-uri` AS `uri`, 0 AS `item_id`, `item`.$ordering AS `order_date`, `author`.`url` AS `author-link` FROM `item` STRAIGHT_JOIN (SELECT `uri-id` FROM `tag-search-view` WHERE `name` IN (SELECT SUBSTR(`term`, 2) FROM `search` WHERE `uid` = ? AND `term` LIKE '#%') AND `uid` = 0) AS `tag-search`