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 25/04/2012 18:53:18

sinfra
Membre

incompatible library "/usr/lib/postgresql/9.1/lib/pg_setpriority.so"

Salut,
je travaille sur la migration de postgresql-8.4 a 9.1.
lors de l'install de 9.1, le fichier pg_setpriority.so n'a pas ete cree dans le repertoire /usr/lib/postgresql/9.1/lib/, j'ai donc copier le fichier qui existe sur /usr/lib/postgresql/8.4/lib/.
ensuite, j'ai fait un pg_dump puis psql -f fichier-dump.sql pour restaurer, mais j'ai ce message d'erreur.
--------------------
psql:backup_pptc50.sql:110: ERROR:  incompatible library "/usr/lib/postgresql/9.1/lib/pg_setpriority.so": version mismatch
DETAIL:  Server is version 9.1, library is version 8.4.
psql:backup_pptc50.sql:113: ERROR:  function core.pg_setpriority(integer) does not exist
-------------------

je cherche sur google pour télécharger cette librairie, mais je ne trouve pas,
aviez vous une idée?
merci

Hors ligne

#2 25/04/2012 19:19:05

rjuju
Administrateur

Re : incompatible library "/usr/lib/postgresql/9.1/lib/pg_setpriority.so"

pg_setpriority ne fait pas partie des contrib standard de postgresql. Si vous voulez continuer à l'utiliser, il va sans doute falloir la recompiler à la main avec le code source. Au vu du nom de la bibliothèque, je suppose qu'il s'agit d'autoriser depuis la ligne de commande postgres à faire un nice sur le backend en cours ? Cela risque d'engendrer plus de problème qu'autre chose et je vous déconseillerai de trop l'utiliser.

Hors ligne

#3 25/04/2012 19:56:08

sinfra
Membre

Re : incompatible library "/usr/lib/postgresql/9.1/lib/pg_setpriority.so"

je ne sais pas exactement a quoi il sert, mais on a 3 applications qui se connectent sur la bd, aussi il est utilise dans cette fonction
--------------------
CREATE OR REPLACE FUNCTION pg_setpriority(integer)
  RETURNS boolean AS
'/usr/lib/postgresql/8.4/lib/pg_setpriority.so', 'pg_setpriority'
  LANGUAGE c VOLATILE STRICT
  COST 1;
ALTER FUNCTION pg_setpriority(integer) OWNER TO user1
-------------------
comment recompiler à la main avec le code source comme t l'as suggéré?

Hors ligne

#4 25/04/2012 20:05:22

rjuju
Administrateur

Re : incompatible library "/usr/lib/postgresql/9.1/lib/pg_setpriority.so"

Cette fonction n'est qu'une "couche sql" pour la procédure en c associée (pg_setpriority.so).

Vous pouvez essayer de chercher si elle est appelée quelque part, par ex :
select proname from pg_proc where prosrc ilike '%pg_setpriority%'
ou sur votre applicatif.
Sinon, pour recompiler vous devriez avoir sur votre serveur un fichier pg_setpriority.c qui a été compilé pour obtenir pg_setpirority.so à l'époque de la mise en place de votre serveur en 8.4 qu'il faut recompiler de la même façon.

Hors ligne

#5 25/04/2012 20:43:06

sinfra
Membre

Re : incompatible library "/usr/lib/postgresql/9.1/lib/pg_setpriority.so"

salut,
le fichier pg_setpriority.c est introuvable, je ne sais pas ou l'ancien admin l'a mis.
dans la bd, on a ca
---
postgres=# select proname from pg_proc where prosrc ilike '%pg_setpriority%';
LOG:  duration: 123.604 ms  statement: select proname from pg_proc where prosrc ilike '%pg_setpriority%';
proname
---------
(0 rows)
---------
dans l' application, on utlise la fonction dans une classe
-------------------------
$priority = "SELECT pg_setpriority(-10)";
$dbStatement = $dbConnection->prepare($priority);
$dbStatement->setFetchMode(PDO::FETCH_NUM);
$dbStatement->execute();

$request = "SELECT tc.card_number,************************";
$dbStatement = $dbConnection->prepare($request);
$dbStatement->setFetchMode(PDO::FETCH_NUM);
$dbStatement->execute();
-------------------

par quoi pourrais je remplacer l'expression:"SELECT pg_setpriority(-10)" ?

Hors ligne

#6 25/04/2012 21:26:20

gleu
Administrateur

Re : incompatible library "/usr/lib/postgresql/9.1/lib/pg_setpriority.so"

Par rien par défaut. L'ancien DBA a installé une extension. Il a pu la coder lui-même. En tout cas, je ne trouve rien à partir de Google.

Une extension du même type (enfin, je suppose) est disponible sur http://pgxn.org/dist/prioritize/


Guillaume.

Hors ligne

#7 25/04/2012 21:48:42

rjuju
Administrateur

Re : incompatible library "/usr/lib/postgresql/9.1/lib/pg_setpriority.so"

Je crois qu'il s'agit de cette extension (à vérifier bien entendu) : http://weblog.bignerdranch.com/?p=11

Hors ligne

Pied de page des forums