From e2ad38f8e94838a90ccc151d554969cf81558839 Mon Sep 17 00:00:00 2001 From: Amir Sarabadani Date: Mon, 24 Apr 2017 17:28:51 +0430 Subject: [PATCH] Do not add limit to ApiQueryPagePropNames when database type is mysql It's a known bug in some versions of mysql (including WMF dbs) that it won't do a loose index scan when a limit is applied. Given that number of possible types is still very low, this shouldn't be a problem. More info: https://bugs.mysql.com/bug.php?id=61517 Bug: T115825 Change-Id: I4c3b885ac05b793088a92e054a38a36b9d07c0d4 --- includes/api/ApiQueryPagePropNames.php | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/includes/api/ApiQueryPagePropNames.php b/includes/api/ApiQueryPagePropNames.php index 4966bcde04..ff97668117 100644 --- a/includes/api/ApiQueryPagePropNames.php +++ b/includes/api/ApiQueryPagePropNames.php @@ -57,7 +57,11 @@ class ApiQueryPagePropNames extends ApiQueryBase { } $limit = $params['limit']; - $this->addOption( 'LIMIT', $limit + 1 ); + + // mysql has issues with limit in loose index T115825 + if ( $this->getDB()->getType() !== 'mysql' ) { + $this->addOption( 'LIMIT', $limit + 1 ); + } $result = $this->getResult(); $count = 0; -- 2.20.1