Simetrical wrote:
You know, exactly why do we have a separate recentchanges table at all? It seems as though the few extra tidbits that aren't in the revision table could just be added there, and then that could be unioned with the log table to produce Special:Recentchanges.
Hmm... that's a good question, actually.
(This would also make it possible to keep all edits' IP addresses forever, which is probably a much more sensible default than deleting them after a week.)
There could be privacy concerns over that, though; certainly I'd assume there's a reason why purge checkuser records after a while.
(I'd have expected the Foundation privacy policy to say something about that, but strangely enough it doesn't seem to; the only statement about retention times I can find is that Apache access logs are "normally discarded after about two weeks.")
In fact, I wonder if we really need to record IP addresses of logged-in users in the recentchanges table at all -- after all, the CheckUser extension has its own tables for that data.
It seems to be used (only?) for retroactive autoblocks, but that only needs the last IP used by each user, which could just as well be stored in the user table (or in a separate table altogether). Besides, we already have a config option to disable it ($wgPutIPinRC), so I don't suppose it can be that critical for anything.