X-Git-Url: http://git.heureux-cyclage.org/?a=blobdiff_plain;f=maintenance%2FconvertLinks.php;h=26f81821da36f3668172a5bc0654008dbfb982bd;hb=29f2d9d7857ee693f49d064c3a0513772b7a558c;hp=59820a5a8fff57f4c33a6b7c1f3fa49489f3feb9;hpb=243a466018d24415de27815cfae995865c45a66a;p=lhc%2Fweb%2Fwiklou.git diff --git a/maintenance/convertLinks.php b/maintenance/convertLinks.php index 59820a5a8f..26f81821da 100644 --- a/maintenance/convertLinks.php +++ b/maintenance/convertLinks.php @@ -100,10 +100,10 @@ class ConvertLinks extends Maintenance { # not used yet; highest row number from links table to process # $finalRowOffset = 0; + $this->logPerformance = $this->hasOption( 'logperformance' ); + $perfLogFilename = $this->getArg( 1, "convLinksPerf.txt" ); $overwriteLinksTable = !$this->hasOption( 'keep-links-table' ); $noKeys = $this->hasOption( 'noKeys' ); - $this->logPerformance = $this->hasOption( 'logperformance' ); - $perfLogFilename = $this->getArg( 'perfLogFilename', "convLinksPerf.txt" ); # -------------------------------------------------------------------- @@ -117,6 +117,7 @@ class ConvertLinks extends Maintenance { } $res = $dbw->query( "SELECT l_from FROM $links LIMIT 1" ); + // @phan-suppress-next-line PhanUndeclaredMethod if ( $dbw->fieldType( $res, 0 ) == "int" ) { $this->output( "Schema already converted\n" ); @@ -144,30 +145,34 @@ class ConvertLinks extends Maintenance { $this->output( "Loading IDs from $cur table...\n" ); $this->performanceLog( $fh, "Reading $numRows rows from cur table...\n" ); $this->performanceLog( $fh, "rows read vs seconds elapsed:\n" ); + $contentLang = MediaWikiServices::getInstance()->getContentLanguage(); - $dbw->bufferResults( false ); - $res = $dbw->query( "SELECT cur_namespace,cur_title,cur_id FROM $cur" ); $ids = []; - - foreach ( $res as $row ) { - $title = $row->cur_title; - if ( $row->cur_namespace ) { - $title = MediaWikiServices::getInstance()->getContentLanguage()-> - getNsText( $row->cur_namespace ) . ":$title"; - } - $ids[$title] = $row->cur_id; - $curRowsRead++; - if ( $reportCurReadProgress ) { - if ( ( $curRowsRead % $curReadReportInterval ) == 0 ) { - $this->performanceLog( - $fh, - $curRowsRead . " " . ( microtime( true ) - $baseTime ) . "\n" - ); - $this->output( "\t$curRowsRead rows of $cur table read.\n" ); + $lastId = 0; + do { + $res = $dbw->query( + "SELECT cur_namespace,cur_title,cur_id FROM $cur " . + "WHERE cur_id > $lastId ORDER BY cur_id LIMIT 10000" + ); + foreach ( $res as $row ) { + $title = $row->cur_title; + if ( $row->cur_namespace ) { + $title = $contentLang->getNsText( $row->cur_namespace ) . ":$title"; } + $ids[$title] = $row->cur_id; + $curRowsRead++; + if ( $reportCurReadProgress ) { + if ( ( $curRowsRead % $curReadReportInterval ) == 0 ) { + $this->performanceLog( + $fh, + $curRowsRead . " " . ( microtime( true ) - $baseTime ) . "\n" + ); + $this->output( "\t$curRowsRead rows of $cur table read.\n" ); + } + } + $lastId = $row->cur_id; } - } - $dbw->bufferResults( true ); + } while ( $res->numRows() > 0 ); $this->output( "Finished loading IDs.\n\n" ); $this->performanceLog( $fh,