Last modified: 2007-08-08 17:25:56 UTC
Hi, I've set Bulgarian language as default. When I open some category page, the articles are not sorted correctly at all. The Special:Categories page too. The current order is: АНСУХЩМПИЖЗБГД (only those letters have articles at the moment) But it should be: АбвГДеЖЗИйклМНоПрСтУфХцчшЩъьюя (low case letters are those for which there is NOT any article at the moment) My DB is utf8 (charset, collation) I've noticed that mw_categorylinks.cl_sortkey has collation utf8_bin and changed it to utf8_general_ci, but nothing changed Here are the sql queries for Category:Статии page (Статии = „Articles“) BEGIN SET /* Database::open 127.0.0.1 */ sql_mode = '' /* Article::pageData 127.0.0.1 */ SELECT page_id,page_namespace,page_title,page_restrictions,page_counter,page_is_redirect,page_is_new,page_random,page_touched,page_latest,page_len FROM `mw_page` WHERE page_namespace = '14' AND page_title = 'Статии' LIMIT 1 SELECT /* Title::loadRestrictions 127.0.0.1 */ * FROM `mw_page_restrictions` WHERE pr_page = '33' /* Title::loadRestrictionsFromRow 127.0.0.1 */ SELECT page_restrictions FROM `mw_page` WHERE page_id = '33' LIMIT 1 SELECT /* MediaWikiBagOStuff::_doquery 127.0.0.1 */ value,exptime FROM `mw_objectcache` WHERE keyname='some_db-mw_:pcache:idhash:33-0!1!0!!bg!2!edit=0' SELECT /* MediaWikiBagOStuff::_doquery 127.0.0.1 */ value,exptime FROM `mw_objectcache` WHERE keyname='some_db-mw_:messages-hash' SELECT /* MediaWikiBagOStuff::_doquery 127.0.0.1 */ value,exptime FROM `mw_objectcache` WHERE keyname='some_db-mw_:messages' UPDATE /* 127.0.0.1 */ `mw_page` SET page_counter = page_counter + 1 WHERE page_id = 33 /* CategoryViewer::doCategoryQuery 127.0.0.1 */ SELECT page_title,page_namespace,page_len,page_is_redirect,cl_sortkey FROM `mw_page`,`mw_categorylinks` FORCE INDEX (cl_sortkey) WHERE (1 = 1) AND (cl_from = page_id) AND cl_to = 'Статии' ORDER BY cl_sortkey LIMIT 201 /* SiteStatsUpdate::doUpdate 127.0.0.1 */ SELECT * FROM `mw_site_stats` LIMIT 1 BEGIN /* SiteStatsUpdate::doUpdate 127.0.0.1 */ UPDATE `mw_site_stats` SET ss_total_views=ss_total_views+1 LIMIT 1 COMMIT BEGIN /* Job::pop 127.0.0.1 */ SELECT * FROM `mw_job` WHERE job_id >= 0 ORDER BY job_id LIMIT 1 COMMIT BEGIN SELECT /* LinkBatch::doQuery 127.0.0.1 */ page_id, page_namespace, page_title FROM `mw_page` WHERE (page_namespace=2 AND page_title='127.0.0.1') OR (page_namespace=3 AND page_title='127.0.0.1') OR (page_namespace=15 AND page_title='Статии') /* User::checkNewtalk 127.0.0.1 */ SELECT user_ip FROM `mw_user_newtalk` WHERE user_ip = '127.0.0.1' LIMIT 1 If there is some way to correct this please tell me. Thank you
PHP 5.x MySQL 5.0.41-community-nt / XP but also tested it on Linux Debian mySQL 5 Perhaps every language could define in the language class some order which could be then updated in the DB? This way different letter orders could be applied as the customer wants.
*** This bug has been marked as a duplicate of bug 164 ***