Re: Grep'ing for a string in all functions in a schema? - Mailing list pgsql-general

From bricklen
Subject Re: Grep'ing for a string in all functions in a schema?
Date
Msg-id CAGrpgQ_fYzdG7thSKQBBypfv-PZWuqE=2qTMEOezMeVjfw1XwQ@mail.gmail.com
Whole thread Raw
In response to Grep'ing for a string in all functions in a schema?  (Wells Oliver <wellsoliver@gmail.com>)
Responses Re: Grep'ing for a string in all functions in a schema?  (Wells Oliver <wellsoliver@gmail.com>)
Re: Grep'ing for a string in all functions in a schema?  (hubert depesz lubaczewski <depesz@depesz.com>)
List pgsql-general

On Thu, Jan 30, 2014 at 12:45 PM, Wells Oliver <wellsoliver@gmail.com> wrote:
Since Postgres does not consider a table as a dependency of a function if that table is referenced in the function (probably a good reason), I often find myself in a position of asking "is this table/sequence/index referenced in any of these N number of functions?"

Is there an easy way of essentially grep'ing all of the functions in a given schema for a string?

A method I've used in the past is to create a view of function source which can then be searched.
Eg.

CREATE OR REPLACE VIEW function_def as
SELECT n.nspname AS schema_name,
       p.proname AS function_name,
       pg_get_function_arguments(p.oid) AS args,
       pg_get_functiondef(p.oid) AS func_def
FROM   (SELECT oid, * FROM pg_proc p WHERE NOT p.proisagg) p
JOIN   pg_catalog.pg_namespace n ON n.oid = p.pronamespace
WHERE  n.nspname !~~ 'pg_%'
AND    n.nspname <> 'information_schema';

select * from function_def where func_def ilike '%foo%';

pgsql-general by date:

Previous
From: Wells Oliver
Date:
Subject: Grep'ing for a string in all functions in a schema?
Next
From: Wells Oliver
Date:
Subject: Re: Grep'ing for a string in all functions in a schema?