[Obm] PostgreSQL - version

PMA pm at alamy.fr
Wed Aug 6 17:57:46 CEST 2008


Mehdi Rande a écrit :
> 
> Qu'est ce que vous entendez exactement par insertion multi-lignes?
> des insert type INSERT INTO X (...) VALUES (....), (....) ?
> ou des INSERT INTO X (...) SELECT .... FROM Y WHERE .... ?
> Normalement il ne devrait pas y avoir du premier type, le deuxième par
> contre est assez souvent utilisé mais il est supporté par postgres 8.1.

Je parle effectivement de INSERT INTO X (...) VALUES (....), (....). Ce 
n'est supporté qu'à partir de pgsql 8.2.
Les inserts simples ne me posent évidemment pas de soucis ;)

> 
> Pourriez-vous me donner l'erreur exact? le script semble tourner
> correctement sur mes vm etch.

Je précise de nouveau que j'utilise OBM 2.1.10:
  - Lancement du script /scripts/2.1/install_obmdb_2.1.sh
  - Erreurs lors des appels à admin_data_index.php -a data_update -m group:

------------------------------------------------------------------------------
*** Public Groups : 9 to update
------------------------------------------------------------------------------

Group #1 (id=4) Admin :
Warning: pg_query(): Query failed: ERREUR:  erreur de syntaxe sur ou 
près de « , » at character 107 in 
/var/www/obm/obminclude/phplib/db_pgsql.inc on line 85
</td></tr></table><b>Database error:</b> Invalid SQL: INSERT INTO 
of_usergroup (
       of_usergroup_group_id,
       of_usergroup_user_id
     ) VALUES ('4', '6'), ('4', '7')<br>
<b>PostgreSQL Error</b>: 1 (ERREUR:  erreur de syntaxe sur ou près de « 
, » at character 107)<br>
Problem !
Group #2 (id=5) Commercial :
Warning: pg_query(): Query failed: ERREUR:  erreur de syntaxe sur ou 
près de « , » at character 107 in 
/var/www/obm/obminclude/phplib/db_pgsql.inc on line 85
</td></tr></table><b>Database error:</b> Invalid SQL: INSERT INTO 
of_usergroup (
       of_usergroup_group_id,
       of_usergroup_user_id
     ) VALUES ('5', '6'), ('5', '7')<br>
<b>PostgreSQL Error</b>: 1 (ERREUR:  erreur de syntaxe sur ou près de « 
, » at character 107)<br>
Problem !
Group #3 (id=6) Production :
Warning: pg_query(): Query failed: ERREUR:  erreur de syntaxe sur ou 
près de « , » at character 107 in 
/var/www/obm/obminclude/phplib/db_pgsql.inc on line 85
</td></tr></table><b>Database error:</b> Invalid SQL: INSERT INTO 
of_usergroup (
       of_usergroup_group_id,
       of_usergroup_user_id
     ) VALUES ('6', '6'), ('6', '7')<br>
<b>PostgreSQL Error</b>: 1 (ERREUR:  erreur de syntaxe sur ou près de « 
, » at character 107)<br>
Problem !
Group #4 (id=7) grpTest00 :
Warning: pg_query(): Query failed: ERREUR:  erreur de syntaxe sur ou 
près de « , » at character 107 in 
/var/www/obm/obminclude/phplib/db_pgsql.inc on line 85
</td></tr></table><b>Database error:</b> Invalid SQL: INSERT INTO 
of_usergroup (
       of_usergroup_group_id,
       of_usergroup_user_id
     ) VALUES ('7', '6'), ('7', '7')<br>
<b>PostgreSQL Error</b>: 1 (ERREUR:  erreur de syntaxe sur ou près de « 
, » at character 107)<br>
Problem !


Pour les groupes 5 à 9 pas de problème. J'ai inséré manuellement ces 
enregistrements dans la-table-qui-va-bien. Mais je m'inquiétais de 
l'utilisation de ces inserts multi-lignes dans le reste du code PHP. 
(j'avoue que j'ai pas cherché)


> 
> L'environnement Debian GNU/Linux 'etch' est également l'une de nos cible
> de prédilection, cependant il faut avouer que le support de postgresql
> dans la 2.1 laisse à désirer. Si certains modules marche correctement
> avec ce SGBD d'autre reste instables.
> Nous avons actuellement entamé un gros chantier pour le support complet
> de postgresql dans la version 2.2. Si vous ne désirez qu'utiliser les
> fonctionnalités de crm (contacts, sociétés, ...) et l'agenda, la version
> 2.1 fonctionne correctement sous postgresql cependant si vous désirez
> utilisé les fonctionnalités de groupware (mail, ldap...), le mieux pour
> un passage en production avec postgresql en SGBD  est attendre la
> version 2.2.
> 

C'est noté concernant la probable instabilité de certains modules.

J'ai également rencontré pas mal de soucis avec les scripts et libs perl 
fournis dans la version 2.1. En vrac et non exhaustif:
  * - mauvaise syntaxe 'connect' DBI/DBD avec postgresql dans OBM::dbUtils
  * - utilisation de croak sans Carp dans OBM::Ldap::ldapEngine
  * - requêtes erronées genre LEFT JOIN avec des double-quotes au lieu 
de simple-quotes ou extrêmement orientées MySQL genre INSERT IGNORE, ...

Etant donné que j'étais très surpris de rencontrer autant de 
désagréments, j'ai jeté un oeil dans le svn pour vérifier s'il existait 
quelques correctifs et je me suis attardé sur la version 2.2 qui corrige 
effectivement pas mal de trucs.

Une dernière question.
Actuellement la plate-forme tourne avec MySQL. Afin de correctement 
tester le produit dans son entier (http/sgdbr/ldap/smtp/imap/...), 
est-il préférable que je reste en 2.1 et Mysql afin d'éviter les 
déconvenues ou bien passer 2.2 et rester avec Postgre ?
(à noter que le test est un véritable test, c'est à dire pas uniquement 
technique, mais également avec des utilisateurs) ?


Merci, bonne fin de journée.


More information about the Obm mailing list