3 require_once "commandLine.inc";
5 // @fixme: add replication-friendly batch mode
7 $dbw = wfGetDB( DB_MASTER
);
8 $user = $dbw->tableName( 'user' );
9 $revision = $dbw->tableName( 'revision' );
11 $dbver = $dbw->getServerVersion();
12 if( ($dbw instanceof DatabaseMySql
&& version_compare( $dbver, '4.1' ) < 0)
13 ||
isset( $options['force-mysql4'] ) ) {
15 echo "Warning: MySQL $dbver; using hacky MySQL 4.0 compatibility query...\n";
16 $sql = "CREATE TEMPORARY TABLE temp_editcount (
18 temp_user_editcount INT
22 $sql = "INSERT INTO temp_editcount
23 (temp_user_id, temp_user_editcount)
24 SELECT rev_user, COUNT(rev_user)
25 FROM $revision GROUP BY rev_user";
29 LEFT OUTER JOIN temp_editcount ON user_id=temp_user_id
30 SET user_editcount=IF(temp_user_editcount IS NULL,0,temp_user_editcount)";
33 // Subselect should work on modern MySQLs etc
34 $sql = "UPDATE $user SET user_editcount=(SELECT COUNT(*) FROM $revision WHERE rev_user=user_id)";