2010-12-15 43 views
14

重構PostgreSql函數(更具體地說:搜索'未使用'函數時),有一個函數可用於搜索函數定義中的特定字符串。通過PostgreSql函數搜索'grep-alike'

有誰知道這是否是最好的方法(試圖'grep' - 搜索函數定義)還是有其他可用的方法嗎?

如何實現此功能?有關如何在PostgreSQL中使用正則表達式

回答

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

詳細信息,可以在manual找到。

+0

+1(沒有意識到這可能是這個簡單的;-)我會等待一小會兒,看看是否有其他方法彈出,但這工作得很好! – ChristopheD 2010-12-15 10:54:22

4

弗蘭克的回答非常好。使用這個加強版還列出這有助於定位功能模式:

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';