From 25635009e9010fb6410557271fae8b10a3c8876b Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Wed, 22 Jan 2025 13:51:06 +0000 Subject: [PATCH] packages: Don't fetch all builds all of the time Signed-off-by: Michael Tremer --- src/buildservice/builds.py | 3 +-- src/buildservice/packages.py | 35 ++++++++++++++++------------------- 2 files changed, 17 insertions(+), 21 deletions(-) diff --git a/src/buildservice/builds.py b/src/buildservice/builds.py index 496ada8a..57688a80 100644 --- a/src/buildservice/builds.py +++ b/src/buildservice/builds.py @@ -415,8 +415,7 @@ class Build(database.Base, database.BackendMixin, database.SoftDeleteMixin): # Package - pkg = sqlalchemy.orm.relationship("Package", - foreign_keys=[pkg_id], back_populates="builds", lazy="selectin") + pkg = sqlalchemy.orm.relationship("Package", foreign_keys=[pkg_id], lazy="selectin") @property def name(self): diff --git a/src/buildservice/packages.py b/src/buildservice/packages.py index 33fc3468..ea5f78cc 100644 --- a/src/buildservice/packages.py +++ b/src/buildservice/packages.py @@ -283,10 +283,6 @@ class Package(database.Base, database.BackendMixin, database.SoftDeleteMixin): uuid = Column(UUID, nullable=False) - # Build - - builds = sqlalchemy.orm.relationship("Build", back_populates="pkg", lazy="selectin") - # Created At created_at = Column( @@ -506,23 +502,24 @@ class Package(database.Base, database.BackendMixin, database.SoftDeleteMixin): } for file in filelist), ) - @lazy_property - async def XXXbuilds(self): - builds = await self.backend.builds._get_builds(""" - SELECT - * - FROM - builds - WHERE - deleted_at IS NULL - AND - pkg_id = %s - ORDER BY - created_at DESC""", - self.id, + async def get_builds(self, limit=None, offset=None): + stmt = ( + sqlalchemy + .select( + builds.Build, + ) + .where( + builds.Build.deleted_at == None, + builds.Build.pkg == self, + ) + .order_by( + builds.Build.created_at.desc(), + ) + .limit(limit) + .offset(offset) ) - return list(builds) + return await self.db.fetch_as_list(stmt) @lazy_property def job(self): -- 2.47.3