So, at some point in the past, the code that feeds into the preferences table in MediaWiki was compromised. The result of this is that instead of having username, preference, value for preference, the value blob is magically split up over both “preference” and “value” blobs – meaning that we have, according to the database, preferences that consist of the first half of a user’s signature.
This is not the first place I’ve encountered this kind of problem (the “comments” field in the logging table changed its input method a while back, as did the skins preference. Twice) which speaks of an annoying absence of effort aimed at database standardisation and scrubbing. From a dev and user point of view, they’re pretty low on the to-do list, but as a largely incompetent research monkey these kinds of errors are infuriating. The 20 minutes not spent writing a maintenance script translate to 40 minutes of me having to either individually scrub dataframe elements or simply having a smaller set.
I’ve actually been caught by this trying to unfuck someone’s profile on RationalWiki. I suppose I’m glad to know it’s not just me it makes no damn sense to.
Here’s the worrying thing; we don’t know if it’s an old issue, or an extant bug nobody’s noticed because I’m the only man sad enough to wander around the db with a shotgun at night.
The really weird thing is that SELECT DISTINCT will report strings that SELECT FROM WHERE IN (‘string’) reports do not exist. This makes trying to set some kind of time frame on the fuckery infuriatingly hard.