Merge "maintenance: Script to rename titles for Unicode uppercasing changes"
[lhc/web/wiklou.git] / maintenance / purgeChangedPages.php
index 0ef2a99..8ecd810 100644 (file)
@@ -23,7 +23,7 @@
 
 require_once __DIR__ . '/Maintenance.php';
 
-use Wikimedia\Rdbms\ResultWrapper;
+use Wikimedia\Rdbms\IResultWrapper;
 
 /**
  * Maintenance script that sends purge requests for pages edited in a date
@@ -136,9 +136,9 @@ class PurgeChangedPages extends Maintenance {
                                }
                        }
 
-                       // Send batch of purge requests out to squids
-                       $squid = new CdnCacheUpdate( $urls, count( $urls ) );
-                       $squid->doUpdate();
+                       // Send batch of purge requests out to CDN servers
+                       $cdn = new CdnCacheUpdate( $urls, count( $urls ) );
+                       $cdn->doUpdate();
 
                        if ( $this->hasOption( 'sleep-per-batch' ) ) {
                                // sleep-per-batch is milliseconds, usleep wants micro seconds.
@@ -163,30 +163,38 @@ class PurgeChangedPages extends Maintenance {
         *
         * @todo move this elsewhere
         *
-        * @param ResultWrapper $res Query result sorted by $column (ascending)
+        * @param IResultWrapper $res Query result sorted by $column (ascending)
         * @param string $column
         * @param int $limit
         * @return array (array of rows, string column value)
         */
-       protected function pageableSortedRows( ResultWrapper $res, $column, $limit ) {
+       protected function pageableSortedRows( IResultWrapper $res, $column, $limit ) {
                $rows = iterator_to_array( $res, false );
-               $count = count( $rows );
-               if ( !$count ) {
-                       return [ [], null ]; // nothing to do
-               } elseif ( $count < $limit ) {
-                       return [ $rows, $rows[$count - 1]->$column ]; // no more rows left
+
+               // Nothing to do
+               if ( !$rows ) {
+                       return [ [], null ];
+               }
+
+               $lastValue = end( $rows )->$column;
+               if ( count( $rows ) < $limit ) {
+                       return [ $rows, $lastValue ];
                }
-               $lastValue = $rows[$count - 1]->$column; // should be the highest
-               for ( $i = $count - 1; $i >= 0; --$i ) {
-                       if ( $rows[$i]->$column === $lastValue ) {
-                               unset( $rows[$i] );
-                       } else {
+
+               for ( $i = count( $rows ) - 1; $i >= 0; --$i ) {
+                       if ( $rows[$i]->$column !== $lastValue ) {
                                break;
                        }
+
+                       unset( $rows[$i] );
+               }
+
+               // No more rows left
+               if ( !$rows ) {
+                       return [ [], null ];
                }
-               $lastValueLeft = count( $rows ) ? $rows[count( $rows ) - 1]->$column : null;
 
-               return [ $rows, $lastValueLeft ];
+               return [ $rows, end( $rows )->$column ];
        }
 }