mailRe: [Galette-discussion] Affichage des groupes avec postgresql


Others Months | Index by Date | Thread Index
>>   [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Header


Content

Posted by Johan Cwiklinski on December 06, 2012 - 08:50:
Hello,

Le 05/12/2012 22:45, lpelecq-org@xxxxxxxxxxx a écrit :
Salut Johann,

Merci pour la correction. Ça marche. Il y a un autre problème dans
Repository/Membres.php. En version 8.4 la fonction concat n'existe
pas. Elle est apparue en 9.1. Est-ce qu'il y a une version minimale de
postgres supportée ?


Arf... Ben, normalement, c'est censé fonctionner avec postgres 8 ; mais
il semble bien que ce ne soit plus le cas depuis la version 0.7.

À y regarder de plus près, il semble que j'utilise CONCAT mais aussi le
"||" ; du coup, ce n'est pas très utile ; et ça ne devrait pas être trop
compliqué à corriger (j'aurai ainsi la joie de sortir la troisième
release de la semaine :D).

Pourrais-tu essayer avec le patch joint ? N'hésites pas à ouvrir
directement un bug dans ce genre de cas ;)

À priori, c'est le seul endroit dans le code qui utilise CONCAT ; mais
comme je travaille toujours avec une version assez récente de postgres
(Fedora oblige :p), il est fort possible que d'autres incompatibilités
aient été introduites.

++
-- 
Johan
diff --git a/galette/lib/Galette/Repository/Members.php 
b/galette/lib/Galette/Repository/Members.php
index cd188e2..0886045 100644
--- a/galette/lib/Galette/Repository/Members.php
+++ b/galette/lib/Galette/Repository/Members.php
@@ -680,18 +680,27 @@ class Members
                 $token = '%' . $filters->filter_str . '%';
                 switch( $filters->field_filter ) {
                 case self::FILTER_NAME:
-                    $sep = ( TYPE_DB === 'pgsql' ) ? " || ' ' || " : ', " ", 
';
+                    if ( TYPE_DB === 'pgsql' ) {
+                        $sep = " || ' ' || ";
+                        $pre = '';
+                        $post = '';
+                    } else {
+                        $sep = ', " ", ';
+                        $pre = 'CONCAT(';
+                        $post=')';
+                    }
+                    //$sep = ( TYPE_DB === 'pgsql' ) ? " || ' ' || " : ', " 
", ';
                     $select->where(
                         '(' . $zdb->db->quoteInto(
-                            'CONCAT(LOWER(nom_adh)' . $sep .
+                            $pre . 'LOWER(nom_adh)' . $sep .
                             'LOWER(prenom_adh)' . $sep .
-                            'LOWER(pseudo_adh)) LIKE ?',
+                            'LOWER(pseudo_adh)' . $post  . ' LIKE ?',
                             strtolower($token)
                         ) . ' OR ' .
                         $zdb->db->quoteInto(
-                            'CONCAT(LOWER(prenom_adh)' . $sep .
+                            $pre . 'LOWER(prenom_adh)' . $sep .
                             'LOWER(nom_adh)' . $sep .
-                            'LOWER(pseudo_adh)) LIKE ?',
+                            'LOWER(pseudo_adh)' . $post  . ' LIKE ?',
                             strtolower($token)
                         ) . ')'
                     );

Attachment: signature.asc
Description: OpenPGP digital signature


Related Messages


Powered by MHonArc, Updated Thu Dec 06 22:00:05 2012