Project

General

Profile

Anomalie #3628

Régression jointure versions-auteurs

Added by jluc - over 3 years ago. Updated over 3 years ago.

Status:
Fermé
Priority:
Immédiat
Assignee:
-
Category:
-
Target version:
Start date:
12/24/2015
Due date:
% Done:

0%

Resolution:
fixed
Navigateur:

Description

dans http://permalink.gmane.org/gmane.comp.web.spip.devel/66753

Depuis le passage a SPIP 3.1 les jointures du types :

<BOUCLE_RSS(VERSIONS auteurs)
<BOUCLE_RSS(VERSIONS spip_auteurs)

ne retournent plus rien alors que les syntaxes suivantes sont fonctionnelles :
<BOUCLE_RSS(VERSIONS AUTEURS)
<BOUCLE_RSS(VERSIONS auteurs_liens) 

Problème retrouvé notamment via
/spip.php?page=rss&op=revisions&id=1&cle=...
et
plugins-dist/revisions/prive/rss/revisions.html

Ce type de pb a également été signalé dans http://permalink.gmane.org/gmane.comp.web.spip.zone/39305 : une boucle

 <BOUCLE_permanences(CJ_PERMANENCES auteurs){par nom}...>
ne fonctionne plus en 3.1 alors qu'elle fonctionne en 3.0

History

#1 Updated by cedric - over 3 years ago

  • Priority changed from Normal to Immédiat

#2 Updated by b b over 3 years ago

Pour info, voici la requête générée par SPIp 3.0 dans le squelette du plugin revisions :

SELECT versions.id_objet, versions.objet, versions.id_version, versions.date, L1.lang, L1.nom, L1.email
FROM spip_versions AS `versions`  
INNER JOIN spip_auteurs AS L1 ON ( L1.id_auteur = versions.id_auteur )
WHERE (versions.id_version > 1)
ORDER BY versions.date DESC
LIMIT 0,10

Et celle générée par SPIP 3.1 :

SELECT versions.id_objet, versions.objet, versions.id_version, versions.date, L1.lang, L1.nom, L1.email
FROM spip_versions AS `versions`  
INNER JOIN spip_auteurs AS L1 ON ( L1.id_auteur = versions.id_objet AND versions.objet='auteur')
WHERE (versions.id_version > 1)
GROUP BY versions.id_version,versions.id_objet,versions.objet
ORDER BY versions.date DESC
LIMIT 0,10

#3 Updated by b b over 3 years ago

Cela me rappelle #3512 qui abordait aussi un problème sur les jointures. Après test, c'est à partir de r21875 que la jointure n'est plus générée correctement.

#4 Updated by cedric - over 3 years ago

Bon il semble que dans ce cas précis c'était un pur coup de bol que la jointure marche auparavant. Car la table spip_versions a pour clé primaire id_version,id_objet,objet et donc ne sait joindre que via ces champs là. Du coup id_auteur n'est pas pris en compte pour la jointure, d'où le résultat.
Il faut sans doute modifier la table spip_versions pour corriger cela, je cherche une soluce.

Par ailleurs les versions suivantes ne sont pas fonctionnelles : elles ne provoquent aucune jointure, et donc on ne recupere pas les champs des auteurs

<BOUCLE_RSS(VERSIONS AUTEURS)
<BOUCLE_RSS(VERSIONS auteurs_liens) 

#5 Updated by cedric - over 3 years ago

  • Subject changed from Régression syntaxe des jointures to Régression jointure versions-auteurs
  • Status changed from Nouveau to Fermé
  • Resolution set to fixed

#6 Updated by b b over 3 years ago

Cool, merci pour le fix Cedric :)

Also available in: Atom PDF