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.