Outre la recherche manuelle de tous les DLINK () utilisés dans les déclencheurs/fonctions/procédures stockées, il existe un moyen d'interroger pour ces informations?
Exemple: Il y a un dblink à l'intérieur d'un déclencheur, puis-je sélectionner quelque chose du schéma Postgres qui l'identifierait?
Je pense que ceci est un effort manuel mais je demande simplement de vous assurer que je ne manque pas quelque chose.
Remarque: j'ai une journalisation où je cherche aussi Dblink ()
Je dessinerais une sauvegarde de texte et la recherche avec vim
ou tout outil de votre choix.
En ce qui concerne les fonctions PLPGSQL sont concernées (il y en a un derrière chaque déclencheur), vous pouvez interroger le catalogue système pg_proc
:
SELECT *
FROM pg_catalog.pg_proc
WHERE prosrc ILIKE '%dblink%';
Vous pouvez obtenir toutes les connexions open dblink
à l'aide de dblink_get_connections()
.
Ceux qui ne sont pas utilisés ne peuvent être trouvés que en examinant votre code de fonction comme erwin suggère . Je pensais que avec des fonctions SQL, on peut interroger pour les fonctions dblink
_ Cela dépend, mais cela ne peut pas être le cas (en réalité, vous pouvez même laisser tomber l'extension tout en ayant des fonctions utilisant dblink_connect()
, par exemple.)