Zde jsou tři možnosti pro výpis všech funkcí v databázi PostgreSQL.
information_schema.routines
Zobrazit
Toto zobrazení obsahuje všechny funkce a procedury v aktuální databázi, ke kterým má aktuální uživatel přístup (tím, že je vlastníkem nebo má nějaké oprávnění).
Zde je příklad vrácení seznamu funkcí:
SELECT
routine_name
FROM
information_schema.routines
WHERE
routine_type = 'FUNCTION'
AND
routine_schema = 'public';
V tomto příkladu funguje pouze s public
schéma se vrátí. V případě potřeby můžete zahrnout více sloupců.
pg_proc
Katalog
pg_catalog.pg_proc
katalog ukládá informace o funkcích, procedurách, agregačních funkcích a funkcích oken.
Můžeme se k tomu připojit pomocí pg_catalog.pg_namespace
katalogu filtrovat výsledky pouze na procedury s public
jmenný prostor:
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';
Filtrovali jsme na prokind
z f
omezit výsledky pouze na normální funkce.
Možné hodnoty jsou f
pro normální funkci p
pro proceduru a
pro agregační funkci nebo w
pro funkci okna.
\df
Příkaz
Při použití psql můžeme použít \df
příkaz:
\df
Ve výchozím nastavení vrací pouze objekty vytvořené uživatelem. Alternativně můžete zadat vzor nebo S
modifikátor pro zahrnutí systémových objektů.
Zde je příklad poskytnutí vzoru:
\df *key*
Tento příklad zužuje výsledky pouze na funkce/procedury s textem key
jejich jménem.
Všimněte si, že tento příkaz také vrací uložené procedury. Typ rutiny (např. func
, proc
) je uveden v type
sloupec ve výstupu.