diff --git a/3rdparty b/3rdparty index 48420b6fd7012d23550e2c43541b4b4ad0a85aa5..a82f327d1ded4b8a24e99dea721f82e1f69153f5 160000 --- a/3rdparty +++ b/3rdparty @@ -1 +1 @@ -Subproject commit 48420b6fd7012d23550e2c43541b4b4ad0a85aa5 +Subproject commit a82f327d1ded4b8a24e99dea721f82e1f69153f5 diff --git a/lib/private/Files/Cache/Cache.php b/lib/private/Files/Cache/Cache.php index 9c3b786ae87fe8ec96de9b1aaeb58d11d22aef21..9b2cff62627726e4be9c7ec740fdaed7136ef5ab 100644 --- a/lib/private/Files/Cache/Cache.php +++ b/lib/private/Files/Cache/Cache.php @@ -667,6 +667,8 @@ class Cache implements ICache { $query->andWhere($this->querySearchHelper->searchOperatorToDBExpr($builder, $searchQuery->getSearchOperation())); + $this->querySearchHelper->addSearchOrdersToQuery($query, $searchQuery->getOrder()); + if ($searchQuery->getLimit()) { $query->setMaxResults($searchQuery->getLimit()); } diff --git a/lib/private/Files/Cache/QuerySearchHelper.php b/lib/private/Files/Cache/QuerySearchHelper.php index 7d8098f0efa5f016b9e113b2a5fa6bea4b34e68d..2d20da72f51a02e71593c8ed00d4d400b40428e9 100644 --- a/lib/private/Files/Cache/QuerySearchHelper.php +++ b/lib/private/Files/Cache/QuerySearchHelper.php @@ -26,6 +26,7 @@ use OCP\Files\IMimeTypeLoader; use OCP\Files\Search\ISearchBinaryOperator; use OCP\Files\Search\ISearchComparison; use OCP\Files\Search\ISearchOperator; +use OCP\Files\Search\ISearchOrder; /** * Tools for transforming search queries into database queries @@ -185,4 +186,14 @@ class QuerySearchHelper { } return $builder->createNamedParameter($value, $type); } + + /** + * @param IQueryBuilder $query + * @param ISearchOrder[] $orders + */ + public function addSearchOrdersToQuery(IQueryBuilder $query, array $orders) { + foreach ($orders as $order) { + $query->addOrderBy($order->getField(), $order->getDirection()); + } + } }