PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Fonction en tant que paramètre d'une autre fonction dans Postgres

Puisque chaque fonction/procédure doit avoir une entrée dans pg_proc, vous pouvez utiliser la clé primaire pour identifier la procédure. Cela éliminerait également les problèmes avec les procédures ayant le même nom mais un nombre différent de paramètres ou des types de paramètres différents.

Les raccourcis pour cela sont les types regproc et regprocedure avec les moulages associés pour une manipulation plus aisée. Consultez le manuel pour ceux-ci.

Identifier la fonction et la transmettre n'est pas un problème :

select 'pg_database_size(oid)'::regprocedure; -- create "reference"
     regprocedure      
-----------------------
 pg_database_size(oid)

Utilisez regprocedure comme type de paramètre.

Le problème que je n'ai pas encore compris est de savoir comment appeler une telle chose de manière pratique.