Ecco tre opzioni per elencare tutte le funzioni in un database PostgreSQL.
Il information_schema.routines
Visualizza
Questa vista contiene tutte le funzioni e le procedure nel database corrente a cui l'utente corrente ha accesso (in quanto proprietario o in possesso di qualche privilegio).
Ecco un esempio di restituzione di un elenco di funzioni:
SELECT
routine_name
FROM
information_schema.routines
WHERE
routine_type = 'FUNCTION'
AND
routine_schema = 'public';
In questo esempio, funziona solo con public
schema vengono restituiti. Sentiti libero di includere più colonne, se necessario.
Il pg_proc
Catalogo
Il pg_catalog.pg_proc
il catalogo memorizza informazioni su funzioni, procedure, funzioni aggregate e funzioni della finestra.
Possiamo unirci a questo con il pg_catalog.pg_namespace
catalog per filtrare i risultati alle sole procedure con il public
spazio dei nomi:
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';
Abbiamo filtrato su un prokind
di f
per limitare i risultati alle sole normali funzioni.
I valori possibili sono f
per una normale funzione, p
per una procedura, a
per una funzione aggregata, o w
per una funzione finestra.
Il \df
Comando
Quando usiamo psql, possiamo usare il \df
comando:
\df
Per impostazione predefinita, restituisce solo oggetti creati dall'utente. In alternativa puoi fornire un pattern o la S
modificatore per includere oggetti di sistema.
Ecco un esempio di fornitura di un modello:
\df *key*
Quell'esempio restringe i risultati solo a quelle funzioni/procedure con il testo key
a loro nome.
Si noti che questo comando restituisce anche le stored procedure. Il tipo di routine (ad es. func
, proc
) è elencato in un type
colonna nell'output.