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 30/04/2020 15:53:16

Mlan2
Membre

Extraction du code d'un objet de type SQL

Bonjour à tous,

Je cherche, pour une analyse de l'environnement, à ressortir le code source des objets SQL de type fonction ou trigger.

Pour les objets de type fonction, j'utilise la fonction : pg_get_functiondef à laquelle je fournis en paramètre l'oid de la fonction, et qui me renvoie le code source de ma fonction. C'est bien le résultat que j'attendais.
Pour les objets de type trigger, j'utilise la fonction : pg_get_triggerdef à laquelle je fournis en paramètre l'oid du trigger, mais je n'obtiens aucun résultat (null)

Le problème est t'il connu ? ou bien il faut procéder différemment ?

Tout éclairage sera le bienvenu.

D'avance merci.

Cordialement.

Hors ligne

#2 30/04/2020 18:18:59

rjuju
Administrateur

Re : Extraction du code d'un objet de type SQL

C'est censé fonctionner normalement.  Pouvez-vous fournir plus de détail,  notamment les lignes associées dans pg_trigger et pg_proc ?

Hors ligne

#3 30/04/2020 18:49:37

Mlan2
Membre

Re : Extraction du code d'un objet de type SQL

Merci du retour.

Je viens de me rendre compte que je ne passais pas en paramètre de la fonction, l'oid du trigger mais le tgrelid de la table pg_trigger.

En passant bien l'oid du trigger, la fonction renvoie bien un résultat comme ci-dessous :

[ code ]

select pg_get_triggerdef ('32913'::OID);

                                                     pg_get_triggerdef
---------------------------------------------------------------------------------------------------------------------------
CREATE TRIGGER trg_tabbdd AFTER INSERT OR DELETE ON user.tabbdd FOR EACH ROW EXECUTE PROCEDURE fct_trg_tabbdd()
(1 ligne)

[ /code ]

Je m'attendais également à voir le code source la fonction associée au trigger.

Qu'en est t'il exactement du résultat fourni par cette fonction ?

Merci de m'éclairer.

Cordialement.

Hors ligne

#4 30/04/2020 18:57:47

rjuju
Administrateur

Re : Extraction du code d'un objet de type SQL

pg_trigger_def permet comme son nom l'indique d'obtenir la définition du trigger, pas de la fonction trigger.  Vous pouvez utiliser pg_get_functiondef(tgfoid) sur la table pg_trigger.

Hors ligne

#5 30/04/2020 19:05:04

Mlan2
Membre

Re : Extraction du code d'un objet de type SQL

Merci de la réponse.

Je vais pouvoir à présent poursuivre mon analyse.

Bon Week-end.

Hors ligne

Pied de page des forums