Changeset 110984 in spip-zone


Ignore:
Timestamp:
Jul 3, 2018, 3:45:01 PM (13 months ago)
Author:
cedric@…
Message:

Retour sur r110756 : SQLite ne tolere pas le HAVING sans group BY mais veut bien d'un WHERE sur un champ calcule, la ou MySQL exige un HAVING mais se passe d'un group by
On corrige donc en generant soit un HAVING soit un WHERE selon le type de serveur, sans GROUP BY dans tous les cas, pour rester au plus identique (le GROUP BY peut polluer une requete avec jointure)
(A noter qu'il faut utiliser la connexion de la boucle, et pas le serveur par defaut)

Location:
_plugins_/magnet/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/magnet/trunk/magnet_fonctions.php

    r110756 r110984  
    3636        $boucle = &$boucles[$idb];
    3737        if (magnet_actif_sur_objet($boucle->type_requete)){
    38                 if (strncmp($GLOBALS['connexions'][0]['type'], 'sqlite', 6) == 0) {
    39                         $boucle->group[] = 1;
    40                 }
    41                 $boucle->having[] = array($crit->not?"'='":"'<>'","'magnet'","0");
     38                $w = array($crit->not?"'='":"'<>'","'magnet'","0");
     39                $serveur = $boucle->sql_serveur;
     40                $connexion = $GLOBALS['connexions'][$serveur ? strtolower($serveur) : 0];
     41                if (strncmp($connexion['type'], 'sqlite', 6) == 0) {
     42                        $boucle->where[] = $w;
     43                }
     44                else {
     45                        $boucle->having[] = $w;
     46                }
    4247        }
    4348}
  • _plugins_/magnet/trunk/paquet.xml

    r110756 r110984  
    22        prefix="magnet"
    33        categorie="outil"
    4         version="0.7.5"
     4        version="0.7.6"
    55        etat="test"
    66        compatibilite="[3.0.0;3.2.*]"
Note: See TracChangeset for help on using the changeset viewer.