Martin Moore martinm at it-helps.co.uk
Mon Feb 24 08:18:36 PST 2014
Hi,

I've restored a postgres 8.4 database onto a 9.3 installation (on Debian
Jessie) with Slony 2.1.4.

Master and slave servers are running the same versions of everything.

Running a script (as used in 8.4 - slony ver 1.2.21 so may need to be
changed, but can't find anything) which contains the following

define CLUSTER T1;
define PRIMARY 1;
define SLAVE 10;
cluster name = @CLUSTER;
define origin1 origin = @PRIMARY;
define origin2 origin = @SLAVE;
define primary id = @PRIMARY;
define slave id = @SLAVE;
define set_user_admin            id = 10001;

node @PRIMARY   admin conninfo = 'dbname=myname host=localhost user=slony';

node @SLAVE admin conninfo = 'dbname=myname host=slave.host.com user=slony';
create set    (id = 10001, @origin1, comment = 'user_admin');
set add table (set @set_user_admin, @origin1, id = 10002, full qualified
name = 'public.users', comment = 'Table public.users');


fails as below.

./addsst.slonik:3: WARNING:  Auto-casting int to text: 10001
CONTEXT:  PL/pgSQL function "_T1".storeset(integer,text) line 11 at RETURN
./addsst.slonik:3: WARNING:  Auto-casting int to text: 1
CONTEXT:  PL/pgSQL function "_T1".storeset(integer,text) line 11 at RETURN
./addsst.slonik:4: WARNING:  Auto-casting int to text: 10002
CONTEXT:  PL/pgSQL function "_T1".altertableaddtriggers(integer) line 53 at
EXECUTE statement SQL statement "SELECT
"_T1".alterTableAddTriggers(p_tab_id)"
PL/pgSQL function "_T1".setaddtable_int(integer,integer,text,name,text) line
99 at PERFORM SQL statement "SELECT "_T1".setAddTable_int(p_set_id,
p_tab_id, p_fqname,
                        p_tab_idxname, p_tab_comment)"
PL/pgSQL function "_T1".setaddtable(integer,integer,text,name,text) line 28
at PERFORM
./addsst.slonik:4: PGRES_FATAL_ERROR lock table "_T1".sl_config_lock;select
"_T1".setAddTable(10001, 10002, 'public.users', 'users_pkey', 'Table
public.users');  - ERROR:  operator is not unique: text || integer
LINE 3:     '"_T1".log_truncate(' || i_tabid || ');'
                                  ^
HINT:  Could not choose a best candidate operator. You might need to add
explicit type casts.
QUERY:  SELECT 'create trigger "_T1_truncatetrigger" ' ||
                                ' before truncate on ' || i_fqtable || ' for
each statement execute procedure ' ||
                                '"_T1".log_truncate(' || i_tabid || ');'
CONTEXT:  PL/pgSQL function "_T1".altertableaddtruncatetrigger(text,integer)
line 3 at EXECUTE statement SQL statement "SELECT
"_T1".alterTableAddTruncateTrigger(v_tab_fqname, p_tab_id)"
PL/pgSQL function "_T1".altertableaddtriggers(integer) line 65 at PERFORM
SQL statement "SELECT "_T1".alterTableAddTriggers(p_tab_id)"
PL/pgSQL function "_T1".setaddtable_int(integer,integer,text,name,text) line
99 at PERFORM SQL statement "SELECT "_T1".setAddTable_int(p_set_id,
p_tab_id, p_fqname,
                        p_tab_idxname, p_tab_comment)"
PL/pgSQL function "_T1".setaddtable(integer,integer,text,name,text) line 28
at PERFORM




Any ideas? 


Thanks,

Martin



More information about the Slony1-general mailing list