From 6fa138f86c0249461aa9043f700b54758acc9f7b Mon Sep 17 00:00:00 2001 From: Cristian Scheid Date: Thu, 19 Mar 2026 14:37:11 -0300 Subject: [PATCH] refactor(recent-search): use order by fields to determine extended cache join and cast config limit to number Signed-off-by: Cristian Scheid --- lib/private/Files/Cache/QuerySearchHelper.php | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/lib/private/Files/Cache/QuerySearchHelper.php b/lib/private/Files/Cache/QuerySearchHelper.php index 4de57e7d75a..8e344293ba5 100644 --- a/lib/private/Files/Cache/QuerySearchHelper.php +++ b/lib/private/Files/Cache/QuerySearchHelper.php @@ -152,7 +152,13 @@ class QuerySearchHelper { $requestedFields = $this->searchBuilder->extractRequestedFields($searchQuery->getSearchOperation()); - $query = $builder->selectFileCache('file', true); + $orderFields = array_map(fn ($order) => $order->getField(), $searchQuery->getOrder()); + + $joinExtendedCache = in_array('creation_time', $requestedFields) + || in_array('upload_time', $requestedFields) + || in_array('last_activity', $orderFields); + + $query = $builder->selectFileCache('file', $joinExtendedCache); if (in_array('systemtag', $requestedFields)) { $this->equipQueryForSystemTags($query, $this->requireUser($searchQuery));