Recherche avancée

Médias (1)

Mot : - Tags -/musée

Autres articles (112)

Sur d’autres sites (10333)

  • Révision 24558 : trim() au lieu de jquery.trim()

    11 avril 2020, par bruno@eliaz.fr
  • Anomalie #4701 : Jointures automatiques erronées ? (ex. : groupe au lieu de groupe_mots)

    23 mars 2021, par cedric -

    "avant ça fonctionnait" c’est un bien grand mot. Disons que la requête sortait un résultat, mais il était faux !

    Voici ce que j’obtiens en SPIP 3.2 : on note l’absence de clause sur L1.objet qui est une erreur :
    ```
    SELECT L1.id_objet, L1.id_objet AS id_groupe
    FROM spip_documents_liens AS `L1`
    INNER JOIN spip_documents AS L2 ON ( L2.id_document = L1.id_document )
    WHERE (L2.titre = ’toto’)
    GROUP BY L1.id_objet
    ```

    Je pense que le bug apparait plus clairement depuis https://git.spip.net/spip/spip/commit/81b3f6dd22d699986ca2d5a068959ec0011b4253 qui en effet introduit la clause where de façon plus robuste

  • Anomalie #4701 (Fermé) : Jointures automatiques erronées ? (ex. : groupe au lieu de groupe_mots)

    23 mars 2021

    (J’hésitais à classer le ticket dans le plugin mots, mais ça semble concerner les jointures en général donc j’ai mis dans spip. À déplacer si c’est pas le cas).

    Graphie signalait une erreur sur contrib avec le plugin identifiants et une boucle sur les groupes de mots-clés.
    La jointure automatique se fait bien, mais dans le where ça ne met pas le bon type d’objet : groupe au lieu de groupe_mots.

    En essayant de tracer un peu le problème, j’obtiens à une erreur similaire avec la dist, pour reproduire :
    1. Ajouter un document à un groupe de mots-clé, lui donner « toto » comme titre.
    2. Et tester la boucle suivante :

    <span class="CodeRay"><span class="tag">span><span class="error">(</span><span class="attribute-name">GROUPES_MOTS</span><span class="error">)</span> <span class="error">{</span><span class="attribute-name">documents.titre</span>=<span class="attribute-value">toto</span><span class="error">}</span><span class="tag">></span>
    #ID_GROUPE
    <span class="tag"></span>
    </span></span>

    Dans spip_documents_liens on a le bon type d’objet groupe_mots, mais dans la requête même problème : groupe au lieu de groupe_mots

    1. <span class="CodeRay"><span class="class">SELECT</span> L1.id_objet, L1.id_objet <span class="keyword">AS</span> id_groupe
    2. <span class="keyword">FROM</span> spip_documents_liens <span class="keyword">AS</span> <span class="string"><span class="delimiter">'</span><span class="content">L1</span><span class="delimiter">'</span></span>  
    3. <span class="keyword">INNER</span> <span class="keyword">JOIN</span> spip_documents <span class="keyword">AS</span> L2 <span class="keyword">ON</span> ( L2.id_document = L1.id_document )
    4. <span class="keyword">WHERE</span> (L1.objet = <span class="string"><span class="delimiter">'</span><span class="content">groupe</span><span class="delimiter">'</span></span>)
    5.     <span class="keyword">AND</span> (L2.titre = <span class="string"><span class="delimiter">'</span><span class="content">toto</span><span class="delimiter">'</span></span>)
    6. <span class="keyword">GROUP</span> <span class="keyword">BY</span> L1.id_objet
    7. </span>

    Télécharger

    Graphie signale que ça fonctionnait dans une version précédente de spip 3.3-dev, quelque chose a dû changer entre temps.

    Je ne sais pas d’où sort ce "groupe", il est bien dans les alias de la table spip_groupes_mots mais c’est le dernier de la liste : https://git.spip.net/spip/mots/src/branch/master/base/mots.php#L152
    Doit y avoir autre chose qui entre en jeu.

    1. <span class="CodeRay"><span class="string"><span class="delimiter">'</span><span class="content">table_objet_surnoms</span><span class="delimiter">'</span></span> => <span class="predefined">array</span>(
    2.     <span class="string"><span class="delimiter">'</span><span class="content">groupemot</span><span class="delimiter">'</span></span>,
    3.     <span class="string"><span class="delimiter">'</span><span class="content">groupe_mots</span><span class="delimiter">'</span></span>
    4.     <span class="comment">/*hum*/</span>,
    5.     <span class="string"><span class="delimiter">'</span><span class="content">groupe_mot</span><span class="delimiter">'</span></span>
    6.     <span class="comment">/* hum*/</span>,
    7.     <span class="string"><span class="delimiter">'</span><span class="content">groupe</span><span class="delimiter">'</span></span>
    8.     <span class="comment">/*hum (EXPOSE)*/</span>
    9. ),
    10. </span>

    Télécharger