Sbisson has uploaded a new change for review. (
https://gerrit.wikimedia.org/r/403479 )
Change subject: Tentatively re-enable ORES filters on RecentChangesLinked
......................................................................
Tentatively re-enable ORES filters on RecentChangesLinked
Enabled behind a flag (experimental_ores_on_rcl=1) so we
can try it in production without exposing users to it
just yet.
Bug: T179718
Change-Id: I5f8a16cb55c85532e123896111b492babb9982cc
---
M includes/Hooks/ChangesListHooksHandler.php
1 file changed, 30 insertions(+), 12 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/ORES
refs/changes/79/403479/1
diff --git a/includes/Hooks/ChangesListHooksHandler.php
b/includes/Hooks/ChangesListHooksHandler.php
index c8ff331..8814119 100644
--- a/includes/Hooks/ChangesListHooksHandler.php
+++ b/includes/Hooks/ChangesListHooksHandler.php
@@ -37,9 +37,11 @@
public static function onChangesListSpecialPageStructuredFilters(
ChangesListSpecialPage $clsp
) {
- // ORES is disabled on Recentchangeslinked: T163063
- if ( !Hooks::oresUiEnabled( $clsp->getUser() ) ||
$clsp->getName() === 'Recentchangeslinked'
- ) {
+ if ( !Hooks::oresUiEnabled( $clsp->getUser() ) ) {
+ return;
+ }
+
+ if ( self::oresDisabledOnRcl( $clsp->getName(),
$clsp->getContext()->getRequest() ) ) {
return;
}
@@ -88,8 +90,7 @@
// Make the joins INNER
JOINs instead of LEFT JOINs
$join_conds['ores_damaging_mdl'][0] = 'INNER JOIN';
$join_conds['ores_damaging_cls'][0] = 'INNER JOIN';
- // Performance hack:
add STRAIGHT_JOIN (T146111) but not for Watchlist (T176456 / T164796)
- if ( $specialClassName
!== 'SpecialWatchlist' ) {
+ if (
self::shouldStraightJoin( $specialClassName ) ) {
$query_options[] = 'STRAIGHT_JOIN';
}
}
@@ -175,8 +176,7 @@
// Make the joins INNER
JOINs instead of LEFT JOINs
$join_conds['ores_damaging_mdl'][0] = 'INNER JOIN';
$join_conds['ores_damaging_cls'][0] = 'INNER JOIN';
- // Performance hack:
add STRAIGHT_JOIN (T146111) but not for Watchlist (T176456 / T164796)
- if ( $specialClassName
!== 'SpecialWatchlist' ) {
+ if (
self::shouldStraightJoin( $specialClassName ) ) {
$query_options[] = 'STRAIGHT_JOIN';
}
},
@@ -216,8 +216,7 @@
// Make the joins INNER
JOINs instead of LEFT JOINs
$join_conds['ores_goodfaith_mdl'][0] = 'INNER JOIN';
$join_conds['ores_goodfaith_cls'][0] = 'INNER JOIN';
- // Performance hack:
add STRAIGHT_JOIN (T146111) but not for Watchlist (T176456 / T164796)
- if ( $specialClassName
!== 'SpecialWatchlist' ) {
+ if (
self::shouldStraightJoin( $specialClassName ) ) {
$query_options[] = 'STRAIGHT_JOIN';
}
}
@@ -252,6 +251,13 @@
$clsp->registerFilterGroup( $goodfaithGroup );
}
}
+ }
+
+ private static function shouldStraightJoin( $specialClassName ) {
+ // Performance hack: add STRAIGHT_JOIN (T146111) but not for
Watchlist (T176456 / T164796)
+ // New theory is that STRAIGHT JOIN should be used for
unfiltered queries (RecentChanges)
+ // but not for filtered queries (Watchlist and
RecentChangesLinked) (T179718)
+ return $specialClassName === 'SpecialRecentChanges';
}
private static function getDamagingStructuredFiltersOnChangesList(
array $damagingLevels ) {
@@ -371,10 +377,13 @@
$name, array &$tables, array &$fields, array &$conds,
array &$query_options, array &$join_conds, FormOptions $opts
) {
- global $wgUser;
+ global $wgUser, $wgRequest;
- // ORES is disabled on Recentchangeslinked: T163063
- if ( !Hooks::oresUiEnabled( $wgUser ) || $name ===
'Recentchangeslinked' ) {
+ if ( !Hooks::oresUiEnabled( $wgUser ) ) {
+ return;
+ }
+
+ if ( self::oresDisabledOnRcl( $name, $wgRequest ) ) {
return;
}
@@ -597,4 +606,13 @@
}
}
+ private static function oresDisabledOnRcl( $name, $request ) {
+ return (
+ // ORES is disabled on Recentchangeslinked: T163063
+ $name === 'Recentchangeslinked' &&
+ // Tentatively re-enabled behind a request param for
testing: T179718
+ !$request->getBool( 'experimental_ores_on_rcl' )
+ );
+ }
+
}
--
To view, visit https://gerrit.wikimedia.org/r/403479
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I5f8a16cb55c85532e123896111b492babb9982cc
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/ORES
Gerrit-Branch: master
Gerrit-Owner: Sbisson <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits