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.