From 43ac9708caa4718685fc20c7950e49b0cce9ab29 Mon Sep 17 00:00:00 2001 From: WineHQ Date: Sun, 11 Mar 2007 20:39:02 +0000 Subject: [PATCH] =?UTF-8?q?Authors:=20Alexander=20Nicolaysen=20S=C3=B8rnes?= =?UTF-8?q?=20,=20Chris=20Morgan=20=20Fix=20queued=20maintainer=20sql=20with=20missing=20j?= =?UTF-8?q?oin=20causing=20millions=20of=20rows=20to=20be=20generated=20by?= =?UTF-8?q?=20a=20relatively=20simple=20sql=20statement?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- include/maintainer.php | 32 +++++++++++++++++++++++--------- include/sidebar_admin.php | 2 +- 2 files changed, 24 insertions(+), 10 deletions(-) diff --git a/include/maintainer.php b/include/maintainer.php index a25801f..da175ec 100644 --- a/include/maintainer.php +++ b/include/maintainer.php @@ -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); diff --git a/include/sidebar_admin.php b/include/sidebar_admin.php index 9016ed9..0b80c4a 100644 --- a/include/sidebar_admin.php +++ b/include/sidebar_admin.php @@ -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().")",