From 370e83bb0dfd0c70de268c93bf07ad5ee0897192 Mon Sep 17 00:00:00 2001 From: Pierre Schmitz Date: Fri, 15 Aug 2008 01:29:47 +0200 Subject: Update auf 1.13.0 --- maintenance/populateCategory.inc | 85 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 maintenance/populateCategory.inc (limited to 'maintenance/populateCategory.inc') diff --git a/maintenance/populateCategory.inc b/maintenance/populateCategory.inc new file mode 100644 index 00000000..3d04a30b --- /dev/null +++ b/maintenance/populateCategory.inc @@ -0,0 +1,85 @@ +selectRow( + 'updatelog', + '1', + array( 'ul_key' => 'populate category' ), + __FUNCTION__ + ); + if( $row ) { + echo "Category table already populated. Use php ". + "maintenance/populateCategory.php\n--force from the command line ". + "to override.\n"; + return true; + } + } + + $maxlag = intval( $maxlag ); + $throttle = intval( $throttle ); + $force = (bool)$force; + if( $begin !== '' ) { + $where = 'cl_to > '.$dbw->addQuotes( $begin ); + } else { + $where = null; + } + $i = 0; + + while( true ) { + # Find which category to update + $row = $dbw->selectRow( + 'categorylinks', + 'cl_to', + $where, + __FUNCTION__, + array( + 'ORDER BY' => 'cl_to' + ) + ); + if( !$row ) { + # Done, hopefully. + break; + } + $name = $row->cl_to; + $where = 'cl_to > '.$dbw->addQuotes( $name ); + + # Use the row to update the category count + $cat = Category::newFromName( $name ); + if( !is_object( $cat ) ) { + echo "The category named $name is not valid?!\n"; + } else { + $cat->refreshCounts(); + } + + ++$i; + if( !($i % REPORTING_INTERVAL) ) { + echo "$name\n"; + wfWaitForSlaves( $maxlag ); + } + usleep( $throttle*1000 ); + } + + if( $dbw->insert( + 'updatelog', + array( 'ul_key' => 'populate category' ), + __FUNCTION__, + 'IGNORE' + ) + ) { + echo "Category population complete.\n"; + return true; + } else { + echo "Could not insert category population row.\n"; + return false; + } +} -- cgit v1.2.2