summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDan McGee <dan@archlinux.org>2012-05-02 23:14:01 +0200
committerLukas Fleischer <archlinux@cryptocrack.de>2012-05-06 12:12:51 +0200
commit97085daadcbc8b1ae1a01cd777605f66464a02ea (patch)
treeb63f16334168cd3024897cdcb4a52a648b70985d
parente9d8e9b8c074421d15103fd66112dea78800e72a (diff)
downloadaur-97085daadcbc8b1ae1a01cd777605f66464a02ea.tar.gz
aur-97085daadcbc8b1ae1a01cd777605f66464a02ea.tar.xz
user_table optimization
Rather than looking up by username, it makes more sense to look the stats up by user ID to reduce the number of needed joins. Signed-off-by: Dan McGee <dan@archlinux.org> Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
-rw-r--r--web/html/index.php4
-rw-r--r--web/lib/stats.inc.php11
2 files changed, 7 insertions, 8 deletions
diff --git a/web/html/index.php b/web/html/index.php
index 0d513d37..21de99d6 100644
--- a/web/html/index.php
+++ b/web/html/index.php
@@ -58,8 +58,8 @@ echo __(
<td class='boxSoft' valign='top'>
<?php
if (!empty($_COOKIE["AURSID"])) {
- $user = username_from_sid($_COOKIE["AURSID"]);
- user_table($user, $dbh);
+ $userid = uid_from_sid($_COOKIE["AURSID"]);
+ user_table($userid, $dbh);
echo '<br />';
}
diff --git a/web/lib/stats.inc.php b/web/lib/stats.inc.php
index 01e67003..2828dc92 100644
--- a/web/lib/stats.inc.php
+++ b/web/lib/stats.inc.php
@@ -17,17 +17,16 @@ function updates_table($dbh) {
include('stats/updates_table.php');
}
-function user_table($user, $dbh) {
- $escuser = db_escape_string($user);
- $base_q = "SELECT count(*) FROM Packages,Users WHERE Packages.MaintainerUID = Users.ID AND Users.Username='" . $escuser . "'";
+function user_table($userid, $dbh) {
+ $base_q = "SELECT count(*) FROM Packages WHERE Packages.MaintainerUID = " . $userid;
$maintainer_unsupported_count = db_cache_value($base_q, $dbh,
- 'user_unsupported_count:' . $escuser);
+ 'user_unsupported_count:' . $userid);
- $q = "SELECT count(*) FROM Packages,Users WHERE Packages.OutOfDateTS IS NOT NULL AND Packages.MaintainerUID = Users.ID AND Users.Username='" . $escuser . "'";
+ $q = "SELECT count(*) FROM Packages WHERE Packages.OutOfDateTS IS NOT NULL AND Packages.MaintainerUID = " . $userid;
$flagged_outdated = db_cache_value($q, $dbh,
- 'user_flagged_outdated:' . $escuser);
+ 'user_flagged_outdated:' . $userid);
# If the user is a TU calculate the number of the packages
$atype = account_from_sid($_COOKIE["AURSID"]);