From: Alexandre Emsenhuber Date: Sun, 23 Aug 2009 09:39:13 +0000 (+0000) Subject: Redo r53641, reverted in r55457, now using indexed queries: X-Git-Tag: 1.31.0-rc.0~40093 X-Git-Url: https://git.cyclocoop.org/%7B%24www_url%7Dadmin/compta/comptes/ajouter.php?a=commitdiff_plain;h=9ed6ba246108ecf7e7e5651148d458e61e8c2c2a;p=lhc%2Fweb%2Fwiklou.git Redo r53641, reverted in r55457, now using indexed queries: * (bug 19857) maintenance/deleteRevision.php on last revision no longer breaks target page --- diff --git a/RELEASE-NOTES b/RELEASE-NOTES index 3d7cddd2d1..020931f89a 100644 --- a/RELEASE-NOTES +++ b/RELEASE-NOTES @@ -423,6 +423,9 @@ this. Was used when mwEmbed was going to be an extension. * (bug 20317) Cleaned up default main page link accesskey settings * (bug 20362) Special:Statistics now produces valid HTML when view counters are enabled +* (bug 19857) maintenance/deleteRevision.php on last revision no longer breaks + target page + == API changes in 1.16 == diff --git a/maintenance/deleteRevision.php b/maintenance/deleteRevision.php index 980b0c3389..5dc0b59faf 100644 --- a/maintenance/deleteRevision.php +++ b/maintenance/deleteRevision.php @@ -63,7 +63,14 @@ class DeleteRevision extends Maintenance { $this->output( "Revision $revID not found\n" ); } else { $affected += $dbw->affectedRows(); + $pageID = $dbw->selectField( 'revision', 'rev_page', array( 'rev_id' => $revID ), __METHOD__ ); + $pageLatest = $dbw->selectField( 'page', 'page_latest', array( 'page_id' => $pageID ), __METHOD__ ); $dbw->delete( 'revision', array( 'rev_id' => $revID ) ); + if ( $pageLatest == $revID ) { + // Database integrity + $newLatest = $dbw->selectField( 'revision', 'rev_id', array( 'rev_page' => $pageID ), __METHOD__, array( 'ORDER BY' => 'rev_timestamp DESC' ) ); + $dbw->update( 'page', array( 'page_latest' => $newLatest ), array( 'page_id' => $pageID ), __METHOD__ ); + } } } $this->output( "Deleted $affected revisions\n" );