Liste des fonctions stockées qui référencent une table dans PostgreSQL

Juste une question simple et rapide: dans PostgreSQL, comment listez-vous les noms de toutes les fonctions stockées / procédures stockées en utilisant une table en utilisant simplement une instruction SELECT, si possible? Si un simple SELECT est insuffisant, je peux me débrouiller avec une fonction stockée.

Je pense que ma question est un peu similaire à cette autre question, mais cette autre question concerne SQL Server 2005:
Liste des procédures stockées dans la table

(facultatif) Comment pouvez-vous également lister les déclencheurs et les contraintes qui utilisent la même table de la même manière?

SELECT p.proname FROM pg_catalog.pg_namespace n JOIN pg_catalog.pg_proc p ON p.pronamespace = n.oid WHERE n.nspname = 'public' 
 SELECT proname, prosrc FROM pg_catalog.pg_namespace n JOIN pg_catalog.pg_proc p ON pronamespace = n.oid WHERE nspname = 'public'; 

Si vous utilisez psql, essayez \df

De la page de manuel:

 Tip To look up functions taking arguments or returning values of a specific type, use your pager's search capability to scroll through the \df output. 

L’exécution de \set ECHO_HIDDEN révélera ce que \df exécute en arrière-plan.

Identique à @quassnoi et @davidwhthomas, sauf que j’ai ajouté les noms des arguments:

 SELECT proname, proargnames, prosrc FROM pg_catalog.pg_namespace n JOIN pg_catalog.pg_proc p ON pronamespace = n.oid WHERE nspname = 'public'; 

Si l’objective de la liste des fonctions est de les nettoyer ou d’itérer une nouvelle fonction avec une liste de parameters variable, vous devrez souvent supprimer des fonctions:

 DROP FUNCTION (); 

En ajoutant des noms de domaine, je suis capable de construire le nom de la fonction applicable à la suppression.

En outre, il est agréable de voir une image plus complète lors de l’évaluation des fonctions.

Vous pouvez utiliser le schéma standard information_schema pour obtenir des métadonnées sur votre firebase database (dans le standard SQL, il doit donc fonctionner de la même manière dans les différents systèmes de firebase database). Dans ce cas, vous voulez des information_schema.routines .

En excluant les éléments du système:

 select proname from pg_proc where proowner <> 1; 

Regardez ma recette . Il lit les fonctions et les déclencheurs. Il est basé sur les informations de: Extraction des informations META de PostgreSQL (INFORMATION_SCHEMA)

Pour récupérer les types d’argument des fonctions, qui sont nécessaires lors du référencement de la fonction dans ALTER – l’utilisation de oldevectortypes a bien fonctionné pour moi.

Voir Comment puis-je obtenir une liste de toutes les fonctions stockées dans la firebase database d’un schéma particulier dans PostgreSQL?