Поиск 'grep-alike' с помощью функций PostgreSql - PullRequest
15 голосов
/ 15 декабря 2010

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

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

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

Ответы [ 2 ]

29 голосов
/ 15 декабря 2010
SELECT 
  proname AS functionname, 
  prosrc AS source 
FROM 
  pg_proc 
WHERE 
  prosrc ~* 'your_string';

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

5 голосов
/ 11 января 2017

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

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