From: Aaron Schulz Date: Wed, 18 Jan 2017 22:39:23 +0000 (-0800) Subject: Avoid master queries when old filter checks are viewed X-Git-Tag: 1.31.0-rc.0~4221^2 X-Git-Url: http://git.cyclocoop.org///%22%40url%40//%22?a=commitdiff_plain;h=40e6862ae6f708d603df8b4d7ce4683991918ff2;p=lhc%2Fweb%2Fwiklou.git Avoid master queries when old filter checks are viewed Bug: T154554 Change-Id: I5ca7f0ea22c337c38083532291400df8c7db1e11 --- 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)', [],