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.