r13475 - spip/ecrire/public

Author: esj@rezo.net
Date: 2008-12-14 08:53:49 +0100 (dim, 14 déc 2008)
New Revision: 13475

Log:
Bug du compilateur: prise en compte d'un critère sur le champ statut seulement s'il s'agit bien de la table principale, pas celle d'une jointure.

Exemple:
{{{
<BOUCLE_total_forum(FORUMS){plat}{articles.lang}{articles.statut='publie'}/>
#TOTAL_BOUCLE
<//B_total_forum>
}}}

se compile en:

{{{
SELECT count(*)
FROM spip_forum AS `forum`
INNER JOIN spip_articles AS L1 ON ( L1.id_article = forum.id_article )
WHERE (forum.statut = 'publie')
    AND (L1.lang = 'fr')
    AND (L1.statut = 'publie')
}}}

alors qu'avant correction, le test sur le statut sautait et l'optimiseur y allait fort:

{{{
SELECT count(*)
FROM spip_articles AS `L1`
WHERE (L1.lang = 'fr')
    AND (L1.statut = 'publie')
}}}

Je ne reporte pas tout de suite sur la branche 2 au cas où il y aurait matière à discussion.

Modified:
   spip/ecrire/public/criteres.php

Details: http://trac.rezo.net/trac/spip/changeset/13475