Da jede Funktion / Prozedur einen Eintrag in pg_proc haben muss, können Sie den Primärschlüssel zur Identifizierung der Prozedur verwenden. Damit würden auch die Probleme mit Prozeduren mit gleichem Namen, aber unterschiedlicher Anzahl von Parametern oder unterschiedlichen Parametertypen beseitigt.
Abkürzungen dafür sind die Typen regproc
und regprocedure
mit den dazugehörigen Abgüssen zur leichteren Handhabung. Schlagen Sie im Handbuch
nach für diese.
Die Funktion zu identifizieren und weiterzugeben ist kein Problem:
select 'pg_database_size(oid)'::regprocedure; -- create "reference"
regprocedure
-----------------------
pg_database_size(oid)
Verwenden Sie regprocedure
als Parametertyp.
Das Problem, das ich noch nicht herausgefunden habe, ist, wie man so etwas auf bequeme Weise tatsächlich anruft.