Vick Khera vivek at khera.org
Thu Dec 3 14:02:04 PST 2009
I found an error.  the "drop" statement generated by the
drop_if_exists function does not qualify the function name's schema.

I restored my schema from a dump with slony 2.1.16, then added the
drop_if_exists() function to it from the 1.2.18 file (manually
replacing @NAMESPACE@ with _rt which is my namespace).


Specifically:

vktest=# select _rt.drop_if_exists ('ddlscript_complete', 'int4, text,
int4');ERROR:  function ddlscript_complete(integer, text, integer)
does not exist
CONTEXT:  SQL statement "drop function ddlscript_complete(int4, text, int4);"
PL/pgSQL function "drop_if_exists" line 7 at EXECUTE statement

changing the drop to be:

  ... v_drop := ''drop function @NAMESPACE at .'' || p_function ...

allows it to succeed:

vktest=# select _rt.drop_if_exists ('ddlscript_complete', 'int4, text, int4');
drop_if_exists
----------------
              1


More information about the Slony1-general mailing list