Puede encontrar todas las dependencias en el catálogo del sistema pg_depend
.
Esto devuelve todas las funciones dependiendo del tipo . Es decir. no solo aquellos con el tipo en RETURNS
cláusula, pero también aquellos con el tipo como parámetro de función:
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
Esto también funciona para funciones de tabla:
...
RETURNS TABLE (foo my_type, bar int)
Uso de funciones de información del catálogo del sistema .
Puede haber otras dependencias (no a funciones). Eliminar el último WHERE
condición de mi consulta para probar (y adaptar el SELECT
lista, obviamente).
Y todavía existe la posibilidad de que el tipo se use explícitamente (en una conversión, por ejemplo) en consultas en el cuerpo de la función o en SQL dinámico. Solo puede identificar dichos casos de uso analizando el texto del cuerpo de la función. No hay dependencias explícitas registradas en el sistema.
Relacionado:
- Cómo obtener listas de parámetros de funciones (para poder descartar una función)
- DROP FUNCTION sin saber el número/tipo de parámetros?