[spip-dev] spip avec postgres - erreur sql

Bonjour.

J'ai installé la version stable 2.0 à partir du svn (version 14141).
Je n'ai touché à rien au sein des sources. J'ai écrit un premier
article. Lors de la visualisation, j'ai obtenu l'erreur suivante :
Warning: pg_query() [function.pg-query]: Query failed: ERREUR: Syntaxe
en entrée invalide pour l'entier : « » in (...)www/ecrire/req/pg.php on
line 146

Effectivement il y a un id_document qui apparaît en chaine vide au sein
du log.

Voici le contenu de pg.log

Jun 25 11:24:37 192.168.0.252 (pid 6144) ERREUR: Syntaxe en entrée
invalide pour l'entier : « » - SELECT documents.id_document
FROM spip_documents AS documents LEFT JOIN spip_documents_liens AS l
      ON documents.id_document=l.id_document
      LEFT JOIN spip_articles AS aa
        ON (l.id_objet=aa.id_article AND l.objet='article')
      LEFT JOIN spip_breves AS bb
        ON (l.id_objet=bb.id_breve AND l.objet='breve')
      LEFT JOIN spip_rubriques AS rr
        ON (l.id_objet=rr.id_rubrique AND l.objet='rubrique')
      LEFT JOIN spip_forum AS ff
        ON (l.id_objet=ff.id_forum AND l.objet='forum')
      
INNER JOIN spip_documents_liens AS L1 ON ( L1.id_document =
documents.id_document )
WHERE ((aa.statut = 'publie' AND aa.date<= timestamp '9999-12-31') OR
bb.statut = 'publie' OR rr.statut = 'publie' OR ff.statut='publie')
  AND (documents.taille > 0 OR documents.distant='oui')
  AND (documents.id_document = '')
  AND (L1.id_objet = 1)
  AND (L1.objet = 'article')
  AND (documents.mode = 'document')
  AND ((documents.extension IN ('png','jpg','gif')))
GROUP BY documents.id_document, documents.id_document
ORDER BY case
when documents.extension='png' then 1
when documents.extension='jpg' then 2
when documents.extension='gif' then 3 else 0 end

Cordialement.

claude a écrit :

J'ai installé la version stable 2.0 à partir du svn (version 14141).
Je n'ai touché à rien au sein des sources. J'ai écrit un premier
article. Lors de la visualisation, j'ai obtenu l'erreur suivante :
Warning: pg_query() [function.pg-query]: Query failed: ERREUR: Syntaxe
en entrée invalide pour l'entier : « » in (...)www/ecrire/req/pg.php on
line 146

je confirme.
voir : http://spip.pastebin.com/m7fd7dcfb

Vu, c'est depuis qu'on a viré intval pour accepter les chaînes numériques décrivant un grand nombre mal analysé par PHP mais bien vu par MySQL:
http://trac.rezo.net/trac/spip/changeset/13858/branches/spip-2.0/ecrire/public/criteres.php
Il y a la solution "is_numeric(x) ? x : 0", mais c'est lourd car x peut être qqch de long à calculer., je vais réfléchir à une meilleure solution.

Committo,Ergo:Sum

La voilà:

http://trac.rezo.net/trac/spip/changeset/14147

Committo,Ergo:Sum