PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Função como parâmetro para outra função no Postgres


Como cada função/procedimento deve ter uma entrada no pg_proc, você pode usar a chave primária para identificar o procedimento. Isso também eliminaria os problemas com procedimentos com o mesmo nome, mas diferentes números de parâmetros ou diferentes tipos de parâmetros.

Abreviações para isso são os tipos regproc e regprocedure com os moldes associados para facilitar o manuseio. Procure o manual Para estes.

Identificar a função e passá-la não é problema:
select 'pg_database_size(oid)'::regprocedure; -- create "reference"
     regprocedure      
-----------------------
 pg_database_size(oid)

Use regprocedure como o tipo de parâmetro.

O problema que eu ainda não descobri é como chamar uma coisa dessas de uma maneira conveniente.