Поиск "grep-alike" через функции PostgreSql

При рефакторинге функций PostgreSql (и более конкретных: при поиске "неиспользуемых" функций) было бы удобно иметь функцию, доступную для поиска определенной строки в определениях функций.

Кто-нибудь знает, если это лучший подход (попытка "grep'-поиск определений функций" ) или существуют альтернативные методы?

Как реализовать эту функциональность?

Ответы

Ответ 1

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

Сведения о том, как использовать регулярное выражение в PostgreSQL, можно найти в руководстве.

Ответ 2

Фрэнк ответ велик. Используйте эту расширенную версию, чтобы дополнительно перечислить схему, которая помогает найти функцию:

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