diff --git a/aurweb/packages/search.py b/aurweb/packages/search.py index c4ab36fe..1bca732a 100644 --- a/aurweb/packages/search.py +++ b/aurweb/packages/search.py @@ -59,14 +59,18 @@ class PackageSearch: "l": self._sort_by_last_modified } + self._joined = False + def _join_user(self, outer: bool = True) -> orm.Query: """ Centralized joining of a package base's maintainer. """ - self.query = self.query.join( - User, - User.ID == PackageBase.MaintainerUID, - isouter=outer - ) - return self.query + if not self._joined: + self.query = self.query.join( + User, + User.ID == PackageBase.MaintainerUID, + isouter=outer + ) + self._joined = True + return self.query def _search_by_namedesc(self, keywords: str) -> orm.Query: self._join_user()