From: | Sumeet Shukla <sumeet(dot)k(dot)shukla(at)gmail(dot)com> |
---|---|
To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
Cc: | pgsql-admin <pgsql-admin(at)postgresql(dot)org> |
Subject: | Re: Find if a function is being referenced in another function in the database |
Date: | 2015-12-03 06:39:12 |
Message-ID: | CABUL136a_R=LFS=82aJL2564ZZZtsC2aZKaxVbhp18aK+UzguA@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-admin |
Thank You for answering the query :-)
Thanks & Regards,
Sumeet Shukla
Ph. No. 962 323 4700
On Wed, Dec 2, 2015 at 8:35 PM, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
> Sumeet Shukla <sumeet(dot)k(dot)shukla(at)gmail(dot)com> writes:
> > Can someone guide me on how can I find if a given function is being
> > referenced by other functions in the same database. If being referenced
> > then a list of functions that are referencing it?
>
> Postgres does not track this in any way, because function bodies are for
> the most part just black boxes to the core database.
>
> As a first approximation, you could grep (LIKE/regexp search) the
> pg_proc.prosrc column for the names of functions you're interested in.
> This would have some problems with overloaded functions, and it's
> certainly possible to hide calls from it if you want to, but it's a start.
> Something like
>
> select s.proname as caller, t.proname as callee
> from pg_proc t, pg_proc s
> where s.prosrc ~ ('\W' || t.proname || '\(')
> and s.prolang > 13 and t.prolang > 13;
>
> (The prolang conditions exclude C/internal functions; this query will
> run quite a long time if you include those.)
>
> regards, tom lane
>
From | Date | Subject | |
---|---|---|---|
Next Message | Mark Steben | 2015-12-04 13:29:30 | Documentation on hacker prevention (OSP security flaws) requested |
Previous Message | Tom Lane | 2015-12-03 03:36:15 | Re: pg_dump aborts with triggers error |