Merge "Exclude redirects from Special:Fewestrevisions"
[lhc/web/wiklou.git] / includes / revisiondelete / RevDelRevisionList.php
index 453c6cc..0705503 100644 (file)
@@ -19,7 +19,9 @@
  * @ingroup RevisionDelete
  */
 
+use MediaWiki\Storage\RevisionRecord;
 use Wikimedia\Rdbms\FakeResultWrapper;
+use Wikimedia\Rdbms\IDatabase;
 
 /**
  * List for revision table items
@@ -47,7 +49,7 @@ class RevDelRevisionList extends RevDelList {
        }
 
        public static function getRevdelConstant() {
-               return Revision::DELETED_TEXT;
+               return RevisionRecord::DELETED_TEXT;
        }
 
        public static function suggestTarget( $target, array $ids ) {
@@ -61,9 +63,10 @@ class RevDelRevisionList extends RevDelList {
         */
        public function doQuery( $db ) {
                $ids = array_map( 'intval', $this->ids );
+               $revQuery = Revision::getQueryInfo( [ 'page', 'user' ] );
                $queryInfo = [
-                       'tables' => [ 'revision', 'page', 'user' ],
-                       'fields' => array_merge( Revision::selectFields(), Revision::selectUserFields() ),
+                       'tables' => $revQuery['tables'],
+                       'fields' => $revQuery['fields'],
                        'conds' => [
                                'rev_page' => $this->title->getArticleID(),
                                'rev_id' => $ids,
@@ -72,10 +75,7 @@ class RevDelRevisionList extends RevDelList {
                                'ORDER BY' => 'rev_id DESC',
                                'USE INDEX' => [ 'revision' => 'PRIMARY' ] // workaround for MySQL bug (T104313)
                        ],
-                       'join_conds' => [
-                               'page' => Revision::pageJoinCond(),
-                               'user' => Revision::userJoinCond(),
-                       ],
+                       'join_conds' => $revQuery['joins'],
                ];
                ChangeTags::modifyDisplayQuery(
                        $queryInfo['tables'],
@@ -99,14 +99,15 @@ class RevDelRevisionList extends RevDelList {
                        return $live;
                }
 
+               $arQuery = Revision::getArchiveQueryInfo();
                $archiveQueryInfo = [
-                       'tables' => [ 'archive' ],
-                       'fields' => Revision::selectArchiveFields(),
+                       'tables' => $arQuery['tables'],
+                       'fields' => $arQuery['fields'],
                        'conds' => [
                                'ar_rev_id' => $ids,
                        ],
                        'options' => [ 'ORDER BY' => 'ar_rev_id DESC' ],
-                       'join_conds' => [],
+                       'join_conds' => $arQuery['joins'],
                ];
 
                ChangeTags::modifyDisplayQuery(
@@ -167,7 +168,7 @@ class RevDelRevisionList extends RevDelList {
        }
 
        public function getSuppressBit() {
-               return Revision::DELETED_RESTRICTED;
+               return RevisionRecord::DELETED_RESTRICTED;
        }
 
        public function doPreCommitUpdates() {