following syntax:
$dbw = wfGetDB( DB_MASTER );
-$dbw->begin();
+$dbw->begin( __METHOD__ );
/* Do queries */
-$dbw->commit();
+$dbw->commit( __METHOD__ );
Use of locking reads (e.g. the FOR UPDATE clause) is not advised. They
are poorly implemented in InnoDB and will cause regular deadlock errors.
if ( $watchers ) {
// Update wl_notificationtimestamp for all watching users except
// the editor
- $dbw->begin();
+ $dbw->begin( __METHOD__ );
$dbw->update( 'watchlist',
array( /* SET */
'wl_notificationtimestamp' => $dbw->timestamp( $timestamp )
'wl_user' => $watchers
), __METHOD__
);
- $dbw->commit();
+ $dbw->commit( __METHOD__ );
}
}
protected function applySchema() {
if ( !( $this->mSchemaSet ) ) {
$this->mSchemaSet = true;
- $this->begin();
+ $this->begin( __METHOD__ );
$this->doQuery( "SET SCHEMA = $this->mSchema" );
- $this->commit();
+ $this->commit( __METHOD__ );
}
}
$res = true;
// If we are not in a transaction, we need to be for savepoint trickery
if ( !$this->mTrxLevel ) {
- $this->begin();
+ $this->begin( __METHOD__ );
}
$sql = "INSERT INTO $table ( " . implode( ',', $keys ) . ' ) VALUES ';
$stmt = $this->prepare( $sql );
// start a transaction/enter transaction mode
- $this->begin();
+ $this->begin( __METHOD__ );
if ( !$ignore ) {
//$first = true;
if ( $ignore ) {
$olde = error_reporting( $olde );
if ( $didbegin ) {
- $this->commit();
+ $this->commit( __METHOD__ );
}
// Set the affected row count for the whole operation
$didbegin = 0;
if ( $ignore ) {
if( !$this->mTrxLevel ) {
- $this->begin();
+ $this->begin( __METHOD__ );
$didbegin = 1;
}
$olde = error_reporting( 0 );
}
$olde = error_reporting( $olde );
if( $didbegin ) {
- $this->commit();
+ $this->commit( __METHOD__ );
}
// Set the affected row count for the whole operation
}
$dbw = $this->repo->getMasterDB();
- $dbw->begin();
+ $dbw->begin( __METHOD__ );
if ( !$props ) {
$props = $this->repo->getFileProps( $this->getVirtualUrl() );
# Commit the transaction now, in case something goes wrong later
# The most important thing is that files don't get lost, especially archives
- $dbw->commit();
+ $dbw->commit( __METHOD__ );
# Save to cache and purge the squid
# We shall not saveToCache before the commit since otherwise
$dbw = $this->repo->getMasterDB();
if ( !$this->locked ) {
- $dbw->begin();
+ $dbw->begin( __METHOD__ );
$this->locked++;
}
--$this->locked;
if ( !$this->locked ) {
$dbw = $this->repo->getMasterDB();
- $dbw->commit();
+ $dbw->commit( __METHOD__ );
}
}
}
function unlockAndRollback() {
$this->locked = false;
$dbw = $this->repo->getMasterDB();
- $dbw->rollback();
+ $dbw->rollback( __METHOD__ );
}
} // LocalFile class
return $statusMove;
}
- $this->db->begin();
+ $this->db->begin( __METHOD__ );
$statusDb = $this->doDBUpdates();
wfDebugLog( 'imagemove', "Renamed {$this->file->getName()} in database: {$statusDb->successCount} successes, {$statusDb->failCount} failures" );
if ( !$statusDb->isGood() ) {
- $this->db->rollback();
+ $this->db->rollback( __METHOD__ );
// Something went wrong with the DB updates, so remove the target files
$this->cleanupTarget( $triplets );
$statusDb->ok = false;
return $statusDb;
}
- $this->db->commit();
+ $this->db->commit( __METHOD__ );
// Everything went ok, remove the source files
$this->cleanupSource( $triplets );
*/
function recordOldUpload( $srcPath, $archiveName, $timestamp, $comment, $user ) {
$dbw = $this->repo->getMasterDB();
- $dbw->begin();
+ $dbw->begin( __METHOD__ );
$dstPath = $this->repo->getZonePath( 'public' ) . '/' . $this->getRel();
$props = $this->repo->getFileProps( $dstPath );
), __METHOD__
);
- $dbw->commit();
+ $dbw->commit( __METHOD__ );
return true;
}
-
+
}
$fullName = $this->buildFullUserName( $dbUser, $host );
if( !$this->userDefinitelyExists( $dbUser, $host ) ) {
try{
- $this->db->begin();
+ $this->db->begin( __METHOD__ );
$this->db->query( "CREATE USER $fullName IDENTIFIED BY $escPass", __METHOD__ );
- $this->db->commit();
+ $this->db->commit( __METHOD__ );
$grantableNames[] = $fullName;
} catch( DBQueryError $dqe ) {
if( $this->db->lastErrno() == 1396 /* ER_CANNOT_USER */ ) {
$dbAllTables = $this->db->addIdentifierQuotes( $dbName ) . '.*';
foreach( $grantableNames as $name ) {
try {
- $this->db->begin();
+ $this->db->begin( __METHOD__ );
$this->db->query( "GRANT ALL PRIVILEGES ON $dbAllTables TO $name", __METHOD__ );
- $this->db->commit();
+ $this->db->commit( __METHOD__ );
} catch( DBQueryError $dqe ) {
- $this->db->rollback();
+ $this->db->rollback( __METHOD__ );
$status->fatal( 'config-install-user-grant-failed', $dbUser, $dqe->getText() );
}
}
*/
$conn = $status->value;
$conn->clearFlag( DBO_TRX );
- $conn->commit();
+ $conn->commit( __METHOD__ );
$this->pgConns[$type] = $conn;
}
return $status;
}
function commitChanges() {
- $this->db->commit();
+ $this->db->commit( __METHOD__ );
return Status::newGood();
}
$dbw = wfGetDB( DB_MASTER );
- $dbw->begin();
+ $dbw->begin( __METHOD__ );
$row = $dbw->selectRow(
'job',
);
if ( $row === false ) {
- $dbw->commit();
+ $dbw->commit( __METHOD__ );
wfProfileOut( __METHOD__ );
return false;
}
/* Ensure we "own" this row */
$dbw->delete( 'job', array( 'job_id' => $row->job_id ), __METHOD__ );
$affected = $dbw->affectedRows();
- $dbw->commit();
+ $dbw->commit( __METHOD__ );
if ( $affected == 0 ) {
wfProfileOut( __METHOD__ );
$dbw = wfGetDB( DB_MASTER );
$dbw->delete( 'job', array( 'job_id' => $row->job_id ), __METHOD__ );
$affected = $dbw->affectedRows();
- $dbw->commit();
+ $dbw->commit( __METHOD__ );
if ( !$affected ) {
// Failed, someone else beat us to it
// Delete the random row
$dbw->delete( 'job', array( 'job_id' => $row->job_id ), __METHOD__ );
$affected = $dbw->affectedRows();
- $dbw->commit();
+ $dbw->commit( __METHOD__ );
if ( !$affected ) {
// Random job gone before we exclusively deleted it
$rows[] = $job->insertFields();
if ( count( $rows ) >= 50 ) {
# Do a small transaction to avoid slave lag
- $dbw->begin();
+ $dbw->begin( __METHOD__ );
$dbw->insert( 'job', $rows, __METHOD__, 'IGNORE' );
- $dbw->commit();
+ $dbw->commit( __METHOD__ );
$rows = array();
}
}
if ( $rows ) { // last chunk
- $dbw->begin();
+ $dbw->begin( __METHOD__ );
$dbw->insert( 'job', $rows, __METHOD__, 'IGNORE' );
- $dbw->commit();
+ $dbw->commit( __METHOD__ );
}
wfIncrStats( 'job-insert', count( $jobs ) );
}
$fields = $this->insertFields();
unset( $fields['job_id'] );
$dbw = wfGetDB( DB_MASTER );
- $dbw->begin();
+ $dbw->begin( __METHOD__ );
$dbw->delete( 'job', $fields, __METHOD__ );
$affected = $dbw->affectedRows();
- $dbw->commit();
+ $dbw->commit( __METHOD__ );
if ( $affected ) {
wfIncrStats( 'job-dup-delete', $affected );
}
public function purgeRedundantText( $delete = true ) {
# Data should come off the master, wrapped in a transaction
$dbw = $this->getDB( DB_MASTER );
- $dbw->begin();
+ $dbw->begin( __METHOD__ );
$tbl_arc = $dbw->tableName( 'archive' );
$tbl_rev = $dbw->tableName( 'revision' );
}
# Done
- $dbw->commit();
+ $dbw->commit( __METHOD__ );
}
/**
} else {
$this->output( "renaming $path to $finalPath\n" );
// @todo FIXME: Should this use File::move()?
- $db->begin();
+ $db->begin( __METHOD__ );
$db->update( 'image',
array( 'img_name' => $final ),
array( 'img_name' => $orig ),
}
}
if ( rename( $path, $finalPath ) ) {
- $db->commit();
+ $db->commit( __METHOD__ );
} else {
$this->error( "RENAME FAILED" );
- $db->rollback();
+ $db->rollback( __METHOD__ );
}
}
}
$this->output( "False match\n" );
} else {
$dbw = wfGetDB( DB_MASTER );
- $dbw->begin();
+ $dbw->begin( __METHOD__ );
$page = WikiPage::factory( $title );
if ( !$rev ) {
// Didn't find a non-spammy revision, blank the page
$page->doEdit( $rev->getText(), wfMsgForContent( 'spam_reverting', $domain ),
EDIT_UPDATE, $rev->getId() );
}
- $dbw->commit();
+ $dbw->commit( __METHOD__ );
}
}
}
static public function doDelete( $output, $force ) {
# Data should come off the master, wrapped in a transaction
$dbw = wfGetDB( DB_MASTER );
- $dbw->begin();
+ $dbw->begin( __METHOD__ );
$tbl_arch = $dbw->tableName( 'filearchive' );
$repo = RepoGroup::singleton()->getLocalRepo();
# Get "active" revisions from the filearchive table
}
}
}
- $dbw->commit();
+ $dbw->commit( __METHOD__ );
$output->handleOutput( "Done! [$count file(s)]\n" );
}
}
\ No newline at end of file
static public function doDelete( $maint ) {
$dbw = wfGetDB( DB_MASTER );
- $dbw->begin();
+ $dbw->begin( __METHOD__ );
$tbl_arch = $dbw->tableName( 'archive' );
# This bit's done
# Purge redundant text records
- $dbw->commit();
+ $dbw->commit( __METHOD__ );
if ( $deletedRows ) {
$maint->purgeRedundantText( true );
}
}
$this->output( $title->getPrefixedText() );
- $dbw->begin();
+ $dbw->begin( __METHOD__ );
if ( $title->getNamespace() == NS_FILE ) {
$img = wfFindFile( $title );
if ( $img && $img->isLocal() && !$img->delete( $reason ) ) {
$page = WikiPage::factory( $title );
$error = '';
$success = $page->doDeleteArticle( $reason, false, 0, false, $error, $user );
- $dbw->commit();
+ $dbw->commit( __METHOD__ );
if ( $success ) {
$this->output( " Deleted!\n" );
} else {
$dbw->ping();
$title = Title::makeTitle( $row->page_namespace, $row->page_title );
$page = WikiPage::factory( $title );
- $dbw->begin();
+ $dbw->begin( __METHOD__ );
$error = ''; // Passed by ref
$page->doDeleteArticle( 'No longer required', false, 0, false, $error, $user );
- $dbw->commit();
+ $dbw->commit( __METHOD__ );
}
$this->output( 'done!', 'msg' );
# Data should come off the master, wrapped in a transaction
$dbw = wfGetDB( DB_MASTER );
- $dbw->begin();
+ $dbw->begin( __METHOD__ );
$tbl_pag = $dbw->tableName( 'page' );
$tbl_rev = $dbw->tableName( 'revision' );
# This bit's done
# Purge redundant text records
- $dbw->commit();
+ $dbw->commit( __METHOD__ );
if ( $delete ) {
$this->purgeRedundantText( true );
}
$report = $this->hasOption( 'report' );
$dbw = wfGetDB( DB_MASTER );
- $dbw->begin();
+ $dbw->begin( __METHOD__ );
list( $page, $revision ) = $dbw->tableNamesN( 'page', 'revision' );
# Find all the orphaned revisions
$this->output( "done.\n" );
# Close the transaction and call the script to purge unused text records
- $dbw->commit();
+ $dbw->commit( __METHOD__ );
$this->purgeRedundantText( true );
}
private function desyncFixPage( $pageID ) {
# Check for a corrupted page_latest
$dbw = wfGetDB( DB_MASTER );
- $dbw->begin();
+ $dbw->begin( __METHOD__ );
$realLatest = $dbw->selectField( 'page', 'page_latest', array( 'page_id' => $pageID ),
__METHOD__, 'FOR UPDATE' );
# list( $masterFile, $masterPos ) = $dbw->getMasterPos();
}
if ( !$found ) {
$this->output( "page_id $pageID seems fine\n" );
- $dbw->commit();
+ $dbw->commit( __METHOD__ );
return;
}
}
$this->output( "done\n" );
}
- $dbw->commit();
+ $dbw->commit( __METHOD__ );
}
}
// Migrate users over in batches...
while ( $blockEnd <= $end ) {
$this->output( "Doing users $blockStart to $blockEnd\n" );
- $dbw->begin();
+ $dbw->begin( __METHOD__ );
$dbw->update( 'user_groups',
array( 'ug_group' => $newGroup ),
array( 'ug_group' => $oldGroup,
"ug_user BETWEEN $blockStart AND $blockEnd" )
);
$count += $dbw->affectedRows();
- $dbw->commit();
+ $dbw->commit( __METHOD__ );
$blockStart += $this->mBatchSize;
$blockEnd += $this->mBatchSize;
wfWaitForSlaves();
$delete = $this->getOption( 'delete', false );
$all = $this->getOption( 'all', false );
$dbw = wfGetDB( DB_MASTER );
- $dbw->begin();
+ $dbw->begin( __METHOD__ );
$tbl_pag = $dbw->tableName( 'page' );
$tbl_rev = $dbw->tableName( 'revision' );
// I already have the id & revs
if ( $delete ) {
$dbw->query( "DELETE FROM $tbl_pag WHERE page_id = $id" );
- $dbw->commit();
+ $dbw->commit( __METHOD__ );
// Delete revisions as appropriate
$child = $this->runChild( 'NukePage', 'nukePage.php' );
$child->deleteRevisions( $revs );
$this->output( "skip: " . $title->getPrefixedText() . "\n" );
}
}
- $dbw->commit();
+ $dbw->commit( __METHOD__ );
if ( $n_deleted > 0 ) {
# update statistics - better to decrement existing count, or just count
$delete = $this->getOption( 'delete', false );
$dbw = wfGetDB( DB_MASTER );
- $dbw->begin();
+ $dbw->begin( __METHOD__ );
$tbl_pag = $dbw->tableName( 'page' );
$tbl_rec = $dbw->tableName( 'recentchanges' );
}
} else {
$this->output( "not found in database.\n" );
- $dbw->commit();
+ $dbw->commit( __METHOD__ );
}
}
public function deleteRevisions( $ids ) {
$dbw = wfGetDB( DB_MASTER );
- $dbw->begin();
+ $dbw->begin( __METHOD__ );
$tbl_rev = $dbw->tableName( 'revision' );
$set = implode( ', ', $ids );
$dbw->query( "DELETE FROM $tbl_rev WHERE rev_id IN ( $set )" );
- $dbw->commit();
+ $dbw->commit( __METHOD__ );
}
}
$res = $db->select( array( 'logging', 'user' ),
array( 'log_id', 'user_name' ), $cond, __METHOD__ );
- $db->begin();
+ $db->begin( __METHOD__ );
foreach ( $res as $row ) {
$db->update( 'logging', array( 'log_user_text' => $row->user_name ),
array( 'log_id' => $row->log_id ), __METHOD__ );
}
- $db->commit();
+ $db->commit( __METHOD__ );
$blockStart += $this->mBatchSize;
$blockEnd += $this->mBatchSize;
wfWaitForSlaves();
AND $idCol IS NOT NULL AND {$prefix}_sha1 = ''";
$res = $db->select( $table, '*', $cond, __METHOD__ );
- $db->begin();
+ $db->begin( __METHOD__ );
foreach ( $res as $row ) {
if ( $this->upgradeRow( $row, $table, $idCol, $prefix ) ) {
$count++;
}
}
- $db->commit();
+ $db->commit( __METHOD__ );
$blockStart += $this->mBatchSize;
$blockEnd += $this->mBatchSize;
$res = $db->select( 'archive', '*', array( 'ar_rev_id IS NULL' ), __METHOD__ );
$updateSize = 0;
- $db->begin();
+ $db->begin( __METHOD__ );
foreach ( $res as $row ) {
if ( $this->upgradeLegacyArchiveRow( $row ) ) {
++$count;
}
if ( ++$updateSize >= 100 ) {
$updateSize = 0;
- $db->commit();
+ $db->commit( __METHOD__ );
$this->output( "Commited row with ar_timestamp={$row->ar_timestamp}\n" );
wfWaitForSlaves();
- $db->begin();
+ $db->begin( __METHOD__ );
}
}
- $db->commit();
+ $db->commit( __METHOD__ );
}
protected function upgradeRow( $row, $table, $idCol, $prefix ) {
# Data should come off the master, wrapped in a transaction
$dbw = wfGetDB( DB_MASTER );
- $dbw->begin();
+ $dbw->begin( __METHOD__ );
$tbl_arc = $dbw->tableName( 'archive' );
$tbl_rev = $dbw->tableName( 'revision' );
}
# Done
- $dbw->commit();
+ $dbw->commit( __METHOD__ );
}
*/
private function doReassignEdits( &$from, &$to, $rc = false, $report = false ) {
$dbw = wfGetDB( DB_MASTER );
- $dbw->begin();
+ $dbw->begin( __METHOD__ );
# Count things
$this->output( "Checking current edits..." );
}
}
- $dbw->commit();
+ $dbw->commit( __METHOD__ );
return (int)$total;
}
array( 'ORDER BY' => 'page_id ASC', 'USE INDEX' => 'PRIMARY' )
);
- $dbw->begin(); // for any changes
+ $dbw->begin( __METHOD__ ); // for any changes
foreach ( $res as $row ) {
$rebuilt = false;
$wgRequestTime = microtime( true ); # bug 22852
$this->output( "Page {$row->page_id} not cacheable\n" );
}
}
- $dbw->commit(); // commit any changes (just for sanity)
+ $dbw->commit( __METHOD__ ); // commit any changes (just for sanity)
$blockStart += $this->mBatchSize;
$blockEnd += $this->mBatchSize;
return;
}
- $dbw->begin();
+ $dbw->begin( __METHOD__ );
$options = new ParserOptions;
$parserOutput = $wgParser->parse( $revision->getText(), $title, $options, true, true, $revision->getId() );
$update = new LinksUpdate( $title, $parserOutput, false );
$update->doUpdate();
- $dbw->commit();
+ $dbw->commit( __METHOD__ );
}
/**
'image' => 'img', 'oldimage' => 'oi', 'filearchive' => 'fa' );
$count = 0;
- $dbo->begin();
+ $dbo->begin( __METHOD__ );
foreach ( $checks as $table => $fprefix ) {
$conds = array( $fprefix . '_user' => $id );
$count += (int)$dbo->selectField( $table, 'COUNT(*)', $conds, __METHOD__ );
}
- $dbo->commit();
+ $dbo->commit( __METHOD__ );
return $count == 0;
}
if ( !$dryRun ) {
// Reset the text row to point to the original copy
- $dbw->begin();
+ $dbw->begin( __METHOD__ );
$dbw->update(
'text',
// SET
),
__METHOD__
);
- $dbw->commit();
+ $dbw->commit( __METHOD__ );
$this->waitForSlaves();
}
exit( 1 );
}
$dbw = wfGetDB( DB_MASTER );
- $dbw->begin();
+ $dbw->begin( __METHOD__ );
$dbw->update( 'text',
array( // set
'old_text' => $url,
array( 'bt_text_id' => $textId ),
__METHOD__
);
- $dbw->commit();
+ $dbw->commit( __METHOD__ );
}
/**
//
// We do a locking read to prevent closer-run race conditions.
$dbw = wfGetDB( DB_MASTER );
- $dbw->begin();
+ $dbw->begin( __METHOD__ );
$res = $dbw->select( 'blob_tracking',
array( 'bt_text_id', 'bt_moved' ),
array( 'bt_text_id' => array_keys( $this->referrers ) ),
$store = $this->parent->store;
$targetDB = $store->getMaster( $targetCluster );
$targetDB->clearFlag( DBO_TRX ); // we manage the transactions
- $targetDB->begin();
+ $targetDB->begin( __METHOD__ );
$baseUrl = $this->parent->store->store( $targetCluster, serialize( $this->cgz ) );
// Write the new URLs to the blob_tracking table
);
}
- $targetDB->commit();
+ $targetDB->commit( __METHOD__ );
// Critical section here: interruption at this point causes blob duplication
// Reversing the order of the commits would cause data loss instead
- $dbw->commit();
+ $dbw->commit( __METHOD__ );
// Write the new URLs to the text table and set the moved flag
if ( !$this->parent->copyOnly ) {
);
$this->output( " processing..." );
- $dbw->begin();
+ $dbw->begin( __METHOD__ );
foreach ( $res as $row ) {
$title = Title::newFromRow( $row );
if ( !$row->cl_collation ) {
__METHOD__
);
}
- $dbw->commit();
+ $dbw->commit( __METHOD__ );
if ( $force && $row ) {
$encFrom = $dbw->addQuotes( $row->cl_from );