On 10/05/11 22:04, kachelaqa wrote:
On 10/05/11 21:54, elij wrote:
Does this need to be a left join? I could see the need for a left join on maintainer, due to a a package not having a maintainer, but do we have any packages without a submitter?
If not, then an inner join would probably be faster, since it wouldn't have to _basically_ do the inner join and THEN try to find any null columns and add those too.
okay - i will change that and re-submit the patch later.
here is the amended patch. --- web/lib/aurjson.class.php | 13 +++++++++---- 1 files changed, 9 insertions(+), 4 deletions(-) diff --git a/web/lib/aurjson.class.php b/web/lib/aurjson.class.php index 50cf6d0..1518edb 100644 --- a/web/lib/aurjson.class.php +++ b/web/lib/aurjson.class.php @@ -19,7 +19,7 @@ class AurJSON { ); private static $fields = array( 'Packages.ID', 'Name', 'Version', 'CategoryID', - 'Description', 'URL', 'License', + 'Description', 'URL', 'License', 'SubmittedTS', 'ModifiedTS', 'NumVotes', '(OutOfDateTS IS NOT NULL) AS OutOfDate' ); @@ -85,9 +85,14 @@ class AurJSON { private function process_query($type, $where_condition) { $fields = implode(',', self::$fields); - $query = "SELECT Users.Username as Maintainer, {$fields} " . - "FROM Packages LEFT JOIN Users " . - "ON Packages.MaintainerUID = Users.ID " . + $query = "SELECT {$fields}, " . + "mUsers.Username AS Maintainer, " . + "sUsers.Username AS Submitter " . + "FROM Packages " . + "LEFT JOIN Users AS mUsers " . + "ON Packages.MaintainerUID = mUsers.ID " . + "INNER JOIN Users AS sUsers " . + "ON Packages.SubmitterUID = sUsers.ID " . "WHERE ${where_condition}"; $result = db_query($query, $this->dbh); -- 1.7.5.1