From: Roan Kattouw Date: Wed, 7 May 2008 18:57:06 +0000 (+0000) Subject: Fixing regression from r34353: using Database::select() for a join messes up in certa... X-Git-Tag: 1.31.0-rc.0~47842 X-Git-Url: http://git.cyclocoop.org/%24image?a=commitdiff_plain;h=73158bd6dec136136a253f8bc2c753db08d60932;p=lhc%2Fweb%2Fwiklou.git Fixing regression from r34353: using Database::select() for a join messes up in certain cases (puts `s where they don't belong, breaking SQL), but not for all joins. Seems to be related to table aliases, not sure though. --- diff --git a/includes/api/ApiQueryAllUsers.php b/includes/api/ApiQueryAllUsers.php index 4c6914bf56..2dc86202f7 100644 --- a/includes/api/ApiQueryAllUsers.php +++ b/includes/api/ApiQueryAllUsers.php @@ -65,7 +65,7 @@ class ApiQueryAllUsers extends ApiQueryBase { if (!is_null($params['group'])) { // Filter only users that belong to a given group $tblName = $db->tableName('user_groups'); - $tables = "$tables INNER JOIN $tblName ug1 ON ug1.ug_user=user_id"; + $tables = "$tables INNER JOIN $tblName ug1 ON `ug1`.`ug_user`=`user_id`"; $this->addWhereFld('ug1.ug_group', $params['group']); } @@ -76,7 +76,7 @@ class ApiQueryAllUsers extends ApiQueryBase { $sqlLimit = $limit+$groupCount+1; $tblName = $db->tableName('user_groups'); - $tables = "$tables LEFT JOIN $tblName ug2 ON ug2.ug_user=user_id"; + $tables = "$tables LEFT JOIN $tblName ug2 ON `ug2`.`ug_user`=`user_id`"; $this->addFields('ug2.ug_group ug_group2'); } else { $sqlLimit = $limit+1; diff --git a/includes/api/ApiQueryUsers.php b/includes/api/ApiQueryUsers.php index c0cae506d2..f331601144 100644 --- a/includes/api/ApiQueryUsers.php +++ b/includes/api/ApiQueryUsers.php @@ -80,13 +80,13 @@ if (!defined('MEDIAWIKI')) { if(isset($this->prop['groups'])) { $ug = $db->tableName('user_groups'); - $tables = "$tables LEFT JOIN $ug ON ug_user=u1.user_id"; + $tables = "$tables LEFT JOIN $ug ON `ug_user`=`u1`.`user_id`"; $this->addFields('ug_group'); } if(isset($this->prop['blockinfo'])) { $ipb = $db->tableName('ipblocks'); - $tables = "$tables LEFT JOIN $ipb ON ipb_user=u1.user_id"; - $tables = "$tables LEFT JOIN $userTable AS u2 ON ipb_by=u2.user_id"; + $tables = "$tables LEFT JOIN $ipb ON `ipb_user`=`u1`.`user_id`"; + $tables = "$tables LEFT JOIN $userTable AS u2 ON `ipb_by`=`u2`.`user_id`"; $this->addFields(array('ipb_reason', 'u2.user_name AS blocker_name')); } $this->addTables($tables);