Browse Source

More query optimization

Jordi Boggiano 11 years ago
parent
commit
58555a5c2d
1 changed files with 6 additions and 4 deletions
  1. 6 4
      src/Packagist/WebBundle/Entity/VersionRepository.php

+ 6 - 4
src/Packagist/WebBundle/Entity/VersionRepository.php

@@ -80,14 +80,16 @@ class VersionRepository extends EntityRepository
     public function getQueryBuilderForLatestVersionWithPackage($vendor = null, $package = null)
     {
         $qb = $this->getEntityManager()->createQueryBuilder();
-        $qb->select('v', 't', 'a', 'p')
+        $qb->select('v')
             ->from('Packagist\WebBundle\Entity\Version', 'v')
-            ->innerJoin('v.tags', 't')
-            ->innerJoin('v.authors', 'a')
-            ->innerJoin('v.package', 'p')
             ->where('v.development = false')
             ->orderBy('v.releasedAt', 'DESC');
 
+        if ($vendor || $package) {
+            $qb->innerJoin('v.package', 'p')
+                ->addSelect('p');
+        }
+
         if ($vendor) {
             $qb->andWhere('p.name LIKE ?0');
             $qb->setParameter(0, $vendor.'/%');