Thread: modify custom variables

modify custom variables

From
Vincent Mora
Date:
<div class="moz-text-flowed" lang="x-western" style="font-family: -moz-fixed;     font-size: 12px;">Hi, <br /><br />
Whencreating postgis extension, a call to DefineCustomStringVariable is made to define postgis.backend.<br /><br /> An
assignhook allows to change the library used by spatial functions whith a:<br /><br />     SET postgis.backend =
'sfcgal';-- or 'geos' <br /><br /> Everything work fine execept when upgrading postgis.<br /><br /> If I understand the
problemcorrectly, on upgrate (ALTER EXTENSION), the old postgis library is already loaded, the old spatial functions
arereplaced by new ones pointing to the new postgis library, a call to DefineCustomStringVariable is made and:<br /><br
/>    ERROR:  attempt to redefine parameter "postgis.backend"<br /><br /> I need to redefine the assign hook such that
iscalls the new library backend and not the old one.<br /><br /> Is there a way to remove/modify custom variables ? I
lookedin guc.h but couldn't find anything.<br /><br /> Thanks, <br /><br /> V. <br /><br /><br /><br /> PS: I'm working
on<a class="moz-txt-link-freetext"
href="http://trac.osgeo.org/postgis/ticket/2382">http://trac.osgeo.org/postgis/ticket/2382</a>.<br /></div> 

Re: modify custom variables

From
Tom Lane
Date:
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