Merge "Fix SlotDiffRenderer documentation"
[lhc/web/wiklou.git] / includes / logging / LogPager.php
index 801c474..4ecc368 100644 (file)
@@ -335,6 +335,14 @@ class LogPager extends ReverseChronologicalPager {
                # Don't show duplicate rows when using log_search
                $joins['log_search'] = [ 'JOIN', 'ls_log_id=log_id' ];
 
+               // T221458: MySQL/MariaDB (10.1.37) can sometimes irrationally decide that querying `actor` before
+               // `logging` and filesorting is somehow better than querying $limit+1 rows from `logging`.
+               // Tell it not to reorder the query. But not when tag filtering or log_search was used, as it
+               // seems as likely to be harmed as helped in that case.
+               if ( !$this->mTagFilter && !array_key_exists( 'ls_field', $this->mConds ) ) {
+                       $options[] = 'STRAIGHT_JOIN';
+               }
+
                $info = [
                        'tables' => $tables,
                        'fields' => $fields,