Do not insert page titles into querycache.qc_value
[lhc/web/wiklou.git] / includes / specials / SpecialBrokenRedirects.php
index 9aba41e..25571cc 100644 (file)
@@ -21,7 +21,8 @@
  * @ingroup SpecialPage
  */
 
-use Wikimedia\Rdbms\ResultWrapper;
+use Wikimedia\Rdbms\IResultWrapper;
+use Wikimedia\Rdbms\IDatabase;
 
 /**
  * A special page listing redirects to non existent page. Those should be
@@ -62,9 +63,9 @@ class BrokenRedirectsPage extends QueryPage {
                        'fields' => [
                                'namespace' => 'p1.page_namespace',
                                'title' => 'p1.page_title',
-                               'value' => 'p1.page_title',
                                'rd_namespace',
                                'rd_title',
+                               'rd_fragment',
                        ],
                        'conds' => [
                                // Exclude pages that don't exist locally as wiki pages,
@@ -101,7 +102,7 @@ class BrokenRedirectsPage extends QueryPage {
        function formatResult( $skin, $result ) {
                $fromObj = Title::makeTitle( $result->namespace, $result->title );
                if ( isset( $result->rd_title ) ) {
-                       $toObj = Title::makeTitle( $result->rd_namespace, $result->rd_title );
+                       $toObj = Title::makeTitle( $result->rd_namespace, $result->rd_title, $result->rd_fragment );
                } else {
                        $blinks = $fromObj->getBrokenLinksFrom(); # TODO: check for redirect, not for links
                        if ( $blinks ) {
@@ -138,7 +139,7 @@ class BrokenRedirectsPage extends QueryPage {
                                [ 'action' => 'edit' ]
                        );
                }
-               $to = $linkRenderer->makeBrokenLink( $toObj );
+               $to = $linkRenderer->makeBrokenLink( $toObj, $toObj->getFullText() );
                $arr = $this->getLanguage()->getArrow();
 
                $out = $from . $this->msg( 'word-separator' )->escaped();
@@ -165,7 +166,7 @@ class BrokenRedirectsPage extends QueryPage {
         * Cache page content model for performance
         *
         * @param IDatabase $db
-        * @param ResultWrapper $res
+        * @param IResultWrapper $res
         */
        function preprocessResults( $db, $res ) {
                $this->executeLBFromResultWrapper( $res );