2010-12-15 10 views
14

Podczas refaktoryzacji funkcji PostgreSql (i bardziej szczegółowych: podczas wyszukiwania funkcji "nieużywanych") przydatne byłoby posiadanie funkcji dostępnej do wyszukiwania określonego ciągu znaków w definicjach funkcji.Wyszukiwanie "grep-podobnie" poprzez funkcje PostgreSql

Czy ktoś wie, czy jest to najlepsze podejście (próba "grep" - wyszukaj definicje funkcji) czy istnieją inne dostępne metody?

Jak zastosować tę funkcję?

Odpowiedz

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

Szczegóły dotyczące sposobu korzystania regex w PostgreSQL można znaleźć w manual.

+0

+1 (nie zdawali sobie sprawy może być to proste ;-) Poczekam trochę czasu, aby sprawdzić, czy inne metody pop-up , ale działa to doskonale! – ChristopheD

4

Odpowiedź Franka jest świetna. Użyj tej wersji wzmocnionej dodatkowo listy schemat, który pomaga zlokalizować funkcję:

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'; 
Powiązane problemy