Vous n'êtes pas identifié(e).
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
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.
Julien.
https://rjuju.github.io/
Hors ligne
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
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.
Julien.
https://rjuju.github.io/
Hors ligne
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
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
Je crois qu'il s'agit de cette extension (à vérifier bien entendu) : http://weblog.bignerdranch.com/?p=11
Julien.
https://rjuju.github.io/
Hors ligne