From 53ba45d5d9ff4353c3edd3698c9b89b6b9653dd9 Mon Sep 17 00:00:00 2001 From: Kosta Harlan Date: Sun, 16 Jun 2019 19:00:52 -0400 Subject: [PATCH] Only attempt to deduplicate if there is data in archive and revision The idea is to avoid expensive calls to makeDummyRevisionRow, and speed up installation of MediaWiki on CI. Bug: T225901 Change-Id: I6f69281568218c89eb18353c06cabf7eb1926de8 --- maintenance/deduplicateArchiveRevId.php | 7 ++++++- maintenance/populateArchiveRevId.php | 9 +++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/maintenance/deduplicateArchiveRevId.php b/maintenance/deduplicateArchiveRevId.php index 2442caa7e0..a1d4e997fd 100644 --- a/maintenance/deduplicateArchiveRevId.php +++ b/maintenance/deduplicateArchiveRevId.php @@ -33,8 +33,13 @@ class DeduplicateArchiveRevId extends LoggedUpdateMaintenance { protected function doDBUpdates() { $this->output( "Deduplicating ar_rev_id...\n" ); - $dbw = $this->getDB( DB_MASTER ); + // Sanity check. If this is a new install, we don't need to do anything here. + if ( PopulateArchiveRevId::isNewInstall( $dbw ) ) { + $this->output( "New install, nothing to do here.\n" ); + return true; + } + PopulateArchiveRevId::checkMysqlAutoIncrementBug( $dbw ); $minId = $dbw->selectField( 'archive', 'MIN(ar_rev_id)', [], __METHOD__ ); diff --git a/maintenance/populateArchiveRevId.php b/maintenance/populateArchiveRevId.php index 96fcebf409..c85e194eef 100644 --- a/maintenance/populateArchiveRevId.php +++ b/maintenance/populateArchiveRevId.php @@ -43,6 +43,15 @@ class PopulateArchiveRevId extends LoggedUpdateMaintenance { $this->setBatchSize( 100 ); } + /** + * @param IDatabase $dbw + * @return bool + */ + public static function isNewInstall( IDatabase $dbw ) { + return $dbw->selectRowCount( 'archive' ) === 0 && + $dbw->selectRowCount( 'revision' ) === 1; + } + protected function getUpdateKey() { return __CLASS__; } -- 2.20.1