2010-12-15 16 views
14

Al refacturar las funciones de PostgreSql (y más específicas: al buscar funciones 'no utilizadas') sería útil tener una función disponible para buscar una cadena específica dentro de las definiciones de función.Buscar 'grep-similar' mediante funciones de PostgreSql

¿Alguien sabe si este es el mejor enfoque (tratando de 'grep'-buscar las definiciones de funciones) o hay métodos alternativos disponibles?

¿Cómo se implementaría esta funcionalidad?

Respuesta

27
SELECT 
    proname AS functionname, 
    prosrc AS source 
FROM 
    pg_proc 
WHERE 
    prosrc ~* 'your_string'; 

detalles acerca de cómo utilizar una expresión regular en PostgreSQL, se pueden encontrar en el manual.

+0

+1 (no se dio cuenta que podría ser este sencillo ;-) voy a esperar un poco de tiempo para ver si otros enfoques pop-up , pero esto está funcionando perfectamente bien! – ChristopheD

4

La respuesta de Frank es genial. Utilice esta versión mejorada a la lista, además, el esquema que ayuda a localizar la función:

SELECT 
    proname AS functionname, 
    prosrc AS source, 
    nspname AS schema 
FROM 
    pg_proc 
INNER JOIN pg_namespace ON (pg_proc.pronamespace = pg_namespace.oid) 
WHERE 
    prosrc ~* 'your_string'; 
Cuestiones relacionadas