通过PostgreSql函数搜索'grep-alike'

时间:2010-12-15 10:26:46

标签: postgresql refactoring stored-functions

当重构PostgreSql函数时(更具体地说:在搜索'unused'函数时),有一个函数可用于搜索函数定义中的特定字符串。

有没有人知道这是否是最好的方法(尝试'grep'搜索函数定义)还是有其他可用的方法?

如何实现此功能?

2 个答案:

答案 0 :(得分:29)

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

有关如何在PostgreSQL中使用正则表达式的详细信息,请参阅manual

答案 1 :(得分:5)

弗兰克的答案很棒。使用此增强版本还可以列出有助于找到函数的架构:

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