$Id: RELEASE,v 1.3.2.28 2010-06-23 20:03:08 ssinger Exp $

RELEASE 2.0.0

The first release of version 2.0. See RELEASE-2.0 to see changes leading
from version 1.2 to 2.0.

RELEASE 2.0.1

- Bug #69 - vactables type was being referenced before UPGRADE FUNCTIONS could actually have created it, when upgrading from an earlier version.

  This would cause UPGRADE FUNCTIONS to fail.

- Bug #64 - use of syslog levels had some inappropriate break statements so that some logging would get lost.

- If you had multiple clusters where one cluster name was a substring of the other, slon-tools.pm could find
  both when looking for slon processes relevant to the shorter cluster name.  Added a space to the relevant
  bit of slon-tools.pm

- Failover had an insert into sl_event where # of columns provided didn't match those expected.  This
  resulted from the change of snapshot handling which used to involve 3 columns where in 8.3+, there is
  now a snapshot type.

- Fix syntax error in tools/altperl/slon_watchdog.pl

- Add cleanup_interval example to sample slon.conf file

- Add cleanup_interval configuration configuration to regression tests

- Add documentation for complex failover scenario

- Revise installation notes to indicate that xxid.so no longer exists in Slony-I 2.0+

- Fix documentation typos

- Fixed error with cleanup code which was not purging old data in sl_log_1/sl_log_2

- Fix altperl/slontools errors

- Added in preliminaries for upgrade from 1.2 to 2.0 - discussion of what the tool
  needs to do

- Bug #63 - Array overrun in logtrigger()

RELEASE 2.0.2

- PostgreSQL 8.4 compatibility - src/backend/slony1_funcs.c needed to
  #include "catalog/pg_type.h"; that is no longer implicitly included by
  the SPI #include

- Fix bug #71 - config dump was failing on string entries that were NULL

- Fix bug #76 - REPAIR CONFIG could have collisions where, when we 
  load a schema, one entry in sl_table already has an OID value
  that incorrectly matches a value that another update is trying to
  fix.

  This would cause REPAIR CONFIG to fail.

  Put in a query that updates the oids in sl_table and sl_sequence to
  randomly selected values from pg_class that couldn't match (since
  the values selected are from non-table/non-sequence objects)

- Updated release notes to indicate that 2.0 only supports PostgreSQL
  8.3+

- Change to configure.ac to allow it to run on autoconf 2.63; there was
  something unsuitable about SLONREL_VERSION processing

- Fixes to Makefile for admin guide

- Various fixes to admin guide material

- Added an extra test to Schema name test that validates that things
  can operate properly even if the DB lacks a "public" schema

- Fixed bug in tools/start_slon.sh

- Fixed pathname substitutions in a couple of altperl scripts

- Add a test which validates that the cluster schema name is valid; 
  pgAdminIII allowed setting up cluster names that slonik would refuse
  to connect to.

- Revised regression tests to use SYNC/WAIT FOR EVENT instead of
  queries that try to coordinate sl_status information with rather
  less determinacy...

- Cleanup thread was generating spurious error messages due to
  misinterpreting PG return codes.  Rectified this, and added a
  test in to make sure we're exercising the logic


RELEASE 2.0.3

- PostgreSQL 8.4 has been released; slonik needs to explicitly recognize it

- Add in slonikconfdump.sh tool, which generates a slonik script to duplicate
  the configuration of a Slony-I cluster

- Significant fixes to documentation to reflect 2.0 changes

- Add "OMIT COPY" option to the Slonik "SUBSCRIBE SET" command

- Document process for Slony-I 2.0 upgrade using OMIT COPY option

- Fix to race condition where file descriptor copies were being made at
  the wrong time in the scheduler

- Modify "testseqnames" regression test to create a whole bunch of
  sequences to validate that things don't break down with either lots of
  them, or where IDs are large numbers

- 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

- Autovacuum handling changes in PostgreSQL 8.4 - we pull metadata
  from pg_class.reloptions, instead of pg_autovacuum

