X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=includes%2Finstaller%2FMysqlUpdater.php;h=466ad0f0748422b380639e58da9af459333d4502;hb=5af3ad33ed1b27bd5f77038c89844d513d078cba;hp=e2ff9604a2330206b2f55b4ec75fb9720beee3ac;hpb=925890424b233e38eb567e04cda95d59223ce22c;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/installer/MysqlUpdater.php b/includes/installer/MysqlUpdater.php index e2ff9604a2..466ad0f074 100644 --- a/includes/installer/MysqlUpdater.php +++ b/includes/installer/MysqlUpdater.php @@ -20,8 +20,8 @@ * @file * @ingroup Deployment */ -use Wikimedia\Rdbms\Field; use Wikimedia\Rdbms\MySQLField; +use Wikimedia\Rdbms\IDatabase; use MediaWiki\MediaWikiServices; /** @@ -83,7 +83,7 @@ class MysqlUpdater extends DatabaseUpdater { [ 'doUserUniqueUpdate' ], [ 'doUserGroupsUpdate' ], [ 'addField', 'site_stats', 'ss_total_pages', 'patch-ss_total_articles.sql' ], - [ 'addTable', 'user_newtalk', 'patch-usernewtalk2.sql' ], + [ 'addTable', 'user_newtalk', 'patch-usernewtalk.sql' ], [ 'addTable', 'transcache', 'patch-transcache.sql' ], [ 'addField', 'interwiki', 'iw_trans', 'patch-interwiki-trans.sql' ], @@ -390,7 +390,7 @@ class MysqlUpdater extends DatabaseUpdater { global $IP; if ( !$this->doTable( 'interwiki' ) ) { - return true; + return; } if ( $this->db->tableExists( "interwiki", __METHOD__ ) ) { @@ -531,25 +531,12 @@ class MysqlUpdater extends DatabaseUpdater { ) ); } $sql = "SELECT cur_title, cur_namespace, cur_id, cur_timestamp FROM $cur WHERE "; - $firstCond = true; + $dupeTitles = []; foreach ( $duplicate as $ns => $titles ) { - if ( $firstCond ) { - $firstCond = false; - } else { - $sql .= ' OR '; - } - $sql .= "( cur_namespace = {$ns} AND cur_title in ("; - $first = true; - foreach ( $titles as $t ) { - if ( $first ) { - $sql .= $this->db->addQuotes( $t ); - $first = false; - } else { - $sql .= ', ' . $this->db->addQuotes( $t ); - } - } - $sql .= ") ) \n"; + $dupeTitles[] = "( cur_namespace = {$ns} AND cur_title in (" + . $this->db->makeList( $titles ) . ") ) \n"; } + $sql .= $this->db->makeList( $dupeTitles, IDatabase::LIST_OR ); # By sorting descending, the most recent entry will be the first in the list. # All following entries will be deleted by the next while-loop. $sql .= 'ORDER BY cur_namespace, cur_title, cur_timestamp DESC';