Patch provided by Wen Heping in PR 43628.
Changes:
* Fix handling failover when health_check was disabled. (Yoshiyuki)
- The bug was introduced in 3.4.
* Fix deadlock while processing Parse message. (Yoshiyuki)
* Add new "replicate_select" directive, being the default value to
be false. (Yoshiyuki)
- If it is true, SELECT query is replicated. This behavior is
same as V3.2 or earlier.
* Improve signal handling. (Yoshiyuki)
- Occasionaly, zombie processes were remained. Or processes were
unstable.
* Fix hang up when SELECT was error inside a transaction
block. The bug was introduced in V3.3. (Yoshiyuki)
* Fix PREPARE/EXECUTE handling in master slave mode. (Yoshiyuki)
* Fix "kind mismatch error" when deadlock error
* Fix hang up and SEGV in extended query protocol when a warning
SQL like "SELECT '\'';" executed. (Yoshiyuki)
* Fix memory leak when connection cache was full. (Yoshiyuki)
* Improve replication. SELECT nextval() and SELECT setval() are
now replicated. (Yoshiyuki)
* Change SELECT query is only sent to the master node. (Yoshiyuki)
- Use /*REPLICATION*/ comment to repliate a SELECT query.
* Fix unexpected failover error due to receiving an interrupt
signal while connecting to the backend. (Yoshiyuki)
* Fix "ps" output to follow PostgreSQL's output. (Taiki)
* Change the default value for enable_pool_hba to true. (Taiki)
* Add "pgpool.pam" file, for PAM configuration file, to be
installed under "$PREFIX/share/". (Taiki)
* Support HBA authentication(Taiki)
* Support log_connections(Taiki)
* Support log_hostname(Tatsuo)
* Show pgpool status in ps command(Tatsuo)
* Fix bug with prepared query(Yoshiyuki)
* Detach secondary server when "kind mismatch error" is detected(Tatsuo)
* Re-open socket if it was closed by backend while reusing
connection(Yoshiyuki)
* Allow 0 weight(Tatsuo)
* Return correct error messaes when pg_hba.conf auth fails. Patch
contributed by Kenji Kikuchi
* Fix kind mismatch errors with COPY FROM STDIN(Yoshiyuki)
* Allow load balancing with extended protocol(Yoshiyuki)
* Fix LISTEN/NOTIFY bug in master/slave mode reported by Michael
Ulitskiy (Tatsuo)
* Improve documentation. patches contributed by Mark Stosberg
* Fix "kind is 0!" error in Execute(). Reads messages until
receiving CommandComplete, EmptyQuery, ErrorResponse or
PortalSuspend in Execute() (Yoshiyuki)
* Add log_statement option. patches contributed by Thomas E
Lackey, modifications and documents by Tatsuo
* In SimpleForwardToFrontend() do not send SYNC and wait for ready for
query when PANIC or FATAL error occurs. In this case the backend
closes the communication channel immediately which will cause unwanted
failover/degeneration by, for example, trying to connect to
invalid database (Tatsuo)
* Fix dealock problem in extended modd by calling synchronize() in
Execute if replication_strict is enabled (Yoshiyuki)
* Fix segfault problem in race conditions among
connection_life_time, child_life_time and child_max_connections
* pgpool does not exit even if pgpool.conf contents is wrong(Tatsuo)
* Fix buffer overrun bug with long health_check_user name(Taiki)
* Fix occasional segfault with replication and load balance
enabled(bug id #1000548)(Tatsuo)
* Fix pool_send_error_message to send properly NULL terminated
string(Yoshiyuki)
* Fix kind mismatch error in SimpleFowardFrontend(Yoshiyuki)
* Enable to build with BSD make(Yoshiyuki)
* Fix pool_debug and friends to block signals while
executing(Tatsuo)
* Fix numerous bugs with extended query(Yoshiyuki)
* Fix INSERT LOCK(Yoshiyuki)
* Do not reuse startup packet(Tatsuo)
* Automatically DEALLOCTE prepared queries when client
disconnects(Yoshiyuki)
* Do not forward packets when length = 0 in
SimpleForwardToFrontend/SimpleForwardToBackend(Tatsuo)
* Fix lost of kind info(Tatsuo)
* Fix bugs with master/slave mode introduced in 2.7.2. per report
from David Boreham (Tatsuo)
* Fix bugs with master/slave and prepared quries. per report
from David Boreham (Tatsuo)
* Changed Copyright to PgPool Global Development Group
* Fix a typo in man page
* PQnotifes() does not receive immediate responses from LISTEN
* NOTIFY emits packet kind does not agree errors in master/slave
mode
* add pgpool man pages(Peter Eisentra)
* Fix bug in show pool_status for ignore_leading_white_space
private email.
Major changes from 2.5.1:
- Allow SERIAL data type replication by issuing table locks automatically.
- New directives: child_max_connections and ignore_leading_white_space.
- Bug fixes and minor improvements.
pgpool is a connection server for PostgreSQL. pgpool runs between
PostgreSQL's clients(front ends) and servers(back ends). A PostgreSQL
client can connect to pgpool as if it were a standard PostgreSQL
server.
pgpool caches the connection to PostgreSQL server to reduce the
overhead to establish the connection to it. Also, pgpool could use
two PostgreSQL servers for fail over. If the first server goes down,
pgpool will automatically switch to the secondary server. Moreover,
pgpool supports scheduled switch over.