From e0c50803239d558dfdc9013aabc7e74c44b6e74e Mon Sep 17 00:00:00 2001 From: Matthew Flaschen Date: Mon, 27 Mar 2017 17:06:01 -0400 Subject: [PATCH] hidemyself/hidebyothers: Use rc_user_text since there is an index hidebyothers was extremely slow (on large data sets) due to the lack of an index on rc_user. To fix this, changed to use rc_user_text. hidemyself seems to be fine (assuming normal usage patterns), but to avoid edge cases and ensure full coverage, it's been changed as well. I'll inquire about adding an index for this. Bug: T161557 Change-Id: I61efe11de12e8ab6c01e8d913cdeda471132a6ee --- includes/specialpage/ChangesListSpecialPage.php | 12 ++---------- .../specialpage/ChangesListSpecialPageTest.php | 8 ++++---- 2 files changed, 6 insertions(+), 14 deletions(-) diff --git a/includes/specialpage/ChangesListSpecialPage.php b/includes/specialpage/ChangesListSpecialPage.php index 8e9629dca4..1832233e4b 100644 --- a/includes/specialpage/ChangesListSpecialPage.php +++ b/includes/specialpage/ChangesListSpecialPage.php @@ -177,11 +177,7 @@ abstract class ChangesListSpecialPage extends SpecialPage { &$query_options, &$join_conds ) { $user = $ctx->getUser(); - if ( $user->getId() ) { - $conds[] = 'rc_user != ' . $dbr->addQuotes( $user->getId() ); - } else { - $conds[] = 'rc_user_text != ' . $dbr->addQuotes( $user->getName() ); - } + $conds[] = 'rc_user_text != ' . $dbr->addQuotes( $user->getName() ); }, 'cssClassSuffix' => 'self', 'isRowApplicableCallable' => function ( $ctx, $rc ) { @@ -197,11 +193,7 @@ abstract class ChangesListSpecialPage extends SpecialPage { &$query_options, &$join_conds ) { $user = $ctx->getUser(); - if ( $user->getId() ) { - $conds[] = 'rc_user = ' . $dbr->addQuotes( $user->getId() ); - } else { - $conds[] = 'rc_user_text = ' . $dbr->addQuotes( $user->getName() ); - } + $conds[] = 'rc_user_text = ' . $dbr->addQuotes( $user->getName() ); }, 'cssClassSuffix' => 'others', 'isRowApplicableCallable' => function ( $ctx, $rc ) { diff --git a/tests/phpunit/includes/specialpage/ChangesListSpecialPageTest.php b/tests/phpunit/includes/specialpage/ChangesListSpecialPageTest.php index c292e97ad0..e10a97f222 100644 --- a/tests/phpunit/includes/specialpage/ChangesListSpecialPageTest.php +++ b/tests/phpunit/includes/specialpage/ChangesListSpecialPageTest.php @@ -173,7 +173,7 @@ class ChangesListSpecialPageTest extends AbstractChangesListSpecialPageTestCase $user = $this->getTestUser()->getUser(); $this->assertConditions( [ # expected - "rc_user != '{$user->getId()}'", + "rc_user_text != '{$user->getName()}'", ], [ 'hidemyself' => 1, @@ -199,7 +199,7 @@ class ChangesListSpecialPageTest extends AbstractChangesListSpecialPageTestCase $user = $this->getTestUser()->getUser(); $this->assertConditions( [ # expected - "rc_user = '{$user->getId()}'", + "rc_user_text = '{$user->getName()}'", ], [ 'hidebyothers' => 1, @@ -225,8 +225,8 @@ class ChangesListSpecialPageTest extends AbstractChangesListSpecialPageTestCase $user = $this->getTestUser()->getUser(); $this->assertConditions( [ # expected - "rc_user != '{$user->getId()}'", - "rc_user = '{$user->getId()}'", + "rc_user_text != '{$user->getName()}'", + "rc_user_text = '{$user->getName()}'", ], [ 'hidemyself' => 1, -- 2.20.1