From: Alexandre Emsenhuber Date: Wed, 22 Jul 2009 10:34:15 +0000 (+0000) Subject: * (bug 19857) maintenance/deleteRevision.php on last revision no longer breaks target... X-Git-Tag: 1.31.0-rc.0~40771 X-Git-Url: http://git.cyclocoop.org/%28?a=commitdiff_plain;h=a39cc67b65ce0b132961697636e6a5161614954c;p=lhc%2Fweb%2Fwiklou.git * (bug 19857) maintenance/deleteRevision.php on last revision no longer breaks target page * also copy ar_page_id, ar_len and ar_deleted fields when deleting a revision --- diff --git a/RELEASE-NOTES b/RELEASE-NOTES index 8ce26a7a6c..56048cdd91 100644 --- a/RELEASE-NOTES +++ b/RELEASE-NOTES @@ -310,6 +310,8 @@ this. Was used when mwEmbed was going to be an extension. * (bug 19839) Comments in log items are no more double escaped * (bug 18161) Fix inconsistent separators in watchlist link toolbars with "enhanced recent changes" +* (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 0c203ab050..49baf60df0 100644 --- a/maintenance/deleteRevision.php +++ b/maintenance/deleteRevision.php @@ -23,6 +23,7 @@ foreach ( $args as $revID ) { array( 'ar_namespace' => 'page_namespace', 'ar_title' => 'page_title', + 'ar_page_id' => 'page_id', 'ar_comment' => 'rev_comment', 'ar_user' => 'rev_user', 'ar_user_text' => 'rev_user_text', @@ -30,6 +31,8 @@ foreach ( $args as $revID ) { 'ar_minor_edit' => 'rev_minor_edit', 'ar_rev_id' => 'rev_id', 'ar_text_id' => 'rev_text_id', + 'ar_deleted' => 'rev_deleted', + 'ar_len' => 'rev_len', ), array( 'rev_id' => $revID, 'page_id = rev_page' @@ -40,6 +43,13 @@ foreach ( $args as $revID ) { } else { $affected += $dbw->affectedRows(); $dbw->delete( 'revision', array( 'rev_id' => $revID ) ); + + // Database integrity + $pageID = $dbw->selectField( 'page', 'page_id', array( 'page_latest' => $revID ), __METHOD__ ); + if ( $pageID ) { + $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__ ); + } } }