Aqui estão três opções para listar todas as funções em um banco de dados PostgreSQL.
O information_schema.routines
Visualizar
Esta visão contém todas as funções e procedimentos no banco de dados atual que o usuário atual tem acesso (por ser o proprietário ou ter algum privilégio).
Aqui está um exemplo de retorno de uma lista de funções:
SELECT
routine_name
FROM
information_schema.routines
WHERE
routine_type = 'FUNCTION'
AND
routine_schema = 'public';
Neste exemplo, apenas funciona com o
public
esquema são retornados. Sinta-se à vontade para incluir mais colunas, se necessário. O pg_proc
Catálogo
O
pg_catalog.pg_proc
catalog armazena informações sobre funções, procedimentos, funções agregadas e funções de janela. Podemos juntar isso com o
pg_catalog.pg_namespace
catalog para filtrar os resultados apenas para procedimentos com o public
namespace:SELECT
n.nspname,
p.proname
FROM
pg_catalog.pg_namespace n
JOIN
pg_catalog.pg_proc p ON
p.pronamespace = n.oid
WHERE
p.prokind = 'f'
AND
n.nspname = 'public';
Filtramos para um
prokind
de f
para limitar os resultados apenas a funções normais. Os valores possíveis são
f
para uma função normal, p
para um procedimento, a
para uma função agregada, ou w
para uma função de janela. O \df
Comando
Ao usar o psql, podemos usar o
\df
comando:\df
Por padrão, isso retorna apenas objetos criados pelo usuário. Você também pode fornecer um padrão ou o
S
modificador para incluir objetos do sistema. Aqui está um exemplo de como fornecer um padrão:
\df *key*
Esse exemplo restringe os resultados apenas às funções/procedimentos com o texto
key
em seu nome. Observe que esse comando também retorna procedimentos armazenados. O tipo de rotina (por exemplo,
func
, proc
) está listado em um type
coluna na saída.