Migrate to IDatabase::newInsertQueryBuilder
Change-Id: Ic6ebe606f6c54a2f4462237a5bd0ca89952b653b
这个提交包含在:
父节点
a309fdfec8
当前提交
00768e9f77
|
@ -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 {
|
||||
|
|
正在加载...
在新工单中引用