PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 06/09/2016 10:36:38

Postgres9.6 récupération base 9.3

Bonjour,
j'ai précédemment fait une demande pour un problème avec la lib pltcl, j'ai refait mon install avec apt-get plutôt qu'une compilation manuelle, tout va bien.

J'ai quelques erreurs qui subsistent (ou avertissements).

psql:/opt/infocentre.dat:556: ATTENTION:  la fonction en entrée du type chkpass_in ne doit pas être volatile
psql:/opt/infocentre.dat:556: ATTENTION:  la fonction en entrée du type chkpass_out ne doit pas être volatile
psql:/opt/infocentre.dat:658: ATTENTION:  la fonction en entrée du type gbtreekey16_in ne doit pas être volatile
psql:/opt/infocentre.dat:658: ATTENTION:  la fonction en entrée du type gbtreekey16_out ne doit pas être volatile
psql:/opt/infocentre.dat:702: ATTENTION:  la fonction en entrée du type gbtreekey32_in ne doit pas être volatile
psql:/opt/infocentre.dat:702: ATTENTION:  la fonction en entrée du type gbtreekey32_out ne doit pas être volatile
psql:/opt/infocentre.dat:746: ATTENTION:  la fonction en entrée du type gbtreekey4_in ne doit pas être volatile
psql:/opt/infocentre.dat:746: ATTENTION:  la fonction en entrée du type gbtreekey4_out ne doit pas être volatile
psql:/opt/infocentre.dat:790: ATTENTION:  la fonction en entrée du type gbtreekey8_in ne doit pas être volatile
psql:/opt/infocentre.dat:790: ATTENTION:  la fonction en entrée du type gbtreekey8_out ne doit pas être volatile
psql:/opt/infocentre.dat:834: ATTENTION:  la fonction en entrée du type gbtreekey_var_in ne doit pas être volatile
psql:/opt/infocentre.dat:834: ATTENTION:  la fonction en entrée du type gbtreekey_var_out ne doit pas être volatile
psql:/opt/infocentre.dat:878: ATTENTION:  la fonction en entrée du type ghstore_in ne doit pas être volatile
psql:/opt/infocentre.dat:878: ATTENTION:  la fonction en entrée du type ghstore_out ne doit pas être volatile
psql:/opt/infocentre.dat:922: ATTENTION:  la fonction en entrée du type gtrgm_in ne doit pas être volatile
psql:/opt/infocentre.dat:922: ATTENTION:  la fonction en entrée du type gtrgm_out ne doit pas être volatile
psql:/opt/infocentre.dat:996: ATTENTION:  la fonction en entrée du type hstore_in ne doit pas être volatile
psql:/opt/infocentre.dat:996: ATTENTION:  la fonction en entrée du type hstore_out ne doit pas être volatile
psql:/opt/infocentre.dat:1093: ATTENTION:  la fonction en entrée du type lquery_in ne doit pas être volatile
psql:/opt/infocentre.dat:1093: ATTENTION:  la fonction en entrée du type lquery_out ne doit pas être volatile
psql:/opt/infocentre.dat:1137: ATTENTION:  la fonction en entrée du type ltree_in ne doit pas être volatile
psql:/opt/infocentre.dat:1137: ATTENTION:  la fonction en entrée du type ltree_out ne doit pas être volatile
psql:/opt/infocentre.dat:1181: ATTENTION:  la fonction en entrée du type ltree_gist_in ne doit pas être volatile
psql:/opt/infocentre.dat:1181: ATTENTION:  la fonction en entrée du type ltree_gist_out ne doit pas être volatile
psql:/opt/infocentre.dat:1225: ATTENTION:  la fonction en entrée du type ltxtq_in ne doit pas être volatile
psql:/opt/infocentre.dat:1225: ATTENTION:  la fonction en entrée du type ltxtq_out ne doit pas être volatile
psql:/opt/infocentre.dat:25109: ERREUR:  erreur de syntaxe sur ou près de « => »
LIGNE 1 : CREATE OPERATOR => (
                          ^
psql:/opt/infocentre.dat:25112: ERREUR:  erreur de syntaxe sur ou près de « => »
LIGNE 1 : ALTER OPERATOR public.=> (text, text) OWNER TO postgres;

Je vous donne le code de la fonction create:

CREATE OPERATOR => (
    PROCEDURE = tconvert,
    LEFTARG = text,
    RIGHTARG = text
);

Une idée? et que penser des alertes au dessus concernant le "volatile"?
Le code par exemple pour ltxtq_out:

CREATE FUNCTION ltxtq_out(ltxtquery) RETURNS cstring
    LANGUAGE c STRICT
    AS '$libdir/ltree', 'ltxtq_out';


ALTER FUNCTION public.ltxtq_out(ltxtquery) OWNER TO postgres;

Merci par avance.

Olivier

Hors ligne

#2 06/09/2016 15:27:34

rjuju
Administrateur

Re : Postgres9.6 récupération base 9.3

« => » n'est pas un nom d'opérateur valide car le standard SQL l'a définii comme moyen d'associer une valeur à un paramètre, il vous faut donc trouver un autre nom.

Sinon, les fonctions associées à un type doivent effectivement être immutables, et donc déclarées comme telles.

Hors ligne

#3 06/09/2016 16:32:14

Re : Postgres9.6 récupération base 9.3

Merci pour la réponse, je ne pense pas que ce soit des fonctions que nous ayons mis nous même en place, ce peut être des scories de vieilles versions de postgres? (on a commencé sur du pg7.4).

Hors ligne

#4 06/09/2016 19:09:26

rjuju
Administrateur

Re : Postgres9.6 récupération base 9.3

Ah, effectivement. Mettez à jour les extensions correspondant aux contrib ltree et hstore (à priori) dans ce cas.

Hors ligne

#5 07/09/2016 11:21:31

Re : Postgres9.6 récupération base 9.3

Ok, merci pour l'aide Julien!

Hors ligne

Pied de page des forums