mysql> explain SELECT 'Disambiguations' as type,la.pl_namespace AS namespace,
la.pl_title AS title, la.pl_from AS link_from
FROM `pagelinks` AS la, `pagelinks` AS lb, `page` AS pa, `page` AS pb
WHERE pb.page_namespace = 4
AND pb.page_title = 'Liens_aux_pages_d\'homonymie'
AND lb.pl_title = pb.page_title
AND pa.page_id = lb.pl_from
AND la.pl_title = pa.page_title;
---+------+----------+----------+-----+-----------+----+--------------+
tab|type |possible k|key |k_len|ref |rows|Extra |
---+------+----------+----------+-----+-----------+----+--------------+
pb |const |name_title|name_title| 259|const,const| 1|index |
la |index |NULL |pl_from | 263|NULL |1976|index |
lb |index |pl_from |pl_from | 263|NULL |1976|where & index |
pa |eq_ref|PRIMARY |PRIMARY | 4|lb.pl_from | 1|where |
---+------+----------+----------+-----+-----------+----+--------------+
* Fix nohistory message on empty page history
* Fix fatal error in history when validation on
* Cleaned up email notification message formatting
* Fix nohistory message on empty page history
* Fix fatal error in history when validation on
* Cleaned up email notification message formatting
+* Finally fixed Special:Disambiguations that was broke since SCHEMA_WORK
$dtitle = $dbr->addQuotes( $dp->getDBkey() );
$sql = "SELECT 'Disambiguations' as type,"
$dtitle = $dbr->addQuotes( $dp->getDBkey() );
$sql = "SELECT 'Disambiguations' as type,"
- . " pl_namespace AS namespace, pl_title AS title"
- . " FROM {$pagelinks}, {$page}"
- . " WHERE page_namespace = $dns"
- . " AND page_title = $dtitle"
- . " AND pl_from=page_id";
-
+ . "la.pl_namespace AS namespace, la.pl_title AS title, la.pl_from AS link_from"
+ . " FROM {$pagelinks} AS la, {$pagelinks} AS lb,"
+ . " {$page} AS pa, {$page} AS pb"
+ . " WHERE pb.page_namespace = $dns"
+ . " AND pb.page_title = $dtitle" # disambiguation pages
+ . " AND lb.pl_title = pb.page_title" # title of pages that are disamb
+ . " AND pa.page_id = lb.pl_from" # id of page poiting to a disamb
+ . " AND la.pl_title = pa.page_title"; # title of those
function formatResult( $skin, $result ) {
global $wgContLang ;
function formatResult( $skin, $result ) {
global $wgContLang ;
- $dp = Title::newFromText(wfMsgForContent("disambiguationspage"));
- $title = Title::makeTitle( $result->namespace, $result->title );
+ $title = Title::newFromId( $result->link_from );
+ $dp = Title::makeTitle( $result->namespace, $result->title );
$from = $skin->makeKnownLinkObj( $title,'');
$edit = $skin->makeBrokenLinkObj( $title, "(".wfMsg("qbedit").")" , 'redirect=no');
$from = $skin->makeKnownLinkObj( $title,'');
$edit = $skin->makeBrokenLinkObj( $title, "(".wfMsg("qbedit").")" , 'redirect=no');
$sd = new DisambiguationsPage();
return $sd->doQuery( $offset, $limit );
$sd = new DisambiguationsPage();
return $sd->doQuery( $offset, $limit );