Hello,
A user noted on the checkuser mailing list that, when performing "get edits" for a user who has a lot of recent edits, that the results were grouped by IP address rather than simply sorted by date. This occurs when the estimated row count (which is highly inaccurate) is greater than 5000. This performs a query that is ORDER BY cuc_ip ASC, cuc_timestamp DESC. It has always been this way.
This alternate ordering frankly doesn't make any sense - the 5000 most recent edits are far more useful than the 5000 first edits sorted by IP address lexicographically. (Yes, 100.100.100.100 comes /before/ 2.0.0.0 in this sorting.) I thought it might be a performance decision - maybe someone didn't want to sort a large number of rows by timestamp - but cuc_timestamp has an index, and cuc_ip does not. From a performance standpoint, this seems to be making a slow query even slower, though perhaps there is some DBA magic that I'm not getting.
If possible, I would like this query to match the normal "get edits" case, that is, 'ORDER BY' => 'cuc_timestamp DESC',. It would also be necessary to modify userEditsRequestLimitExceeded() by removing the parts of that function which break up the list by IP address.
If that is not possible, then I suspect that it should at least be sorting by cuc_ip_hex, and not cuc_ip.