Vous n'êtes pas identifié(e).
Pages : 1
Bonjour,
Nous travaillons sur postgresql 9.4 dans un environnement linux debian. Le problème ne survient que maintenant, en fait des requêtes habituelles tournées sur base sans aucun problème, quand soudainement au début d'après midi aujourd'hui la même requête retourne un message d'erreur avec :
"could not find function "gin_trgm_triconsistent" in file "/usr/lib/postgresql/9.4/lib/pg_trgm.so" Where: SQL statement "UPDATE numenvault.Object_Folder SET name = p_name, description = p_description, properties = p_properties, allowed_child_object_type_ids = p_allowed_child_object_type_ids, last_modified_by = p_user, last_modification_date = v_change_timestamp, change_token = v_change_token WHERE id = p_id_folder" PL/pgSQL function numenvault.update_folder(bigint,numenvault.path_segment,text,hstore,character varying[],character varying,hstore) line 56 at SQL statement".
Auparavant, il n'y avait pas eu cette erreur.
De quoi s'agit il exactement, pouvez vous aider svp ? On a déjà essayé de faire un sudo apt-get install postgresql-contrib-9.4 mais toujours l'erreur. Et même un:
CREATE FUNCTION gin_trgm_triconsistent(internal, int2, text, int4, internal, internal, internal)
RETURNS "char"
AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
ALTER OPERATOR FAMILY gin_trgm_ops USING gin ADD
OPERATOR 7 %> (text, text),
FUNCTION 6 (text,text) gin_trgm_triconsistent (internal, int2, text, int4, internal, internal, internal);
n'a pas résolu ce problème.
Please help us !!! Merci d'avance
Hors ligne
Il n'existe pas de fonction gin_trgm_triconsistent() dans l'extension pg_trgm de la 9.4. Elle n'apparaît qu'à partir de la version 9.6.
Guillaume.
Hors ligne
Quoi ? En êtes vous sur ? Et pourquoi il y avait pas eu cette erreur avant ?
J'ai une autre question, comment fait on pour installer un contrib dans une instance postgresql en particulier ? Disons que j'ai 3 instances de postgresql donc 3 pgdata également, j'aimerai dans celui correspondant à pddata1 installer les contrib postgresql
Hors ligne
bonjour,
Pour installer des extensions :
https://docs.postgresql.fr/9.6/sql-createextension.html
Cordialement,
Sébastien.
Hors ligne
Oui, sûr. Ça fait partie du commit 97f3014647a5bd570032abd2b809d3233003f13f :
commit 97f3014647a5bd570032abd2b809d3233003f13f
Author: Teodor Sigaev <teodor@sigaev.ru>
Date: Mon Jul 20 18:18:48 2015 +0300
This supports the triconsistent function for pg_trgm GIN opclass
to make it faster to implement indexed queries where some keys are
common and some are rare.
Patch by Jeff Janes
Intégré le 20 juillet 2015, donc version 9.6. Et sans surprise, ce commit n'apparaît ni dans la branche 9.4 ni dans la branche 9.5. Difficile de dire pourquoi vous n'aviez pas cette erreur avant, on manque d'informations.
Pour l'installation d'un module contrib, ça ne concerne en rien les répertoires de données. Comment avez-vous installé PostgreSQL ? ces trois répertoires sont sur la même version de PostgreSQL ?
Guillaume.
Hors ligne
Quelle version de pg_trgm est installée sur la base en question en 9.4? (\dx pg_trgm). Si ce n'est pas la version 1.0 ou 1.1, il y a eu une mauvaise manipulation.
La requête suivante ne devrait retourner aucune ligne sur votre base. Si elle renvoie des lignes, cela veut dire que postgres essaiera d'appeler la fonction gin_trgm_triconsistent qui n'existe pas en version 9.4:
SELECT am.amname, opf.opfname, ap.amproc, amop.amopopr::regoperator::text
FROM pg_am am
JOIN pg_opfamily opf ON opf.opfmethod = am.oid
JOIN pg_amproc ap ON ap.amprocfamily = opf.oid
JOIN pg_amop amop ON amop.amopfamily = opf.oid
WHERE am.amname = 'gin'
AND opf.opfname = 'gin_trgm_ops'
AND ap.amprocnum = 6;
Julien.
https://rjuju.github.io/
Hors ligne
gleu > une version de pg 9.3 avec son pgdata et ses lib , puis une autre version pg9.4 avec ses lib mais cette fois ci avec 2 pdgata (1 par instance)
rjuju > pg_trgm 1.3 sur la 9.4
Est il possible d'effecteur une autre installation de postgresql mais ciblant le pgdata d'une instance dejà présente ?
Hors ligne
non ce n'est pas possible. Il faut faire une migration des données (pg_upgrade) ou un export import.
Cordialement,
Sébastien.
Hors ligne
pg_trgm 1.3 sur la 9.4
Votre problème est là. Vous avez installé pg_trgm d'une version 9.6 ou plus sur votre instance 9.4
Julien.
https://rjuju.github.io/
Hors ligne
bah la version 1.3 elle marchait bien avant cela pourtant.
Hors ligne
Je suppose que le .so a été écrasé par une mise à jour de votre version 9.4
Julien.
https://rjuju.github.io/
Hors ligne
une recompilation de postgres a résolu le problème merci
Hors ligne
Pages : 1