[sql] SELECT t.id AS tid, t.poster, t.subject, t.last_post, t.last_post_id, t.last_poster, t.num_replies, t.closed, t.forum_id FROM punbb_topics AS t WHERE t.id IN ( 14524, 29504, 29192, 29526, 29426, 29358, 29381, 29507, 29512, 29534, 29523, 29531, 29532, 29514, 29469, 28791, 29308, 29141, 20353, 29449, 29505, 28867, 29500, 29495, 29535, 29321, 29478, 29480, 29486, 29499, 29506, 29528, 29529, 29457, 29496, 29533, 28380, 29510, 28969, 29142, 29416, 29454, 29511, 29513, 26116, 29333, 29267, 29455, 29493, 29524, 28420, 29258, 29410, 29418, 29452, 29509, 29491, 29477, 29487, 29492, 29501, 29508, 29515, 29517, 29519, 29520, 29525, 29530, 29527, 27926, 28938, 29231, 29265, 29371, 29440, 29485, 29497, 29502, 29518, 29522, 29521 ) GROUP BY t.id, t.poster, t.subject, t.last_post, t.last_post_id, t.last_poster, t.num_replies, t.closed, t.forum_id ORDER BY t.last_post DESC LIMIT 0 , 30
Un café plus tard, je lance directement la requête dans l'interface de phpMyAdmin et je m'aperçois que les résultats ne sont effectivement pas triés dans l'ordre... Mais qu'ai je fais ?! Je trace le log de yum et je constate que je suis récemment passé de mysql-server 5.0.45 à la version 5.0.51a...
[bash] root@borsalino ~> cat /var/log/yum.log | grep mysql Oct 15 20:05:57 Installed: mysql.i386 5.0.27-1.fc6 Oct 15 20:08:09 Installed: mysql-server.i386 5.0.27-1.fc6 Oct 15 20:08:10 Installed: php-mysql.i386 5.1.6-3.7.fc6 Jan 20 18:56:44 Installed: mysql-libs.i386 5.0.45-1.fc6.remi Jan 20 18:56:47 Updated: mysql.i386 5.0.45-1.fc6.remi Jan 20 18:56:54 Updated: mysql-server.i386 5.0.45-1.fc6.remi Jan 20 18:56:54 Updated: php-mysql.i386 5.2.5-1.fc6.remi Feb 17 13:06:18 Updated: mysql-libs.i386 5.0.51a-1.fc6.remi Feb 17 13:06:22 Updated: mysql.i386 5.0.51a-1.fc6.remi Feb 17 13:06:29 Updated: mysql-server.i386 5.0.51a-1.fc6.remi
Dans le doute je contact l'ami Remi qui m'aide et me trouve ce bug : #30596 : GROUP BY optimization gives wrong result order.
Effectivement en virant les GROUP BY la requête se retrouve ordonnée comme il faut...
5 minutes plus tard Remi lance un build de MySQL comportant le correctif que j'installe dans la foulée et tout ce remet à marcher dans l'ordre ;-).
[bash] root@borsalino ~> yum --enable remi-test update mysql\*
3 réactions
Un grand merci en tout cas pour cette correction rapide.
C'est fou quand même, on part sur un PEBKAC et en fait c'est un problème du moteur...
Félicitation à vous deux !