- logswitch fix resolving a potential data loss + statement blocking
  bug...

  Before attempting to TRUNCATE the sl_log_* tables, we need to
  successfully request an exclusive lock.  By doing so in an
  exception block with NOWAIT option, this can "lose" gracefully.

- Add LOG_NAME_SUFFIX to altperl tools

Added in rc3:

- Updates to copyright dates on files

- Bug #98 - need WAIT ON parameter in slonik code generated by
  slonik_move_set altperl script.

- Change default $LOGDIR, so that distros won't need to patch it.

- Fix LOG_NAME_SUFFIX feature. Thanks to David Fetter and Andrew Dunstan.

- Improve documentation on EVENT NODE for STORE NODE command

- SLONLOG directory changes for Red Hat-related distributions

- Bug #97 - insert into sl_setsync upon FAILOVER had values() clause based on the
  pre-2.0 schema; fix to use 2.0.

- UPGRADE FUNCTIONS failing because functions had their return types changed.
  Added in "DROP FUNCTION IF EXISTS" (fine in 8.3+) in
  src/backend/slony1_funcs.sql to rectify this.

- As observed by Bernd Helmle, cloneNodePrepare returns an event ID,
  and hence should return BIGINT

- Introduced ShouldSlonyVacuumTable() function for 8.3 so we cope with
  differences in vacuum handling between 8.3 and 8.4+

- Fix 8.4-ism relating to subscription retries
  <http://lists.slony.info/pipermail/slony1-commit/2009-October/002728.html>

Added post rc3:

- Bug #103 - When adding snapshot entries, they should be "1:1:", not "0:0:"

- autoconf/C funcs change to cope with 8.5 change that ScanKeywordLookup has
  3 arguments rather than 1 (in previous versions)

- Remove Emacs fodder from tools (bug #108)

- Quoting problems in Perl script (bug #110)

- Add notes about flex/bison conflict (bug #109)

- Memory leak changes per Ulrich Weber
  http://lists.slony.info/pipermail/slony1-hackers/2010-January/000292.html

- Logic error (if versus "else if") noticed by Richard Yen

- Bug #106 - misleading error message when setting up session configuration

- Improve test harness to report conninfo in case where connection fails

- Bug #55 - va_args cannot be used multiple times

- Bug # 113 - DROP cloneNodePrepare since the return type changes.
  Patch from Atte Peltomäki

- Improve configure complaint if it can't find PQunescapeBytea - this
  likely implies that configure couldn't find libpq.

- Copyright date changes

- Added discussion of synchronous commit to documentation

- Removed some discussion of behaviours relating to ancient versions
  of PostgreSQL that are no longer supported (David Fetter)

- SPI_getbinval() was being passed a NULL, which PostgreSQL 8.5 no
  longer accepts.  Add isnull variable in the relevant code block so
  there's a place to stow the bool result.

  Reason for this noted by Alvaro Herrera - thanks!

- Change "long long" to "int64" to make things consistent with how
  PostgreSQL expresses XIDs.

- Similarly "%lld" in printf changed to INT64_FORMAT

- Fixing up detection by Slonik of PostgreSQL 8.4 (patch per Peter
  Eisentraut) - bug #116

RELEASE 2.0.4

- script syntax error Bug # 108

- Fixed memory corruption issue introduced in 2.0.3 with replicating large rows

- cloneNodeFinish() references the proper column in sl_sequence Bug # 119

- Newer versions of flex have changed yyleng from an int to a size_t
  instead of referencing the extern yyleng directly we use the function
  yyget_leng() and have added a configure check to confirm that the version
  of flex we use is not too old.

- Memory leak fixes submittedb by Ulrich Weber

- Various documentation fixes

- cloneNodeFinish() called updateRelOid() that ws looking at wrong tab_id
  sl_sequence but the column is named seq_id. Bug # 119

- Fixed mistyped variable name in ShouldSlonyVacuumTable

