From: Matthew Flaschen Date: Mon, 27 Mar 2017 21:06:01 +0000 (-0400) Subject: hidemyself/hidebyothers: Use rc_user_text since there is an index X-Git-Tag: 1.31.0-rc.0~3684^2 X-Git-Url: http://git.cyclocoop.org/%22%20.%20generer_url_ecrire%28%22suivi_revisions%22%2C%22id_auteur=%24connecte%22%29%20.%20%22?a=commitdiff_plain;h=e0c50803239d558dfdc9013aabc7e74c44b6e74e;p=lhc%2Fweb%2Fwiklou.git 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 --- 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,