File slony1-1.2.16-1.2.17rc.diff of Package slony1

diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/slony1-1.2.16/RELEASE new/slony1-1.2.17-rc/RELEASE
--- old/slony1-1.2.16/RELEASE	2009-04-30 18:39:29.000000000 +0200
+++ new/slony1-1.2.17-rc/RELEASE	2009-07-29 00:21:00.000000000 +0200
@@ -1,4 +1,26 @@
-$Id: RELEASE,v 1.1.2.34 2009-04-30 16:39:29 cbbrowne Exp $
+$Id: RELEASE,v 1.1.2.37 2009-07-28 22:21:00 cbbrowne Exp $
+Release 1.2.17
+
+- Apply changes to logshipper that went into the 2.0 branch but not
+  1.2
+
+- Change minimum debugging level to -1 to allow suppressing logging
+
+- Bug #92 - compression of event numbers had a bug where events >
+  2^31-1 would overflow the "int" value
+
+- Fix to race condition where file descriptor copies were being made at
+  the wrong time in the scheduler
+
+- Establish compatibility with PostgreSQL 8.4:
+
+  - autovac data is on pg_class rather than pg_autovacuum
+
+  - Need to use GetActiveSnapshot() rather than expecting to have
+    SerializableSnapshot in the backend
+
+  - createdb needs to copy from template0 to ensure it can match locales
+
 Release 1.2.16
 
 - Fix to configure.ac to make it compatible with latest version (2.63)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/slony1-1.2.16/config/acx_libpq.m4 new/slony1-1.2.17-rc/config/acx_libpq.m4
--- old/slony1-1.2.16/config/acx_libpq.m4	2007-11-22 23:51:04.000000000 +0100
+++ new/slony1-1.2.17-rc/config/acx_libpq.m4	2009-07-23 20:30:04.000000000 +0200
@@ -387,6 +387,15 @@
   AC_MSG_RESULT([yes, and it takes $ac_cv_typenameTypeId_args arguments])
 fi
 
