Detecting functions installed by an extension

2018-06-17 Thread Benjie Gillam
Greetings!

How can I tell, using the system catalog or information schema, if a
function/procedure was created by an extension as opposed to by the user
(i.e. would be dropped if you performed "DROP EXTENSION")? So far I've
looked at the `pg_extension` table, which lists the class IDs of
configuration tables but doesn't mention procedures. I've looked at
`pg_proc` but that doesn't seem to contain the information. I've also
scanned over various other system catalogues but with no luck. Is this
information available in one of the system catalogs? Does PostgreSQL itself
track this information so that it can perform cleanup, or does it expect
the extension to clean up after itself?

Thank you for your time,

Benjie.


Re: Detecting functions installed by an extension

2018-06-17 Thread Benjie Gillam
On 17 June 2018 at 10:26, Vik Fearing  wrote:

> On 17/06/18 10:05, Benjie Gillam wrote:
> > Greetings!
> >
> > How can I tell, using the system catalog or information schema, if a
> > function/procedure was created by an extension as opposed to by the user
> > (i.e. would be dropped if you performed "DROP EXTENSION")? So far I've
> > looked at the `pg_extension` table, which lists the class IDs of
> > configuration tables but doesn't mention procedures. I've looked at
> > `pg_proc` but that doesn't seem to contain the information. I've also
> > scanned over various other system catalogues but with no luck. Is this
> > information available in one of the system catalogs? Does PostgreSQL
> > itself track this information so that it can perform cleanup, or does it
> > expect the extension to clean up after itself?
>
> All dependencies are tracked in the system catalog pg_depend.
>
> If you do  \set ECHO_HIDDEN on  in psql and then  \dx+ an_extension  you
> can see what queries psql uses to get the information.  That should put
> you well on your way to doing what you want.
> --
> Vik Fearing  +33 6 46 75 15 36
> http://2ndQuadrant.fr PostgreSQL : Expertise, Formation et Support
>

It seems so obvious in retrospect! This works beautifully - thanks 🙏

Benjie.