Dump de base avec procédures stockées
Bonjour,
Je me suis enfin décidé à passer en version PostgreSQL 8.4 (je viens de la 7.4!) Je n'ai pas eu trop de peine malgré des petites adaptations pour mes procédures stockées en langage C (remplacement de VARATT_SIZEP par SET_VARSIZE ainsi que l'ajout du bloc "magique" PG_MODULE_MAGIC).
Mon problème est apparu lors de mon premier DUMP ou plutôt mon premier RESTORE. En effet, j'ai souvent besoin de copier des bases de données d'une machine à l'autre et j'utilise beaucoup le pg_dump.
Je retrouve bien les fonctions 'C' de ma librairie dans le fichier dump généré:
Code:
1 2 3 4
|
CREATE FUNCTION getvals(integer, integer, integer) RETURNS SETOF __vals
AS '/usr/bin/FCTLIB/pgfuncts.so', 'getvals'
LANGUAGE C STRICT; |
Dans cette fonction, il y a un "select" dans la table "ville" de la même base de donnée. Lors de mon restore, le message d'erreur suivant apparait :
Citation:
ERROR: relation "ville" does not exist
LINE 1: select max(pkey) from ville
Et ma fonction getvals n'est pas créée! La table "ville" ne saurait pas exister puisqu'elle n'a pas encore été importée (le pg_dump crée les fonctions avant les tables). Pourtant, si je fais une fonction en plpgsql qui fait accès à une table, l'erreur n'apparaît pas et la fonction est bien créée! Je n'avais pas ce problème en version 7.4.
Quelqu'un aurait-il une explication à mon problème? Ou encore mieux, une solution? ;) Merci!