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

3 maneiras de listar todas as funções no PostgreSQL


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.