Обсуждение: Re: [GENERAL] Dropping extensions

Поиск
Список
Период
Сортировка

Re: [GENERAL] Dropping extensions

От
Tom Lane
Дата:
Marc Munro <marc@bloodnok.com> writes:
> In postgres 9.1 I have created 2 extensions, veil and veil_demo.  When I
> install veil, it creates a default (not very useful) version of a
> function: veil_init().

> When I create veil_demo, it replaces this version of the function with
> it's own (useful) version.

> If I drop the extension veil_demo, I am left with the veil_demo version
> of veil_init().

> Is this a feature or a bug?  Is there a work-around?

Hmm.  I don't think we have any code in there to prohibit the same
object from being made a member of two different extensions ... but this
example suggests that maybe we had better check that.

In general, though, it is not intended that extension creation scripts
use CREATE OR REPLACE, which I gather you must be doing.
        regards, tom lane


Re: [GENERAL] Dropping extensions

От
Marc Munro
Дата:
On Sat, 2011-07-23 at 11:08 -0400, Tom Lane wrote:
> > If I drop the extension veil_demo, I am left with the veil_demo version
> > of veil_init().
>
> > Is this a feature or a bug?  Is there a work-around?
>
> Hmm.  I don't think we have any code in there to prohibit the same
> object from being made a member of two different extensions ... but this
> example suggests that maybe we had better check that.
>
> In general, though, it is not intended that extension creation scripts
> use CREATE OR REPLACE, which I gather you must be doing.

That's right.  Ultimately I'd like to be able to create a number of
extensions, all further extending the base functionality of veil, with
each one further extending veil_init().  I could consider a more
generalised callback mechanism but that adds more complexity and
overhead without really buying me anything functionally.  I will look
into it though.

While it would be great to be able to return functions to their previous
definition automatically, other simpler mechanisms might suffice.  For
me, being able to run a post-drop script would probably be adequate.
For now, I will just add some notes to the documentation.

Thanks for the response.

__
Marc


Re: [GENERAL] Dropping extensions

От
Dimitri Fontaine
Дата:
Tom Lane <tgl@sss.pgh.pa.us> writes:
> Hmm.  I don't think we have any code in there to prohibit the same
> object from being made a member of two different extensions ... but this
> example suggests that maybe we had better check that.

I see you did take care of that, thank you!
 http://git.postgresql.org/gitweb/?p=postgresql.git;a=commit;h=988cccc620dd8c16d77f88ede167b22056176324

Regards,
-- 
Dimitri Fontaine
http://2ndQuadrant.fr     PostgreSQL : Expertise, Formation et Support