+AC_MSG_CHECKING(for GetActiveSnapshot)
+AC_EGREP_HEADER(GetActiveSnapshot,
+	utils/snapmgr.h,
+	[AC_MSG_RESULT(yes)
+	AC_DEFINE(HAVE_GETACTIVESNAPSHOT)],
+	AC_MSG_RESULT(no)
+)
+
+
 AC_MSG_CHECKING(for standard_conforming_strings)
 if test -z "$ac_cv_standard_conforming_strings"; then
   AC_EGREP_HEADER(standard_conforming_strings, 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/slony1-1.2.16/config.h.in new/slony1-1.2.17-rc/config.h.in
--- old/slony1-1.2.16/config.h.in	2009-04-30 18:20:52.000000000 +0200
+++ new/slony1-1.2.17-rc/config.h.in	2009-07-23 20:30:04.000000000 +0200
@@ -6,14 +6,14 @@
  *	Copyright (c) 2003-2004, PostgreSQL Global Development Group
  *	Author: Jan Wieck, Afilias USA INC.
  *
- * $Id: config.h.in,v 1.17.2.16 2009-04-30 16:20:52 cbbrowne Exp $
+ * $Id: config.h.in,v 1.17.2.18 2009-07-23 18:30:04 wieck Exp $
  * ----------
  */
 #ifndef	SLONY_I_CONFIG_H
 #define SLONY_I_CONFIG_H
 
-#define SLONY_I_VERSION_STRING	"1.2.16"
-#define SLONY_I_VERSION_STRING_DEC 1,2,16
+#define SLONY_I_VERSION_STRING	"1.2.17"
+#define SLONY_I_VERSION_STRING_DEC 1,2,17
 
 #ifndef PG_VERSION_MAJOR
 #define PG_VERSION_MAJOR 0
@@ -99,6 +99,8 @@
 #define GetTopTransactionId() GetCurrentTransactionId()
 #endif
 
+/* For PostgreSQL 8.4 and up we need to use GetActiveSnapshot() */
+#undef HAVE_GETACTIVESNAPSHOT
 
 /* Set to 1 if we have POSIX signals */
 #undef HAVE_POSIX_SIGNALS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/slony1-1.2.16/configure new/slony1-1.2.17-rc/configure
--- old/slony1-1.2.16/configure	2009-05-09 00:04:27.000000000 +0200
+++ new/slony1-1.2.17-rc/configure	2009-07-29 22:34:01.000000000 +0200
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.63 for postgresql-slony1 1.2.16.
+# Generated by GNU Autoconf 2.63 for postgresql-slony1 1.2.17_RC.
 #
 # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
 # 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
@@ -594,8 +594,8 @@
 # Identity of this package.
 PACKAGE_NAME='postgresql-slony1'
 PACKAGE_TARNAME='postgresql-slony1'
-PACKAGE_VERSION='1.2.16'
-PACKAGE_STRING='postgresql-slony1 1.2.16'
+PACKAGE_VERSION='1.2.17_RC'
+PACKAGE_STRING='postgresql-slony1 1.2.17_RC'
 PACKAGE_BUGREPORT=''
 
 ac_unique_file="src"
@@ -1328,7 +1328,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures postgresql-slony1 1.2.16 to adapt to many kinds of systems.
+\`configure' configures postgresql-slony1 1.2.17_RC to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1394,7 +1394,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of postgresql-slony1 1.2.16:";;
+     short | recursive ) echo "Configuration of postgresql-slony1 1.2.17_RC:";;
    esac
   cat <<\_ACEOF
 
@@ -1502,7 +1502,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-postgresql-slony1 configure 1.2.16
+postgresql-slony1 configure 1.2.17_RC
 generated by GNU Autoconf 2.63
 
 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
@@ -1516,7 +1516,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by postgresql-slony1 $as_me 1.2.16, which was
+It was created by postgresql-slony1 $as_me 1.2.17_RC, which was
 generated by GNU Autoconf 2.63.  Invocation command line was
 
   $ $0 $@
@@ -8348,6 +8348,34 @@
 $as_echo "yes, and it takes $ac_cv_typenameTypeId_args arguments" >&6; }
 fi
 
+{ $as_echo "$as_me:$LINENO: checking for GetActiveSnapshot" >&5
+$as_echo_n "checking for GetActiveSnapshot... " >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <utils/snapmgr.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "GetActiveSnapshot" >/dev/null 2>&1; then
+  { $as_echo "$as_me:$LINENO: result: yes" >&5
+$as_echo "yes" >&6; }
+	cat >>confdefs.h <<\_ACEOF
+#define HAVE_GETACTIVESNAPSHOT 1
+_ACEOF
+
+else
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+
+fi
+rm -f conftest*
+
+
+
 { $as_echo "$as_me:$LINENO: checking for standard_conforming_strings" >&5
 $as_echo_n "checking for standard_conforming_strings... " >&6; }
 if test -z "$ac_cv_standard_conforming_strings"; then
@@ -11583,7 +11611,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by postgresql-slony1 $as_me 1.2.16, which was
+This file was extended by postgresql-slony1 $as_me 1.2.17_RC, which was
 generated by GNU Autoconf 2.63.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -11642,7 +11670,7 @@
 _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_version="\\
-postgresql-slony1 config.status 1.2.16
+postgresql-slony1 config.status 1.2.17_RC
 configured by $0, generated by GNU Autoconf 2.63,
   with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/slony1-1.2.16/configure.ac new/slony1-1.2.17-rc/configure.ac
--- old/slony1-1.2.16/configure.ac	2009-04-30 18:18:41.000000000 +0200
+++ new/slony1-1.2.17-rc/configure.ac	2009-04-30 18:18:41.000000000 +0200
@@ -11,7 +11,7 @@
 #
 # Process this file with autoconf to produce a configure script.
 # ----------
-m4_define([SLONREL_VERSION], esyscmd([echo "$Name: REL_1_2_16 $" | \
+m4_define([SLONREL_VERSION], esyscmd([echo "$Name: REL_1_2_17_RC $" | \
   sed -e 's/\:\ REL_//' -e 's/\$//g' -e 's/_/./g' -e 's/\./\_/3' \
     -e 's/\ //g' -e s/\:/`date +HEAD_%Y%m%d`/ | tr -d '\n']))
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/slony1-1.2.16/src/backend/slony1_funcs.c new/slony1-1.2.17-rc/src/backend/slony1_funcs.c
--- old/slony1-1.2.16/src/backend/slony1_funcs.c	2007-11-22 23:51:04.000000000 +0100
+++ new/slony1-1.2.17-rc/src/backend/slony1_funcs.c	2009-07-23 20:30:04.000000000 +0200
@@ -6,7 +6,7 @@
  *	Copyright (c) 2003-2005, PostgreSQL Global Development Group
  *	Author: Jan Wieck, Afilias USA INC.
  *
- *	$Id: slony1_funcs.c,v 1.53.2.3 2007-11-22 22:51:04 cbbrowne Exp $
+ *	$Id: slony1_funcs.c,v 1.53.2.4 2009-07-23 18:30:04 wieck Exp $
  * ----------------------------------------------------------------------
  */
 
@@ -21,11 +21,15 @@
 #include "commands/trigger.h"
 #include "commands/async.h"
 #include "catalog/pg_operator.h"
+#include "catalog/pg_type.h"
 #include "access/xact.h"
 #include "access/transam.h"
 #include "utils/builtins.h"
 #include "utils/elog.h"
 #include "utils/guc.h"
+#ifdef HAVE_GETACTIVESNAPSHOT
+#include "utils/snapmgr.h"
+#endif
 #ifdef HAVE_TYPCACHE
 #include "utils/typcache.h"
 #else
@@ -147,6 +151,9 @@
 	int			i;
 	int64		retval;
 	bool		isnull;
+#ifdef HAVE_GETACTIVESNAPSHOT
+	Snapshot	SerializableSnapshot = GetActiveSnapshot();
+#endif
 
 	if (SerializableSnapshot == NULL)
 		elog(ERROR, "Slony-I: SerializableSnapshot is NULL in createEvent()");
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/slony1-1.2.16/src/backend/slony1_funcs.sql new/slony1-1.2.17-rc/src/backend/slony1_funcs.sql
--- old/slony1-1.2.16/src/backend/slony1_funcs.sql	2009-04-30 18:20:27.000000000 +0200
+++ new/slony1-1.2.17-rc/src/backend/slony1_funcs.sql	2009-07-08 22:46:02.000000000 +0200
@@ -6,7 +6,7 @@
 --	Copyright (c) 2003-2004, PostgreSQL Global Development Group
 --	Author: Jan Wieck, Afilias USA INC.
 --
--- $Id: slony1_funcs.sql,v 1.98.2.34 2009-04-30 16:20:27 cbbrowne Exp $
+-- $Id: slony1_funcs.sql,v 1.98.2.35 2009-07-08 20:46:02 cbbrowne Exp $
 -- ----------------------------------------------------------------------
 
 -- **********************************************************************
@@ -430,7 +430,7 @@
 returns int4
 as '
 begin
-	return 16;
+	return 17;
 end;
 ' language plpgsql;
 comment on function @NAMESPACE@.slonyVersionPatchlevel () is 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/slony1-1.2.16/src/slon/cleanup_thread.c new/slony1-1.2.17-rc/src/slon/cleanup_thread.c
--- old/slony1-1.2.16/src/slon/cleanup_thread.c	2007-08-22 23:20:23.000000000 +0200
+++ new/slony1-1.2.17-rc/src/slon/cleanup_thread.c	2009-07-29 00:19:38.000000000 +0200
@@ -6,7 +6,7 @@
  *	Copyright (c) 2003-2004, PostgreSQL Global Development Group
  *	Author: Jan Wieck, Afilias USA INC.
  *
- *	$Id: cleanup_thread.c,v 1.33.2.4 2007-08-22 21:20:23 cbbrowne Exp $
+ *	$Id: cleanup_thread.c,v 1.33.2.5 2009-07-28 22:19:38 cbbrowne Exp $
  *-------------------------------------------------------------------------
  */
 
@@ -302,11 +302,22 @@
 				sprintf(tstring, table_list[t], rtcfg_namespace);
 				if (a_vac==1)
 				{
-					slon_mkquery(&query3,"select (case when pga.enabled ISNULL THEN true ELSE pga.enabled END) "
-						"from \"pg_catalog\".pg_namespace PGN, \"pg_catalog\".pg_class PGC LEFT OUTER JOIN "
-						"\"pg_catalog\".pg_autovacuum pga ON (PGC.oid = pga.vacrelid) where PGC.relnamespace = PGN.oid "
-						"and %s.slon_quote_input('%s')=%s.slon_quote_brute(PGN.nspname) || '.' || %s.slon_quote_brute(PGC.relname);",
-					 	rtcfg_namespace,tstring, rtcfg_namespace, rtcfg_namespace);
+					if (conn->pg_version < 80400) {
+						slon_mkquery(&query3,"select (case when pga.enabled ISNULL THEN true ELSE pga.enabled END) "
+									 "from \"pg_catalog\".pg_namespace PGN, \"pg_catalog\".pg_class PGC LEFT OUTER JOIN "
+									 "\"pg_catalog\".pg_autovacuum pga ON (PGC.oid = pga.vacrelid) where PGC.relnamespace = PGN.oid "
+									 "and %s.slon_quote_input('%s')=%s.slon_quote_brute(PGN.nspname) || '.' || %s.slon_quote_brute(PGC.relname);",
+									 rtcfg_namespace,tstring, rtcfg_namespace, rtcfg_namespace);
+
+					} else {
+						/* PostgreSQL 8.4 */
+						slon_mkquery (&query3, 
+									  "select coalesce ('autovacuum_enabled=on' = any(reloptions), 't'::boolean) "
+									  "from \"pg_catalog\".pg_class pgc, \"pg_catalog\".pg_namespace pgn "
+									  "where pgc.relnamespace = pgn.oid and %s.slon_quote_input('%s')= "
+									  " %s.slon_quote_brute(PGN.nspname) || '.' || %s.slon_quote_brute(PGC.relname);",
+									  rtcfg_namespace,tstring, rtcfg_namespace, rtcfg_namespace);
+					}
 
 					res = PQexec(dbconn, dstring_data(&query3));
 					if (PQresultStatus(res) != PGRES_TUPLES_OK)  /* query error */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/slony1-1.2.16/src/slon/conf-file.c new/slony1-1.2.17-rc/src/slon/conf-file.c
--- old/slony1-1.2.16/src/slon/conf-file.c	2009-05-09 00:07:19.000000000 +0200
+++ new/slony1-1.2.17-rc/src/slon/conf-file.c	2009-07-29 22:35:05.000000000 +0200
@@ -1,5 +1,6 @@
+#line 2 "conf-file.c"
 
-#line 3 "<stdout>"
+#line 4 "conf-file.c"
 
 #define  YY_INT_ALIGNED short int
 
@@ -503,9 +504,9 @@
 #define YY_MORE_ADJ 0
 #define YY_RESTORE_YY_MORE_OFFSET
 char *yytext;
-#line 1 "src/slon/conf-file.l"
+#line 1 "conf-file.l"
 /* Scanner for slon config file */
-#line 4 "src/slon/conf-file.l"
+#line 4 "conf-file.l"
 #include <sys/stat.h>
 #include <unistd.h>
 #include <errno.h>
@@ -543,7 +544,7 @@
 /* prototype, so compiler is happy with our high warnings setting */
 int SLON_yylex(void);
 char *SLON_scanstr(char *);
-#line 547 "<stdout>"
+#line 548 "conf-file.c"
 
 #define INITIAL 0
 
@@ -728,10 +729,10 @@
 	register char *yy_cp, *yy_bp;
 	register int yy_act;
     
-#line 67 "src/slon/conf-file.l"
+#line 67 "conf-file.l"
 
 
-#line 735 "<stdout>"
+#line 736 "conf-file.c"
 
 	if ( !(yy_init) )
 		{
@@ -813,70 +814,70 @@
 case 1:
 /* rule 1 can match eol */
 YY_RULE_SETUP
-#line 69 "src/slon/conf-file.l"
+#line 69 "conf-file.l"
 ConfigFileLineno++; return SLON_EOL;
 	YY_BREAK
 case 2:
 YY_RULE_SETUP
-#line 70 "src/slon/conf-file.l"
+#line 70 "conf-file.l"
 /* eat whitespace */
 	YY_BREAK
 case 3:
 YY_RULE_SETUP
-#line 71 "src/slon/conf-file.l"
+#line 71 "conf-file.l"
 /* eat comment */
 	YY_BREAK
 case 4:
 YY_RULE_SETUP
-#line 73 "src/slon/conf-file.l"
+#line 73 "conf-file.l"
 return SLON_ID;
 	YY_BREAK
 case 5:
 YY_RULE_SETUP
-#line 74 "src/slon/conf-file.l"
+#line 74 "conf-file.l"
 return SLON_QUALIFIED_ID;
 	YY_BREAK
 case 6:
 YY_RULE_SETUP
-#line 75 "src/slon/conf-file.l"
+#line 75 "conf-file.l"
 return SLON_STRING;
 	YY_BREAK
 case 7:
 YY_RULE_SETUP
-#line 76 "src/slon/conf-file.l"
+#line 76 "conf-file.l"
 return SLON_UNQUOTED_STRING;
 	YY_BREAK
 case 8:
 YY_RULE_SETUP
-#line 77 "src/slon/conf-file.l"
+#line 77 "conf-file.l"
 return SLON_ESCAPED_STRING;
 	YY_BREAK
 case 9:
 YY_RULE_SETUP
-#line 78 "src/slon/conf-file.l"
+#line 78 "conf-file.l"
 return SLON_INTEGER;
 	YY_BREAK
 case 10:
 YY_RULE_SETUP
-#line 79 "src/slon/conf-file.l"
+#line 79 "conf-file.l"
 return SLON_REAL;
 	YY_BREAK
 case 11:
 YY_RULE_SETUP
-#line 80 "src/slon/conf-file.l"
+#line 80 "conf-file.l"
 return SLON_EQUALS;
 	YY_BREAK
 case 12:
 YY_RULE_SETUP
-#line 82 "src/slon/conf-file.l"
+#line 82 "conf-file.l"
 return SLON_FERROR;
 	YY_BREAK
 case 13:
 YY_RULE_SETUP
-#line 84 "src/slon/conf-file.l"
+#line 84 "conf-file.l"
 YY_FATAL_ERROR( "flex scanner jammed" );
 	YY_BREAK
-#line 880 "<stdout>"
+#line 881 "conf-file.c"
 case YY_STATE_EOF(INITIAL):
 	yyterminate();
 
@@ -1834,7 +1835,7 @@
 
 #define YYTABLES_NAME "yytables"
 
-#line 84 "src/slon/conf-file.l"
+#line 84 "conf-file.l"
 
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/slony1-1.2.16/src/slon/confoptions.c new/slony1-1.2.17-rc/src/slon/confoptions.c
--- old/slony1-1.2.16/src/slon/confoptions.c	2007-02-02 21:23:46.000000000 +0100
+++ new/slony1-1.2.17-rc/src/slon/confoptions.c	2009-07-20 18:43:40.000000000 +0200
@@ -560,7 +560,7 @@
 		},
 		&slon_log_level,
 		4,
-		0,
+		-1,
 		4
 	},
 	{
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/slony1-1.2.16/src/slon/dbutils.c new/slony1-1.2.17-rc/src/slon/dbutils.c
--- old/slony1-1.2.16/src/slon/dbutils.c	2006-12-06 10:46:09.000000000 +0100
+++ new/slony1-1.2.17-rc/src/slon/dbutils.c	2009-07-21 00:30:47.000000000 +0200
@@ -6,7 +6,7 @@
  *	Copyright (c) 2003-2004, PostgreSQL Global Development Group
  *	Author: Jan Wieck, Afilias USA INC.
  *
- *	$Id: dbutils.c,v 1.23.2.4 2006-12-06 09:46:09 xfade Exp $
+ *	$Id: dbutils.c,v 1.23.2.5 2009-07-20 22:30:47 cbbrowne Exp $
  * ----------------------------------------------------------------------
  */
 
@@ -478,6 +478,12 @@
 						dstring_append(dsp, buf);
 						fmt++;
 						break;
+
+					case 'L':
+						sprintf(buf, "%lld", va_arg(ap, int));
+						dstring_append(dsp, buf);
+						fmt++;
+						break;
 
 					default:
 						dstring_addchar(dsp, '%');
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/slony1-1.2.16/src/slon/remote_worker.c new/slony1-1.2.17-rc/src/slon/remote_worker.c
--- old/slony1-1.2.16/src/slon/remote_worker.c	2008-09-09 23:30:25.000000000 +0200
+++ new/slony1-1.2.17-rc/src/slon/remote_worker.c	2009-07-21 00:30:47.000000000 +0200
@@ -6,7 +6,7 @@
  *	Copyright (c) 2003-2004, PostgreSQL Global Development Group
  *	Author: Jan Wieck, Afilias USA INC.
  *
- *	$Id: remote_worker.c,v 1.124.2.35 2008-09-09 21:30:25 cbbrowne Exp $
+ *	$Id: remote_worker.c,v 1.124.2.37 2009-07-20 22:30:47 cbbrowne Exp $
  *-------------------------------------------------------------------------
  */
 
@@ -5873,7 +5873,7 @@
 compress_actionseq(const char *ssy_actionlist, SlonDString * action_subquery)
 {
 	int			state;
-	int			curr_number,
+	long long			curr_number,
 				curr_min,
 				curr_max;
 	int			curr_digit;
@@ -6021,7 +6021,7 @@
 				if (state == COLLECTING_DIGITS)
 				{
 					/* Finished another number... Fold it into the ranges... */
-					slon_log(SLON_DEBUG4, "Finished number: %d\n", curr_number);
+					slon_log(SLON_DEBUG4, "Finished number: %lld\n", curr_number);
 
 					/*
 					 * If we haven't a range, then the range is the current
@@ -6072,16 +6072,16 @@
 						}
 						if (curr_max == curr_min)
 						{
-							slon_log(SLON_DEBUG4, "simple entry - %d\n", curr_max);
+							slon_log(SLON_DEBUG4, "simple entry - %lld\n", curr_max);
 							slon_appendquery(action_subquery,
-										" log_actionseq <> '%d' ", curr_max);
+										" log_actionseq <> '%L' ", curr_max);
 						}
 						else
 						{
-							slon_log(SLON_DEBUG4, "between entry - %d %d\n",
+							slon_log(SLON_DEBUG4, "between entry - %lld %lld\n",
 									 curr_min, curr_max);
 							slon_appendquery(action_subquery,
-								 " log_actionseq not between '%d' and '%d' ",
+								 " log_actionseq not between '%L' and '%L' ",
 											 curr_min, curr_max);
 						}
 						curr_min = curr_number;
@@ -6107,16 +6107,16 @@
 		}
 		if (curr_max == curr_min)
 		{
-			slon_log(SLON_DEBUG4, "simple entry - %d\n", curr_max);
+			slon_log(SLON_DEBUG4, "simple entry - %lld\n", curr_max);
 			slon_appendquery(action_subquery,
-							 " log_actionseq <> '%d' ", curr_max);
+							 " log_actionseq <> '%L' ", curr_max);
 		}
 		else
 		{
-			slon_log(SLON_DEBUG4, "between entry - %d %d\n",
+			slon_log(SLON_DEBUG4, "between entry - %lld %lld\n",
 					 curr_min, curr_max);
 			slon_appendquery(action_subquery,
-							 " log_actionseq not between '%d' and '%d' ",
+							 " log_actionseq not between '%L' and '%L' ",
 							 curr_min, curr_max);
 		}
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/slony1-1.2.16/src/slon/scheduler.c new/slony1-1.2.17-rc/src/slon/scheduler.c
--- old/slony1-1.2.16/src/slon/scheduler.c	2006-10-27 22:09:56.000000000 +0200
+++ new/slony1-1.2.17-rc/src/slon/scheduler.c	2009-06-10 17:02:40.000000000 +0200
@@ -6,7 +6,7 @@
  *	Copyright (c) 2003-2004, PostgreSQL Global Development Group
  *	Author: Jan Wieck, Afilias USA INC.
  *
- *	$Id: scheduler.c,v 1.24.2.2 2006-10-27 20:09:56 cbbrowne Exp $
+ *	$Id: scheduler.c,v 1.24.2.3 2009-06-10 15:02:40 wieck Exp $
  * ----------------------------------------------------------------------
  */
 
@@ -425,19 +425,6 @@
 		struct timeval timeout;
 
 		/*
-		 * Make copies of the file descriptor sets for select(2)
-		 */
-		FD_ZERO(&rfds);
-		FD_ZERO(&wfds);
-		for (i = 0; i < sched_numfd; i++)
-		{
-			if (FD_ISSET(i, &sched_fdset_read))
-				FD_SET(i, &rfds);
-			if (FD_ISSET(i, &sched_fdset_write))
-				FD_SET(i, &wfds);
-		}
-
-		/*
 		 * Check if any of the connections in the wait queue have reached
 		 * their timeout. While doing so, we also remember the closest timeout
 		 * in the future.
@@ -529,6 +516,19 @@
 		}
 
 		/*
+		 * Make copies of the file descriptor sets for select(2)
+		 */
+		FD_ZERO(&rfds);
+		FD_ZERO(&wfds);
+		for (i = 0; i < sched_numfd; i++)
+		{
+			if (FD_ISSET(i, &sched_fdset_read))
+				FD_SET(i, &rfds);
+			if (FD_ISSET(i, &sched_fdset_write))
+				FD_SET(i, &wfds);
+		}
+
+		/*
 		 * Do the select(2) while unlocking the master lock.
 		 */
 		pthread_mutex_unlock(&sched_master_lock);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/slony1-1.2.16/src/slonik/parser.c new/slony1-1.2.17-rc/src/slonik/parser.c
--- old/slony1-1.2.16/src/slonik/parser.c	2009-05-09 00:07:19.000000000 +0200
+++ new/slony1-1.2.17-rc/src/slonik/parser.c	2009-07-29 22:35:15.000000000 +0200
@@ -68,7 +68,7 @@
 /* Copy the first part of user declarations.  */
 
 /* Line 189 of yacc.c  */
-#line 1 "src/slonik/parser.y"
+#line 1 "parser.y"
 
 /*-------------------------------------------------------------------------
  * parser.y
@@ -363,7 +363,7 @@
 {
 
 /* Line 214 of yacc.c  */
-#line 106 "src/slonik/parser.y"
+#line 106 "parser.y"
 
 	int32		ival;
 	char		*str;
@@ -1889,7 +1889,7 @@
         case 2:
 
 /* Line 1455 of yacc.c  */
-#line 267 "src/slonik/parser.y"
+#line 267 "parser.y"
     {
 						parser_script = (SlonikScript *)
 								malloc(sizeof(SlonikScript));
@@ -1905,7 +1905,7 @@
   case 3:
 
 /* Line 1455 of yacc.c  */
-#line 280 "src/slonik/parser.y"
+#line 280 "parser.y"
     {
 						(yyval.str) = (yyvsp[(5) - (6)].str);
 					}
@@ -1914,21 +1914,21 @@
   case 4:
 
 /* Line 1455 of yacc.c  */
-#line 286 "src/slonik/parser.y"
+#line 286 "parser.y"
     { (yyval.adm_info) = (yyvsp[(1) - (1)].adm_info); }
     break;
 
   case 5:
 
 /* Line 1455 of yacc.c  */
-#line 288 "src/slonik/parser.y"
+#line 288 "parser.y"
     { (yyvsp[(1) - (2)].adm_info)->next = (yyvsp[(2) - (2)].adm_info); (yyval.adm_info) = (yyvsp[(1) - (2)].adm_info); }
     break;
 
   case 6:
 
 /* Line 1455 of yacc.c  */
-#line 292 "src/slonik/parser.y"
+#line 292 "parser.y"
     {
 						SlonikAdmInfo	   *new;
 
@@ -1949,35 +1949,35 @@
   case 7:
 
 /* Line 1455 of yacc.c  */
-#line 310 "src/slonik/parser.y"
+#line 310 "parser.y"
     { (yyval.statement) = (yyvsp[(1) - (1)].statement); }
     break;
 
   case 8:
 
 /* Line 1455 of yacc.c  */
-#line 312 "src/slonik/parser.y"
+#line 312 "parser.y"
     { (yyvsp[(1) - (2)].statement)->next = (yyvsp[(2) - (2)].statement); (yyval.statement) = (yyvsp[(1) - (2)].statement); }
     break;
 
   case 9:
 
 /* Line 1455 of yacc.c  */
-#line 316 "src/slonik/parser.y"
+#line 316 "parser.y"
     { (yyval.statement) = (yyvsp[(1) - (1)].statement); }
     break;
 
   case 10:
 
 /* Line 1455 of yacc.c  */
-#line 318 "src/slonik/parser.y"
+#line 318 "parser.y"
     { (yyval.statement) = (yyvsp[(1) - (1)].statement); }
     break;
 
   case 11:
 
 /* Line 1455 of yacc.c  */
-#line 323 "src/slonik/parser.y"
+#line 323 "parser.y"
     {
 						SlonikStmt_try *new;
 
@@ -1998,7 +1998,7 @@
   case 12:
 
 /* Line 1455 of yacc.c  */
-#line 340 "src/slonik/parser.y"
+#line 340 "parser.y"
     {
 						SlonikStmt_try *new;
 
@@ -2020,7 +2020,7 @@
   case 13:
 
 /* Line 1455 of yacc.c  */
-#line 358 "src/slonik/parser.y"
+#line 358 "parser.y"
     {
 						SlonikStmt_try *new;
 
@@ -2042,7 +2042,7 @@
   case 14:
 
 /* Line 1455 of yacc.c  */
-#line 376 "src/slonik/parser.y"
+#line 376 "parser.y"
     {
 						SlonikStmt_try *new;
 
@@ -2063,7 +2063,7 @@
   case 15:
 
 /* Line 1455 of yacc.c  */
-#line 392 "src/slonik/parser.y"
+#line 392 "parser.y"
     {
 						SlonikStmt_try *new;
 
@@ -2083,273 +2083,273 @@
   case 16:
 
 /* Line 1455 of yacc.c  */
-#line 409 "src/slonik/parser.y"
+#line 409 "parser.y"
     { (yyval.statement) = (yyvsp[(4) - (5)].statement); }
     break;
 
   case 17:
 
 /* Line 1455 of yacc.c  */
-#line 412 "src/slonik/parser.y"
+#line 412 "parser.y"
     { (yyval.statement) = (yyvsp[(4) - (5)].statement); }
     break;
 
   case 18:
 
 /* Line 1455 of yacc.c  */
-#line 416 "src/slonik/parser.y"
+#line 416 "parser.y"
     { (yyval.statement) = (yyvsp[(1) - (1)].statement); }
     break;
 
   case 19:
 
 /* Line 1455 of yacc.c  */
-#line 418 "src/slonik/parser.y"
+#line 418 "parser.y"
     { (yyvsp[(1) - (2)].statement)->next = (yyvsp[(2) - (2)].statement); (yyval.statement) = (yyvsp[(1) - (2)].statement); }
     break;
 
   case 20:
 
 /* Line 1455 of yacc.c  */
-#line 422 "src/slonik/parser.y"
+#line 422 "parser.y"
     { (yyval.statement) = (yyvsp[(1) - (1)].statement); }
     break;
 
   case 21:
 
 /* Line 1455 of yacc.c  */
-#line 424 "src/slonik/parser.y"
+#line 424 "parser.y"
     { (yyval.statement) = (yyvsp[(1) - (1)].statement); }
     break;
 
   case 22:
 
 /* Line 1455 of yacc.c  */
-#line 426 "src/slonik/parser.y"
+#line 426 "parser.y"
     { (yyval.statement) = (yyvsp[(1) - (1)].statement); }
     break;
 
   case 23:
 
 /* Line 1455 of yacc.c  */
-#line 428 "src/slonik/parser.y"
+#line 428 "parser.y"
     { (yyval.statement) = (yyvsp[(1) - (1)].statement); }
     break;
 
   case 24:
 
 /* Line 1455 of yacc.c  */
-#line 430 "src/slonik/parser.y"
+#line 430 "parser.y"
     { (yyval.statement) = (yyvsp[(1) - (1)].statement); }
     break;
 
   case 25:
 
 /* Line 1455 of yacc.c  */
-#line 432 "src/slonik/parser.y"
+#line 432 "parser.y"
     { (yyval.statement) = (yyvsp[(1) - (1)].statement); }
     break;
 
   case 26:
 
 /* Line 1455 of yacc.c  */
-#line 434 "src/slonik/parser.y"
+#line 434 "parser.y"
     { (yyval.statement) = (yyvsp[(1) - (1)].statement); }
     break;
 
   case 27:
 
 /* Line 1455 of yacc.c  */
-#line 436 "src/slonik/parser.y"
+#line 436 "parser.y"
     { (yyval.statement) = (yyvsp[(1) - (1)].statement); }
     break;
 
   case 28:
 
 /* Line 1455 of yacc.c  */
-#line 438 "src/slonik/parser.y"
+#line 438 "parser.y"
     { (yyval.statement) = (yyvsp[(1) - (1)].statement); }
     break;
 
   case 29:
 
 /* Line 1455 of yacc.c  */
-#line 440 "src/slonik/parser.y"
+#line 440 "parser.y"
     { (yyval.statement) = (yyvsp[(1) - (1)].statement); }
     break;
 
   case 30:
 
 /* Line 1455 of yacc.c  */
-#line 442 "src/slonik/parser.y"
+#line 442 "parser.y"
     { (yyval.statement) = (yyvsp[(1) - (1)].statement); }
     break;
 
   case 31:
 
 /* Line 1455 of yacc.c  */
-#line 444 "src/slonik/parser.y"
+#line 444 "parser.y"
     { (yyval.statement) = (yyvsp[(1) - (1)].statement); }
     break;
 
   case 32:
 
 /* Line 1455 of yacc.c  */
-#line 446 "src/slonik/parser.y"
+#line 446 "parser.y"
     { (yyval.statement) = (yyvsp[(1) - (1)].statement); }
     break;
 
   case 33:
 
 /* Line 1455 of yacc.c  */
-#line 448 "src/slonik/parser.y"
+#line 448 "parser.y"
     { (yyval.statement) = (yyvsp[(1) - (1)].statement); }
     break;
 
   case 34:
 
 /* Line 1455 of yacc.c  */
-#line 450 "src/slonik/parser.y"
+#line 450 "parser.y"
     { (yyval.statement) = (yyvsp[(1) - (1)].statement); }
     break;
 
   case 35:
 
 /* Line 1455 of yacc.c  */
-#line 452 "src/slonik/parser.y"
+#line 452 "parser.y"
     { (yyval.statement) = (yyvsp[(1) - (1)].statement); }
     break;
 
   case 36:
 
 /* Line 1455 of yacc.c  */
-#line 454 "src/slonik/parser.y"
+#line 454 "parser.y"
     { (yyval.statement) = (yyvsp[(1) - (1)].statement); }
     break;
 
   case 37:
 
 /* Line 1455 of yacc.c  */
-#line 456 "src/slonik/parser.y"
+#line 456 "parser.y"
     { (yyval.statement) = (yyvsp[(1) - (1)].statement); }
     break;
 
   case 38:
 
 /* Line 1455 of yacc.c  */
-#line 458 "src/slonik/parser.y"
+#line 458 "parser.y"
     { (yyval.statement) = (yyvsp[(1) - (1)].statement); }
     break;
 
   case 39:
 
 /* Line 1455 of yacc.c  */
-#line 460 "src/slonik/parser.y"
+#line 460 "parser.y"
     { (yyval.statement) = (yyvsp[(1) - (1)].statement); }
     break;
 
   case 40:
 
 /* Line 1455 of yacc.c  */
-#line 462 "src/slonik/parser.y"
+#line 462 "parser.y"
     { (yyval.statement) = (yyvsp[(1) - (1)].statement); }
     break;
 
   case 41:
 
 /* Line 1455 of yacc.c  */
-#line 464 "src/slonik/parser.y"
+#line 464 "parser.y"
     { (yyval.statement) = (yyvsp[(1) - (1)].statement); }
     break;
 
   case 42:
 
 /* Line 1455 of yacc.c  */
-#line 466 "src/slonik/parser.y"
+#line 466 "parser.y"
     { (yyval.statement) = (yyvsp[(1) - (1)].statement); }
     break;
 
   case 43:
 
 /* Line 1455 of yacc.c  */
-#line 468 "src/slonik/parser.y"
+#line 468 "parser.y"
     { (yyval.statement) = (yyvsp[(1) - (1)].statement); }
     break;
 
   case 44:
 
 /* Line 1455 of yacc.c  */
-#line 470 "src/slonik/parser.y"
+#line 470 "parser.y"
     { (yyval.statement) = (yyvsp[(1) - (1)].statement); }
     break;
 
   case 45:
 
 /* Line 1455 of yacc.c  */
-#line 472 "src/slonik/parser.y"
+#line 472 "parser.y"
     { (yyval.statement) = (yyvsp[(1) - (1)].statement); }
     break;
 
   case 46:
 
 /* Line 1455 of yacc.c  */
-#line 474 "src/slonik/parser.y"
+#line 474 "parser.y"
     { (yyval.statement) = (yyvsp[(1) - (1)].statement); }
     break;
 
   case 47:
 
 /* Line 1455 of yacc.c  */
-#line 476 "src/slonik/parser.y"
+#line 476 "parser.y"
     { (yyval.statement) = (yyvsp[(1) - (1)].statement); }
     break;
 
   case 48:
 
 /* Line 1455 of yacc.c  */
-#line 478 "src/slonik/parser.y"
+#line 478 "parser.y"
     { (yyval.statement) = (yyvsp[(1) - (1)].statement); }
     break;
 
   case 49:
 
 /* Line 1455 of yacc.c  */
-#line 480 "src/slonik/parser.y"
+#line 480 "parser.y"
     { (yyval.statement) = (yyvsp[(1) - (1)].statement); }
     break;
 
   case 50:
 
 /* Line 1455 of yacc.c  */
-#line 482 "src/slonik/parser.y"
+#line 482 "parser.y"
     { (yyval.statement) = (yyvsp[(1) - (1)].statement); }
     break;
 
   case 51:
 
 /* Line 1455 of yacc.c  */
-#line 484 "src/slonik/parser.y"
+#line 484 "parser.y"
     { (yyval.statement) = (yyvsp[(1) - (1)].statement); }
     break;
 
   case 52:
 
 /* Line 1455 of yacc.c  */
-#line 486 "src/slonik/parser.y"
+#line 486 "parser.y"
     { (yyval.statement) = (yyvsp[(1) - (1)].statement); }
     break;
 
   case 53:
 
 /* Line 1455 of yacc.c  */
-#line 488 "src/slonik/parser.y"
+#line 488 "parser.y"
     { (yyval.statement) = (yyvsp[(1) - (1)].statement); }
     break;
 
   case 54:
 
 /* Line 1455 of yacc.c  */
-#line 490 "src/slonik/parser.y"
+#line 490 "parser.y"
     { yyerrok;
 						  (yyval.statement) = (yyvsp[(1) - (2)].statement); }
     break;
@@ -2357,21 +2357,21 @@
   case 55:
 
 /* Line 1455 of yacc.c  */
-#line 493 "src/slonik/parser.y"
+#line 493 "parser.y"
     { (yyval.statement) = (yyvsp[(1) - (1)].statement); }
     break;
 
   case 56:
 
 /* Line 1455 of yacc.c  */
-#line 495 "src/slonik/parser.y"
+#line 495 "parser.y"
     { (yyval.statement) = (yyvsp[(1) - (1)].statement); }
     break;
 
   case 57:
 
 /* Line 1455 of yacc.c  */
-#line 499 "src/slonik/parser.y"
+#line 499 "parser.y"
     {
 						SlonikStmt_echo *new;
 
@@ -2391,7 +2391,7 @@
   case 58:
 
 /* Line 1455 of yacc.c  */
-#line 516 "src/slonik/parser.y"
+#line 516 "parser.y"
     {
 						SlonikStmt_exit *new;
 
@@ -2411,7 +2411,7 @@
   case 59:
 
 /* Line 1455 of yacc.c  */
-#line 533 "src/slonik/parser.y"
+#line 533 "parser.y"
     {
 						SlonikStmt_restart_node *new;
 
@@ -2431,21 +2431,21 @@
   case 60:
 
 /* Line 1455 of yacc.c  */
-#line 550 "src/slonik/parser.y"
+#line 550 "parser.y"
     { (yyval.ival) = strtol(yytext, NULL, 10); }
     break;
 
   case 61:
 
 /* Line 1455 of yacc.c  */
-#line 552 "src/slonik/parser.y"
+#line 552 "parser.y"
     { (yyval.ival) = -(yyvsp[(2) - (2)].ival); }
     break;
 
   case 62:
 
 /* Line 1455 of yacc.c  */
-#line 556 "src/slonik/parser.y"
+#line 556 "parser.y"
     {
 						SlonikStmt *new;
 
@@ -2463,7 +2463,7 @@
   case 63:
 
 /* Line 1455 of yacc.c  */
-#line 571 "src/slonik/parser.y"
+#line 571 "parser.y"
     {
 						SlonikStmt_init_cluster *new;
 						statement_option opt[] = {
@@ -2494,7 +2494,7 @@
   case 64:
 
 /* Line 1455 of yacc.c  */
-#line 599 "src/slonik/parser.y"
+#line 599 "parser.y"
     {
 						SlonikStmt_store_node *new;
 						statement_option opt[] = {
@@ -2529,7 +2529,7 @@
   case 65:
 
 /* Line 1455 of yacc.c  */
-#line 631 "src/slonik/parser.y"
+#line 631 "parser.y"
     {
 						SlonikStmt_drop_node *new;
 						statement_option opt[] = {
@@ -2560,7 +2560,7 @@
   case 66:
 
 /* Line 1455 of yacc.c  */
-#line 659 "src/slonik/parser.y"
+#line 659 "parser.y"
     {
 						SlonikStmt_failed_node *new;
 						statement_option opt[] = {
@@ -2591,7 +2591,7 @@
   case 67:
 
 /* Line 1455 of yacc.c  */
-#line 687 "src/slonik/parser.y"
+#line 687 "parser.y"
     {
 						SlonikStmt_uninstall_node *new;
 						statement_option opt[] = {
@@ -2620,7 +2620,7 @@
   case 68:
 
 /* Line 1455 of yacc.c  */
-#line 713 "src/slonik/parser.y"
+#line 713 "parser.y"
     {
 						SlonikStmt_store_path *new;
 						statement_option opt[] = {
@@ -2655,7 +2655,7 @@
   case 69:
 
 /* Line 1455 of yacc.c  */
-#line 745 "src/slonik/parser.y"
+#line 745 "parser.y"
     {
 						SlonikStmt_drop_path *new;
 						statement_option opt[] = {
@@ -2688,7 +2688,7 @@
   case 70:
 
 /* Line 1455 of yacc.c  */
-#line 775 "src/slonik/parser.y"
+#line 775 "parser.y"
     {
 						SlonikStmt_store_listen *new;
 						statement_option opt[] = {
@@ -2721,7 +2721,7 @@
   case 71:
 
 /* Line 1455 of yacc.c  */
-#line 805 "src/slonik/parser.y"
+#line 805 "parser.y"
     {
 						SlonikStmt_drop_listen *new;
 						statement_option opt[] = {
@@ -2754,7 +2754,7 @@
   case 72:
 
 /* Line 1455 of yacc.c  */
-#line 835 "src/slonik/parser.y"
+#line 835 "parser.y"
     {
 						SlonikStmt_create_set *new;
 						statement_option opt[] = {
@@ -2787,7 +2787,7 @@
   case 73:
 
 /* Line 1455 of yacc.c  */
-#line 865 "src/slonik/parser.y"
+#line 865 "parser.y"
     {
 						SlonikStmt_drop_set *new;
 						statement_option opt[] = {
@@ -2818,7 +2818,7 @@
   case 74:
 
 /* Line 1455 of yacc.c  */
-#line 893 "src/slonik/parser.y"
+#line 893 "parser.y"
     {
 						SlonikStmt_merge_set *new;
 						statement_option opt[] = {
@@ -2851,7 +2851,7 @@
   case 75:
 
 /* Line 1455 of yacc.c  */
-#line 923 "src/slonik/parser.y"
+#line 923 "parser.y"
     {
 						SlonikStmt_table_add_key *new;
 						statement_option opt[] = {
@@ -2882,7 +2882,7 @@
   case 76:
 
 /* Line 1455 of yacc.c  */
-#line 951 "src/slonik/parser.y"
+#line 951 "parser.y"
     {
 						SlonikStmt_set_add_table *new;
 						statement_option opt[] = {
@@ -2923,7 +2923,7 @@
   case 77:
 
 /* Line 1455 of yacc.c  */
-#line 989 "src/slonik/parser.y"
+#line 989 "parser.y"
     {
 						SlonikStmt_set_add_sequence *new;
 						statement_option opt[] = {
@@ -2960,7 +2960,7 @@
   case 78:
 
 /* Line 1455 of yacc.c  */
-#line 1023 "src/slonik/parser.y"
+#line 1023 "parser.y"
     {
 						SlonikStmt_set_drop_table *new;
 						statement_option opt[] = {
@@ -2989,7 +2989,7 @@
   case 79:
 
 /* Line 1455 of yacc.c  */
-#line 1049 "src/slonik/parser.y"
+#line 1049 "parser.y"
     {
 						SlonikStmt_set_drop_sequence *new;
 						statement_option opt[] = {
@@ -3020,7 +3020,7 @@
   case 80:
 
 /* Line 1455 of yacc.c  */
-#line 1077 "src/slonik/parser.y"
+#line 1077 "parser.y"
     {
 						SlonikStmt_set_move_table *new;
 						statement_option opt[] = {
@@ -3051,7 +3051,7 @@
   case 81:
 
 /* Line 1455 of yacc.c  */
-#line 1105 "src/slonik/parser.y"
+#line 1105 "parser.y"
     {
 						SlonikStmt_set_move_sequence *new;
 						statement_option opt[] = {
@@ -3084,7 +3084,7 @@
   case 82:
 
 /* Line 1455 of yacc.c  */
-#line 1135 "src/slonik/parser.y"
+#line 1135 "parser.y"
     {
 						SlonikStmt_store_trigger *new;
 						statement_option opt[] = {
@@ -3117,7 +3117,7 @@
   case 83:
 
 /* Line 1455 of yacc.c  */
-#line 1165 "src/slonik/parser.y"
+#line 1165 "parser.y"
     {
 						SlonikStmt_drop_trigger *new;
 						statement_option opt[] = {
@@ -3150,7 +3150,7 @@
   case 84:
 
 /* Line 1455 of yacc.c  */
-#line 1195 "src/slonik/parser.y"
+#line 1195 "parser.y"
     {
 						SlonikStmt_subscribe_set *new;
 						statement_option opt[] = {
@@ -3185,7 +3185,7 @@
   case 85:
 
 /* Line 1455 of yacc.c  */
-#line 1227 "src/slonik/parser.y"
+#line 1227 "parser.y"
     {
 						SlonikStmt_unsubscribe_set *new;
 						statement_option opt[] = {
@@ -3216,7 +3216,7 @@
   case 86:
 
 /* Line 1455 of yacc.c  */
-#line 1255 "src/slonik/parser.y"
+#line 1255 "parser.y"
     {
 						SlonikStmt_lock_set *new;
 						statement_option opt[] = {
@@ -3247,7 +3247,7 @@
   case 87:
 
 /* Line 1455 of yacc.c  */
-#line 1283 "src/slonik/parser.y"
+#line 1283 "parser.y"
     {
 						SlonikStmt_unlock_set *new;
 						statement_option opt[] = {
@@ -3278,7 +3278,7 @@
   case 88:
 
 /* Line 1455 of yacc.c  */
-#line 1311 "src/slonik/parser.y"
+#line 1311 "parser.y"
     {
 						SlonikStmt_move_set *new;
 						statement_option opt[] = {
@@ -3311,7 +3311,7 @@
   case 89:
 
 /* Line 1455 of yacc.c  */
-#line 1341 "src/slonik/parser.y"
+#line 1341 "parser.y"
     {
 						SlonikStmt_ddl_script *new;
 						statement_option opt[] = {
@@ -3347,7 +3347,7 @@
   case 90:
 
 /* Line 1455 of yacc.c  */
-#line 1374 "src/slonik/parser.y"
+#line 1374 "parser.y"
     {
 						SlonikStmt_update_functions *new;
 						statement_option opt[] = {
@@ -3376,7 +3376,7 @@
   case 91:
 
 /* Line 1455 of yacc.c  */
-#line 1399 "src/slonik/parser.y"
+#line 1399 "parser.y"
     {
 						SlonikStmt_repair_config *new;
 						statement_option opt[] = {
@@ -3410,7 +3410,7 @@
   case 92:
 
 /* Line 1455 of yacc.c  */
-#line 1430 "src/slonik/parser.y"
+#line 1430 "parser.y"
     {
 						SlonikStmt_wait_event *new;
 						statement_option opt[] = {
@@ -3445,7 +3445,7 @@
   case 93:
 
 /* Line 1455 of yacc.c  */
-#line 1462 "src/slonik/parser.y"
+#line 1462 "parser.y"
     {
 						SlonikStmt_switch_log *new;
 						statement_option opt[] = {
@@ -3474,7 +3474,7 @@
   case 94:
 
 /* Line 1455 of yacc.c  */
-#line 1488 "src/slonik/parser.y"
+#line 1488 "parser.y"
     {
 						SlonikStmt_sync *new;
 						statement_option opt[] = {
@@ -3503,7 +3503,7 @@
   case 95:
 
 /* Line 1455 of yacc.c  */
-#line 1514 "src/slonik/parser.y"
+#line 1514 "parser.y"
     {
 						SlonikStmt_sleep *new;
 						statement_option opt[] = {
@@ -3532,35 +3532,35 @@
   case 96:
 
 /* Line 1455 of yacc.c  */
-#line 1540 "src/slonik/parser.y"
+#line 1540 "parser.y"
     { (yyval.opt_list) = NULL; }
     break;
 
   case 97:
 
 /* Line 1455 of yacc.c  */
-#line 1542 "src/slonik/parser.y"
+#line 1542 "parser.y"
     { (yyval.opt_list) = (yyvsp[(2) - (4)].opt_list); }
     break;
 
   case 98:
 
 /* Line 1455 of yacc.c  */
-#line 1546 "src/slonik/parser.y"
+#line 1546 "parser.y"
     { (yyval.opt_list) = (yyvsp[(1) - (1)].opt_list); }
     break;
 
   case 99:
 
 /* Line 1455 of yacc.c  */
-#line 1548 "src/slonik/parser.y"
+#line 1548 "parser.y"
     { (yyvsp[(1) - (3)].opt_list)->next = (yyvsp[(3) - (3)].opt_list); (yyval.opt_list) = (yyvsp[(1) - (3)].opt_list); }
     break;
 
   case 100:
 
 /* Line 1455 of yacc.c  */
-#line 1552 "src/slonik/parser.y"
+#line 1552 "parser.y"
     {
 						(yyvsp[(3) - (3)].opt_list)->opt_code	= O_ID;
 						(yyval.opt_list) = (yyvsp[(3) - (3)].opt_list);
@@ -3570,7 +3570,7 @@
   case 101:
 
 /* Line 1455 of yacc.c  */
-#line 1557 "src/slonik/parser.y"
+#line 1557 "parser.y"
     {
 						(yyvsp[(4) - (4)].opt_list)->opt_code	= O_BACKUP_NODE;
 						(yyval.opt_list) = (yyvsp[(4) - (4)].opt_list);
@@ -3580,7 +3580,7 @@
   case 102:
 
 /* Line 1455 of yacc.c  */
-#line 1562 "src/slonik/parser.y"
+#line 1562 "parser.y"
     {
 						(yyvsp[(4) - (4)].opt_list)->opt_code	= O_EVENT_NODE;
 						(yyval.opt_list) = (yyvsp[(4) - (4)].opt_list);
@@ -3590,7 +3590,7 @@
   case 103:
 
 /* Line 1455 of yacc.c  */
-#line 1567 "src/slonik/parser.y"
+#line 1567 "parser.y"
     {
 						(yyvsp[(3) - (3)].opt_list)->opt_code	= O_SERVER;
 						(yyval.opt_list) = (yyvsp[(3) - (3)].opt_list);
@@ -3600,7 +3600,7 @@
   case 104:
 
 /* Line 1455 of yacc.c  */
-#line 1572 "src/slonik/parser.y"
+#line 1572 "parser.y"
     {
 						(yyvsp[(3) - (3)].opt_list)->opt_code	= O_CLIENT;
 						(yyval.opt_list) = (yyvsp[(3) - (3)].opt_list);
@@ -3610,7 +3610,7 @@
   case 105:
 
 /* Line 1455 of yacc.c  */
-#line 1577 "src/slonik/parser.y"
+#line 1577 "parser.y"
     {
 						(yyvsp[(3) - (3)].opt_list)->opt_code	= O_ORIGIN;
 						(yyval.opt_list) = (yyvsp[(3) - (3)].opt_list);
@@ -3620,7 +3620,7 @@
   case 106:
 
 /* Line 1455 of yacc.c  */
-#line 1582 "src/slonik/parser.y"
+#line 1582 "parser.y"
     {
 						(yyvsp[(4) - (4)].opt_list)->opt_code	= O_OLD_ORIGIN;
 						(yyval.opt_list) = (yyvsp[(4) - (4)].opt_list);
@@ -3630,7 +3630,7 @@
   case 107:
 
 /* Line 1455 of yacc.c  */
-#line 1587 "src/slonik/parser.y"
+#line 1587 "parser.y"
     {
 						(yyvsp[(4) - (4)].opt_list)->opt_code	= O_NEW_ORIGIN;
 						(yyval.opt_list) = (yyvsp[(4) - (4)].opt_list);
@@ -3640,7 +3640,7 @@
   case 108:
 
 /* Line 1455 of yacc.c  */
-#line 1592 "src/slonik/parser.y"
+#line 1592 "parser.y"
     {
 						(yyvsp[(4) - (4)].opt_list)->opt_code	= O_NEW_SET;
 						(yyval.opt_list) = (yyvsp[(4) - (4)].opt_list);
@@ -3650,7 +3650,7 @@
   case 109:
 
 /* Line 1455 of yacc.c  */
-#line 1597 "src/slonik/parser.y"
+#line 1597 "parser.y"
     {
 						(yyvsp[(3) - (3)].opt_list)->opt_code	= O_RECEIVER;
 						(yyval.opt_list) = (yyvsp[(3) - (3)].opt_list);
@@ -3660,7 +3660,7 @@
   case 110:
 
 /* Line 1455 of yacc.c  */
-#line 1602 "src/slonik/parser.y"
+#line 1602 "parser.y"
     {
 						(yyvsp[(3) - (3)].opt_list)->opt_code	= O_PROVIDER;
 						(yyval.opt_list) = (yyvsp[(3) - (3)].opt_list);
@@ -3670,7 +3670,7 @@
   case 111:
 
 /* Line 1455 of yacc.c  */
-#line 1607 "src/slonik/parser.y"
+#line 1607 "parser.y"
     {
 						(yyvsp[(3) - (3)].opt_list)->opt_code	= O_CONNRETRY;
 						(yyval.opt_list) = (yyvsp[(3) - (3)].opt_list);
@@ -3680,7 +3680,7 @@
   case 112:
 
 /* Line 1455 of yacc.c  */
-#line 1612 "src/slonik/parser.y"
+#line 1612 "parser.y"
     {
 						(yyvsp[(3) - (3)].opt_list)->opt_code	= O_COMMENT;
 						(yyval.opt_list) = (yyvsp[(3) - (3)].opt_list);
@@ -3690,7 +3690,7 @@
   case 113:
 
 /* Line 1455 of yacc.c  */
-#line 1617 "src/slonik/parser.y"
+#line 1617 "parser.y"
     {
 						(yyvsp[(3) - (3)].opt_list)->opt_code	= O_CONNINFO;
 						(yyval.opt_list) = (yyvsp[(3) - (3)].opt_list);
@@ -3700,7 +3700,7 @@
   case 114:
 
 /* Line 1455 of yacc.c  */
-#line 1622 "src/slonik/parser.y"
+#line 1622 "parser.y"
     {
 						(yyvsp[(4) - (4)].opt_list)->opt_code	= O_SET_ID;
 						(yyval.opt_list) = (yyvsp[(4) - (4)].opt_list);
@@ -3710,7 +3710,7 @@
   case 115:
 
 /* Line 1455 of yacc.c  */
-#line 1627 "src/slonik/parser.y"
+#line 1627 "parser.y"
     {
 						(yyvsp[(4) - (4)].opt_list)->opt_code	= O_ADD_ID;
 						(yyval.opt_list) = (yyvsp[(4) - (4)].opt_list);
@@ -3720,7 +3720,7 @@
   case 116:
 
 /* Line 1455 of yacc.c  */
-#line 1632 "src/slonik/parser.y"
+#line 1632 "parser.y"
     {
 						(yyvsp[(4) - (4)].opt_list)->opt_code	= O_NODE_ID;
 						(yyval.opt_list) = (yyvsp[(4) - (4)].opt_list);
@@ -3730,7 +3730,7 @@
   case 117:
 
 /* Line 1455 of yacc.c  */
-#line 1637 "src/slonik/parser.y"
+#line 1637 "parser.y"
     {
 						(yyvsp[(4) - (4)].opt_list)->opt_code	= O_TAB_ID;
 						(yyval.opt_list) = (yyvsp[(4) - (4)].opt_list);
@@ -3740,7 +3740,7 @@
   case 118:
 
 /* Line 1455 of yacc.c  */
-#line 1642 "src/slonik/parser.y"
+#line 1642 "parser.y"
     {
 						(yyvsp[(4) - (4)].opt_list)->opt_code	= O_TRIG_NAME;
 						(yyval.opt_list) = (yyvsp[(4) - (4)].opt_list);
@@ -3750,7 +3750,7 @@
   case 119:
 
 /* Line 1455 of yacc.c  */
-#line 1647 "src/slonik/parser.y"
+#line 1647 "parser.y"
     {
 						(yyvsp[(5) - (5)].opt_list)->opt_code	= O_FQNAME;
 						(yyval.opt_list) = (yyvsp[(5) - (5)].opt_list);
@@ -3760,7 +3760,7 @@
   case 120:
 
 /* Line 1455 of yacc.c  */
-#line 1652 "src/slonik/parser.y"
+#line 1652 "parser.y"
     {
 						(yyvsp[(3) - (3)].opt_list)->opt_code	= O_USE_KEY;
 						(yyval.opt_list) = (yyvsp[(3) - (3)].opt_list);
@@ -3770,7 +3770,7 @@
   case 121:
 
 /* Line 1455 of yacc.c  */
-#line 1657 "src/slonik/parser.y"
+#line 1657 "parser.y"
     {
 						option_list *new;
 						new = (option_list *)malloc(sizeof(option_list));
@@ -3788,7 +3788,7 @@
   case 122:
 
 /* Line 1455 of yacc.c  */
-#line 1670 "src/slonik/parser.y"
+#line 1670 "parser.y"
     {
 						(yyvsp[(3) - (3)].opt_list)->opt_code	= O_FORWARD;
 						(yyval.opt_list) = (yyvsp[(3) - (3)].opt_list);
@@ -3798,7 +3798,7 @@
   case 123:
 
 /* Line 1455 of yacc.c  */
-#line 1675 "src/slonik/parser.y"
+#line 1675 "parser.y"
     {
 						(yyvsp[(3) - (3)].opt_list)->opt_code	= O_FILENAME;
 						(yyval.opt_list) = (yyvsp[(3) - (3)].opt_list);
@@ -3808,7 +3808,7 @@
   case 124:
 
 /* Line 1455 of yacc.c  */
-#line 1680 "src/slonik/parser.y"
+#line 1680 "parser.y"
     {
 						option_list *new;
 						new = (option_list *)malloc(sizeof(option_list));
@@ -3826,7 +3826,7 @@
   case 125:
 
 /* Line 1455 of yacc.c  */
-#line 1693 "src/slonik/parser.y"
+#line 1693 "parser.y"
     {
 						(yyvsp[(3) - (3)].opt_list)->opt_code	= O_WAIT_CONFIRMED;
 						(yyval.opt_list) = (yyvsp[(3) - (3)].opt_list);
@@ -3836,7 +3836,7 @@
   case 126:
 
 /* Line 1455 of yacc.c  */
-#line 1698 "src/slonik/parser.y"
+#line 1698 "parser.y"
     {
 						option_list *new;
 						new = (option_list *)malloc(sizeof(option_list));
@@ -3854,7 +3854,7 @@
   case 127:
 
 /* Line 1455 of yacc.c  */
-#line 1711 "src/slonik/parser.y"
+#line 1711 "parser.y"
     {
 						(yyvsp[(4) - (4)].opt_list)->opt_code	= O_WAIT_ON;
 						(yyval.opt_list) = (yyvsp[(4) - (4)].opt_list);
@@ -3864,7 +3864,7 @@
   case 128:
 
 /* Line 1455 of yacc.c  */
-#line 1716 "src/slonik/parser.y"
+#line 1716 "parser.y"
     {
 						(yyvsp[(3) - (3)].opt_list)->opt_code	= O_TIMEOUT;
 						(yyval.opt_list) = (yyvsp[(3) - (3)].opt_list);
@@ -3874,7 +3874,7 @@
   case 129:
 
 /* Line 1455 of yacc.c  */
-#line 1721 "src/slonik/parser.y"
+#line 1721 "parser.y"
     {
 						(yyvsp[(5) - (5)].opt_list)->opt_code	= O_EXECUTE_ONLY_ON;
 						(yyval.opt_list) = (yyvsp[(5) - (5)].opt_list);
@@ -3884,7 +3884,7 @@
   case 130:
 
 /* Line 1455 of yacc.c  */
-#line 1726 "src/slonik/parser.y"
+#line 1726 "parser.y"
     {
 						(yyvsp[(3) - (3)].opt_list)->opt_code	= O_SPOOLNODE;
 						(yyval.opt_list) = (yyvsp[(3) - (3)].opt_list);
@@ -3894,7 +3894,7 @@
   case 131:
 
 /* Line 1455 of yacc.c  */
-#line 1731 "src/slonik/parser.y"
+#line 1731 "parser.y"
     {
 						(yyvsp[(3) - (3)].opt_list)->opt_code	= O_SECONDS;
 						(yyval.opt_list) = (yyvsp[(3) - (3)].opt_list);
@@ -3904,7 +3904,7 @@
   case 132:
 
 /* Line 1455 of yacc.c  */
-#line 1738 "src/slonik/parser.y"
+#line 1738 "parser.y"
     {
 						option_list *new;
 						new = (option_list *)malloc(sizeof(option_list));
@@ -3921,7 +3921,7 @@
   case 133:
 
 /* Line 1455 of yacc.c  */
-#line 1752 "src/slonik/parser.y"
+#line 1752 "parser.y"
     {
 						option_list *new;
 						new = (option_list *)malloc(sizeof(option_list));
@@ -3938,7 +3938,7 @@
   case 134:
 
 /* Line 1455 of yacc.c  */
-#line 1766 "src/slonik/parser.y"
+#line 1766 "parser.y"
     {
 						option_list *new;
 						new = (option_list *)malloc(sizeof(option_list));
@@ -3955,7 +3955,7 @@
   case 135:
 
 /* Line 1455 of yacc.c  */
-#line 1778 "src/slonik/parser.y"
+#line 1778 "parser.y"
     {
 						option_list *new;
 						new = (option_list *)malloc(sizeof(option_list));
@@ -3972,7 +3972,7 @@
   case 142:
 
 /* Line 1455 of yacc.c  */
-#line 1802 "src/slonik/parser.y"
+#line 1802 "parser.y"
     {
 						(yyval.ival) = strtol(yytext, NULL, 10);
 					}
@@ -3981,7 +3981,7 @@
   case 143:
 
 /* Line 1455 of yacc.c  */
-#line 1808 "src/slonik/parser.y"
+#line 1808 "parser.y"
     {
 						char   *ret;
 
@@ -3996,7 +3996,7 @@
   case 144:
 
 /* Line 1455 of yacc.c  */
-#line 1820 "src/slonik/parser.y"
+#line 1820 "parser.y"
     {
 						char   *ret;
 
@@ -4011,7 +4011,7 @@
   case 145:
 
 /* Line 1455 of yacc.c  */
-#line 1832 "src/slonik/parser.y"
+#line 1832 "parser.y"
     { (yyval.ival) = yylineno; }
     break;
 
@@ -4230,7 +4230,7 @@
 
 
 /* Line 1675 of yacc.c  */
-#line 1835 "src/slonik/parser.y"
+#line 1835 "parser.y"
 
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/slony1-1.2.16/src/slonik/scan.c new/slony1-1.2.17-rc/src/slonik/scan.c
--- old/slony1-1.2.16/src/slonik/scan.c	2009-05-09 00:07:19.000000000 +0200
+++ new/slony1-1.2.17-rc/src/slonik/scan.c	2009-07-29 22:35:15.000000000 +0200
@@ -1,5 +1,6 @@
+#line 2 "scan.c"
 
-#line 3 "<stdout>"
+#line 4 "scan.c"
 
 #define  YY_INT_ALIGNED short int
 
@@ -807,8 +808,8 @@
 #define YY_MORE_ADJ 0
 #define YY_RESTORE_YY_MORE_OFFSET
 char *yytext;
-#line 1 "src/slonik/scan.l"
-#line 2 "src/slonik/scan.l"
+#line 1 "scan.l"
+#line 2 "scan.l"
 /*-------------------------------------------------------------------------
  * scan.l
  *
@@ -850,7 +851,7 @@
 quoted_ident	(\"[^\"]*\")+
 identifier		({ident_start}{ident_cont}*|{quoted_ident})
 */
-#line 854 "<stdout>"
+#line 855 "scan.c"
 
 #define INITIAL 0
 #define incl 1
@@ -1038,14 +1039,14 @@
 	register char *yy_cp, *yy_bp;
 	register int yy_act;
     
-#line 60 "src/slonik/scan.l"
+#line 60 "scan.l"
 
 
 	char   *start_charpos = NULL;
 
 	BEGIN(INITIAL);
 
-#line 1049 "<stdout>"
+#line 1050 "scan.c"
 
 	if ( !(yy_init) )
 		{
@@ -1141,399 +1142,399 @@
 case 1:
 /* rule 1 can match eol */
 YY_RULE_SETUP
-#line 66 "src/slonik/scan.l"
+#line 66 "scan.l"
 { BEGIN(incl); }
 	YY_BREAK
 case 2:
 /* rule 2 can match eol */
 YY_RULE_SETUP
-#line 67 "src/slonik/scan.l"
+#line 67 "scan.l"
 { BEGIN(define); }
 	YY_BREAK
 case 3:
 YY_RULE_SETUP
-#line 69 "src/slonik/scan.l"
+#line 69 "scan.l"
 { return K_ADD;				}
 	YY_BREAK
 case 4:
 YY_RULE_SETUP
-#line 70 "src/slonik/scan.l"
+#line 70 "scan.l"
 { return K_ADMIN;			}
 	YY_BREAK
 case 5:
 YY_RULE_SETUP
-#line 71 "src/slonik/scan.l"
+#line 71 "scan.l"
 { return K_ALL;				}
 	YY_BREAK
 case 6:
 YY_RULE_SETUP
-#line 72 "src/slonik/scan.l"
+#line 72 "scan.l"
 { return K_BACKUP;			}
 	YY_BREAK
 case 7:
 YY_RULE_SETUP
-#line 73 "src/slonik/scan.l"
+#line 73 "scan.l"
 { return K_CLIENT;			}
 	YY_BREAK
 case 8:
 YY_RULE_SETUP
-#line 74 "src/slonik/scan.l"
+#line 74 "scan.l"
 { return K_CLUSTER;			}
 	YY_BREAK
 case 9:
 YY_RULE_SETUP
-#line 75 "src/slonik/scan.l"
+#line 75 "scan.l"
 { return K_COMMENT;			}
 	YY_BREAK
 case 10:
 YY_RULE_SETUP
-#line 76 "src/slonik/scan.l"
+#line 76 "scan.l"
 { return K_CONFIG;			}
 	YY_BREAK
 case 11:
 YY_RULE_SETUP
-#line 77 "src/slonik/scan.l"
+#line 77 "scan.l"
 { return K_CONFIRMED;		}
 	YY_BREAK
 case 12:
 YY_RULE_SETUP
-#line 78 "src/slonik/scan.l"
+#line 78 "scan.l"
 { return K_CONNINFO;		}
 	YY_BREAK
 case 13:
 YY_RULE_SETUP
-#line 79 "src/slonik/scan.l"
+#line 79 "scan.l"
 { return K_CONNRETRY;		}
 	YY_BREAK
 case 14:
 YY_RULE_SETUP
-#line 80 "src/slonik/scan.l"
+#line 80 "scan.l"
 { return K_CREATE;			}
 	YY_BREAK
 case 15:
 YY_RULE_SETUP
-#line 81 "src/slonik/scan.l"
+#line 81 "scan.l"
 { return K_DROP;			}
 	YY_BREAK
 case 16:
 YY_RULE_SETUP
-#line 82 "src/slonik/scan.l"
+#line 82 "scan.l"
 { return K_ECHO;			}
 	YY_BREAK
 case 17:
 YY_RULE_SETUP
-#line 83 "src/slonik/scan.l"
+#line 83 "scan.l"
 { return K_ERROR;			}
 	YY_BREAK
 case 18:
 YY_RULE_SETUP
-#line 84 "src/slonik/scan.l"
+#line 84 "scan.l"
 { return K_EVENT;			}
 	YY_BREAK
 case 19:
 YY_RULE_SETUP
-#line 85 "src/slonik/scan.l"
+#line 85 "scan.l"
 { return K_EXECUTE;			}
 	YY_BREAK
 case 20:
 YY_RULE_SETUP
-#line 86 "src/slonik/scan.l"
+#line 86 "scan.l"
 { return K_EXIT;			}
 	YY_BREAK
 case 21:
 YY_RULE_SETUP
-#line 87 "src/slonik/scan.l"
+#line 87 "scan.l"
 { return K_FAILOVER;		}
 	YY_BREAK
 case 22:
 YY_RULE_SETUP
-#line 88 "src/slonik/scan.l"
+#line 88 "scan.l"
 { return K_FALSE;			}
 	YY_BREAK
 case 23:
 YY_RULE_SETUP
-#line 89 "src/slonik/scan.l"
+#line 89 "scan.l"
 { return K_FILENAME;		}
 	YY_BREAK
 case 24:
 YY_RULE_SETUP
-#line 90 "src/slonik/scan.l"
+#line 90 "scan.l"
 { return K_FOR;				}
 	YY_BREAK
 case 25:
 YY_RULE_SETUP
-#line 91 "src/slonik/scan.l"
+#line 91 "scan.l"
 { return K_FORWARD;			}
 	YY_BREAK
 case 26:
 YY_RULE_SETUP
-#line 92 "src/slonik/scan.l"
+#line 92 "scan.l"
 { return K_FULL;			}
 	YY_BREAK
 case 27:
 YY_RULE_SETUP
-#line 93 "src/slonik/scan.l"
+#line 93 "scan.l"
 { return K_FULL;			}
 	YY_BREAK
 case 28:
 YY_RULE_SETUP
-#line 94 "src/slonik/scan.l"
+#line 94 "scan.l"
 { return K_FUNCTIONS;		}
 	YY_BREAK
 case 29:
 YY_RULE_SETUP
-#line 95 "src/slonik/scan.l"
+#line 95 "scan.l"
 { return K_ID;				}
 	YY_BREAK
 case 30:
 YY_RULE_SETUP
-#line 96 "src/slonik/scan.l"
+#line 96 "scan.l"
 { return K_INIT;			}
 	YY_BREAK
 case 31:
 YY_RULE_SETUP
-#line 97 "src/slonik/scan.l"
+#line 97 "scan.l"
 { return K_KEY;				}
 	YY_BREAK
 case 32:
 YY_RULE_SETUP
-#line 98 "src/slonik/scan.l"
+#line 98 "scan.l"
 { return K_LISTEN;			}
 	YY_BREAK
 case 33:
 YY_RULE_SETUP
-#line 99 "src/slonik/scan.l"
+#line 99 "scan.l"
 { return K_LOCK;			}
 	YY_BREAK
 case 34:
 YY_RULE_SETUP
-#line 100 "src/slonik/scan.l"
+#line 100 "scan.l"
 { return K_LOG;				}
 	YY_BREAK
 case 35:
 YY_RULE_SETUP
-#line 101 "src/slonik/scan.l"
+#line 101 "scan.l"
 { return K_MERGE;			}
 	YY_BREAK
 case 36:
 YY_RULE_SETUP
-#line 102 "src/slonik/scan.l"
+#line 102 "scan.l"
 { return K_MOVE;			}
 	YY_BREAK
 case 37:
 YY_RULE_SETUP
-#line 103 "src/slonik/scan.l"
+#line 103 "scan.l"
 { return K_NAME;			}
 	YY_BREAK
 case 38:
 YY_RULE_SETUP
-#line 104 "src/slonik/scan.l"
+#line 104 "scan.l"
 { return K_NEW;				}
 	YY_BREAK
 case 39:
 YY_RULE_SETUP
-#line 105 "src/slonik/scan.l"
+#line 105 "scan.l"
 { return K_NO;				}
 	YY_BREAK
 case 40:
 YY_RULE_SETUP
-#line 106 "src/slonik/scan.l"
+#line 106 "scan.l"
 { return K_NODE;			}
 	YY_BREAK
 case 41:
 YY_RULE_SETUP
-#line 107 "src/slonik/scan.l"
+#line 107 "scan.l"
 { return K_OFF;				}
 	YY_BREAK
 case 42:
 YY_RULE_SETUP
-#line 108 "src/slonik/scan.l"
+#line 108 "scan.l"
 { return K_OLD;				}
 	YY_BREAK
 case 43:
 YY_RULE_SETUP
-#line 109 "src/slonik/scan.l"
+#line 109 "scan.l"
 { return K_ON;				}
 	YY_BREAK
 case 44:
 YY_RULE_SETUP
-#line 110 "src/slonik/scan.l"
+#line 110 "scan.l"
 { return K_ONLY;			}
 	YY_BREAK
 case 45:
 YY_RULE_SETUP
-#line 111 "src/slonik/scan.l"
+#line 111 "scan.l"
 { return K_ORIGIN;			}
 	YY_BREAK
 case 46:
 YY_RULE_SETUP
-#line 112 "src/slonik/scan.l"
+#line 112 "scan.l"
 { return K_PATH;			}
 	YY_BREAK
 case 47:
 YY_RULE_SETUP
-#line 113 "src/slonik/scan.l"
+#line 113 "scan.l"
 { return K_PROVIDER;		}
 	YY_BREAK
 case 48:
 YY_RULE_SETUP
-#line 114 "src/slonik/scan.l"
+#line 114 "scan.l"
 { return K_QUALIFIED;		}
 	YY_BREAK
 case 49:
 YY_RULE_SETUP
-#line 115 "src/slonik/scan.l"
+#line 115 "scan.l"
 { return K_RECEIVER;		}
 	YY_BREAK
 case 50:
 YY_RULE_SETUP
-#line 116 "src/slonik/scan.l"
+#line 116 "scan.l"
 { return K_REPAIR;			}
 	YY_BREAK
 case 51:
 YY_RULE_SETUP
-#line 117 "src/slonik/scan.l"
+#line 117 "scan.l"
 { return K_RESTART;			}
 	YY_BREAK
 case 52:
 YY_RULE_SETUP
-#line 118 "src/slonik/scan.l"
+#line 118 "scan.l"
 { return K_SCRIPT;			}
 	YY_BREAK
 case 53:
 YY_RULE_SETUP
-#line 119 "src/slonik/scan.l"
+#line 119 "scan.l"
 { return K_SECONDS;         }
 	YY_BREAK
 case 54:
 YY_RULE_SETUP
-#line 120 "src/slonik/scan.l"
+#line 120 "scan.l"
 { return K_SEQUENCE;		}
 	YY_BREAK
 case 55:
 YY_RULE_SETUP
-#line 121 "src/slonik/scan.l"
+#line 121 "scan.l"
 { return K_SERIAL;			}
 	YY_BREAK
 case 56:
 YY_RULE_SETUP
-#line 122 "src/slonik/scan.l"
+#line 122 "scan.l"
 { return K_SERVER;			}
 	YY_BREAK
 case 57:
 YY_RULE_SETUP
-#line 123 "src/slonik/scan.l"
+#line 123 "scan.l"
 { return K_SET;				}
 	YY_BREAK
 case 58:
 YY_RULE_SETUP
-#line 124 "src/slonik/scan.l"
+#line 124 "scan.l"
 { return K_SLEEP;			}
 	YY_BREAK
 case 59:
 YY_RULE_SETUP
-#line 125 "src/slonik/scan.l"
+#line 125 "scan.l"
 { return K_SPOOLNODE;		}
 	YY_BREAK
 case 60:
 YY_RULE_SETUP
-#line 126 "src/slonik/scan.l"
+#line 126 "scan.l"
 { return K_STORE;			}
 	YY_BREAK
 case 61:
 YY_RULE_SETUP
-#line 127 "src/slonik/scan.l"
+#line 127 "scan.l"
 { return K_SUBSCRIBE;		}
 	YY_BREAK
 case 62:
 YY_RULE_SETUP
-#line 128 "src/slonik/scan.l"
+#line 128 "scan.l"
 { return K_SUCCESS;			}
 	YY_BREAK
 case 63:
 YY_RULE_SETUP
-#line 129 "src/slonik/scan.l"
+#line 129 "scan.l"
 { return K_SWITCH;			}
 	YY_BREAK
 case 64:
 YY_RULE_SETUP
-#line 130 "src/slonik/scan.l"
+#line 130 "scan.l"
 { return K_SYNC;			}
 	YY_BREAK
 case 65:
 YY_RULE_SETUP
-#line 131 "src/slonik/scan.l"
+#line 131 "scan.l"
 { return K_TABLE;			}
 	YY_BREAK
 case 66:
 YY_RULE_SETUP
-#line 132 "src/slonik/scan.l"
+#line 132 "scan.l"
 { return K_TIMEOUT;			}
 	YY_BREAK
 case 67:
 YY_RULE_SETUP
-#line 133 "src/slonik/scan.l"
+#line 133 "scan.l"
 { return K_TRIGGER;			}
 	YY_BREAK
 case 68:
 YY_RULE_SETUP
-#line 134 "src/slonik/scan.l"
+#line 134 "scan.l"
 { return K_TRUE;			}
 	YY_BREAK
 case 69:
 YY_RULE_SETUP
-#line 135 "src/slonik/scan.l"
+#line 135 "scan.l"
 { return K_TRY;				}
 	YY_BREAK
 case 70:
 YY_RULE_SETUP
-#line 136 "src/slonik/scan.l"
+#line 136 "scan.l"
 { return K_UNINSTALL;		}
 	YY_BREAK
 case 71:
 YY_RULE_SETUP
-#line 137 "src/slonik/scan.l"
+#line 137 "scan.l"
 { return K_UNLOCK;			}
 	YY_BREAK
 case 72:
 YY_RULE_SETUP
-#line 138 "src/slonik/scan.l"
+#line 138 "scan.l"
 { return K_UNSUBSCRIBE;		}
 	YY_BREAK
 case 73:
 YY_RULE_SETUP
-#line 139 "src/slonik/scan.l"
+#line 139 "scan.l"
 { return K_UPDATE;			}
 	YY_BREAK
 case 74:
 YY_RULE_SETUP
-#line 140 "src/slonik/scan.l"
+#line 140 "scan.l"
 { return K_YES;				}
 	YY_BREAK
 case 75:
 YY_RULE_SETUP
-#line 141 "src/slonik/scan.l"
+#line 141 "scan.l"
 { return K_WAIT;			}
 	YY_BREAK
 case 76:
 YY_RULE_SETUP
-#line 143 "src/slonik/scan.l"
+#line 143 "scan.l"
 { return T_NUMBER;			}
 	YY_BREAK
 case 77:
 YY_RULE_SETUP
-#line 144 "src/slonik/scan.l"
+#line 144 "scan.l"
 { return T_IDENT;			}
 	YY_BREAK
 case 78:
 /* rule 78 can match eol */
 YY_RULE_SETUP
-#line 146 "src/slonik/scan.l"
+#line 146 "scan.l"
 ;
 	YY_BREAK
 case 79:
 YY_RULE_SETUP
-#line 148 "src/slonik/scan.l"
+#line 148 "scan.l"
 { 
 			start_charpos = yytext;
 			BEGIN(IN_STRING);
@@ -1541,22 +1542,22 @@
 	YY_BREAK
 case 80:
 YY_RULE_SETUP
-#line 152 "src/slonik/scan.l"
+#line 152 "scan.l"
 { }
 	YY_BREAK
 case 81:
 YY_RULE_SETUP
-#line 153 "src/slonik/scan.l"
+#line 153 "scan.l"
 { }
 	YY_BREAK
 case 82:
 YY_RULE_SETUP
-#line 154 "src/slonik/scan.l"
+#line 154 "scan.l"
 { }
 	YY_BREAK
 case 83:
 YY_RULE_SETUP
-#line 155 "src/slonik/scan.l"
+#line 155 "scan.l"
 {
 			yyleng += (yytext - start_charpos) - 2;
 			yytext = start_charpos + 1;
@@ -1567,18 +1568,18 @@
 case 84:
 /* rule 84 can match eol */
 YY_RULE_SETUP
-#line 161 "src/slonik/scan.l"
+#line 161 "scan.l"
 {}
 	YY_BREAK
 case 85:
 /* rule 85 can match eol */
 YY_RULE_SETUP
-#line 163 "src/slonik/scan.l"
+#line 163 "scan.l"
 { addSymbol( yytext ); BEGIN(INITIAL); }
 	YY_BREAK
 case 86:
 YY_RULE_SETUP
-#line 165 "src/slonik/scan.l"
+#line 165 "scan.l"
 { 
                   char * value = getSymbol( yytext );
                   
@@ -1592,7 +1593,7 @@
 case 87:
 /* rule 87 can match eol */
 YY_RULE_SETUP
-#line 175 "src/slonik/scan.l"
+#line 175 "scan.l"
 {
 
                     char * fileName = strdup( yytext + 1 ); /* Skip '<' */
@@ -1616,7 +1617,7 @@
 case YY_STATE_EOF(incl):
 case YY_STATE_EOF(define):
 case YY_STATE_EOF(IN_STRING):
-#line 194 "src/slonik/scan.l"
+#line 194 "scan.l"
 {
                     if( yy_buffer == NULL )
                         yyterminate();
@@ -1626,20 +1627,20 @@
 	YY_BREAK
 case 88:
 YY_RULE_SETUP
-#line 201 "src/slonik/scan.l"
+#line 201 "scan.l"
 ;
 	YY_BREAK
 case 89:
 YY_RULE_SETUP
-#line 203 "src/slonik/scan.l"
+#line 203 "scan.l"
 { return yytext[0];				}
 	YY_BREAK
 case 90:
 YY_RULE_SETUP
-#line 205 "src/slonik/scan.l"
+#line 205 "scan.l"
 ECHO;
 	YY_BREAK
-#line 1643 "<stdout>"
+#line 1644 "scan.c"
 
 	case YY_END_OF_BUFFER:
 		{
@@ -2606,7 +2607,7 @@
 
 #define YYTABLES_NAME "yytables"
 
-#line 205 "src/slonik/scan.l"
+#line 205 "scan.l"
 
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/slony1-1.2.16/src/slonik/y.tab.h new/slony1-1.2.17-rc/src/slonik/y.tab.h
--- old/slony1-1.2.16/src/slonik/y.tab.h	1970-01-01 01:00:00.000000000 +0100
+++ new/slony1-1.2.17-rc/src/slonik/y.tab.h	2009-07-29 22:35:15.000000000 +0200
@@ -0,0 +1,226 @@
+
+/* A Bison parser, made by GNU Bison 2.4.1.  */
+
+/* Skeleton interface for Bison's Yacc-like parsers in C
+   
+      Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
+   Free Software Foundation, Inc.
+   
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation, either version 3 of the License, or
+   (at your option) any later version.
+   
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+   
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+/* As a special exception, you may create a larger work that contains
+   part or all of the Bison parser skeleton and distribute that work
+   under terms of your choice, so long as that work isn't itself a
+   parser generator using the skeleton or a modified version thereof
+   as a parser skeleton.  Alternatively, if you modify or redistribute
+   the parser skeleton itself, you may (at your option) remove this
+   special exception, which will cause the skeleton and the resulting
+   Bison output files to be licensed under the GNU General Public
+   License without this special exception.
+   
+   This special exception was added by the Free Software Foundation in
+   version 2.2 of Bison.  */
+
+
+/* Tokens.  */
+#ifndef YYTOKENTYPE
+# define YYTOKENTYPE
+   /* Put the tokens into the symbol table, so that GDB and other debuggers
+      know about them.  */
+   enum yytokentype {
+     K_ADD = 258,
+     K_ADMIN = 259,
+     K_ALL = 260,
+     K_BACKUP = 261,
+     K_CLIENT = 262,
+     K_CLUSTER = 263,
+     K_CLUSTERNAME = 264,
+     K_COMMENT = 265,
+     K_CONFIRMED = 266,
+     K_CONFIG = 267,
+     K_CONNINFO = 268,
+     K_CONNRETRY = 269,
+     K_CREATE = 270,
+     K_DROP = 271,
+     K_ECHO = 272,
+     K_ERROR = 273,
+     K_EVENT = 274,
+     K_EXECUTE = 275,
+     K_EXIT = 276,
+     K_FAILOVER = 277,
+     K_FALSE = 278,
+     K_FILENAME = 279,
+     K_FOR = 280,
+     K_FORWARD = 281,
+     K_FULL = 282,
+     K_FUNCTIONS = 283,
+     K_ID = 284,
+     K_INIT = 285,
+     K_KEY = 286,
+     K_LISTEN = 287,
+     K_LOCK = 288,
+     K_LOG = 289,
+     K_MERGE = 290,
+     K_MOVE = 291,
+     K_NAME = 292,
+     K_NEW = 293,
+     K_NO = 294,
+     K_NODE = 295,
+     K_OFF = 296,
+     K_OLD = 297,
+     K_ON = 298,
+     K_ONLY = 299,
+     K_ORIGIN = 300,
+     K_PATH = 301,
+     K_PROVIDER = 302,
+     K_QUALIFIED = 303,
+     K_RECEIVER = 304,
+     K_REPAIR = 305,
+     K_RESTART = 306,
+     K_SCRIPT = 307,
+     K_SECONDS = 308,
+     K_SEQUENCE = 309,
+     K_SERIAL = 310,
+     K_SERVER = 311,
+     K_SET = 312,
+     K_SPOOLNODE = 313,
+     K_STORE = 314,
+     K_SUBSCRIBE = 315,
+     K_SUCCESS = 316,
+     K_SWITCH = 317,
+     K_TABLE = 318,
+     K_TIMEOUT = 319,
+     K_TRIGGER = 320,
+     K_TRUE = 321,
+     K_TRY = 322,
+     K_UNINSTALL = 323,
+     K_UNLOCK = 324,
+     K_UNSUBSCRIBE = 325,
+     K_UPDATE = 326,
+     K_YES = 327,
+     K_WAIT = 328,
+     K_SYNC = 329,
+     K_SLEEP = 330,
+     T_IDENT = 331,
+     T_LITERAL = 332,
+     T_NUMBER = 333
+   };
+#endif
+/* Tokens.  */
+#define K_ADD 258
+#define K_ADMIN 259
+#define K_ALL 260
+#define K_BACKUP 261
+#define K_CLIENT 262
+#define K_CLUSTER 263
+#define K_CLUSTERNAME 264
+#define K_COMMENT 265
+#define K_CONFIRMED 266
+#define K_CONFIG 267
+#define K_CONNINFO 268
+#define K_CONNRETRY 269
+#define K_CREATE 270
+#define K_DROP 271
+#define K_ECHO 272
+#define K_ERROR 273
+#define K_EVENT 274
+#define K_EXECUTE 275
+#define K_EXIT 276
+#define K_FAILOVER 277
+#define K_FALSE 278
+#define K_FILENAME 279
+#define K_FOR 280
+#define K_FORWARD 281
+#define K_FULL 282
+#define K_FUNCTIONS 283
+#define K_ID 284
+#define K_INIT 285
+#define K_KEY 286
+#define K_LISTEN 287
+#define K_LOCK 288
+#define K_LOG 289
+#define K_MERGE 290
+#define K_MOVE 291
+#define K_NAME 292
+#define K_NEW 293
+#define K_NO 294
+#define K_NODE 295
+#define K_OFF 296
+#define K_OLD 297
+#define K_ON 298
+#define K_ONLY 299
+#define K_ORIGIN 300
+#define K_PATH 301
+#define K_PROVIDER 302
+#define K_QUALIFIED 303
+#define K_RECEIVER 304
+#define K_REPAIR 305
+#define K_RESTART 306
+#define K_SCRIPT 307
+#define K_SECONDS 308
+#define K_SEQUENCE 309
+#define K_SERIAL 310
+#define K_SERVER 311
+#define K_SET 312
+#define K_SPOOLNODE 313
+#define K_STORE 314
+#define K_SUBSCRIBE 315
+#define K_SUCCESS 316
+#define K_SWITCH 317
+#define K_TABLE 318
+#define K_TIMEOUT 319
+#define K_TRIGGER 320
+#define K_TRUE 321
+#define K_TRY 322
+#define K_UNINSTALL 323
+#define K_UNLOCK 324
+#define K_UNSUBSCRIBE 325
+#define K_UPDATE 326
+#define K_YES 327
+#define K_WAIT 328
+#define K_SYNC 329
+#define K_SLEEP 330
+#define T_IDENT 331
+#define T_LITERAL 332
+#define T_NUMBER 333
+
+
+
+
+#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
+typedef union YYSTYPE
+{
+
+/* Line 1676 of yacc.c  */
+#line 106 "parser.y"
+
+	int32		ival;
+	char		*str;
+	option_list	*opt_list;
+	SlonikAdmInfo	*adm_info;
+	SlonikStmt	*statement;
+
+
+
+/* Line 1676 of yacc.c  */
+#line 218 "y.tab.h"
+} YYSTYPE;
+# define YYSTYPE_IS_TRIVIAL 1
+# define yystype YYSTYPE /* obsolescent; will be withdrawn */
+# define YYSTYPE_IS_DECLARED 1
+#endif
+
+extern YYSTYPE yylval;
+
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/slony1-1.2.16/src/slony_logshipper/scan.l new/slony1-1.2.17-rc/src/slony_logshipper/scan.l
--- old/slony1-1.2.16/src/slony_logshipper/scan.l	2008-05-13 23:40:28.000000000 +0200
+++ new/slony1-1.2.17-rc/src/slony_logshipper/scan.l	2009-07-07 17:00:16.000000000 +0200
@@ -7,7 +7,7 @@
  *	Copyright (c) 2003-2004, PostgreSQL Global Development Group
  *	Author: Jan Wieck, Afilias USA INC.
  *
- *	$Id: scan.l,v 1.1.2.2 2008-05-13 21:40:28 cbbrowne Exp $
+ *	$Id: scan.l,v 1.1.2.3 2009-07-07 15:00:16 cbbrowne Exp $
  *-------------------------------------------------------------------------
  */
 
@@ -173,6 +173,7 @@
 								break;
 							}
 							*cp++ = c;
+							*cp++ = c;
 							len+=2;
 							continue;
 						}
@@ -189,6 +190,7 @@
 							if (c == '\'')
 							{
 								*cp++ = c;
+								*cp++ = c;
 								len+=2;
 								continue;
 							}
@@ -242,6 +244,7 @@
 								break;
 							}
 							*cp++ = c;
+							*cp++ = c;
 							len+=2;
 							continue;
 						}
@@ -258,6 +261,7 @@
 							if (c == '\'')
 							{
 								*cp++ = c;
+								*cp++ = c;
 								len+=2;
 								continue;
 							}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/slony1-1.2.16/src/slony_logshipper/slony_logshipper.c new/slony1-1.2.17-rc/src/slony_logshipper/slony_logshipper.c
--- old/slony1-1.2.16/src/slony_logshipper/slony_logshipper.c	2007-09-08 16:21:40.000000000 +0200
+++ new/slony1-1.2.17-rc/src/slony_logshipper/slony_logshipper.c	2009-07-08 22:37:39.000000000 +0200
@@ -6,7 +6,7 @@
  *	Copyright (c) 2003-2004, PostgreSQL Global Development Group
  *	Author: Jan Wieck, Afilias USA INC.
  *
- *	$Id: slony_logshipper.c,v 1.1.2.1 2007-09-08 14:21:40 wieck Exp $
+ *	$Id: slony_logshipper.c,v 1.1.2.2 2009-07-08 20:37:39 cbbrowne Exp $
  *-------------------------------------------------------------------------
  */
 
@@ -47,6 +47,7 @@
 /*
  * Global data
  */
+int         rescan_interval = 0;
 int			parse_errors = 0;
 int			opt_quiet = 0;
 char	   *destinationfname = NULL;
@@ -134,7 +135,7 @@
 	 * Parse commandline options
 	 *
 	 */
-	while ((opt = getopt(argc, (char **)argv, "hvqcflrtTw")) != EOF)
+	while ((opt = getopt(argc, (char **)argv, "hvqcflrtTws:")) != EOF)
 	{
 		switch (opt)
 		{
@@ -178,6 +179,10 @@
 			case 'w':
 				opt_nowait = 1;
 				break;
+            
+            case 's':
+                rescan_interval = atoi(optarg);
+                break;
 
 			default:
 				fprintf(stderr, "unknown option '%c'\n", opt);
@@ -311,7 +316,7 @@
 						break;
 
 			default:	if (!opt_quiet)
-							printf("logshipper deamon created - pid = %d\n",
+							printf("logshipper daemon created - pid = %d\n",
 									pid);
 						return 0;
 		}
@@ -365,6 +370,19 @@
 		if (rc == 0)
 			break;
 
+		if (rc == -2)
+		{
+			archscan_sort = NULL;
+            errlog(LOG_INFO, "Queue is empty.  Going to rescan in %d seconds\n", rescan_interval);
+            sleep(rescan_interval);
+			if (archscan(optind, argc, (char **)argv) < 0)
+			{
+				return -1;
+			}
+            errlog(LOG_INFO, "Archive dir scanned\n");
+			continue;
+               }
+		
 		if (rc < 0)
 		{
 			return -1;
@@ -1172,6 +1190,7 @@
 		"            (use with caution)\n"
 		"      -f    stay in foreground (don't daemonize)\n"
 		"      -w    enter smart shutdown mode immediately\n"
+		"      -s    indicate (integer value) rescan interval\n"
 		"\n");
 	exit(1);
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/slony1-1.2.16/src/xxid/xxid.c new/slony1-1.2.17-rc/src/xxid/xxid.c
--- old/slony1-1.2.16/src/xxid/xxid.c	2007-05-15 00:04:49.000000000 +0200
+++ new/slony1-1.2.17-rc/src/xxid/xxid.c	2009-07-23 20:30:04.000000000 +0200
@@ -6,7 +6,7 @@
  *	Copyright (c) 2003-2004, PostgreSQL Global Development Group
  *	Author: Jan Wieck, Afilias USA INC.
  *
- *	$Id: xxid.c,v 1.12.2.3 2007-05-14 22:04:49 wieck Exp $
+ *	$Id: xxid.c,v 1.12.2.4 2009-07-23 18:30:04 wieck Exp $
  *-------------------------------------------------------------------------
  */
 
@@ -18,6 +18,9 @@
 #include "access/xact.h"
 #include "access/transam.h"
 #include "executor/spi.h"
+#ifdef HAVE_GETACTIVESNAPSHOT
+#include "utils/snapmgr.h"
+#endif
 
 #ifdef PG_MODULE_MAGIC
 PG_MODULE_MAGIC;
@@ -233,6 +236,10 @@
 Datum
 _Slony_I_getMinXid(PG_FUNCTION_ARGS)
 {
+#ifdef HAVE_GETACTIVESNAPSHOT
+	Snapshot	SerializableSnapshot = GetActiveSnapshot();
+#endif
+
 	if (SerializableSnapshot == NULL)
 		elog(ERROR, "Slony-I: SerializableSnapshot is NULL in getMinXid()");
 
@@ -246,6 +253,9 @@
 Datum
 _Slony_I_getMaxXid(PG_FUNCTION_ARGS)
 {
+#ifdef HAVE_GETACTIVESNAPSHOT
+	Snapshot	SerializableSnapshot = GetActiveSnapshot();
+#endif
 	if (SerializableSnapshot == NULL)
 		elog(ERROR, "Slony-I: SerializableSnapshot is NULL in getMaxXid()");
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/slony1-1.2.16/tests/run_test.sh new/slony1-1.2.17-rc/tests/run_test.sh
--- old/slony1-1.2.16/tests/run_test.sh	2008-03-07 20:00:14.000000000 +0100
+++ new/slony1-1.2.17-rc/tests/run_test.sh	2009-07-29 00:20:48.000000000 +0200
@@ -1,5 +1,5 @@
 #!/bin/sh
-# $Id: run_test.sh,v 1.11.2.3 2008-03-07 19:00:14 cbbrowne Exp $
+# $Id: run_test.sh,v 1.11.2.4 2009-07-28 22:20:48 cbbrowne Exp $
 
 pgbindir=${PGBINDIR:-"/usr/local/pgsql/bin"}
 numerrors=0
@@ -257,9 +257,9 @@
 
 	if [ -n "${db}" -a "${host}" -a "${user}" ]; then
 	  status "creating origin DB: $user -h $host -U $user -p $port $db"
-  	  $pgbindir/createdb -O $user -h $host -U $user -p $port --encoding $ENCODING $db 1> ${mktmp}/createdb.${originnode} 2> ${mktmp}/createdb.${originnode}
+  	  $pgbindir/createdb -O $user -h $host -U $user -p $port --encoding $ENCODING -T template0 $db 1> ${mktmp}/createdb.${originnode} 2> ${mktmp}/createdb.${originnode}
 	  if [ $? -ne 0 ]; then	   
-	    err 3 "An error occured trying to $pgbindir/createdb -O $user -h $host -U $user -p $port --encoding $ENCODING $db, ${mktmp}/createdb.${originnode} for details"
+	    err 3 "An error occured trying to $pgbindir/createdb -O $user -h $host -U $user -p $port --encoding $ENCODING -T template0 $db, ${mktmp}/createdb.${originnode} for details"
 	  fi
 	else
 	  err 3 "No db '${db}' or host '${host}' or user '${user}' or port '${port}' specified"
@@ -292,7 +292,7 @@
             if [ -n "${db}" -a "${host}" -a "${user}" -a "${port}" ]; then
               if [ ${alias} -ne ${originnode} ]; then
 		status "creating subscriber ${alias} DB: $user -h $host -U $user -p $port $db"
-	        $pgbindir/createdb -O $user -h $host -U $user -p $port --encoding $ENCODING $db 1> ${mktmp}/createdb.${alias} 2> ${mktmp}/createdb.${alias}
+	        $pgbindir/createdb -O $user -h $host -U $user -p $port --encoding $ENCODING -T template0 $db 1> ${mktmp}/createdb.${alias} 2> ${mktmp}/createdb.${alias}
 		status "add plpgsql to subscriber"
 		$pgbindir/createlang -h $host -U $user -p $port plpgsql $db
 		status "loading subscriber ${alias} DB from $odb"
openSUSE Build Service is sponsored by