From 40e6862ae6f708d603df8b4d7ce4683991918ff2 Mon Sep 17 00:00:00 2001 From: Aaron Schulz Date: Wed, 18 Jan 2017 14:39:23 -0800 Subject: [PATCH] Avoid master queries when old filter checks are viewed Bug: T154554 Change-Id: I5ca7f0ea22c337c38083532291400df8c7db1e11 --- includes/page/WikiPage.php | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/includes/page/WikiPage.php b/includes/page/WikiPage.php index 920ba87806..d582d51bf6 100644 --- a/includes/page/WikiPage.php +++ b/includes/page/WikiPage.php @@ -2150,8 +2150,12 @@ class WikiPage implements Page, IDBAccessObject { ); } else { // Try to avoid a second parse if {{REVISIONID}} is used - $edit->popts->setSpeculativeRevIdCallback( function () { - return 1 + (int)wfGetDB( DB_MASTER )->selectField( + $dbIndex = ( $this->mDataLoadedFrom & self::READ_LATEST ) === self::READ_LATEST + ? DB_MASTER // use the best possible guess + : DB_REPLICA; // T154554 + + $edit->popts->setSpeculativeRevIdCallback( function () use ( $dbIndex ) { + return 1 + (int)wfGetDB( $dbIndex )->selectField( 'revision', 'MAX(rev_id)', [], -- 2.20.1