소스 검색

More query optimization

Jordi Boggiano 11 년 전
부모
커밋
58555a5c2d
1개의 변경된 파일6개의 추가작업 그리고 4개의 파일을 삭제
  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.'/%');