Merge "Revert "Adding sanity check to Title::isRedirect().""
authorBrion VIBBER <brion@wikimedia.org>
Sun, 3 Jun 2012 11:03:20 +0000 (11:03 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Sun, 3 Jun 2012 11:03:20 +0000 (11:03 +0000)
1  2 
includes/Title.php

diff --combined includes/Title.php
@@@ -209,15 -209,7 +209,15 @@@ class Title 
         */
        public static function newFromID( $id, $flags = 0 ) {
                $db = ( $flags & self::GAID_FOR_UPDATE ) ? wfGetDB( DB_MASTER ) : wfGetDB( DB_SLAVE );
 -              $row = $db->selectRow( 'page', '*', array( 'page_id' => $id ), __METHOD__ );
 +              $row = $db->selectRow(
 +                      'page',
 +                      array(
 +                              'page_namespace', 'page_title', 'page_id',
 +                              'page_len', 'page_is_redirect', 'page_latest',
 +                      ),
 +                      array( 'page_id' => $id ),
 +                      __METHOD__
 +              );
                if ( $row !== false ) {
                        $title = Title::newFromRow( $row );
                } else {
                        return $this->mRedirect = false;
                }
                $linkCache = LinkCache::singleton();
-               $cached = $linkCache->getGoodLinkFieldObj( $this, 'redirect' );
-               if ( $cached === null ) { # check the assumption that the cache actually knows about this title
-                       throw new MWException( "LinkCache doesn't currently know about this title: " . $this->getPrefixedDBkey() );
-               }
-               $this->mRedirect = (bool)$cached;
+               $this->mRedirect = (bool)$linkCache->getGoodLinkFieldObj( $this, 'redirect' );
  
                return $this->mRedirect;
        }
                $protected = $this->isProtected();
  
                // Do the actual move
 -              $err = $this->moveToInternal( $nt, $reason, $createRedirect );
 -              if ( is_array( $err ) ) {
 -                      # @todo FIXME: What about the File we have already moved?
 -                      $dbw->rollback( __METHOD__ );
 -                      return $err;
 -              }
 +              $this->moveToInternal( $nt, $reason, $createRedirect );
  
                // Refresh the sortkey for this row.  Be careful to avoid resetting
                // cl_timestamp, which may disturb time-based lists on some sites.
         * @param $reason String The reason for the move
         * @param $createRedirect Bool Whether to leave a redirect at the old title.  Ignored
         *   if the user doesn't have the suppressredirect right
 +       * @throws MWException
         */
        private function moveToInternal( &$nt, $reason = '', $createRedirect = true ) {
                global $wgUser, $wgContLang;
                $pageId = $this->getArticleID( $flags );
                if ( $pageId ) {
                        $db = ( $flags & self::GAID_FOR_UPDATE ) ? wfGetDB( DB_MASTER ) : wfGetDB( DB_SLAVE );
 -                      $row = $db->selectRow( 'revision', '*',
 +                      $row = $db->selectRow( 'revision', Revision::selectFields(),
                                array( 'rev_page' => $pageId ),
                                __METHOD__,
                                array( 'ORDER BY' => 'rev_timestamp ASC', 'LIMIT' => 1 )