
2007-12-10  -  PgBouncer 1.1.2  -  "The Hammer"

  = Features =

    * Disconnects because of server_lifetime are now separated by
      (server_lifetime / pool_size) seconds.  This avoids pgbouncer
      causing reconnect floods.

  = Fixes =

    * Online upgrade 1.0 -> 1.1 problems:
      - 1.0 does not track server parameters, so they stay NULL
        but 1.1 did not expect it and crashed.
      - If server params are unknown, but client ones are set,
        then issue a SET for them, instead complaining.
    * Remove temp debug statements that were accidentally left
      in code on INFO level, so they polluted logs.
    * Unbroke debian/changelog

  = Cleanup =

    * reorder struct SBuf fields to get better alignment for buffer.

2007-10-26  -  PgBouncer 1.1.1  -  "Breakdancing Bee"

  = Fixes =

  * Server parameter cache could stay uninitialized, which caused
    unnecessary SET of them.  This caused problem on 8.1 which
    does not allow touching standard_conforming_strings.
    (Thanks to Dimitri Fontaine for report & testing.)

  * Some doc fixes.
  * Include doc/fixman.py in .tgz.

2007-10-09  -  PgBouncer 1.1  -  "Mad-Hat Toolbox"

  = Features =

  * Keep track of following server parameters:

      client_encoding  datestyle, timezone, standard_conforming_strings

  * Database connect string enhancements:
    - Accept hostname in host=
    - Accept custom unix socket location in host=
    - Accept quoted values: password=' asd''foo'

  * New config var: server_reset_query, to be sent immidiately after release
  * New config var: server_round_robin, to switch between LIFO and RR.
  * Cancel pkt sent for idle connection does not drop it anymore.
  * Cancel with ^C from psql works for SUSPEND / PAUSE.
  * Print FD limits on startup.
  * When suspending, try to hit packet boundary ASAP.
  * Add 'timezone' to database parameters.
  * Use longlived logfile fd.  Reopened on SIGHUP / RELOAD;
  * Local connection endpoint info in SHOW SERVERS/CLIENTS/SOCKETS.

  = Code cleanup =

  * More debug log messages include socket info.
  * Magic number removal and error message cleanup. (David Fetter)
  * Wrapper struct for current pkt info.  Removes lot of compexity.

  = Fixes =

  * Detect invalid pkt headers better.
  * auth_file modification check was broken, which made pgbouncer
    reload it too often.

2007-06-18  -  PgBouncer 1.0.8  -  "Undead Shovel Jutsu"

  = Fixes =

  * Fix crash in cancel packet handling. (^C from psql)

  = Features =

  * PAUSE <db>; RESUME <db>; works now.
  * Cleanup of console command parsing.
  * Disable expensive in-list assert check.

2007-04-19  -  PgBouncer 1.0.7  -  "With Vitamin A-Z"

  * Several error/notice packets with send() blocking between
    triggered assert.  Fix it by removing flushing logic altogether.
    As pgbouncer does not actively buffer anything, its not needed.
    It was a remnant from the time when buffering was pushed to
    kernel with MSG_MORE.
  * Additionally avoid calling recv() logic when sending unblocks.
  * List search code for admin_users and stats_users
    mishandled partial finds.  Fix it.
  * Standardise UNIX socket peer UID finding to getpeereid().

2007-04-12  -  PgBouncer 1.0.6  -  "Daily Dose"

  * The "Disable maintenance during the takeover" fix could
    disable maintenance altogether.  Fix it.
  * Compilation fix for FreeBSD, <sys/ucred.h> requires <sys/param.h> there.
    Thanks go to Robert Gogolok for report.

2007-04-11  -  PgBouncer 1.0.5  -  "Enough for today"

  * Fix online-restart bugs:
    - Set ->ready for idle servers.
    - Remove obsolete code from use_client_socket()
    - Disable maintenance during the takeover.

2007-04-11  -  PgBouncer 1.0.4  -  "Last 'last' bug"

  * Notice from idle server tagged server dirty.
    release_server() did not expect it.  Fix it
    by dropping them.

2007-04-11  -  PgBouncer 1.0.3  -  "Fearless Fork"

  = Fixes =

  * Some error handling was missing in login path, so dying
    connection there could trigger asserts.
  * Cleanup of asserts in sbuf.c to catch problems earlier.
  * Create core when Assert() triggers.

  = New stuff =

  * New config vars: log_connections, log_disconnections,
    log_pooler_errors to turn on/off noise.
  * Config var: client_login_timeout to kill dead connections
    in login phase that could stall SUSPEND and thus online restart.

2007-03-28  -  PgBouncer 1.0.2  -  "Supersonic Spoon"

  * libevent may report a deleted event inside same loop.
    Avoid socket reuse for one loop.
  * release_server() from disconnect_client() didnt look
    it the packet was actually sent.

2007-03-15  -  PgBouncer 1.0.1  -  "Alien technology"

  = Fixes =

  * Mixed usage of cached and non-cached time, plus unsiged usec_t typedef
    created spurious query_timeout errors.
  * Fix rare case when socket woken up from send-wait could stay stalling.
  * More fair queueing of server connections.  Before, a new query could
    get a server connections before older one.
  * Delay server release until everything is guaranteed to be sent.

  = Features =

  * SHOW SOCKETS command to have detailed info about state state.
  * Put PgSocket ptr to log, to help tracking one connection.
  * In console, allow SELECT in place of SHOW.
  * Various code cleanups.

2007-03-13  -  PgBouncer 1.0  -  "Tuunitud bemm"

  * First public release.

