$dbw->begin();
$dbw->update( 'site_stats',
array( 'ss_active_users' => intval($activeUsers) ),
- array('1 = 1'), __METHOD__, array( 'LIMIT' => 1 )
+ array( 'ss_row_id' => 1 ), __METHOD__, array( 'LIMIT' => 1 )
);
$dbw->commit();
}
-- More statistics, for version 1.14
ALTER TABLE /*$wgDBprefix*/site_stats ADD ss_active_users bigint default '-1';
-SELECT @activeusers := COUNT( DISTINCT rc_user_text ) FROM /*$wgDBprefix*/recentchanges
-WHERE rc_user != 0 AND rc_bot = 0 AND rc_log_type != 'newusers';
-UPDATE /*$wgDBprefix*/site_stats SET ss_active_users=@activeusers;
// 1.14
array( 'add_field', 'site_stats', 'ss_active_users', 'patch-ss_active_users.sql' ),
+ array( 'do_active_users_init' )
);
}
}
+function do_active_users_init() {
+ global $wgDatabase;
+ $activeUsers = $wgDatabase->selectField( 'site_stats', 'ss_active_users',
+ array( 'ss_row_id' => 1 ), __METHOD__ );
+ if( $activeUsers === -1 ) {
+ $activeUsers = $wgDatabase->selectField( 'recentchanges',
+ 'COUNT( DISTINCT rc_user_text )',
+ array( 'rc_user != 0', 'rc_bot' => 0, "rc_log_type != 'newusers'" ), __METHOD__
+ );
+ $wgDatabase->update( 'site_stats',
+ array( 'ss_active_users' => intval($activeUsers) ),
+ array( 'ss_row_id' => 1 ), __METHOD__, array( 'LIMIT' => 1 )
+ );
+ }
+ echo( "...ss_active_users user count set...\n" );
+}
+
function purge_cache() {
global $wgDatabase;
# We can't guarantee that the user will be able to use TRUNCATE,