Régression jointure en 3.1 ?
Bonjour,
La boucle suivante fonctionne en 3.0.21, mais pas en 3.1 :
<BOUCLE_x(ABONNEMENTS auteurs)>#ID_ABONNEMENT #NOM</BOUCLE_x>
requête en SPIP 3 :
SELECT L1.nom, abonnements.id_abonnement FROM spip_abonnements AS
abonnements INNER JOIN spip_auteurs AS L1 ON ( L1.id_auteur = abonnements.id_auteur ) WHERE (abonnements.statut = 'actif')
requête en SPIP 3.1 :
SELECT L2.nom, abonnements.id_abonnement FROM spip_abonnements AS
abonnements INNER JOIN spip_auteurs_liens AS L1 ON ( L1.id_objet = abonnements.id_abonnement AND L1.objet='abonnement') INNER JOIN spip_auteurs AS L2 ON ( L2.id_auteur = L1.id_auteur ) WHERE (abonnements.statut = 'actif') GROUP BY abonnements.id_abonnement
En 3.1, il y a donc une jointure supplémentaire sur la table spip_auteurs_liens qui fait échouer la boucle.
Anomalie constatée dans le plugin Abonnements : http://zone.spip.org/trac/spip-zone/browser/plugins/abonnements/trunk Dans la boucle, la jointure sur spip_auteurs est nécessaire afin de pouvoir trier sur la colonne 'nom' : http://zone.spip.org/trac/spip-zone/browser/plugins/abonnements/trunk/prive/objets/liste/abonnements.html#L20 À toute fin utile, la table spip_abonnement contient une clé id_auteur : http://zone.spip.org/trac/spip-zone/browser/plugins/abonnements/trunk/base/abonnements.php#L97