← Back to team overview

launchpad-reviewers team mailing list archive

[Merge] ~cjwatson/launchpad:remove-unnecessary-xpr-joins into launchpad:master

 

Colin Watson has proposed merging ~cjwatson/launchpad:remove-unnecessary-xpr-joins into launchpad:master.

Commit message:
Remove several unnecessary joins of {Source,Binary}PackageRelease

Requested reviews:
  Launchpad code reviewers (launchpad-reviewers)

For more details, see:
https://code.launchpad.net/~cjwatson/launchpad/+git/launchpad/+merge/430028
-- 
Your team Launchpad code reviewers is requested to review the proposed merge of ~cjwatson/launchpad:remove-unnecessary-xpr-joins into launchpad:master.
diff --git a/lib/lp/soyuz/model/archive.py b/lib/lp/soyuz/model/archive.py
index 02581d4..119e534 100644
--- a/lib/lp/soyuz/model/archive.py
+++ b/lib/lp/soyuz/model/archive.py
@@ -2776,10 +2776,8 @@ class Archive(SQLBase):
             .find(
                 (LibraryFileAlias.filename, LibraryFileContent.sha1),
                 SourcePackagePublishingHistory.archive == self,
-                SourcePackageRelease.id
-                == SourcePackagePublishingHistory.sourcepackagereleaseID,
-                SourcePackageReleaseFile.sourcepackagerelease
-                == SourcePackageRelease.id,
+                SourcePackagePublishingHistory.sourcepackagerelease
+                == SourcePackageReleaseFile.sourcepackagerelease,
                 LibraryFileAlias.id == SourcePackageReleaseFile.libraryfileID,
                 LibraryFileAlias.filename.is_in(source_files),
                 LibraryFileContent.id == LibraryFileAlias.contentID,
diff --git a/lib/lp/soyuz/model/binarypackagebuild.py b/lib/lp/soyuz/model/binarypackagebuild.py
index 3689956..f565e74 100644
--- a/lib/lp/soyuz/model/binarypackagebuild.py
+++ b/lib/lp/soyuz/model/binarypackagebuild.py
@@ -1581,7 +1581,6 @@ class BinaryPackageBuildMacaroonIssuer(MacaroonIssuerBase):
         # Circular imports.
         from lp.soyuz.model.archive import Archive
         from lp.soyuz.model.archivedependency import ArchiveDependency
-        from lp.soyuz.model.sourcepackagerelease import SourcePackageRelease
 
         # Binary package builds only support free-floating macaroons for
         # librarian or archive authentication, not ones bound to a user.
@@ -1601,9 +1600,7 @@ class BinaryPackageBuildMacaroonIssuer(MacaroonIssuerBase):
             clauses.extend(
                 [
                     BinaryPackageBuild.source_package_release_id
-                    == SourcePackageRelease.id,
-                    SourcePackageReleaseFile.sourcepackagereleaseID
-                    == SourcePackageRelease.id,
+                    == SourcePackageReleaseFile.sourcepackagereleaseID,
                     SourcePackageReleaseFile.libraryfile == context,
                 ]
             )
diff --git a/lib/lp/soyuz/model/packagediff.py b/lib/lp/soyuz/model/packagediff.py
index f2783e5..92677ef 100644
--- a/lib/lp/soyuz/model/packagediff.py
+++ b/lib/lp/soyuz/model/packagediff.py
@@ -191,18 +191,13 @@ class PackageDiff(StormBase):
     def _countDeletedLFAs(self):
         """How many files associated with either source package have been
         deleted from the librarian?"""
-        # Circular import.
-        from lp.soyuz.model.sourcepackagerelease import SourcePackageRelease
-
         return (
             IStore(LibraryFileAlias)
             .find(
                 LibraryFileAlias.id,
-                SourcePackageRelease.id.is_in(
+                SourcePackageReleaseFile.sourcepackagereleaseID.is_in(
                     (self.from_source_id, self.to_source_id)
                 ),
-                SourcePackageReleaseFile.sourcepackagereleaseID
-                == SourcePackageRelease.id,
                 SourcePackageReleaseFile.libraryfileID == LibraryFileAlias.id,
                 LibraryFileAlias.content == None,
             )
diff --git a/lib/lp/soyuz/model/publishing.py b/lib/lp/soyuz/model/publishing.py
index 1c8e497..9db21bc 100644
--- a/lib/lp/soyuz/model/publishing.py
+++ b/lib/lp/soyuz/model/publishing.py
@@ -648,8 +648,7 @@ class SourcePackagePublishingHistory(SQLBase, ArchivePublisherBase):
             LibraryFileContent.id == LibraryFileAlias.contentID,
             LibraryFileAlias.id == SourcePackageReleaseFile.libraryfileID,
             SourcePackageReleaseFile.sourcepackagerelease
-            == SourcePackageRelease.id,
-            SourcePackageRelease.id == self.sourcepackagereleaseID,
+            == self.sourcepackagereleaseID,
         )
         source_urls = proxied_source_urls(
             [source for source, _ in sources], self
@@ -1243,8 +1242,8 @@ class BinaryPackagePublishingHistory(SQLBase, ArchivePublisherBase):
             (LibraryFileAlias, LibraryFileContent),
             LibraryFileContent.id == LibraryFileAlias.contentID,
             LibraryFileAlias.id == BinaryPackageFile.libraryfileID,
-            BinaryPackageFile.binarypackagerelease == BinaryPackageRelease.id,
-            BinaryPackageRelease.id == self.binarypackagereleaseID,
+            BinaryPackageFile.binarypackagerelease
+            == self.binarypackagereleaseID,
         )
         binary_urls = proxied_urls(
             [binary for binary, _ in binaries], self.archive