Migrate to IDatabase::newInsertQueryBuilder

Change-Id: Ic6ebe606f6c54a2f4462237a5bd0ca89952b653b
这个提交包含在:
Umherirrender 2024-04-13 20:03:30 +02:00
父节点 a309fdfec8
当前提交 00768e9f77
共有 11 个文件被更改,包括 138 次插入112 次删除

查看文件

@ -53,15 +53,15 @@ class CentralAuthEditCounter {
$dbw->startAtomic( __METHOD__ );
// Lock the row
$dbw->insert(
'global_edit_count',
[
$dbw->newInsertQueryBuilder()
->insertInto( 'global_edit_count' )
->ignore()
->row( [
'gec_user' => $userId,
'gec_count' => 0
],
__METHOD__,
[ 'IGNORE' ]
);
] )
->caller( __METHOD__ )
->execute();
if ( !$dbw->affectedRows() ) {
// Try one more time after the lock wait
$dbw->endAtomic( __METHOD__ );

查看文件

@ -61,18 +61,18 @@ class GlobalRenameRequestStore {
->setRequested( wfTimestampNow() )
->setStatus( GlobalRenameRequest::PENDING );
$dbw->insert(
'renameuser_queue',
[
$dbw->newInsertQueryBuilder()
->insertInto( 'renameuser_queue' )
->row( [
'rq_name' => $request->getName(),
'rq_wiki' => $request->getWiki(),
'rq_newname' => $request->getNewName(),
'rq_reason' => $request->getReason(),
'rq_requested_ts' => $dbw->timestamp( $request->getRequested() ),
'rq_status' => $request->getStatus(),
],
__METHOD__
);
] )
->caller( __METHOD__ )
->execute();
$request->setId( $dbw->insertId() );
} else {

查看文件

@ -165,6 +165,10 @@ class GlobalRenameUserStatus {
* @return bool
*/
public function setStatuses( array $rows ): bool {
if ( !$rows ) {
return false;
}
$dbw = $this->databaseManager->getCentralPrimaryDB();
$dbw->startAtomic( __METHOD__ );
@ -172,7 +176,11 @@ class GlobalRenameUserStatus {
// If there is duplicate key error, the RDBMs will rollback the INSERT statement.
// http://dev.mysql.com/doc/refman/5.7/en/innodb-error-handling.html
try {
$dbw->insert( 'renameuser_status', $rows, __METHOD__ );
$dbw->newInsertQueryBuilder()
->insertInto( 'renameuser_status' )
->rows( $rows )
->caller( __METHOD__ )
->execute();
$ok = true;
} catch ( DBQueryError $e ) {
$ok = false;
@ -195,7 +203,11 @@ class GlobalRenameUserStatus {
->fetchField();
// (b) Insert the new rows if no conflicts were found
if ( $ok ) {
$dbw->insert( 'renameuser_status', $rows, __METHOD__ );
$dbw->newInsertQueryBuilder()
->insertInto( 'renameuser_status' )
->rows( $rows )
->caller( __METHOD__ )
->execute();
}
}
$dbw->endAtomic( __METHOD__ );

查看文件

@ -937,12 +937,12 @@ class CentralAuthUser implements IDBAccessObject {
'gu_registration' => $dbw->timestamp(),
];
$dbw->insert(
'globaluser',
$data,
__METHOD__,
[ 'IGNORE' ]
);
$dbw->newInsertQueryBuilder()
->insertInto( 'globaluser' )
->ignore()
->row( $data )
->caller( __METHOD__ )
->execute();
$ok = $dbw->affectedRows() === 1;
$this->logger->info(
@ -954,14 +954,14 @@ class CentralAuthUser implements IDBAccessObject {
if ( $ok ) {
// Avoid lazy initialisation of edit count
$dbw->insert(
'global_edit_count',
[
$dbw->newInsertQueryBuilder()
->insertInto( 'global_edit_count' )
->row( [
'gec_user' => $dbw->insertId(),
'gec_count' => 0
],
__METHOD__
);
] )
->caller( __METHOD__ )
->execute();
}
// Kill any cache entries saying we don't exist
@ -991,18 +991,18 @@ class CentralAuthUser implements IDBAccessObject {
}
$dbw = CentralAuthServices::getDatabaseManager()->getCentralPrimaryDB();
$dbw->insert(
'globalnames',
$globalTuples,
__METHOD__,
[ 'IGNORE' ]
);
$dbw->insert(
'localnames',
$tuples,
__METHOD__,
[ 'IGNORE' ]
);
$dbw->newInsertQueryBuilder()
->insertInto( 'globalnames' )
->ignore()
->rows( $globalTuples )
->caller( __METHOD__ )
->execute();
$dbw->newInsertQueryBuilder()
->insertInto( 'localnames' )
->ignore()
->rows( $tuples )
->caller( __METHOD__ )
->execute();
}
/**
@ -1029,12 +1029,11 @@ class CentralAuthUser implements IDBAccessObject {
'gu_hidden_level' => self::HIDDEN_LEVEL_NONE,
];
$dbw->insert(
'globaluser',
$data,
__METHOD__,
[ 'IGNORE' ]
);
$dbw->newInsertQueryBuilder()
->insertInto( 'globaluser' )
->row( $data )
->caller( __METHOD__ )
->execute();
$this->resetState();
return $dbw->affectedRows() != 0;
@ -2087,18 +2086,19 @@ class CentralAuthUser implements IDBAccessObject {
$this->checkWriteMode();
$dbcw = CentralAuthServices::getDatabaseManager()->getCentralPrimaryDB();
$dbcw->insert(
'localuser',
[
$dbcw->newInsertQueryBuilder()
->insertInto( 'localuser' )
->ignore()
->row( [
'lu_wiki' => $wikiID,
'lu_name' => $this->mName,
'lu_attached_timestamp' => $dbcw->timestamp( $ts ),
'lu_attached_method' => $method,
'lu_local_id' => $this->getLocalId( $wikiID ),
'lu_global_id' => $this->getId() ],
__METHOD__,
[ 'IGNORE' ]
);
'lu_global_id' => $this->getId()
] )
->caller( __METHOD__ )
->execute();
$success = $dbcw->affectedRows() === 1;
if ( $wikiID === WikiMap::getCurrentWikiId() ) {
@ -2407,15 +2407,15 @@ class CentralAuthUser implements IDBAccessObject {
*/
public function addLocalName( $wikiID ) {
$dbw = CentralAuthServices::getDatabaseManager()->getCentralPrimaryDB();
$dbw->insert(
'localnames',
[
$dbw->newInsertQueryBuilder()
->insertInto( 'localnames' )
->ignore()
->row( [
'ln_wiki' => $wikiID,
'ln_name' => $this->mName
],
__METHOD__,
[ 'IGNORE' ]
);
] )
->caller( __METHOD__ )
->execute();
}
/**
@ -2475,19 +2475,19 @@ class CentralAuthUser implements IDBAccessObject {
if ( $rows || $this->exists() ) {
$dbw = $databaseManager->getCentralPrimaryDB();
$dbw->startAtomic( __METHOD__ );
$dbw->insert(
'globalnames',
[ 'gn_name' => $this->mName ],
__METHOD__,
[ 'IGNORE' ]
);
$dbw->newInsertQueryBuilder()
->insertInto( 'globalnames' )
->ignore()
->row( [ 'gn_name' => $this->mName ] )
->caller( __METHOD__ )
->execute();
if ( $rows ) {
$dbw->insert(
'localnames',
$rows,
__METHOD__,
[ 'IGNORE' ]
);
$dbw->newInsertQueryBuilder()
->insertInto( 'localnames' )
->ignore()
->rows( $rows )
->caller( __METHOD__ )
->execute();
}
$dbw->endAtomic( __METHOD__ );
}

查看文件

@ -96,6 +96,10 @@ class UsersToRenameDatabaseUpdates {
* @param array[] $info Array with array members that have 'name' and 'wiki' keys
*/
public function batchInsert( array $info ) {
if ( !$info ) {
return;
}
$rows = [];
foreach ( $info as $row ) {
$rows[] = [
@ -104,12 +108,12 @@ class UsersToRenameDatabaseUpdates {
];
}
$this->db->insert(
'users_to_rename',
$rows,
__METHOD__,
[ 'IGNORE' ]
);
$this->db->newInsertQueryBuilder()
->insertInto( 'users_to_rename' )
->ignore()
->rows( $rows )
->caller( __METHOD__ )
->execute();
}
/**

查看文件

@ -135,11 +135,11 @@ class PopulateGlobalEditCount extends Maintenance {
// Do the writes in small batches
foreach ( array_chunk( $inserts, $this->getBatchSize() ) as $insertBatch ) {
$this->beginTransaction( $dbcw, __METHOD__ );
$dbcw->insert(
'global_edit_count',
$insertBatch,
__METHOD__
);
$dbcw->newInsertQueryBuilder()
->insertInto( 'global_edit_count' )
->rows( $insertBatch )
->caller( __METHOD__ )
->execute();
$this->commitTransaction( $dbcw, __METHOD__ );
}

查看文件

@ -57,7 +57,12 @@ class PopulateGlobalRenameLogSearch extends Maintenance {
$count = count( $rows );
$this->output( "Inserting $count rows into log_search\n" );
$dbw = $this->getPrimaryDB();
$dbw->insert( 'log_search', $rows, __METHOD__, [ 'IGNORE' ] );
$dbw->newInsertQueryBuilder()
->insertInto( 'log_search' )
->ignore()
->rows( $rows )
->caller( __METHOD__ )
->execute();
$this->waitForReplication();
}
}

查看文件

@ -164,11 +164,11 @@ class CentralAuthTestUser {
'gu_email_authenticated' => $db->timestamp( $this->emailAuthenticated ),
'gu_home_db' => $this->homeDb,
];
$db->insert(
'globaluser',
$row,
__METHOD__
);
$db->newInsertQueryBuilder()
->insertInto( 'globaluser' )
->row( $row )
->caller( __METHOD__ )
->execute();
// Attach global to local accounts
$db->newDeleteQueryBuilder()
@ -181,7 +181,11 @@ class CentralAuthTestUser {
foreach ( $this->wikis as &$wikiRows ) {
$wikiRows['lu_attached_timestamp'] = $db->timestamp( $wikiRows['lu_attached_timestamp'] );
}
$db->insert( 'localuser', $this->wikis, __METHOD__ );
$db->newInsertQueryBuilder()
->insertInto( 'localuser' )
->rows( $this->wikis )
->caller( __METHOD__ )
->execute();
}
// Setup local wiki user

查看文件

@ -42,15 +42,15 @@ class GlobalGroupIntegrationTest extends MediaWikiIntegrationTestCase {
$caDbw = CentralAuthServices::getDatabaseManager( $this->getServiceContainer() )
->getCentralPrimaryDB();
$caDbw->insert(
'global_group_permissions',
[
$caDbw->newInsertQueryBuilder()
->insertInto( 'global_group_permissions' )
->rows( [
[ 'ggp_group' => 'global-foos', 'ggp_permission' => 'some-global-right' ],
[ 'ggp_group' => 'global-bars', 'ggp_permission' => 'some-other-right' ],
[ 'ggp_group' => 'global-bazes', 'ggp_permission' => 'yet-another-right' ],
],
__METHOD__
);
] )
->caller( __METHOD__ )
->execute();
}
private function getRegisteredTestUser(): User {
@ -77,9 +77,9 @@ class GlobalGroupIntegrationTest extends MediaWikiIntegrationTestCase {
$expiryFuture = time() + 1800;
$caDbw = CentralAuthServices::getDatabaseManager( $services )->getCentralPrimaryDB();
$caDbw->insert(
'global_user_groups',
[
$caDbw->newInsertQueryBuilder()
->insertInto( 'global_user_groups' )
->rows( [
[ 'gug_user' => $caUser->getId(), 'gug_group' => 'global-foos', 'gug_expiry' => null, ],
[
'gug_user' => $caUser->getId(),
@ -91,9 +91,9 @@ class GlobalGroupIntegrationTest extends MediaWikiIntegrationTestCase {
'gug_group' => 'global-bazes',
'gug_expiry' => $caDbw->timestamp( '20201201121212' ),
],
],
__METHOD__
);
] )
->caller( __METHOD__ )
->execute();
$caUser->invalidateCache();
$permissionManager->invalidateUsersRightsCache( $user );

查看文件

@ -31,14 +31,15 @@ class GlobalGroupLookupTest extends MediaWikiIntegrationTestCase {
protected function setUp(): void {
parent::setUp();
$this->db->insert(
'global_group_permissions',
[
$this->db->newInsertQueryBuilder()
->insertInto( 'global_group_permissions' )
->rows( [
[ 'ggp_group' => 'steward', 'ggp_permission' => 'read' ],
[ 'ggp_group' => 'steward', 'ggp_permission' => 'delete' ],
[ 'ggp_group' => 'global-sysop', 'ggp_permission' => 'read' ],
]
);
] )
->caller( __METHOD__ )
->execute();
}
/**

查看文件

@ -43,15 +43,15 @@ class SpecialGlobalGroupMembershipTest extends SpecialPageTestBase {
$caDbw = CentralAuthServices::getDatabaseManager( $this->getServiceContainer() )
->getCentralPrimaryDB();
$caDbw->insert(
'global_group_permissions',
[
$caDbw->newInsertQueryBuilder()
->insertInto( 'global_group_permissions' )
->rows( [
[ 'ggp_group' => 'group-one', 'ggp_permission' => 'right-one' ],
[ 'ggp_group' => 'group-two', 'ggp_permission' => 'right-two' ],
[ 'ggp_group' => 'group-three', 'ggp_permission' => 'right-three' ],
],
__METHOD__
);
] )
->caller( __METHOD__ )
->execute();
}
protected function newSpecialPage(): SpecialGlobalGroupMembership {