Convert MovePage to startAtomic()/endAtomic()
* This makes moves of a page and its subpages atomic as one operation. Note that $wgMaximumMovedPages already bounds the number of page rows changed. * The TitleMoveComplete hook will fire for all titles after the operation rather than after each title move. * Remove LocalFile comment about it commiting the transaction because LocalFile::lock()/unlock() check trxLevel() and reference count. Change-Id: Ic7f6964f94f0b0f0bedc27012e5b5b012a4afdb2
This commit is contained in:
parent
c3698b050e
commit
9e51328790
1 changed files with 7 additions and 6 deletions
|
|
@ -247,7 +247,7 @@ class MovePage {
|
|||
RepoGroup::singleton()->clearCache( $this->newTitle ); # clear false negative cache
|
||||
}
|
||||
|
||||
$dbw->begin( __METHOD__ ); # If $file was a LocalFile, its transaction would have closed our own.
|
||||
$dbw->startAtomic( __METHOD__ );
|
||||
$pageid = $this->oldTitle->getArticleID( Title::GAID_FOR_UPDATE );
|
||||
$protected = $this->oldTitle->isProtected();
|
||||
|
||||
|
|
@ -369,12 +369,13 @@ class MovePage {
|
|||
WatchedItem::duplicateEntries( $this->oldTitle, $this->newTitle );
|
||||
}
|
||||
|
||||
$dbw->commit( __METHOD__ );
|
||||
$dbw->endAtomic( __METHOD__ );
|
||||
|
||||
$params = array( $this->oldTitle, $this->newTitle, $user, $pageid, $redirid, $reason );
|
||||
$dbw->onTransactionIdle( function () use ( $params ) {
|
||||
Hooks::run( 'TitleMoveComplete', $params );
|
||||
} );
|
||||
|
||||
Hooks::run(
|
||||
'TitleMoveComplete',
|
||||
array( &$this->oldTitle, &$this->newTitle, &$user, $pageid, $redirid, $reason )
|
||||
);
|
||||
return Status::newGood();
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue