Aryeh Gregor wrote:
There are legitimate reasons for extensions or
maintenance scripts to
directly access the DB, like to do batch queries. In trunk alone, it
looks like CentralAuth, EmailPage, Farmer, FlaggedRevs, Maintenance,
PageBy, SemanticNotifyMe, SpecialFileList, StrategyWiki, UserMerge,
and WhiteListEdit access the table directly. Some maybe wrongly, but
they do. There are at least a dozen different places in phase3 that
access it too.
I agree. There are too many direct accesses to that table. But what do
they use it too?
Looking at what they do (mostly bot filtering) only two extensions would
be affected:
*CentralAuth is fetching the data by itself and incorporates its own
global_user_groups.
*GroupPermissionsManager in the RemoveUserGroups Special page
I'm not against making breaking changes to the
semantics of tables
when necessary (see categorylinks), but I don't think it's necessary
here -- especially since a separate table is a cleaner design to begin
with (no magic values).
We already have a painfully long list of tables, and new tables also
mean more problems for deployment.