HomePhabricator

Improve querying on GlobalUsersPager

Authored by Glaisher.

Description

Improve querying on GlobalUsersPager

Previously, NULL could be wrongly returned for lu_attached_method
because the query selected fields that are not GROUPed BY with. This commit
fixes that query and also allows the query to be now run when
'ONLY_FULL_GROUP_BY' SQL mode is enabled.

We are also now retrieving the global groups for each user in the default
query instead of doing separate queries for retrieving it. '|' character
instead of the default ',' was used as a separator as it's not possible to
have a '|' in a global group name.

Also, LinkBatch query was being done twice on this page previously; this
is now done only once. It also now doesn't look up user_talk namespace as
this page doesn't have links to user talk pages.

GlobalUsersPager::getBody() has also been removed as it is redundant to the
parent method now (which previously also executed LinkBatch there).

Summary: Only two GlobalUsersPager queries are now done instead of multiple
queries (in addition to 1 by LinkBatch) and wrong value being returned for
lu_attached_method has been fixed.

Bug: T102915
Change-Id: I1483e14bd0252322ba7cc7728d924ffd4dd7f162

Details

Committed
GlaisherAug 19 2015, 4:41 PM
Parents
rECAUe505f08cc80d: Made doListUnattached() private
Branches
Unknown
Tags
Unknown
ChangeId
I1483e14bd0252322ba7cc7728d924ffd4dd7f162