sql >> Base de Datos >  >> RDS >> PostgreSQL

3 formas de enumerar todas las funciones en PostgreSQL

Aquí hay tres opciones para listar todas las funciones en una base de datos PostgreSQL.

Las information_schema.routines Ver

Esta vista contiene todas las funciones y procedimientos de la base de datos actual a los que tiene acceso el usuario actual (por ser el propietario o tener algún privilegio).

Aquí hay un ejemplo de devolver una lista de funciones:

SELECT
    routine_name
FROM 
    information_schema.routines
WHERE 
    routine_type = 'FUNCTION'
AND
    routine_schema = 'public';

En este ejemplo, solo funciona con public se devuelve el esquema. Siéntase libre de incluir más columnas si es necesario.

El pg_proc Catálogo

El pg_catalog.pg_proc El catálogo almacena información sobre funciones, procedimientos, funciones agregadas y funciones de ventana.

Podemos unir esto con el pg_catalog.pg_namespace catalog para filtrar los resultados a solo procedimientos con public espacio de nombres:

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 a un prokind de f para limitar los resultados a funciones normales.

Los valores posibles son f para una función normal, p para un procedimiento, a para una función agregada, o w para una función de ventana.

El \df Comando

Cuando usamos psql, podemos usar \df comando:

\df

De forma predeterminada, esto devuelve solo objetos creados por el usuario. Alternativamente, puede proporcionar un patrón o la S modificador para incluir objetos del sistema.

Este es un ejemplo de proporcionar un patrón:

\df *key*

Ese ejemplo reduce los resultados a solo esas funciones/procedimientos con el texto key en su nombre.

Tenga en cuenta que este comando también devuelve procedimientos almacenados. El tipo de rutina (por ejemplo, func , proc ) aparece en un type columna en la salida.