Browse Source

Attempt to reduce massive queries to quicken package updates

Jordi Boggiano 11 years ago
parent
commit
7f238935b1

+ 1 - 1
src/Packagist/WebBundle/Controller/WebController.php

@@ -613,7 +613,7 @@ class WebController extends Controller
         try {
             $package = $doctrine
                 ->getRepository('PackagistWebBundle:Package')
-                ->getFullPackageByName($name);
+                ->getPackageByName($name);
         } catch (NoResultException $e) {
             return new Response(json_encode(array('status' => 'error', 'message' => 'Package not found',)), 404);
         }

+ 6 - 10
src/Packagist/WebBundle/Entity/PackageRepository.php

@@ -135,19 +135,15 @@ class PackageRepository extends EntityRepository
         return $qb->getQuery()->getSingleResult();
     }
 
-    public function getFullPackageByName($name)
+    public function getPackageByName($name)
     {
-        $qb = $this->getBaseQueryBuilder()
-            ->addSelect('a', 'req', 'devReq', 'sug', 'rep', 'con', 'pro')
-            ->leftJoin('v.authors', 'a')
-            ->leftJoin('v.require', 'req')
-            ->leftJoin('v.devRequire', 'devReq')
-            ->leftJoin('v.suggest', 'sug')
-            ->leftJoin('v.replace', 'rep')
-            ->leftJoin('v.conflict', 'con')
-            ->leftJoin('v.provide', 'pro')
+        $qb = $this->getEntityManager()->createQueryBuilder();
+        $qb->select('p', 'm')
+            ->from('Packagist\WebBundle\Entity\Package', 'p')
+            ->leftJoin('p.maintainers', 'm')
             ->where('p.name = ?0')
             ->setParameters(array($name));
+
         return $qb->getQuery()->getSingleResult();
     }