Allow $wgMaxCredits to work for database backends with non-magic group by behavior.
authorGreg Sabino Mullane <greg@users.mediawiki.org>
Sun, 15 Nov 2009 23:31:16 +0000 (23:31 +0000)
committerGreg Sabino Mullane <greg@users.mediawiki.org>
Sun, 15 Nov 2009 23:31:16 +0000 (23:31 +0000)
Bug 21196

RELEASE-NOTES
includes/Article.php

index d7ad7ae..ce4d709 100644 (file)
@@ -636,6 +636,8 @@ Hopefully we will remove this configuration var soon)
 * (bug 19391) Fix caching for Recent ChangesFeed.
 * (bug 21455) Fixed "Watch this page" checkbox appearing on some special pages
   even to non-logged in users
+* (bug 21196) Allow $wgMaxCredits to work for Postgres (and possible other 
+  non-MySQL) backends.
 
 == API changes in 1.16 ==
 
index 3fb548a..e06bd45 100644 (file)
@@ -710,12 +710,19 @@ class Article {
 
                $deletedBit = $dbr->bitAnd( 'rev_deleted', Revision::DELETED_USER ); // username hidden?
 
-               $sql = "SELECT {$userTable}.*, rev_user_text as user_name, MAX(rev_timestamp) as timestamp
-                       FROM $revTable LEFT JOIN $userTable ON rev_user = user_id
+               $groupby = 'rev_user, rev_user_text';
+               if (! $dbr->implicitGroupby()) {
+                       $groupby .= ', user_id, user_name, user_real_name, user_email, user_editcount';
+               }
+
+               $sql = "SELECT user_id, user_name, user_real_name, user_email, user_editcount,
+            rev_user_text AS user_name, MAX(rev_timestamp) AS timestamp
+                       FROM $revTable
+            LEFT JOIN $userTable ON rev_user = user_id
                        WHERE rev_page = $pageId
                        $excludeCond
                        AND $deletedBit = 0
-                       GROUP BY rev_user, rev_user_text
+                       GROUP BY $groupby
                        ORDER BY timestamp DESC";
 
                if ( $limit > 0 )