Deprecate broken accessor and add a new one
[mediawiki.git] / maintenance / populateLogUsertext.inc
blob9e74ce97ffc2ff63d6c6717accd327fe140a8889
1 <?php
2 /**
3  * Makes the required database updates for the log_user_text column
4  *
5  * Run via update.php or directly through populateLogUsertext.php
6  *
7  * @file
8  * @ingroup Maintenance
9  */
11 define( 'LOG_USERTEXT_BATCH_SIZE', 100 );
13 function populate_logusertext( $db ) {
14         $start = $db->selectField( 'logging', 'MIN(log_id)', false, __FUNCTION__ );
15         if( !$start ) {
16                 echo "Nothing to do.\n";
17                 return true;
18         }
19         $end = $db->selectField( 'logging', 'MAX(log_id)', false, __FUNCTION__ );
20         
21         # Do remaining chunk
22         $end += LOG_USERTEXT_BATCH_SIZE - 1;
23         $blockStart = $start;
24         $blockEnd = $start + LOG_USERTEXT_BATCH_SIZE - 1;
25         while( $blockEnd <= $end ) {
26                 echo "...doing log_id from $blockStart to $blockEnd\n";
27                 $cond = "log_id BETWEEN $blockStart AND $blockEnd AND log_user = user_id";
28                 $res = $db->select( array('logging','user'), 
29                         array('log_id','user_name'), $cond, __FUNCTION__ );
30                 $batch = array();
31                 $db->begin();
32                 while( $row = $db->fetchObject( $res ) ) {
33                         $db->update( 'logging', array('log_user_text' => $row->user_name),
34                                 array('log_id' => $row->log_id), __FUNCTION__ );
35                 }
36                 $db->commit();
37                 $blockStart += LOG_USERTEXT_BATCH_SIZE;
38                 $blockEnd += LOG_USERTEXT_BATCH_SIZE;
39                 wfWaitForSlaves( 5 );
40         }
41         if( $db->insert(
42                         'updatelog',
43                         array( 'ul_key' => 'populate log_usertext' ),
44                         __FUNCTION__,
45                         'IGNORE'
46                 )
47         ) {
48                 wfOut( "log_usertext population complete.\n" );
49                 return true;
50         } else {
51                 wfOut( "Could not insert log_usertext population row.\n" );
52                 return false;
53         }