From: Brad Jorsch Date: Fri, 20 Sep 2019 19:38:52 +0000 (-0400) Subject: LogPager: Add IGNORE INDEX to avoid MariaDB optimizer bug X-Git-Tag: 1.34.0-rc.0~111^2 X-Git-Url: https://git.cyclocoop.org/%7B%24admin_url%7Dcompta/comptes/x?a=commitdiff_plain;h=c0ea9c285d6502d55df20e8a663ca6191a4bfdcd;p=lhc%2Fweb%2Fwiklou.git LogPager: Add IGNORE INDEX to avoid MariaDB optimizer bug This is basically the same thing we fixed for ApiQueryLogEvents in I16dba2158. Bug: T223151 Change-Id: I53a7ed59de3eed2b0b4f1b1fb7f6d302b1de276c --- diff --git a/includes/logging/LogPager.php b/includes/logging/LogPager.php index 781df06f49..0b78a36033 100644 --- a/includes/logging/LogPager.php +++ b/includes/logging/LogPager.php @@ -361,6 +361,11 @@ class LogPager extends ReverseChronologicalPager { if ( !$this->mTagFilter && !array_key_exists( 'ls_field', $this->mConds ) ) { $options[] = 'STRAIGHT_JOIN'; } + if ( $this->performer !== '' ) { + // T223151: MariaDB's optimizer, at least 10.1, likes to choose a wildly bad plan for + // some reason for this code path. Tell it not to use the wrong index it wants to pick. + $options['IGNORE INDEX'] = [ 'logging' => [ 'times' ] ]; + } $info = [ 'tables' => $tables,