On Sat, Mar 05, 2005 at 03:21:54PM +0100, Eldy wrote:
En fait, l'index y est bien souos mysql mais il n'y a pas de définition
explicite. Quand on a une directive de type UNIQUE(champ1, champ2, ...)
sous mysql, mysql crée en plus de la contrainte automatiquement un index
(il en choisit le nom tout seul, souvent en prenant le nom du premier
champ de la liste même si l'index est composé de plusieurs champs). La
conversion pgsql doit donc bien générer la contrainte UNIQUE mais aussi
l'INDEX, sauf si postgres fonctionne comme mysql en créant
automatiquement l'index associé. A ma connaissance seul Mysql le fait,
même Oracle ne le fait pas systématiquement, et pourtant mettre une
contrainte unique sans index est une erreur en termes de performances.
N'étant pas sur si l'index associé à la contrainte est généré ou non
en automatique par pgsql (et sur toutes les versions), je génère l'ordre.
Si il y est déjà, cela n'a pas de conséquences néfastes, quand on crée
2 index sur la même clé, même avec un nom différent, le sgbd devrait
ignorer le deuxième (sauf mysql qui en crée 2, mais cette fois c'est lui
qui agit mal car l'intérêt technique est nul, décidemment le SGBD
parfait n'existe pas !).
Postgres fonctionne un peu comme MySQL, il créée des "implicit indexes".
Mais je ne saurais dire si il le fait dans tous les cas.
En tout cas, la création de la plupart des structures de données réussit
maintenant. Il n'y a plus d'erreurs, juste un warning:
Warning: pg_query(): Query failed: ERROR: relation "llx_cash" does not
exist in /home/ftigeot/dolibarr/htdocs/lib/pgsql.lib.php on line 271
J'ai du changer mon include_path dans php.ini, mais ça a l'air de
commencer à fonctionner assez pour créer un user.
Par contre, l'utilisation de la page admin/index.php échoue:
Warning: pg_query(): Query failed: ERROR: syntax error at or near "datec"
at character 129 in /home/ftigeot/dolibarr/htdocs/lib/pgsql.lib.php on
line 271
Dolibarr a détecté une erreur technique.
Voici les informations qui pourront aider au diagnostique:
Server: Apache/2.0.53 (FreeBSD) PHP/4.3.10 mod_fastcgi/2.4.2
URL sollicitée: /admin/index.php
QUERY_STRING:
Referer:
http://doli.zefyris.com/admin/index.php?mainmenu=home&leftmenu=setup
Requete dernier acces en base: SELECT u.rowid, u.name, u.firstname,
u.email, u.code, u.admin, u.login, u.pass, u.webcal_login, u.note,
unix_timestamp(u.datec) datec, unix_timestamp(u.tms) datem FROM llx_user
as u WHERE u.login = 'ftigeot'
Code retour dernier acces en base: -1
Information sur le dernier accès en base: ERROR: syntax error at or near
"datec" at character 129