From: jenkins-bot Date: Wed, 31 Jul 2019 14:15:14 +0000 (+0000) Subject: Merge "Add QueryPage::delete method" X-Git-Tag: 1.34.0-rc.0~830 X-Git-Url: https://git.cyclocoop.org/%7B%7B%20url_for%28%27admin_user_edit%27%2C%20iduser=user.userid%29%20%7D%7D?a=commitdiff_plain;h=6162ec0f3551719420bba32fbac6e9b0e9a026fa;hp=4306994b7999ce4018a534844502a10f46eb169e;p=lhc%2Fweb%2Fwiklou.git Merge "Add QueryPage::delete method" --- diff --git a/includes/specialpage/QueryPage.php b/includes/specialpage/QueryPage.php index 223f799cb1..6cc6e4e94d 100644 --- a/includes/specialpage/QueryPage.php +++ b/includes/specialpage/QueryPage.php @@ -21,6 +21,7 @@ * @ingroup SpecialPage */ +use MediaWiki\Linker\LinkTarget; use MediaWiki\MediaWikiServices; use Wikimedia\Rdbms\IResultWrapper; use Wikimedia\Rdbms\IDatabase; @@ -375,6 +376,23 @@ abstract class QueryPage extends SpecialPage { return wfGetDB( DB_REPLICA, [ $this->getName(), 'QueryPage::recache', 'vslow' ] ); } + /** + * Remove a cached result. + * Useful for interactive backlogs where the user can fix problems in-place. + * @param LinkTarget $title The page to remove. + * @since 1.34 + */ + public function delete( LinkTarget $title ) { + if ( $this->isCached() ) { + $dbw = wfGetDB( DB_MASTER ); + $dbw->delete( 'querycache', [ + 'qc_type' => $this->getName(), + 'qc_namespace' => $title->getNamespace(), + 'qc_title' => $title->getDBkey(), + ], __METHOD__ ); + } + } + /** * Run the query and return the result * @param int|bool $limit Numerical limit or false for no limit