= Features =
* IANA has assigned port 6432 to be official port for PgBouncer.
Thus the default port number has changed to 6432. Existing
individual users do not need to change, but if you distribute
packages of PgBouncer, please change the package default
to official port.
* Dynamic database creation (David Galoyan)
Now you can define database with name "*". If defined, it's connect
string will be used for all undefined databases. Useful mostly
for test / dev environments.
* Windows support (Hiroshi Saito)
PgBouncer runs on Windows 2000+ now. Command line usage stays same,
except it cannot run as daemon and cannot do online reboot.
To run as service, define parameter service_name in config. Then:
> pgbouncer.exe config.ini -regservice
> net start SERVICE_NAME
To stop and unregister:
> net stop SERVICE_NAME
> pgbouncer.exe config.ini -unregservice
To use Windows Event Log, event DLL needs to be registered first:
> regsrv32 pgbevent.dll
Afterwards you can set "syslog = 1" in config.
= Minor features =
* Database names in config file can now be quoted with standard SQL
ident quoting, to allow non-standard characters in db names.
* New tunables: 'reserve_pool_size' and 'reserve_pool_timeout'.
In case there are clients in pool that have waited more that
'reserve_pool_timeout' seconds, 'reserve_pool_size' specifies
the number of connections that can be added to pool. It can also
set per-pool with 'reserve_pool' connection variable.
* New tunable 'sbuf_loopcnt' to limit time spent on one socket.
In some situations - eg SMP server, local Postgres and fast network -
pgbouncer can run recv()->send() loop many times without blocking
on either side. But that means other connections will stall for
a long time. To make processing more fair, limit the times
of doing recv()->send() one socket. If count reaches limit,
just proceed processing other sockets. The processing for
that socket will resume on next event loop.
Thanks to Alexander Schöcke for report and testing.
* crypt() authentication is now optional, as it was removed from Postgres.
If OS does not provide it, pgbouncer works fine without it.
* Add milliseconds to log timestamps.
* Replace old MD5 implementation with more compact one.
* Update ISC licence with the FSF clarification.
= Fixes =
* In case event_del() reports failure, just proceed with cleanup.
Previously pgbouncer retried it, in case the failure was due ENOMEM.
But this has caused log floods with inifinite repeats, so it seems
libevent does not like it.
Why event_del() report failure first time is still mystery.
* --enable-debug now just toggles whether debug info is stripped from binary.
It no longer plays with -fomit-frame-pointer as it's dangerous.
* Fix include order, as otherwise system includes could come before
internal ones. Was problem for new md5.h include file.
* Include COPYRIGHT file in .tgz...