Protože každá funkce / procedura musí mít záznam v pg_proc, můžete pro identifikaci procedury použít primární klíč. To by také odstranilo problémy s procedurami, které mají stejný název, ale jiný počet parametrů nebo různé typy parametrů.
Zkratky pro toto jsou typy regproc
a regprocedure
s příslušnými odlitky pro snadnější manipulaci. Vyhledejte příručku
pro tyto.
Identifikace funkce a její předání není žádný problém:
select 'pg_database_size(oid)'::regprocedure; -- create "reference"
regprocedure
-----------------------
pg_database_size(oid)
Použijte regprocedure
jako typ parametru.
Problém, na který jsem ještě nepřišel, je, jak vlastně takovou věc pohodlně nazvat.