Christopher Browne cbbrowne at ca.afilias.info
Thu Dec 3 11:52:57 PST 2009
Vick Khera wrote:
> On Thu, Dec 3, 2009 at 5:15 AM, Glyn Astill <glynastill at yahoo.co.uk> wrote:
>   
>> I took a quick peek in slony1_funcs.sql from the 1.2.18 release and the drop_if_exists functionality appears to be in there (although not in the slony1_funcs.vNN.sql scripts). I'm going to do a few more tests before upgrading our servers...
>>
>>     
>
> Once I added the lines
>
> drop function if exists @NAMESPACE at .ddlScript_complete (int4, text, int4);
> drop function if exists @NAMESPACE at .updateReloid (int4, int4);
>
> to slony1_funcs.sql it as was installed, my update succeeded.
>   

That is only OK in newer versions...  "drop function if exists" doesn't 
work on 7.4, for instance.

I took a look in the released code, and it seems like it has the 
function I added to emulate this:

chris at dba2:builds/slony1-1.2.18/src/backend> grep -n drop_if 
slony1_funcs.sql
3761:create or replace function @NAMESPACE at .drop_if_exists (text, text) 
returns integer as '
3775:comment on function @NAMESPACE at .drop_if_exists (text,text) is 
'Emulate DROP FUNCTION IF EXISTS, which does not exist in 7.4, 8.0, 8.1';
3777:select @NAMESPACE at .drop_if_exists ('ddlscript_complete', 'int4, 
text, int4');
5457:select @NAMESPACE at .drop_if_exists ('updatereloid', 'int4, int4');



More information about the Slony1-general mailing list