From 97cc6196ebc38318b29c90eadc3f0d1c8945289a Mon Sep 17 00:00:00 2001 From: Muflone <muflone@archlinux.org> Date: Wed, 21 Aug 2024 01:36:15 +0200 Subject: [PATCH] fix: reduce the number of subqueries against Packages by preloading the existing dependencies names from AUR --- aurweb/routers/packages.py | 11 +++++++++++ templates/partials/packages/package_metadata.html | 2 +- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/aurweb/routers/packages.py b/aurweb/routers/packages.py index 30d0d896c..13f304943 100644 --- a/aurweb/routers/packages.py +++ b/aurweb/routers/packages.py @@ -190,6 +190,17 @@ async def package( if not all_deps: deps = deps.limit(max_listing) context["dependencies"] = deps.all() + # Existing dependencies to avoid multiple lookups + context["dependencies_names_from_aur"] = [ + item.Name + for item in db.query(models.Package) + .filter( + models.Package.Name.in_( + pkg.package_dependencies.with_entities(models.PackageDependency.DepName) + ) + ) + .all() + ] # Package requirements (other packages depend on this one). reqs = pkgutil.pkg_required(pkg.Name, [p.RelName for p in rels_data.get("p", [])]) diff --git a/templates/partials/packages/package_metadata.html b/templates/partials/packages/package_metadata.html index c5af3ce96..2dd39c201 100644 --- a/templates/partials/packages/package_metadata.html +++ b/templates/partials/packages/package_metadata.html @@ -20,7 +20,7 @@ {% endif %} {% else -%} </a> - {%- if dep.is_aur_package() -%} + {%- if dep.DepName in dependencies_names_from_aur -%} <sup><small>AUR</small></sup> {% endif %} {% endif %} -- GitLab