appdb/include maintainer.php sidebar_admin.php

WineHQ wineowner at wine.codeweavers.com
Sun Mar 11 15:39:02 CDT 2007


ChangeSet ID:	30954
CVSROOT:	/opt/cvs-commit
Module name:	appdb
Changes by:	wineowner at winehq.org	2007/03/11 15:39:02

Modified files:
	include        : maintainer.php sidebar_admin.php 

Log message:
	Alexander Nicolaysen Sørnes <alex at thehandofagony.com>,
	Chris Morgan <cmorgan at alum.wpi.edu>
	Fix queued maintainer sql with missing join causing millions of rows to be generated by a
	relatively simple sql statement

Patch: http://cvs.winehq.org/patch.py?id=30954

Old revision  New revision  Changes     Path
 1.27          1.28          +23 -9      appdb/include/maintainer.php
 1.29          1.30          +1 -1       appdb/include/sidebar_admin.php

Index: appdb/include/maintainer.php
diff -u -p appdb/include/maintainer.php:1.27 appdb/include/maintainer.php:1.28
--- appdb/include/maintainer.php:1.27	11 Mar 2007 20:39: 2 -0000
+++ appdb/include/maintainer.php	11 Mar 2007 20:39: 2 -0000
@@ -270,19 +270,33 @@ class maintainer
         return $aAppsMaintained;
     }
 
-    function getQueuedMaintainerCount()
+    function objectGetEntriesCount($bQueued)
     {
         /* Excluding requests for queued apps and versions, as these are handled 
            automatically.  One SELECT for super maintainers, one for maintainers. */
-        $sQuery = "SELECT COUNT(DISTINCT maintainerId) as queued_maintainers FROM 
-                appMaintainers, appFamily, appVersion
-                WHERE appMaintainers.queued='true' AND ((appFamily.appId =
-                    appMaintainers.appId AND appFamily.queued = 'false' AND 
-                    appMaintainers.versionId = '') OR (
-                            appVersion.versionId = appMaintainers.versionId
-                            AND appVersion.queued = 'false'))";
+       $sQuery = "SELECT COUNT(DISTINCT maintainerId) as queued_maintainers FROM 
+                appMaintainers, appFamily, appVersion WHERE
+                appMaintainers.queued = '?'
+                AND
+                appFamily.appId = appVersion.appId
+                AND
+                (
+                    (
+                        appFamily.appId = appMaintainers.appId
+                        AND
+                        appFamily.queued = 'false'
+                        AND 
+                        appMaintainers.versionId = ''
+                    )
+                    OR
+                    (
+                        appVersion.versionId = appMaintainers.versionId
+                        AND
+                        appVersion.queued = 'false'
+                    )
+                )";
 
-        if(!($hResult = query_parameters($sQuery)))
+        if(!($hResult = query_parameters($sQuery, $bQueued ? "true" : "false")))
             return FALSE;
 
         $oRow = mysql_fetch_object($hResult);
Index: appdb/include/sidebar_admin.php
diff -u -p appdb/include/sidebar_admin.php:1.29 appdb/include/sidebar_admin.php:1.30
--- appdb/include/sidebar_admin.php:1.29	11 Mar 2007 20:39: 2 -0000
+++ appdb/include/sidebar_admin.php	11 Mar 2007 20:39: 2 -0000
@@ -21,7 +21,7 @@ function global_admin_menu() {
             "screenshot").")",
             BASE."objectManager.php?sClass=screenshot&bIsQueue=true&sTitle=".
             "Screenshot%20Queue");
-    $g->add("View Maintainer Queue (".Maintainer::getQueuedMaintainerCount().")",
+    $g->add("View Maintainer Queue (".Maintainer::objectGetEntriesCount(true).")",
             BASE."objectManager.php?sClass=maintainer&bIsQueue=true&sTitle=".
             "Maintainer%20Queue");
     $g->add("View Maintainer Entries (".Maintainer::getMaintainerCount().")",



More information about the wine-cvs mailing list