Обсуждение: modify custom variables

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

modify custom variables

От
Vincent Mora
Дата:
Hi,

When creating postgis extension, a call to DefineCustomStringVariable is made to define postgis.backend.

An assign hook allows to change the library used by spatial functions whith a:

    SET postgis.backend = 'sfcgal'; -- or 'geos'

Everything work fine execept when upgrading postgis.

If I understand the problem correctly, on upgrate (ALTER EXTENSION), the old postgis library is already loaded, the old spatial functions are replaced by new ones pointing to the new postgis library, a call to DefineCustomStringVariable is made and:

    ERROR:  attempt to redefine parameter "postgis.backend"

I need to redefine the assign hook such that is calls the new library backend and not the old one.

Is there a way to remove/modify custom variables ? I looked in guc.h but couldn't find anything.

Thanks,

V.



PS: I'm working on http://trac.osgeo.org/postgis/ticket/2382.

Re: modify custom variables

От
Tom Lane
Дата:
Vincent Mora <vincent.mora@oslandia.com> writes:
> If I understand the problem correctly, on upgrate (ALTER EXTENSION), the 
> old postgis library is already loaded, the old spatial functions are 
> replaced by new ones pointing to the new postgis library, a call to 
> DefineCustomStringVariable is made and:

>      ERROR:  attempt to redefine parameter "postgis.backend"

> I need to redefine the assign hook such that is calls the new library 
> backend and not the old one.

I think what you need to do is arrange the upgrade process so that the old
shared library doesn't get loaded in the same session as the new one.
Otherwise, you're likely to have lots more problems than just this.
        regards, tom lane