CVS User Account cvsuser
Fri Oct 21 23:17:13 PDT 2005
Log Message:
-----------
1.  Fix comments that had arguments that did not match the actual
    function arguments

2.  Some of the notifications had crummy notice contents; fixed this up

3.  setsyncTracking_offline() was missing a parameter

4.  Add in a call to copyfields() so that we can use 
      COPY $tabname $fields from stdn;
        rather than 
      COPY $tabname from stdn;
    That's useful notably for temporal databases

5.  Apparently we sometimes need a whole bunch of \\\\\\ backslashes
    on some platforms in order to get just one in the output...

Tags:
----
REL_1_1_STABLE

Modified Files:
--------------
    slony1-engine/tools:
        slony1_dump.sh (r1.1.2.1 -> r1.1.2.2)

-------------- next part --------------
Index: slony1_dump.sh
===================================================================
RCS file: /usr/local/cvsroot/slony1/slony1-engine/tools/slony1_dump.sh,v
retrieving revision 1.1.2.1
retrieving revision 1.1.2.2
diff -Ltools/slony1_dump.sh -Ltools/slony1_dump.sh -u -w -r1.1.2.1 -r1.1.2.2
--- tools/slony1_dump.sh
+++ tools/slony1_dump.sh
@@ -98,7 +98,7 @@
 );
 
 -- -----------------------------------------------------------------------------
--- FUNCTION sequenceSetValue_offline (seq_id, seq_origin, ev_seqno, last_value)
+-- FUNCTION sequenceSetValue_offline (seq_id, last_value)
 -- -----------------------------------------------------------------------------
 create or replace function $clname.sequenceSetValue_offline(int4, int8) returns int4
 as '
@@ -128,9 +128,9 @@
 ' language plpgsql;
 
 -- ---------------------------------------------------------------------------------------
--- FUNCTION setsyncTracking_offline (seq_id, seq_origin, ev_seqno, last_value, sync_time)
+-- FUNCTION setsyncTracking_offline (seq_id, seq_origin, ev_seqno, sync_time)
 -- ---------------------------------------------------------------------------------------
-create or replace function $clname.setsyncTracking_offline(int4, int8, int8) returns int8
+create or replace function $clname.setsyncTracking_offline(int4, int8, int8, timestamptz) returns int8
 as '
 declare
 	p_set_id	alias for \$1;
@@ -147,9 +147,9 @@
 
 	if v_row.ssy_seqno <> p_old_seq then
 		raise exception ''Slony-I: set % is on sync %, this archive log expects %'', 
-			p_set_id, v_row.ssy_seqno, p_old_seq;
+			p_set_id, p_old_seq, p_new_seq;
 	end if;
-	raise notice ''Slony-I: Process set % sync % time'', p_set_id, p_new_seq, p_sync_time;
+	raise notice ''Slony-I: Process set % sync % time %'', p_set_id, p_new_seq, p_sync_time;
 
 	update $clname.sl_setsync_offline set ssy_seqno = p_new_seq, ssy_synctime = p_sync_time
 		where ssy_setid = p_set_id;
@@ -197,13 +197,22 @@
 # ----
 # Now dump all the user table data
 # ----
+system_type=`uname`
 for tab in $tables ; do
 	eval tabname=\$tabname_$tab
-	echo "select 'copy $tabname from stdin;';"
-
-	echo "copy $tabname to stdout;"
 
+	# Get fieldnames...
+ 	fields=`psql -At -c "select $clname.copyfields($tab);" $dbname`
+ 	echo "select 'copy $tabname $fields from stdin;';"
+
+        case $system_type in
+	    AIX|aix)
+		echo "select '\\\\\\\\.';"
+		;;
+	    *)
 	echo "select '\\\\.';"
+		;;
+	esac
 done
 
 # ----


More information about the Slony1-commit mailing list