From 1885a1ac462c08a3f25e8e8d47205cb18213821b Mon Sep 17 00:00:00 2001 From: Aaron Schulz Date: Thu, 22 Sep 2016 19:53:58 -0700 Subject: [PATCH] Reduce queries in CategoryViewer via addGoodLinkObjFromRow() Change-Id: Id782b50f166efbee6c9f8b9b263f09fc5fb5e3f2 --- includes/CategoryViewer.php | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/includes/CategoryViewer.php b/includes/CategoryViewer.php index a8e988f614..53e855bdb0 100644 --- a/includes/CategoryViewer.php +++ b/includes/CategoryViewer.php @@ -19,6 +19,7 @@ * * @file */ +use MediaWiki\MediaWikiServices; class CategoryViewer extends ContextSource { /** @var int */ @@ -317,10 +318,19 @@ class CategoryViewer extends ContextSource { $res = $dbr->select( [ 'page', 'categorylinks', 'category' ], - [ 'page_id', 'page_title', 'page_namespace', 'page_len', - 'page_is_redirect', 'cl_sortkey', 'cat_id', 'cat_title', - 'cat_subcats', 'cat_pages', 'cat_files', - 'cl_sortkey_prefix', 'cl_collation' ], + array_merge( + LinkCache::getSelectFields(), + [ + 'cl_sortkey', + 'cat_id', + 'cat_title', + 'cat_subcats', + 'cat_pages', + 'cat_files', + 'cl_sortkey_prefix', + 'cl_collation' + ] + ), array_merge( [ 'cl_to' => $this->title->getDBkey() ], $extraConds ), __METHOD__, [ @@ -338,10 +348,13 @@ class CategoryViewer extends ContextSource { ); Hooks::run( 'CategoryViewer::doCategoryQuery', [ $type, $res ] ); + $linkCache = MediaWikiServices::getInstance()->getLinkCache(); $count = 0; foreach ( $res as $row ) { $title = Title::newFromRow( $row ); + $linkCache->addGoodLinkObjFromRow( $title, $row ); + if ( $row->cl_collation === '' ) { // Hack to make sure that while updating from 1.16 schema // and db is inconsistent, that the sky doesn't fall. -- 2.20.1