Du kan finde alle afhængigheder i systemkataloget pg_depend
.
Dette returnerer alle funktioner afhængigt af typen . dvs. ikke kun dem med typen i RETURNS
klausul, men også dem med typen som funktionsparameter:
SELECT objid::regproc AS function_name
, pg_get_functiondef(objid) AS function_definition
, pg_get_function_identity_arguments(objid) AS function_args
, pg_get_function_result(objid) AS function_returns
FROM pg_depend
WHERE refclassid = 'pg_type'::regclass
AND refobjid = 'my_type'::regtype -- insert your type name here
AND classid = 'pg_proc'::regclass; -- only find functions
Dette virker også for tabelfunktioner:
...
RETURNS TABLE (foo my_type, bar int)
Brug af systemkataloginformationsfunktioner a> .
Der kan være andre afhængigheder (ikke til funktioner). Fjern den sidste WHERE
betingelse fra min forespørgsel for at teste (og tilpasse SELECT
liste, selvfølgelig).
Og der er stadig mulighed for, at typen bruges eksplicit (i en cast for eksempel) i forespørgsler i funktionskroppen eller i dynamisk SQL. Du kan kun identificere sådanne use cases ved at parse teksten i funktionsteksten. Der er ingen eksplicitte afhængigheder registreret i systemet.
Relateret:
- Sådan får du funktionsparameterlister (så jeg kan droppe en funktion)
- DROP FUNKTION uden at kende antallet/typen af parametre?