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 ; RESUME ; 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, requires 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.