36 $dbr = $this->loadBalancer->getConnection( DB_REPLICA,
'vslow' );
38 $actorQuery = ActorMigration::newMigration()->getJoin(
'rev_user' );
40 $res = $dbr->newSelectQueryBuilder()
42 'rev_user_text' => $actorQuery[
'fields'][
'rev_user_text'],
43 'lastedit' =>
'MAX(rev_timestamp)',
44 'count' =>
'COUNT(page_id)',
47 ->join(
'revision',
null,
'page_id=rev_page' )
48 ->tables( $actorQuery[
'tables'] )
50 'page_title' . $dbr->buildLike( $dbr->anyString(),
'/', $code ),
51 'page_namespace' => $this->options->get(
'TranslateMessageNamespaces' ),
53 ->groupBy( $actorQuery[
'fields'][
'rev_user_text'] )
55 ->joinConds( $actorQuery[
'joins'] )
56 ->caller( __METHOD__ )
60 foreach ( $res as $row ) {
63 self::USER_NAME => $row->rev_user_text,
64 self::USER_TRANSLATIONS => (int)$row->count,
65 self::USER_LAST_ACTIVITY => $row->lastedit,
81 $dbr = $this->loadBalancer->getConnection( DB_REPLICA,
'vslow' );
83 $actorQuery = ActorMigration::newMigration()->getJoin(
'rev_user' );
85 $res = $dbr->newSelectQueryBuilder()
87 'rev_user_text' => $actorQuery[
'fields'][
'rev_user_text'],
88 'lang' =>
'substring_index(page_title, \'/\', -1)',
89 'lastedit' =>
'MAX(rev_timestamp)',
90 'count' =>
'COUNT(page_id)',
93 ->join(
'revision',
null,
'page_id=rev_page' )
94 ->tables( $actorQuery[
'tables'] )
96 'page_title' . $dbr->buildLike( $dbr->anyString(),
'/', $dbr->anyString() ),
97 'page_namespace' => $this->options->get(
'TranslateMessageNamespaces' ),
99 ->groupBy( [
'lang', $actorQuery[
'fields'][
'rev_user_text'] ] )
101 ->joinConds( $actorQuery[
'joins'] )
102 ->caller( __METHOD__ )
106 foreach ( $res as $row ) {
108 $data[$row->lang][] = [
109 self::USER_NAME => $row->rev_user_text,
110 self::USER_TRANSLATIONS => (int)$row->count,
111 self::USER_LAST_ACTIVITY => $row->lastedit,