Fix release notes' style and add missing notes
authorYugo Nagata <nagata@sraoss.co.jp>
Fri, 18 Apr 2014 06:35:11 +0000 (15:35 +0900)
committerYugo Nagata <nagata@sraoss.co.jp>
Fri, 18 Apr 2014 06:42:58 +0000 (15:42 +0900)
NEWS
doc/pgpool-ja.html

diff --git a/NEWS b/NEWS
index b71bfe76183ae94a3a5caf053e155cebabdad416..f8c4fed08550aa411d88ca93a21e2dd88b72a999 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,20 +1,28 @@
-3.1.11 (hatsuiboshi) 2014/03/24
+                                Release Notes
 
-    * Version 3.1.11
+===============================================================================
+3.1 Series (2011/09/08 - )
+===============================================================================
+
+                        3.1.11 (hatsuiboshi) 2014/03/24
+
+* Version 3.1.11
 
     This is a bugfix release against pgpool-II 3.1.10.
 
-    * Bug fixes
+    __________________________________________________________________
+
+* Bug fixes
 
     - doc: Add mention about "listen queue" and how to increase the "backlog"
       in the num_init_children section. (Tatsuo Ishii)
 
     - Fix bad performance of unlogged tables detection code. (Tatsuo Ishii)
-      
+
       Pointed out at [pgpool-hackers: 435][[pgpool-general:2325].
 
     - Fix primary node detection logic. (Tatsuo Ishii)
-      
+
       There's a possibility that primary node is not detected. This happens
       in following situation.  node 0: primary, node 1: standby. Node 0 goes
       down. Health checking detects the fact but local status is not updated
       yet healthy. Because find_primary_node fails to connect to node 0, it
       immediately returns -1 and fails to find that fact that node 1 is now
       primary.
-      
+
       Fix is just continuing to look for primary node when fails to connect
       to a node.
-      
+
       Per [pgpool-general: 2409].
 
     - Fix jdbc DML fails when operated in raw mode and auto commit is off.
       (Tatsuo Ishii)
-      
+
       This is reported in bug #92.
 
     - Avoid to send queries to unrelated nodes in streaming replication mode.
       (Tatsuo Ishii)
-      
+
       Pgpool-II sends certain queries, such as BEGIN, END and SET commands to
       all of DB nodes. However in streaming replication mode, only primary
       node and at most one standby node are only concerned (if primacy node
       is selected as the load balance node, only 1 node is concerned).
-      
+
       See [pgpool-hackers: 464] for more details.
 
     - Fix possible buffer overrun problem and memory leak. (Tatsuo Ishii)
-      
+
       Per Coverity 1111465 and 1111482.
 
     - Fix possible buffer overrun. (Tatsuo Ishii)
-      
+
       Replace strcpy() with strlcpy(). Per Coverity report 1111478, 1111480,
       1111481.
 
     - Fix freeing NULL. (Tatsuo Ishii)
-      
+
       Per Coverity 1111384.
 
     - Fix memory leak. (Tatsuo Ishii)
-      
+
       Per Coverity 1111446.
 
     - Fix a segmentation fault in parallel mode with system_db_hostname is
 
     - Fix to output debug messages in processing pgpool.conf with -d option
       (Yugo Nagata)
-      
+
       Previously, some debug messages in pool_get_config() ware not output
       even when -d option was used.
 
     - Fix JDBC exception of prepared statement including now() in
       replication mode (Yugo Nagata)
-      
+
       With JDBC, when a prepared statement is executed more than
       PrepareThreshold times, the statement is named and Describe message
       is sent after Parse. With named statement, pgpool rewrite now() to
       sent to frontend (response of Describe) should include OIDs of the
       same number os original query's parameters. Otherwize, JDBC throws
       ArrayIndexoutOfBoundsException.
-      
+
       This is reported in [pgpool-general-jp: 1192].
 
     - Fix backend error of prepared statement about table which has column whoes
       default value is now() in replication mode (Yugo Nagata)
-      
+
       When pgpool parses a named prepared statement with default now(),
       timestamps are replaced to additional parameters. So, Bind message also
       should inclued additional parameter format codes. However, when the
       caused a error like "incorrect binary data format in bind parameter 2".
 
     - doc: Add description about parallel mode doesn't support PREPARE (Yugo Nagata)
-      
+
       Per bug #93
 
-3.1.10 (hatsuiboshi) 2013/12/06
+===============================================================================
+
+                        3.1.10 (hatsuiboshi) 2013/12/06
 
-    * Version 3.1.10
+* Version 3.1.10
 
       This is a bugfix release against pgpool-II 3.1.9.
 
-    * Bug fixes
+    __________________________________________________________________
+
+* Bug fixes
 
     - Fix incorrect time stamp rewriting in replication mode for certain time
       zones. (Tatsuo Ishii)
       is added.
       Per Coverity report #1111468.
 
-3.1.9 (hatsuiboshi) 2013/09/06
+===============================================================================
+
+                        3.1.9 (hatsuiboshi) 2013/09/06
 
-    * Version 3.1.9
+* Version 3.1.9
 
       This is a bugfix release against pgpool-II 3.1.8.
 
-    * Bug fixes
+    __________________________________________________________________
+
+* Bug fixes
 
     - Fix a mistake in ssh command of doc/basebackup.sh (Tatsuo Ishii)
 
 
     - Fix typos of the japanese document (Yugo Nagata)
 
-3.1.8 (hatsuiboshi) 2013/07/10
+===============================================================================
+
+                        3.1.8 (hatsuiboshi) 2013/07/10
 
-    * Version 3.1.8
+* Version 3.1.8
 
       This is a bugfix release against pgpool-II 3.1.7.
 
-    * Bug fixes
+    __________________________________________________________________
+
+* Bug fixes
 
     - Add mention about "-D" option to the man page. (Tatsuo Ishii)
 
       of recovery script, and this causes a malfunction. In especially,
       rsync may delete unrelated files in basebackup scripts.
 
-3.1.7 (hatsuiboshi) 2013/4/26
+===============================================================================
+
+                        3.1.7 (hatsuiboshi) 2013/4/26
 
-    * Version 3.1.7
+* Version 3.1.7
 
       This is a bugfix release against pgpool-II 3.1.6
 
-    * Bug fixes
+    __________________________________________________________________
+
+* Bug fixes
 
     - Fix to show pool_passwd in "SHOW pool_status". (Yugo Nagata)
 
       balance even though there are no replication delay in fact.
 
       The problem is reported and analyzed by Saitoh Hidenori in
-      [pgpool-genera-jp: 1145]. 
+      [pgpool-genera-jp: 1145].
 
       [pgpool-general-jp: 1145] (in Japanese)
       http://www.pgpool.net/pipermail/pgpool-general-jp/2013-March/001144.html
 
       Patch contributed by Asif Rehman. Slight editing by Tatsuo Ishii.
 
-      [pgpool-hackers: 180] 
+      [pgpool-hackers: 180]
       compile error in ppool-recovery
       http://www.pgpool.net/pipermail/pgpool-hackers/2013-April/000179.html
 
       The problem is reported in bugtrack #53.
 
       #53 pgpool_regclas hangs all connections
-      Date:     2013-04-04 13:35 
+      Date:     2013-04-04 13:35
       Reporter: tmandke
       http://www.pgpool.net/mantisbt/view.php?id=53
 
       For example, "LOG: detect_stop_postmaster_error: detect_error error" is
       fixed to "LOG: detect_postmaster_down_error: detect_error error", and so on.
 
-3.1.6 (hatsuiboshi) 2013/2/8
+===============================================================================
+
+                        3.1.6 (hatsuiboshi) 2013/2/8
 
-    * Version 3.1.6
+* Version 3.1.6
 
       This is a bugfix release against pgpool-II 3.1.5
 
-    * Bug fixes
+    __________________________________________________________________
+
+* Bug fixes
 
     - Fix race condition when using md5 authentication. (Tatsuo Ishii)
 
       This problem is reported in bug track #32 (by oleg_myrk) etc.
 
       #32 PGPool hangs on pcp_attach/detach
-      Reporter: oleg_myrk 
+      Reporter: oleg_myrk
     \e$B!!\e(BDate: 2012-10-24 00:01
       http://www.pgpool.net/mantisbt/view.php?id=32
 
       monitoring the pgpool port.It is reported in bug track #35 by tuomas.
 
       #35 Authentication is timeout
-      Reporter: tuomas 
+      Reporter: tuomas
       Date: 2012-11-20 11:54
       http://www.pgpool.net/mantisbt/view.php?id=3
 
 
     - Add pool_passwd option to pgpool.conf.sample*, and documents. (Yugo Nagata)
 
-3.1.5 (hatsuiboshi) 2012/10/12
+===============================================================================
 
-    * Version 3.1.5
+                        3.1.5 (hatsuiboshi) 2012/10/12
+
+* Version 3.1.5
 
       This is a bugfix release against pgpool-II 3.1.4
 
-    * Bug fixes
+    __________________________________________________________________
+
+* Bug fixes
 
     - Fix read_startup_packet. (Tatsuo Ishii)
 
     - Remove unnecessary/confusing debug log from s_do_auth.(Tatsuo Ishii)
 
     - Fix inifinit loop in SSL mode. When there's pending data in SSL layer
-      of frontend, pool_process_query() checks pending data in backend. 
+      of frontend, pool_process_query() checks pending data in backend.
       (Tatsuo Ishii)
 
       If there's non, it loops again and checks frontend/backend receive buffer
       It seems the order of messages returned from backend is random, and
       do_query () manages it by using state bits.
 
-3.1.4 (hatsuiboshi) 2012/08/06
+===============================================================================
 
-      * Version 3.1.4
+                        3.1.4 (hatsuiboshi) 2012/08/06
+
+* Version 3.1.4
 
       This is a bugfix release against pgpool-II 3.1.3.
 
-      * General
+    __________________________________________________________________
+
+* General
 
       - Adopt PostgreSQL 9.2. (Tatsuo Ishii)
 
-      * Bug fixes
+    __________________________________________________________________
+
+* Bug fixes
 
       - Fix pool_send_and_wait() to send or not to send COMMIT / ABORT
         depending on the transaction state on each node. (Tatsuo Ishii)
           serializable
           http://www.pgpool.net/pipermail/pgpool-general/2012-July/000720.html
 
+===============================================================================
 
-3.1.3 (hatsuiboshi) 2012/04/23
+                        3.1.3 (hatsuiboshi) 2012/04/23
 
-      * Version 3.1.3
+* Version 3.1.3
 
       This is a bugfix release against pgpool-II 3.1.2.
 
-      * Bug fixes
+    __________________________________________________________________
+
+* Bug fixes
 
       - Add m4 files. This should prevent compiling problem on older
         OS's. (Tatsuo Ishii)
         (Tatsuo Ishii)
 
         It is possible that it fails to read backend socket after detecting
-        backend errors and before actually detaching the backend. 
+        backend errors and before actually detaching the backend.
 
       - Fix bug that the process exits before unlocking semaphore by a
         signal interrupt. (Tatsuo Ishii)
 
         Per bug reported in http://www.pgpool.net/mantisbt/view.php?id=51
 
-      - Fix pool_start_query() so that it uses my_master_node_id instead of 
+      - Fix pool_start_query() so that it uses my_master_node_id instead of
         REAL_MASTER_NODE_ID for initial virtual_master_node_id. (Tatsuo Ishii)
 
         Real master node could be changed while pgpool is running in streaming
         It is possible that while processing, the node returned by BACKEND_INFO
         is not usable any more.
 
-      - Fix failover(). (Tatsuo Ishii) 
+      - Fix failover(). (Tatsuo Ishii)
 
         Before it only restarts worker child only when pgpool child do not need
-        restart. This is wrong. We need to restart worker child in any case. 
+        restart. This is wrong. We need to restart worker child in any case.
         Otherwise it continues to send replication time lag check request to down
         the node.
 
 
         Reported in bug tracker http://www.pgpool.net/mantisbt/view.php?id=2.
 
-3.1.2 (hatsuiboshi) 2012/01/31
+===============================================================================
 
-         * Version 3.1.2
+                        3.1.2 (hatsuiboshi) 2012/01/31
 
-         This is a bugfix release against pgpool-II 3.1.1.
+* Version 3.1.2
 
-         * Bug fixes
+      This is a bugfix release against pgpool-II 3.1.1.
+
+    __________________________________________________________________
+
+* Bug fixes
 
       - Fix to recognize READ UNCOMMITTED and REPEATABLE READ of transaction
         isolation levels. (Tatsuo Ishii)
         This could happen when, for example, reloading postgresql.conf.
         The fix is that such buffer in standby is discarded.
 
-3.1.1 (hatsuiboshi) 2011/12/06
+===============================================================================
+
+                        3.1.1 (hatsuiboshi) 2011/12/06
+
+* Version 3.1.1
 
-         * Version 3.1.1
+      This is a bugfix release against pgpool-II 3.1.
 
-         This is a bugfix release against pgpool-II 3.1.
+    __________________________________________________________________
 
-         * Bug fixes
+* Bug fixes
 
-         - Fix add_regex_pattern(). It does not allocate enough memory
-               for each black/white_function_list items. The function adds
-               "^" and "$" to each function items which do not contain those
-               characters. Unfortunately the function forgot to add extra 2
-               bytes for those characters. This may lead to memory corruption
-               errors when pgpool starting up.
+      - Fix add_regex_pattern(). It does not allocate enough memory
+           for each black/white_function_list items. The function adds
+           "^" and "$" to each function items which do not contain those
+           characters. Unfortunately the function forgot to add extra 2
+           bytes for those characters. This may lead to memory corruption
+           errors when pgpool starting up.
 
-         - Fix error message of check_replication_time_lag(Tatsuo
-           Ishii). It emitted wrong error message when it failed to
-           connect to PostgreSQL while checking streaming replication
-           delay. Because it does not use health_check_user anymore.
+      - Fix error message of check_replication_time_lag(Tatsuo
+        Ishii). It emitted wrong error message when it failed to
+        connect to PostgreSQL while checking streaming replication
+        delay. Because it does not use health_check_user anymore.
 
       - Fix memory leak(Toshihiro Kitagawa). This is essentially same
-       as the fix made for 3.0.5(commit
-       19a4ea9215da0b61728741fc0da2271958b09238).
+          as the fix made for 3.0.5(commit
+          19a4ea9215da0b61728741fc0da2271958b09238).
 
       - Major cleanup for strncpy(Tatsuo Ishii). There are several
-       places where strncpy() is used. Problem is some of them do not
-       consider the case when copy lengh == buffer size. In this case
-       copied buffer is not null terminated and may cause tons of
-       problems later.  To fix this, most of them are replaced by
-       strlcpy().
+          places where strncpy() is used. Problem is some of them do not
+          consider the case when copy lengh == buffer size. In this case
+          copied buffer is not null terminated and may cause tons of
+          problems later.  To fix this, most of them are replaced by
+          strlcpy().
 
       - Update cached backend status whenever possible(Tatsuo Ishii).
-       This solves the problem of follow_master_command not being
-       able to lookup backend status correctly which was reported by
-       Jeff Frost: Subject: [Pgpool-general] diagnosing BackendError
-       from pcp_recovery_node To: pgpool-general@pgfoundry.org Date:
-       Wed, 05 Oct 2011 15:15:07 -0700
+          This solves the problem of follow_master_command not being
+          able to lookup backend status correctly which was reported by
+          Jeff Frost: Subject: [Pgpool-general] diagnosing BackendError
+          from pcp_recovery_node To: pgpool-general@pgfoundry.org Date:
+          Wed, 05 Oct 2011 15:15:07 -0700
 
       - Fix buffer overrun problem when pcp password is longer than
         32(Tatsuo Ishii).
 
       - Remove PGDLLIMPORTI which is only neccessary for Windows
-       and cause a problem for non gcc. Patch contributed by Ibrar Ahmed.
+          and cause a problem for non gcc. Patch contributed by Ibrar Ahmed.
 
-3.1 (hatsuiboshi) 2011/09/08
+===============================================================================
 
-         * Version 3.1
+                        3.1 (hatsuiboshi) 2011/09/08
 
-         This is the first version of pgpool-II 3.1 series.
-         That is, a "major version up" from 3.0 series.
+* Version 3.1
 
-         * Incompatible changes
+      This is the first version of pgpool-II 3.1 series.
+      That is, a "major version up" from 3.0 series.
 
-         - Change the lock method of insert_lock. The previous insert_lock uses
-               row locking against the sequence relation, but the current one uses
-               row locking against pgpool_catalog.insert_lock table. The reason is
-               that PostgreSQL core developers decided to disallow row locking
-               against the sequence relation to avoid an internal error which it
-               leads. So creating insert_lock table in all databases which are
-               accessed via pgpool-II beforehand is required. If does not exist
-               insert_lock table, pgpool-II locks the insert target table. This
-               behavior is same as pgpool-II 2.2 and 2.3 series. If you want to use
-               insert_lock which is compatible with older releases, you can specify
-               lock method by configure options: --enable-sequence-lock,
-               --enable-table-lock(Kitagawa)
+    __________________________________________________________________
 
-         - Deprecate backend_socket_dir. Instead, if backend_hostname starts
-               with '/' it is regarded the as path to Unix domain. If backend_hostname
-               is left empty, then default Unix domain path(/tmp) is used. This
-               follows the convention of libpq interface. Patch contributed by
-               Jehan-Guillaume (ioguix) de Rorthais.
+* Incompatible changes
 
-         - Now "pgpool_walrecrunning()" was not used. pgpool-II used to consider
-               the node that is promoted a primary node using the function. Now,
-               pgpool-II waits for completing of the promotion to primary node
-               because it did not work as we intended. But we still have a problem
-               that pgpool-II waits while recovery_timeout, when there is no primary
-               node(Kitagawa)
+      - Change the lock method of insert_lock. The previous insert_lock uses
+        row locking against the sequence relation, but the current one uses
+        row locking against pgpool_catalog.insert_lock table. The reason is
+        that PostgreSQL core developers decided to disallow row locking
+        against the sequence relation to avoid an internal error which it
+        leads. So creating insert_lock table in all databases which are
+        accessed via pgpool-II beforehand is required. If does not exist
+        insert_lock table, pgpool-II locks the insert target table. This
+        behavior is same as pgpool-II 2.2 and 2.3 series. If you want to use
+        insert_lock which is compatible with older releases, you can specify
+        lock method by configure options: --enable-sequence-lock,
+        --enable-table-lock(Kitagawa)
 
-         - Add node_id to each PostgreSQL DB node info in the output of
-               show pool_nodes(Jean-Paul Argudo)
+      - Deprecate backend_socket_dir. Instead, if backend_hostname starts
+        with '/' it is regarded the as path to Unix domain. If backend_hostname
+        is left empty, then default Unix domain path(/tmp) is used. This
+        follows the convention of libpq interface. Patch contributed by
+        Jehan-Guillaume (ioguix) de Rorthais.
 
-         - Change the handling of sequence functions(nextval, setval) so that
-               they completely obey setting of black/white_function_list. They were
-               always handled as write functions before(Kitagawa)
+      - Now "pgpool_walrecrunning()" was not used. pgpool-II used to consider
+        the node that is promoted a primary node using the function. Now,
+        pgpool-II waits for completing of the promotion to primary node
+        because it did not work as we intended. But we still have a problem
+        that pgpool-II waits while recovery_timeout, when there is no primary
+        node(Kitagawa)
 
-         * New features
+      - Add node_id to each PostgreSQL DB node info in the output of
+        show pool_nodes(Jean-Paul Argudo)
 
-         - Add syslog support. Patch contributed by Gilles Darold. Review and
-               editing by Guillaume Lelarge.
+      - Change the handling of sequence functions(nextval, setval) so that
+        they completely obey setting of black/white_function_list. They were
+        always handled as write functions before(Kitagawa)
 
-         - Adapt application_name introduced in PostgreSQL 9.0. When reusing
-               connection, send application_name in the startup packet to backend
-               and send parameter status to frontend(Tatsuo)
+    __________________________________________________________________
 
-         - Add relcache_expire directive to control the expiration of the
-               internal system catalog cache. ALTER TABLE might make these
-               cache values obsoleted and the new directive will make the risk
-               lower(Tatsuo).
+* New features
 
-         - Add follow_master_command directive. This directive specifies a
-               command to run in master/slave streaming replication only after
-               a master failover. Patch contributed by Gilles Darold.
+      - Add syslog support. Patch contributed by Gilles Darold. Review and
+        editing by Guillaume Lelarge.
 
-         - Add pcp_promote_node command. This command promotes a new master
-               node to pgpool-II. This can use in master/slave streaming replication
-               only. Patch contributed by Gilles Darold.
+      - Adapt application_name introduced in PostgreSQL 9.0. When reusing
+        connection, send application_name in the startup packet to backend
+        and send parameter status to frontend(Tatsuo)
 
-         - Add pcp_pool_status command which produces similar output of show
-               pool_status. Also C API for this command is added. Patch
-               contributed by Jehan-Guillaume (ioguix) de Rorthais.
+      - Add relcache_expire directive to control the expiration of the
+        internal system catalog cache. ALTER TABLE might make these
+        cache values obsoleted and the new directive will make the risk
+        lower(Tatsuo).
 
-         - Add new per backend directive "backend_flag". This controls per
-               backend behavior. Currently "ALLOW_TO_FAILOVER" or
-               "DISALLOW_TO_FAILOVER" are allowed(Tatsuo)
+      - Add follow_master_command directive. This directive specifies a
+        command to run in master/slave streaming replication only after
+        a master failover. Patch contributed by Gilles Darold.
 
-         - Add health_check_password directive, but is not yet implemented
-               (Nicolas Thauvin)
+      - Add pcp_promote_node command. This command promotes a new master
+        node to pgpool-II. This can use in master/slave streaming replication
+        only. Patch contributed by Gilles Darold.
 
-         - Add sr_check_period, sr_check_user and sr_check_password directives.
-               These are used for streaming replication delay checking and
-               determining primary node(Tatsuo)
+      - Add pcp_pool_status command which produces similar output of show
+        pool_status. Also C API for this command is added. Patch
+        contributed by Jehan-Guillaume (ioguix) de Rorthais.
 
-         - Add --username(or -u) option to pg_md5 command. This allows to manage
-               users which do not have UNIX accounts. Japanese document change by
-               Tatsuo Ishii(Nicolas Thauvin)
+      - Add new per backend directive "backend_flag". This controls per
+        backend behavior. Currently "ALLOW_TO_FAILOVER" or
+        "DISALLOW_TO_FAILOVER" are allowed(Tatsuo)
 
-         - Add pgpool_adm functions to pgpool_adm/. These are user-defined
-               functions written in C language which work like pcp commands
-               (Jehan-Guillaume (ioguix) de Rorthais)
+      - Add health_check_password directive, but is not yet implemented
+        (Nicolas Thauvin)
 
-         - Add Simplified Chinese version of documents(Huang Jian, Sun Peng)
+      - Add sr_check_period, sr_check_user and sr_check_password directives.
+        These are used for streaming replication delay checking and
+        determining primary node(Tatsuo)
 
-         - Add SQL files to uninstall functions to sql/(Nicolas Thauvin)
+      - Add --username(or -u) option to pg_md5 command. This allows to manage
+        users which do not have UNIX accounts. Japanese document change by
+        Tatsuo Ishii(Nicolas Thauvin)
 
-         - In master/slave mode, SELECTs to unlogged table execute only on
-               master/primary(Kitagawa)
+      - Add pgpool_adm functions to pgpool_adm/. These are user-defined
+        functions written in C language which work like pcp commands
+        (Jehan-Guillaume (ioguix) de Rorthais)
 
-         * Bug fixes
+      - Add Simplified Chinese version of documents(Huang Jian, Sun Peng)
 
-         - Fix bug which cannot use the cursors of JDBC driver on standby
-               node. The transaction commands come to be sent to all nodes by
-               this fix in master/slave mode(Kitagawa)
+      - Add SQL files to uninstall functions to sql/(Nicolas Thauvin)
 
-         - Fix bug with the handling of empty queries. The empty queries
-               come to be handled the same as SELECT queries. This fix allows
-               load-balance after the empty query(Kitagawa)
+      - In master/slave mode, SELECTs to unlogged table execute only on
+        master/primary(Kitagawa)
 
-         - Fix insert_lock so that it works correctly even if the column
-               definition such as "DEFAULT nextval(('"x_seq"'::text)::regclass)"
-               (Kitagawa)
+    __________________________________________________________________
 
-         - Fix pcp_attach_node command so that it emits error message while
-               doing failover(Kitagawa)
+* Bug fixes
 
-         - Fix log message which is emitted when pgpool-II cannot parse the
-               query in the extended query protocol so that it shows the query
-               (Kitagawa)
+      - Fix bug which cannot use the cursors of JDBC driver on standby
+        node. The transaction commands come to be sent to all nodes by
+        this fix in master/slave mode(Kitagawa)
 
-         - Fix description about backend_weight inpgpool-II manual. It can
-               be changed by reloading pgpool.conf(Tatsuo)
+      - Fix bug with the handling of empty queries. The empty queries
+        come to be handled the same as SELECT queries. This fix allows
+        load-balance after the empty query(Kitagawa)
 
-         - Fix and enhance wording in English tutorial document.
-               Fix suggested by Huang Jian(Tatsuo)
+      - Fix insert_lock so that it works correctly even if the column
+        definition such as "DEFAULT nextval(('"x_seq"'::text)::regclass)"
+        (Kitagawa)
 
-         - Fix bug which does not update the node status when reattaching the
-               node in raw mode(Guillaume Lelarge)
+      - Fix pcp_attach_node command so that it emits error message while
+        doing failover(Kitagawa)
 
-         - Fix incorrect calculation of the replication delay in streaming
-               replication mode(Tatsuo)
+      - Fix log message which is emitted when pgpool-II cannot parse the
+        query in the extended query protocol so that it shows the query
+        (Kitagawa)
 
-         - Replace wrong function name "notice_backend_error" with correct one
-               "degenerate_backend_set" in the failover log message(Tatsuo)
+      - Fix description about backend_weight inpgpool-II manual. It can
+        be changed by reloading pgpool.conf(Tatsuo)
 
-         - Remove unnecessary logging at the end of pgpool.conf parsing(Tatsuo)
+      - Fix and enhance wording in English tutorial document.
+        Fix suggested by Huang Jian(Tatsuo)
 
-         - Fix possible crash of pgpool/worker child after attaching new backend.
-               Fix suggested by Gurjeet Singh(Tatsuo)
+      - Fix bug which does not update the node status when reattaching the
+        node in raw mode(Guillaume Lelarge)
 
-         - Fix bug that SELECTs which have subquery with FOR SHARE/UPDATE clause
-               are sent to slave/standby(Tatsuo)
+      - Fix incorrect calculation of the replication delay in streaming
+        replication mode(Tatsuo)
 
-         - Fix bug which rewriting timestamp of default value fails in PREPARE
-               statements. This used to work but was broken in 3.0(Kitagawa)
+      - Replace wrong function name "notice_backend_error" with correct one
+        "degenerate_backend_set" in the failover log message(Tatsuo)
 
-         - Fix fail to compile pcp commands on the environment without
-               getopt_long()(Tatsuo)
+      - Remove unnecessary logging at the end of pgpool.conf parsing(Tatsuo)
 
-         - Fix crash of pgpool child when frontend connects if in raw mode,
-               enable_hba is off and more than 2 backends(Kitagawa)
+      - Fix possible crash of pgpool/worker child after attaching new backend.
+        Fix suggested by Gurjeet Singh(Tatsuo)
 
-         - Fix some memory leaks(Kitagawa)
+      - Fix bug that SELECTs which have subquery with FOR SHARE/UPDATE clause
+        are sent to slave/standby(Tatsuo)
 
-         * Enhancements
+      - Fix bug which rewriting timestamp of default value fails in PREPARE
+        statements. This used to work but was broken in 3.0(Kitagawa)
 
-         - Enhance online recovery in streaming replication mode.
-               Now restarting pgpool-II children is avoided when recovery finished. So
-               existing sessions can be continued while doing online recovery(Tatsuo)
+      - Fix fail to compile pcp commands on the environment without
+        getopt_long()(Tatsuo)
 
-         - pcp_attach_node does not diconnect existing sessions in
-        streaming replication mode. In other mode, pcp_attache_node
-        still disconnects existing sessions(Tatsuo).
+      - Fix crash of pgpool child when frontend connects if in raw mode,
+        enable_hba is off and more than 2 backends(Kitagawa)
 
-         - Import PostgreSQL 9.0 parser. This allows to use CREATE INDEX with
-               implicit index name, which is new in 9.0. Patch contributed by
-               Akio Ishida.
+      - Fix some memory leaks(Kitagawa)
 
-         - Allow to use regular expressions in black and white function list.
-               Patch contributed by Gilles Darold. Patch reviewed by Guillaume Lelarge.
+    __________________________________________________________________
 
-         - Reorganize pgpool.conf sample files so that they are easier to read
-               (Guillaume Lelarge)
+* Enhancements
 
-         - Add <a name="..."> tags into all parameters in the pgpool-II user
-               manual(Haruka Takatsuka)
+      - Enhance online recovery in streaming replication mode.
+        Now restarting pgpool-II children is avoided when recovery finished. So
+        existing sessions can be continued while doing online recovery(Tatsuo)
 
-         - Enhance online recovery documents in streaming replication(Tatsuo)
+      - pcp_attach_node does not diconnect existing sessions in
+        streaming replication mode. In other mode, pcp_attache_node
+        still disconnects existing sessions(Tatsuo).
 
-         - Change the function to check the replication delay in streaming
-               replication mode. Currently, pgpool uses
-               pg_last_xlog_replay_location() instead of
-               pg_last_xlog_receive_location(). Fix suggested by Anton Yuzhaninov
-               (Tatsuo)
+      - Import PostgreSQL 9.0 parser. This allows to use CREATE INDEX with
+        implicit index name, which is new in 9.0. Patch contributed by
+        Akio Ishida.
 
-         - Allow time stamp rewriting to work with arbitrary expression in
-               default value of a column. Before we detected anything including
-               now() then simply replaced it to now(). This will lead to wrong
-               rewriting of default value. for example, timezone('utc'::text, now()).
-               Note that, however, this only adopts to simple queries. Extended
-               protocols(for example Java, PHP PDO) or SQL "PREPARE" still remain
-               same(Tatsuo)
+      - Allow to use regular expressions in black and white function list.
+        Patch contributed by Gilles Darold. Patch reviewed by Guillaume Lelarge.
 
-         - Enhance the error message which is emitted when failed to check
-               replication delay(Nicolas Thauvin)
+      - Reorganize pgpool.conf sample files so that they are easier to read
+        (Guillaume Lelarge)
 
-         - Change error message "do_md5: read_password_packet failed" into debug
-               level(Kitagawa)
+      - Add <a name="..."> tags into all parameters in the pgpool-II user
+        manual(Haruka Takatsuka)
 
-         - Allow to compile pgpool-regclass() against PostgreSQL 9.1(Tatsuo)
+      - Enhance online recovery documents in streaming replication(Tatsuo)
 
-         - Update and sync pgpool-II manuals of English version and Japanese
-               version(Tatsuo)
+      - Change the function to check the replication delay in streaming
+        replication mode. Currently, pgpool uses
+        pg_last_xlog_replay_location() instead of
+        pg_last_xlog_receive_location(). Fix suggested by Anton Yuzhaninov
+        (Tatsuo)
 
-3.0.4 (umiyameboshi) 2011/06/01
+      - Allow time stamp rewriting to work with arbitrary expression in
+        default value of a column. Before we detected anything including
+        now() then simply replaced it to now(). This will lead to wrong
+        rewriting of default value. for example, timezone('utc'::text, now()).
+        Note that, however, this only adopts to simple queries. Extended
+        protocols(for example Java, PHP PDO) or SQL "PREPARE" still remain
+        same(Tatsuo)
 
-         * Version 3.0.4
+      - Enhance the error message which is emitted when failed to check
+        replication delay(Nicolas Thauvin)
 
-         This version fixes various bugs since 3.0.3.
+      - Change error message "do_md5: read_password_packet failed" into debug
+        level(Kitagawa)
 
-         * Incompatible changes
+      - Allow to compile pgpool-regclass() against PostgreSQL 9.1(Tatsuo)
 
-         - In streaming replication, if delay_threshold is 0 or health
-               checking is disabled, the delay checking is not performed. 
-               This is the behaviour according to a description of the
-               pgpool-II manual. But, so far the delay checking was performed
-               even if health checking was disabled(Guillaume Lelarge)
+      - Update and sync pgpool-II manuals of English version and Japanese
+        version(Tatsuo)
 
-         * Bug fixes
 
-         - Fix pgpool-regclass() to be compiled in PostgreSQL 8.0 or later.
-               7.4 still produces errors(Tatsuo)
+===============================================================================
+3.0 Series (2013/07/30 - )
+===============================================================================
 
-         - Fix possible hangup when using /*NO LOAD BALANCE*/ comment in
-               streaming replication(Kitagawa)
+                        3.0.15 (umiyameboshi) 2014/03/24
 
-         - Fix hangup when received Flush(H) message or CloseComplete(C)
-               message(Kitagawa)
+* Version 3.0.15
 
-         - Fix possible hangup that happen for the receiving timing of
-               ReadyForQuery(Z) message after pgpool-II connects to backends(Kitagawa)
+    This is a bugfix release against pgpool-II 3.0.14.
 
-         - Add description about parameters for recovery_1st_stage_command
-               and recovery_2nd_stage_command(Tatsuo)
+    __________________________________________________________________
 
-         - Increase size of the internal system catalog cache from 32 to 128.
-               This has the effect of reducing "unnamed prepared statement does
-               not exist" error(Tatsuo, Kitagawa)
+* Bug fixes
 
-         - Fix bug with pcp_connect() which causes double free. Patch
-               contributed by Jehan-Guillaume (ioguix) de Rorthais(Tatsuo)
+    - doc: Add mention about "listen queue" and how to increase the "backlog"
+      in the num_init_children section. (Tatsuo Ishii)
 
-         - Fix bug with start_recoery() which is apparently wrong usage of
-               PQfinish()(Tatsuo)
+    - Fix bad performance of unlogged tables detection code. (Tatsuo Ishii)
 
-         - Fix incorrect error message which is sent to the frontend when
-               client idle time reached client_idle_limit(Tatsuo)
+      Pointed out at [pgpool-hackers: 435][[pgpool-general:2325].
 
-         - Fix "backend status" variable name correctly in pool_status.
-               Replace the space with a '_'(Guillaume Lelarge)
+    - Fix primary node detection logic. (Tatsuo Ishii)
 
-         - Fix hangup when using md5 authentication method and running as
-               daemon. Patch contributed by Nicolas Thauvin(Tatsuo)
+      There's a possibility that primary node is not detected. This happens
+      in following situation.  node 0: primary, node 1: standby. Node 0 goes
+      down. Health checking detects the fact but local status is not updated
+      yet. Primary node finding (find_primary_node) runs. Node 0's status is
+      yet healthy. Because find_primary_node fails to connect to node 0, it
+      immediately returns -1 and fails to find that fact that node 1 is now
+      primary.
 
-         - Fix log_per_node_statement so that it prints statements in the
-               extended query protocol. This used to work but was broken in 3.0
-               (Kitagawa)
+      Fix is just continuing to look for primary node when fails to connect
+      to a node.
 
-         * Enhancements
+      Per [pgpool-general: 2409].
 
-         - Add currval() and lastval() to black_function_list of sample
-               configuration files. If they are load balanced, currval() or
-               lastval() may be called before the result of nextval() or setval()
-               is propagated to slaves(Tatsuo)
+    - Fix jdbc DML fails when operated in raw mode and auto commit is off.
+      (Tatsuo Ishii)
 
-3.0.3 (umiyameboshi) 2011/02/23
+      This is reported in bug #92.
 
-         * Version 3.0.3
+    - Avoid to send queries to unrelated nodes in streaming replication mode.
+      (Tatsuo Ishii)
 
-         This version fixes various bugs since 3.0.1. Please note that
-         3.0.2 was canceled due to a packaging problem.
+      Pgpool-II sends certain queries, such as BEGIN, END and SET commands to
+      all of DB nodes. However in streaming replication mode, only primary
+      node and at most one standby node are only concerned (if primacy node
+      is selected as the load balance node, only 1 node is concerned).
 
-         * Incompatible changes
+      See [pgpool-hackers: 464] for more details.
 
-         - Now installing C function "pgpool_walrecrunning()" is recommended
-               if you plan to use streaming replication mode.
-               This is necessary for better use of online recovery in the mode.
-               Also new variable "%P" can be used in the online recovery script.
-               If you do not install the function, these functionalities cannot be used(Tatsuo).
+    - Fix possible buffer overrun problem and memory leak. (Tatsuo Ishii)
 
-         - In raw mode if there's only one DB node and if a problem arises
-               with the DB node, it will be brought to down status. However if
-               the DB node goes into good condition again, you can use the DB
-               node without restarting pgpool. This change has been included in
-               3.0, but did not work(Tatsuo, Kitagawa)
+      Per Coverity 1111465 and 1111482.
 
-         * Bug fixes
+    - Fix freeing NULL. (Tatsuo Ishii)
 
-         - Fix non portable code in password authentication.
-               Bug report from a FreeBSD user(Tatsuo)
+      Per Coverity 1111384.
 
-         - Fix bug that insert_lock locks all rows in user table
-               (Tatsuo, Kitagawa)
+    - Fix memory leak. (Tatsuo Ishii)
 
-         - Fix bug with password authentication. If user name is 32 bytes
-               long, pgpool child segfaults.(Tatsuo)
+      Per Coverity 1111446.
 
-         - Fix bug with md5 authentication. If raw mode or number of
-               backend is 1, pgpool child segfaults. Patch contributed by
-               Rob Shepherd(Tatsuo)
+    - Fix a segmentation fault in parallel mode with system_db_hostname is
+      empty (Yugo Nagata)
 
-         - Fix long standing bug with timestamp rewriting against array
-               and complex types. Patch contributed by Akio Ishida(Tatsuo)
+    - Fix to output debug messages in processing pgpool.conf with -d option
+      (Yugo Nagata)
 
-         - Fix bug that debug_level directive doesn't work. Patch
-               contributed by Gilles Darold(Tatsuo)
+      Previously, some debug messages in pool_get_config() ware not output
+      even when -d option was used.
 
-         - Fix possible crash of pgpool child while doing failover(Kitagawa)
+    - Fix JDBC exception of prepared statement including now() in
+      replication mode (Yugo Nagata)
 
-         - Fix white/black_function_list so that it works correctly when user
-               calls function with schema name(Tatsuo)
+      With JDBC, when a prepared statement is executed more than
+      PrepareThreshold times, the statement is named and Describe message
+      is sent after Parse. With named statement, pgpool rewrite now() to
+      parameter in replication mode. Hence, rewritten query has additonal
+      parameter than original. In this case, ParameterDescription message
+      sent to frontend (response of Describe) should include OIDs of the
+      same number os original query's parameters. Otherwize, JDBC throws
+      ArrayIndexoutOfBoundsException.
 
-         - Fix bug that DROP DATABASE fails by connection cache(Kitagawa)
+      This is reported in [pgpool-general-jp: 1192].
 
-         - Fix bug that failover fails in raw mode(Kitagawa)
+    - Fix backend error of prepared statement about table which has column whoes
+      default value is now() in replication mode (Yugo Nagata)
 
-         - Fix possible termination of pgpool child when both simple query
-               protocol and extended query protocol are used in one session
-               (Kitagawa)
+      When pgpool parses a named prepared statement with default now(),
+      timestamps are replaced to additional parameters. So, Bind message also
+      should inclued additional parameter format codes. However, when the
+      number of original parameter was one, pgpool didn't handle this. This
+      caused a error like "incorrect binary data format in bind parameter 2".
 
-         - Fix possible hang up when an error occurs while using extended
-               query protocol(Kitagawa)
+    - doc: Add description about parallel mode doesn't support PREPARE (Yugo Nagata)
 
-         - Fix pgpool-regclass() so that it doesn't use PG_TRY/CATCH.
-               It appeared that using PG_TRY/CATCH is not safe, sometimes backend
-               dies with PANIC:  ERRORDATA_STACK_SIZE exceeded.(Tatsuo)
+      Per bug #93
 
-         - Fix bug that select query isn't sent to master node when it meets
-               the following conditions(Kitagawa)
-               - in MASTER/SLAVE mode
-               - use extended query protocol
-               - started transaction explicitly
-               - after write queries
+===============================================================================
 
-         - Fix bug with load_balance that JDBC driver sends BEGIN to master node
-               many times(Kitagawa)
+                        3.0.14 (umiyameboshi) 2013/12/06
 
-         - Fix pool_status so that failback_command and fail_over_on_backend_error
-               show correct values(Kitagawa)
+* Version 3.0.14
 
-         - Remove parameters from pool_status: recovery_password,
-               system_db_password(Kitagawa)
+      This is a bugfix release against pgpool-II 3.0.13.
 
-         - Fix online recovery problem in the streaming replication
-               mode(Tatsuo). Consider following scenario. Suppose node 0 is
-               the initial primary server and 1 is the initial standby
-               server.
+    __________________________________________________________________
 
-               1) Node 0 going down and node 1 promotes to new primary.
-               2) Recover node 0 as new standby.
-               3) pgpool-II assumes that node 0 is the new primary.
+* Bug fixes
 
-               This problem happens because pgpool-II regarded unconditionally
-               the youngest node to be the primary. pgpool-II 3.0.3 now checks
-               each node by using pgpool_walrecrunning() to see if it is a
-               actually primary or not and is able to avoid the problem and
-               regards node as standby correctly. Also you can use new
-               variable "%P" to be used in the recovery script.  If you do
-               not install the function, the above problem is not resolved.
+    - Fix incorrect time stamp rewriting in replication mode for certain time
+      zones. (Tatsuo Ishii)
 
-         - Fix backend complaining "unexpected EOF on client connection"
-        while doing failover in streaming replication mode(Tatsuo)
+      Time stamp rewriting calls "SELECT now()" to get current time.
+      Unfortunately the buffer for the current time is too small for certain
+      time zones such as "02:30". Note that non-30-minutes-time-zone such as
+      "0900" does not reveal the problem. This explains why we haven't the bug
+      report until today.
 
-         - Fix pgpool crashes when all backends go down(Tatsuo)
+      Bug reported in [pgpool-general: 2113] and fix provided by Sean Hogan.
+      http://www.sraoss.jp/pipermail/pgpool-general/2013-September/002142.html
 
-         - Fix replication delay checking so that it does not keep persistent
-               connection to backends. Because the persistent connection may
-               become bogus if a node down and then wake up between replication
-               delay checking period(Tatsuo)
+    - Makefile: Replace pg_config by $(PG_CONFIG) in Makefiles so it can be
+      overridden at build time when compiling for different PG major versions.
+      (Tatsuo Ishii)
 
-         - Rewrite and review english document(Marc Cousin, Gleu)
+      Patch contributed by Christoph Berg ([pgpool-general: 2127]).
+      http://www.sraoss.jp/pipermail/pgpool-general/2013-September/002156.html
 
-         * Enhancements
+    - configure: Remove -lcompat because it confuses FreeBSD per bug#15.
+      (Tatsuo Ishii)
+      http://www.pgpool.net/mantisbt/view.php?id=15
 
-         - Emit log if particular backend is down status while reading
-               the status file(Tatsuo)
+    - Fix segfault when pgpool.conf does not set log_standby_delay.
+      (Tatsuo Ishii)
 
-         - Emit error message if an error occurred by the query that
-               pgpool executed(Tatsuo)
+      This is caused by wrong initialization for log_standby_delay in
+      pool_config.l.
+      Per bug#74. http://www.pgpool.net/mantisbt/view.php?id=74
 
-         - Add sql directories main Makefile(Tatsuo)
+    - doc: Modify descriptions about restrictions of parallel mode
+      Muliple rows INSERT using VALUES are not supported in parallel mode.
+      (Yugo Nagata)
 
-3.0.1 (umiyameboshi) 2010/10/19
+    - Avoid calling find_primary_node_repeatedly() when standby node goes
+      down. (Tatsuo Ishii)
 
-         * Version 3.0.1
+      This will reduce the time to failover. Per bug #75, patch modified by
+      Tatsuo Ishii. http://www.pgpool.net/mantisbt/view.php?id=75
 
-         This version fixes various bug in 3.0.
+    - Fix error message in read_password_packet(). (Tatsuo Ishii)
 
-         * Bug fixes
+    - Fix memory leak when do_query() fails in timestamp rewriting.
+      (Tatsuo Ishii)
 
-         - Fix bug with md5 auth. If there's more than 1 servers to be
-               authenticated, it segfaults(Tatsuo)
+      For this purpose free_select_result() is changed to accept NULL argument.
+      Per Coverity report "1111454, 1111455 Resource leak".
 
-         - Fix bug that a child process crashes when clients execute a query
-               contains syntax error in extended query protocol(Kitagawa)
+    - Fix target node selection logic when "DEALLOCATE portal|statement".
+      (Tatsuo Ishii)
 
-         - Fix bug with handling of portal information, it terminates
-               a child process(Kitagawa)
+      When "DEALLOCATE portal|statement" is used and last prepared statement or
+      portal was not found, target node selection map is not set. Probably this
+      is not actually harmful because prepared statement or portal was not found
+      is an error case. The bug was there since day 0.
 
-         - Fix hungup when a query sent to one node caused an error
-               in extended query protocol(Kitagawa)
+      Per Coverity report "1111491 Structurally dead code".
 
-         - Fix typo in English doc. Patch contributed by Asaf Ohaion(Tatsuo)
+    - Fix range check bug of MAX_NUM_BACKENDS in corner case. (Tatsuo Ishii)
 
-3.0 (umiyameboshi) 2010/09/10
+      MAX_NUM_BACKENDS is the allowed max number of DB nodes (128, at this
+      point). In reality, probably no one ever tried more than 128 DB nodes
+      and that's the reason why nobody noticed.
 
-         * Version 3.0
+      Per Coverity report "1111429, 1111430 and 1111431 Out-of-bounds write".
 
-         This is the first version of pgpool-II 3.0 series.
-         That is, a "major version up" from 2.2 or 2.3 series.
+    - Fix that the script forgets to allow public access to pgpool_catalog.
+      (Tatsuo Ishii)
 
-         The biggest news is, this version adapts to PostgreSQL 9.0's new
-         feature: Streaming Replication/Hot Standby. Streaming
-         replication can be used as a sub mode of master slave
-         mode. Master slave mode itself heavily enhanced:
+      The bug prevents inserting data into user tables if pgpool_catalog is
+      created in native replication mode.  The bug was there from day 1. I
+      wonder why nobody noticed until today.
+      Per [pgpool-general-jp: 1229].
+      http://www.sraoss.jp/pipermail/pgpool-general-jp/2013-November/001228.html
 
-         - SELECTs in explicit transactions can be load balanced
+    - Fix uninitialized variable in error case in pool_do_auth().
+      (Tatsuo Ishii)
 
-         - In extended protocol, PARSE/BIND/DESCRIBE messages are sent to
-        the node which execute EXECUTE message, not all node. This
-        will reduce lock contentions.
+      If there's no valid backend, pgpool will return garbage pid to frontend in
+      auth phase. Actually because no backend is available, frontend will be
+      disconnected later on. So this is not harmless.
+      Per Coverity report "1127331 Uninitialized scalar variable".
 
-         - Auto start of transaction happens only when it needed.
+    - Fix to add node id range check when issue an error message using node
+      id. (Tatsuo Ishii)
+      Per Coverity report #1111433 "Out-of-bounds read".
 
-         - Temporary tables can be used safely.
+    - Fix buffer overrun bug and resource leak bug of parse_copy_data().
+      (Tatsuo Ishii)
+      Per Coverity report 1111427 "Out-of-bounds write" and 1111453 "Resource
+      leak".
 
-         - SELECT which calls functions possibly write to database
-        executes on master(primary)
-         
-         Also many new features are added and major refactoring has been
-         made to the internal structure of pgpoo-II. For example, in
-         replication mode, SELECTs calling functions possibly write to
-         database will not allow to load balance.
+    - Fix possible segfault in CopyDataRaws(). (Tatsuo Ishii)
+      Coverity pointed out that if pool_get_id() returns an error, VALID_BACKEND
+      will access out of array.
+      Per Coverity report 1111413 "Memory - illegal accesses".
 
-         * New features
+    - Fix strftime() usage in pool_pools(). (Tatsuo Ishii)
 
-         - Online recovery can be used with master/slave/streaming
-        replication mode(Tatsuo)
+      The buffer is not large enough as expected by the second parameter. This
+      is not harmless because the format string will not produce longer result
+      string than the buffer.
+      Per Coverity report 1111426 "Out-of-bounds access".
 
-         - New directive "delay_threshold" is added to monitor
-        replication delay in master/slave/streaming replication
-        mode. If replication delay is too much, SELECTs are not load
-        balanced(Tatsuo)
+    - Fix resource leak in make_persistent_db_connection. (Tatsio Ishii)
 
-         - show pool_status shows replication delay in
-        master/slave/streaming replication mode(Tatsuo)
+      For this pupose, new static function free_persisten_db_connection_memory
+      is added.
+      Per Coverity report #1111468.
 
-         - New directive "log_standby_delay" is added to control logging of
-        replication delay in master/slave/streaming replication
-        mode(Tatsuo)
+===============================================================================
 
-         - When insert_lock is enabled and the table includes SERIAL data
-        type, issue row lock on the sequence table. Before we issues
-        table lock. Problem is, the table lock conflicts with auto
-        vacuum and sometimes caused excessive lock waiting(Tatsuo)
+                        3.0.13 (umiyameboshi) 2013/09/06
 
-         - Add support for more "SHOW" commands: pool_nodes,
-               pool_processes, pool_pools, and pool_version(Guillaume Lelarge)
+* Version 3.0.13
 
-         - Backend process id and whether frontend connects to this
-        connection pool or not are added to pcp_proc_info's
-        output(Tatsuo)
+      This is a bugfix release against pgpool-II 3.0.12.
 
-         - "Gracefuly detach" option is added to pcp_detatch_node. With
-        this option, pcp_detatch_node waits until all frontends
-        disconnected(Tatsuo)
+    __________________________________________________________________
 
-      - New directive "white_function_list" and "black_function_list"
-        are added to register functions those do not or do write to
-        database(Tatsuo)
+* Bug fixes
 
-      - In master/slave mode, SELECTs to system catalogs executes only
-        on master/primary(Tatsuo)
+    - Fix a mistake in ssh command of doc/basebackup.sh (Tatsuo Ishii)
 
-      - In master/slave mode, SELECTs to temporary table executes only
-        on master/primary(Tatsuo)
+    - Fix a bug in parsing prepared statements with transaction handling in
+      replication mode (Tatsuo Ishii)
 
-         - In master/slave mode, write queries outside of explicit
-        transactions no longer trigger to start internal
-        transaction(Tatsuo)
+      Parse() automatically starts a transaction for non SELECT query to keep
+      consistency among nodes in replication mode. But this wasn't closed. If
+      wrong query comes in, the transaction goes into an abort state but pgpool
+      does not close the transaction. Thus next query causes error because the
+      transaction is still in abort status.
 
-         - In master/slave mode, SELECTs inside explicit transactions are
-        load balanced(Tatsuo, Kitagawa)
+      This problem was reported in [pgpool-general: 1877] by Sean Hogan.
 
-         - In master/slave mode, commands are no longer sent to all DB
-        nodes. This will prevent unnecessary locking(Tatsuo, Kitagawa)
+      [pgpool-general: 1877] current transaction is aborted, commands ignored
+      http://www.sraoss.jp/pipermail/pgpool-general/2013-July/001905.html
 
-         - New command option adds to ignore the status file when
-        starting up(Tatsuo)
+    - Fix typos of the japanese document (Yugo Nagata)
 
-         - Supports PostgreSQL 9.0's new VACUUM syntax(Tatsuo)
+===============================================================================
 
-         - New directive "failover_if_affected_tuples_mismatch" controls
-        the behavior when number of result rows of
-        INSERT/UPDATE/DELETE are differ(Tatsuo)
+                        3.0.12 (umiyameboshi) 2013/07/10
 
-         - When number of result rows of INSERT/UPDATE/DELETE are
-        differ, each number are logged(Tatsuo)
+* Version 3.0.12
 
-         - md5 authentication is supported in replication mode and
-        master/slave mode(Tatsuo)
+      This is a bugfix release against pgpool-II 3.0.11.
 
-         - Allow to force to move to online recovery second stage even
-        there are connecting frontends(Tatsuo)
+    __________________________________________________________________
 
-         - If there's only one DB node and it triggers failover,
-        pgpool-II will automatically connects if the DB node coming
-        up(Tatsuo)
+* Bug fixes
 
-         - Pcp commands supports long options(Guillaume Lelarge)
+    - Add mention about "-D" option to the man page. (Tatsuo Ishii)
 
-         - New directive "debug_level" added to control the debug message
-        logging(Tatsuo)
+    - Consider timeout waiting for compeletion of failback request in on line
+      recovery (Tatsuo Ishii)
 
-         - Allow to use various boolean representations as PostgreSQL in
-        pgpool.conf(Kitagawa)
+      This will prevent the situation that recovery operation continues forever
+      and we cannot even shutdown pgpool-II main process. This could happen
+      especially while executing follow master command.
 
-         - New C language function pgpool_switch_xlog for online recovery
-           added(Kitagawa)
+    - Fix do_query() to not hang when PostgreSQL returns an error
+      (Tatsuo Ishii)
 
-         - New C language function pgpool_regclass added to avoid a trouble
-           about handling of duplicate table names in different schema(Tatsuo)
+      The typical symptom is "I see SELECT is keep on running according to
+      pg_stat_activity". To fix this pgpool-II just exits the process and
+      kill the existig connection.  This is not gentle but at this point I
+      believe this is the best solution.
 
-         * Bug fixes
+    - Fix bug with do_query which causes hung in extended protocol
+      (Tatsuo Ishii)
 
-         - Do not rewrite statement which accesses columns having now()
-               etc. as the default value but the data type are not timestamp
-               etc.  Otherwise we have an error in DMLs(Tatsuo)
+      This problem could occur when insert lock is enabled and
+      pgpool_catalog.insert_lock exists, See [pgpool-general: 1684] for more
+      details.
 
-         - Fix timestamp rewriting not to omit schema qualification(Tatsuo)
+      [pgpool-general: 1684] insert_lock hangs
+      http://www.sraoss.jp/pipermail/pgpool-general/2013-May/001711.html
 
-         - Fix bug with timeout handling in pcp commands(Tatsuo)
+    - Fix unnecessary degeneration caused by error on commit (Tatsuo Ishii)
 
-         - Fix SSL hang when large amount of data transfered(Tatsuo)
+      In master slave mode, if master gets an error at commit, while other
+      slaves are normal at commit, we don't need to degenrate any backend
+      because it is likely that the "kind mismatch error" was caused by a
+      deferred trigger.
 
-         - Fix failover when there's only one DB node(Tatsuo)
+    - Fix to register pgpool_regclass in pg_catalog schema (Tatsuo Ishii)
 
-         - Fix bug with postmaster start check in online recovery.
-               Before it continued infinitely to try to connect to postmaster
-               if the first attempt failed(Tatsuo)
+      This is necessary to deal with clients which restricts schema search path
+      to pg_catalog only. Postgres_fdw is such a client.
 
-2.3.3 (tomiteboshi) 2010/04/23
+    - Fix a potential crash in pg_md5 command (Muhammad Usama)
+
+    - Fix a segmentation fault of a child process that occurs when a startup
+      packet has no PostgreSQL user information (Yugo Nagata)
+
+      You can reproduce it by
+
+          $ psql -p 9999 -U ''
+
+      If enable_pool_hba is on, a child process terminates by segmentation
+      fault. Otherwise if enable_pool_hba is off, the error message is
+
+          ERROR: pool_discard_cp: cannot get connection pool for user (null)
+                 database (null)
+
+      In both cases, psql terminates with no message on frontend.
+
+      In the fixed version, if PostgreSQL user is not specified in startup packet,
+      the message as following is output to both log and frontend. This is
+      the same behavior as PostgreSQL.
+
+          FATAL: no PostgreSQL user name specified in startup packet
+
+    - Move ssl_ca_cert and ssl_ca_cert_dir descriptions to the SSL section
+      (Yugo Nagata)
+
+    - Add ssl_ca_cert and ssl_ca_cert_dir descriptions to the japanese document
+      (Yugo Nagata)
+
+    - Fix to verify the backend node number in pcp_recovery_node (Yugo Nagata)
+
+      When an invalid number is used, null value is passed as an arguments
+      of recovery script, and this causes a malfunction. In especially,
+      rsync may delete unrelated files in basebackup scripts.
+
+===============================================================================
+
+                        3.0.11 (umiyameboshi) 2013/04/26
+
+* Version 3.0.11
+
+      This is a bugfix release against pgpool-II 3.0.10.
+
+    __________________________________________________________________
+
+* Buf fixes
+
+    - Fix to show pool_passwd in "SHOW pool_status". (Yugo Nagata)
+
+    - Fix long standing bug with timestamp rewriting code for processing
+      extended protocol. (Tatsuo Ishii)
+
+      Parse() allocate memory using palloc() while rewriting the parse
+      message.  Problem is, the rewritten message was kept in the data which
+      is managed by pool_create_sent_message() etc. The function assumes
+      that all the data is in session context memory. However, palloc()
+      allocates memory in query context of course, and gets freeed later on
+      when the query context disappears. And the function tries to free the
+      memory as well, which causes various problems, including segfault and
+      double free. To fix this, memory to store rewritten message is
+      allocated using session context. The bug was there since pgpool-II 3.0
+      was born.
+
+      Problem analysis and patch contributed by Naoya Anzai.
+
+      [pgpoolgenera-jp: 1146]. (in Japanese)
+      http://www.pgpool.net/pipermail/pgpool-general-jp/2013-March/001145.html
+
+    - Fix bug with md5 auth long user name handling. (Tatsuo Ishii)
+
+      If user name is longer than 32 bytes, md5 authentication doesn't work.
+      Problem reported in [pgpool-general: 1526] by Thomas Martin.
+
+      [pgpool-general: 1526]
+      [pgPool-II 3.2.3] MD5 authentication and username longer than 32 characters.
+      http://www.pgpool.net/pipermail/pgpool-general/2013-March/001551.html
+
+    - Fix to calculate replication delay only if standby server is behind from
+      the primay server. (Yugo Nagata)
+
+      When the primary server is behind from standby server, negative value of
+      delay is calculated and the value is assigned to unsigned variable. It
+      causes a log message informing negative replication delay. And what is
+      worse, it also causes SELECT queries to be sent to the primary in load
+      balance even though there are no replication delay in fact.
+
+      The problem is reported and analyzed by Saitoh Hidenori in
+      [pgpool-genera-jp: 1145].
+
+      [pgpool-general-jp: 1145] (in Japanese)
+      http://www.pgpool.net/pipermail/pgpool-general-jp/2013-March/001144.html
+
+    - pgpool-recovery adopts PostgreSQL 9.3. (Tatsuo Ishii)
+
+      Patch contributed by Asif Rehman. Slight editing by Tatsuo Ishii.
+
+      [pgpool-hackers: 180]
+      compile error in ppool-recovery
+      http://www.pgpool.net/pipermail/pgpool-hackers/2013-April/000179.html
+
+    - Fix pool_has_pgpool_regclass() to check execute privilege of
+      pgpool_regclass(). (Tatsuo Ishii)
+
+      Even though pgpool_regclass() exists, if pgpool cannot execute the
+      function, the connection to backend hangs. You can reproduce the problem
+      by just dropping  the execute privilege from pgpool_regclass and do some
+      insert in native replication mode.
+
+      The problem is reported in bugtrack #53.
+
+      #53 pgpool_regclas hangs all connections
+      Date:     2013-04-04 13:35
+      Reporter: tmandke
+      http://www.pgpool.net/mantisbt/view.php?id=53
+
+    - Fix error message mistakes in detect_postmaster_down_error(). (Tatsuo Ishii)
+
+      For example, "LOG: detect_stop_postmaster_error: detect_error error" is
+      fixed to "LOG: detect_postmaster_down_error: detect_error error", and so on.
+
+===============================================================================
+
+                        3.0.10 (umiyameboshi) 2013/02/08
+
+* Version 3.0.10
+
+      This is a bugfix release against pgpool-II 3.0.9.
+
+    __________________________________________________________________
+
+* General
+
+    - Fix race condition when using md5 authentication. (Tatsuo Ishii)
+
+      The file descriptor to pool_passwd is opened in pgpool main and pgpool
+      child inherits it. When concurrent connections try to authenticate md5
+      method, they call pool_get_passwd and seek the fd and cause random md5
+      auth failure because underlying fd is shared. Fix is, let individual
+      pgpool child open the file by calling pool_reopen_passwd_file.
+
+      Problem reported and analyzed by Jason Slagle in pgpool-general:1141.
+
+      [pgpool-general: 1141] Possible race condition in pool_get_passwd
+      From: Jason Slagle
+      Date: Sun, 28 Oct 2012 01:12:52 -0400
+      http://www.sraoss.jp/pipermail/pgpool-general/2012-October/001160.html
+
+    - Fix pool_send_severity_message() not to use uninitialized memory.
+      (Tatsuo Ishii)
+
+      It cause a segmentaion fault.
+      Reported in Bug #33's attached valgrind output by dudee.
+
+      #33 pgpool-II 3.2.1 segfault
+      Reporter: dudee
+      Date: 2012-10-30 19:16
+      http://www.pgpool.net/mantisbt/view.php?id=33
+
+    - Fix reaper() not to exit wait3() loop when catches pcp or worker child
+      exit event. (Tatsuo Ishii)
+
+      Otherwise reaper() mistakenly ignore some process exit event and make a
+      risk of creating zombie process and forgetting to create new process.
+
+      Problem reported and fix suggested by Goto in [pgpool-general-jp: 1123].
+      http://www.sraoss.jp/pipermail/pgpool-general-jp/2012-November/001122.html
+      (in Japanese)
+
+    - Fix pool_search_relcache() to use MASTER or MASTER_NODE_ID macro, rather
+      than REAL_MASTER_NODE_ID. (Tatsuo Ishii)
+
+      In case node 0 fail back in streaming replication mode, pgpool does not
+      restart child process.  So REAL_MASTER_NODE_ID looks for node 0 con info,
+      which is not present until new connection to backend made. Thus referring
+      to node con info results in segfault. MASTER or MASTER_NODE_ID are safe in
+      this situation because they look at cached former master node id.
+
+    - Fix long standing bug "portal not found" error when replication delay
+      is too much in streaming replication mode. (Tatsuo Ishii)
+
+      The bug had been there since the delay threshold was introduced.
+
+      We changed destination DB node if delay threshold exceeds in bind,
+      describe and execute. However, if parse sends to different node, bind,
+      describe or execute will fail because no parsed statement or portal
+      exists.  Solution is, not to send to different parse node even
+      if delay threshold is too much.
+
+    - Fix pg_md5 to output "\n" after user inputs password. (Yugo Nagata)
+
+    - Fix child_exit() to not call send_frontend_exits() if there's no
+      connection pool. (Tatsuo Ishii)
+
+      Otherwise, it segfaults because send_frontend_exits() referes to objects
+      pointed to by pool_connection_pool. Per bug track #44 by tuomas.
+
+      #44 pgpool went haywire after slave shutdown triggering master failover
+      Reporter: tuomas
+      Date: 2012-12-11 00:33
+      http://www.pgpool.net/mantisbt/view.php?id=44
+
+    - Fix read_startup_packet() to reset alarm and free StartupPacket when
+      pool_read() returns 0 which means incorrect packet length. (Nozomi Anzai)
+
+      Previously, authentication timeout occurs when connected by a program
+      monitoring the pgpool port.It is reported in bug track #35 by tuomas.
+
+      #35 Authentication is timeout
+      Reporter: tuomas
+      Date: 2012-11-20 11:54
+      http://www.pgpool.net/mantisbt/view.php?id=35
+
+    - Fix long standing bug with pool_open(). (Tatsuo Ishii)
+
+      It initializes wrong buffer pointer. Actually this is harmless because the
+      pointer is initialized by prior memset() call, though.
+
+    - Add a description about "-f" to help message. (Tatsuo Ishii)
+
+    - Modify documents to correct information of whether a certain parameter
+      change requires restart. (Yugo Nagata)
+
+    - Add pool_passwd option to pgpool.conf.sample*, and documents. (Yugo Nagata)
+
+===============================================================================
+
+                        3.0.9 (umiyameboshi) 2012/10/12
+
+* Version 3.0.9
+
+      This is a bugfix release against pgpool-II 3.0.8.
+
+    __________________________________________________________________
+
+* General
+
+    - Fix read_startup_packet. (Tatsuo Ishii)
+
+      If packet length is lower than 0, it should
+      have returned immediately. Otherwise it would cause memory allocation
+      error later on.  per pgpool-general:886.
+      Also add canceling alarm.
+
+    - Add NOTICE message handling to s_do_auth. (Tatsuo Ishii)
+
+      Without this, health check responses false alarm and causes failover.
+      per bug track:
+      http://www.pgpool.net/mantisbt/view.php?id=25
+      Also allow to receive ready for query packet *not* right after backend
+      keydata.  I'm not sure if this could happen in the real world but the
+      protocol seems to allow this.
+
+    - Remove unnecessary/confusing debug log from s_do_auth.(Tatsuo Ishii)
+
+    - Fix inifinit loop in SSL mode. When there's pending data in SSL layer
+      of frontend, pool_process_query() checks pending data in backend.
+      (Tatsuo Ishii)
+
+      If there's non, it loops again and checks frontend/backend receive buffer
+      by using is_cache_empty(). Unfortunately it first checks pending data
+      in SSL layer of frontend, thus goes to backend data and checks again
+      (infinite loop).
+      The solution is, if there's pending data in SSL layer of frontend and
+      query is not in progress, call ProcessFrontendResponse() to process new
+      request from frontend.
+
+    - Fix is_system_catalog to use pgpool_regclass if available.
+      (Tatsuo Ishii)
+
+    - Fix memory leak in pool_get_insert_table_name(). (Tatsuo Ishii)
+
+      If session context's memory contex is used for nodeToString(), memory is
+      not freed until session ends.
+
+    - Fix possible memory leak in nodeToString(). (Tatsuo Ishii)
+
+      Since the memory context could be session context, memory used for
+      String object may be considerable if user session continues for hours or
+      days.
+      See bug track #24 for more details.
+
+    - Fix long standing problem with do_query(). (Tatsuo Ishii)
+
+      When 1) extended protocol used and 2)unnamed portal is used and 3) no
+      explicit transaction is used, user's unnamed portal is removed by Sync
+      message.
+      This is because Sync message closes transaction and unnamed portal is
+      removed. This leads to "portal "" does not exist" error.
+
+      Fix is, use "Flush" message instead of Sync. Main difference between
+      using Sync and Flush is, Flush does not return Ready for Query message.
+      So do_query() does not return until all expected responses are returned.
+      It seems the order of messages returned from backend is random, and
+      do_query () manages it by using state bits.
+
+===============================================================================
+
+                        3.0.8 (umiyameboshi) 2012/08/06
+
+* Version 3.0.8
+
+      This is a bugfix release against pgpool-II 3.0.7.
+
+    __________________________________________________________________
+
+* General
+
+      - Adopt PostgreSQL 9.2. (Tatsuo Ishii)
+
+    __________________________________________________________________
+
+* Bug fixes
+
+      - Fix load balance in Solaris. (Tatsuo Ishii)
+
+        Problem is, random() in using random() in Solaris results in strange
+        load balancing calculation.
+        Use srand()/rand() instead although they produce lesser quality random
+        Problem reported at [pgpool-general: 396].
+
+          [pgpool-general: 396] strange load balancing issue in Solaris
+          http://www.pgpool.net/pipermail/pgpool-general/2012-April/000397.html
+
+      - Fix segfault of pcp_systemdb_info not in parallel mode. (Nozomi Anzai)
+
+      - Fix "unnamed prepared statment does not exist" error. (Tatsuo Ishii)
+
+        This is caused by pgpool's internal query, which breaks client's
+        unnamed statements. To fix this, if extended query is used, named
+        statement/portal for internal are used for internal query.
+
+      - Fix is_system_catalog(). Its relcach was accidently defined as
+        "session local". (Tatsuo Ishii)
+
+      - Improve reading and writing pid_file. (Tatsuo Ishii)
+
+      - Fix pool_process_query() bug reported in [pgpool-general: 672].
+        (Tatsuo Ishii)
+
+        This is caused by the function waits for primary node which does not
+        have pending data, while standbys have pending data.
+
+          [pgpool-general: 672] Transaction never finishes
+          http://www.pgpool.net/pipermail/pgpool-general/2012-June/000676.html
+
+      - Fix wait_for_query_response() not to send param status to frontend if
+        frontend is NULL. (Tatsuo Ishii)
+
+        This could happen while processing reset_query_list and occur crash.
+
+===============================================================================
+
+                        3.0.7 (umiyameboshi) 2012/04/23
+
+* Version 3.0.7
+
+      This is a bugfix release against pgpool-II 3.0.6.
+
+    __________________________________________________________________
+
+* Bug fixes
+
+      - Add m4 files. This should prevent compiling problem on older
+        OS's. (Tatsuo Ishii)
+
+      - Fix bug that the process exits before unlocking semaphore by a
+        signal interrupt. (Tatsuo Ishii)
+
+      - Fix a memory leak in case of reset_query. (Tatsuo Ishii)
+
+      - Fix SimpleQuery() so that it restores parser memory context when:
+         1) Builtin show commands are used
+         2) Parallel query mode
+         3) Query cache is used
+       (Tatsuo Ishii)
+
+      - Fix pool_ssl_read() to deal with large data reading. (Tatsuo Ishii)
+
+        Original complain is here:
+        http://www.pgpool.net/pipermail/pgpool-general/2012-March/000299.html
+
+      - Fix hangup when PREPARE statement causes error. (Toshihiro Kitagawa)
+
+        This issue was reported by Tomonari Katsumata:
+        Subject: [pgpool-general: 121] question of pgpool's behavior
+
+===============================================================================
+
+                        3.0.6 (umiyameboshi) 2012/01/31
+
+* Version 3.0.6
+
+      This version fixes various bugs since 3.0.5.
+
+      __________________________________________________________________
+
+* Bug fixes
+
+      - Fix infinite loop reported in this thread (Tatsuo Ishii):
+        http://www.pgpool.net/pipermail/pgpool-general/2011-December/000099.html
+
+        It was not considered the case that, when received buffer in primary was
+        empty but the one in a standby was not, the standby spontaneously sent
+        packet to pgpool.
+        This could happen when, for example, reloading postgresql.conf.
+        The fix is that such buffer in standby is discarded.
+
+===============================================================================
+
+                        3.0.5 (umiyameboshi) 2011/10/31
+
+* Version 3.0.5
+
+      This version fixes various bugs since 3.0.4.
+
+      __________________________________________________________________
+
+* Bug fixes
+
+      - Fix bug with the handling of empty queries. The empty queries
+        come to be handled the same as SELECT queries. This fix allows
+        load-balance after the empty query(Kitagawa)
+
+      - Fix insert_lock so that it works correctly even if the column
+        definition such as "DEFAULT nextval(('"x_seq"'::text)::regclass)"
+        (Kitagawa)
+
+      - Fix log message which is emitted when pgpool-II cannot parse the
+        query in the extended query protocol so that it shows the query
+        (Kitagawa)
+
+      - Fix description about backend_weight inpgpool-II manual. It can
+        be changed by reloading pgpool.conf(Tatsuo)
+
+      - Fix bug which does not update the node status when reattaching the
+        node in raw mode(Guillaume Lelarge)
+
+      - Fix bug that SELECTs which have subquery with FOR SHARE/UPDATE clause
+        are sent to slave/standby(Tatsuo)
+
+      - Fix bug which rewriting timestamp of default value fails in PREPARE
+        statements. This used to work but was broken in 3.0(Kitagawa)
+
+      - Fix crash of pgpool child when frontend connects if in raw mode,
+        enable_hba is off and more than 2 backends(Kitagawa)
+
+      - Fix some memory leaks(Kitagawa)
+
+      __________________________________________________________________
+
+* Enhancements
+
+      - Allow time stamp rewriting to work with arbitrary expression in
+        default value of a column. Before we detected anything including
+        now() then simply replaced it to now(). This will lead to wrong
+        rewriting of default value. for example, timezone('utc'::text, now()).
+        Note that, however, this only adopts to simple queries. Extended
+        protocols(for example Java, PHP PDO) or SQL "PREPARE" still remain
+        same(Tatsuo)
+
+      - Change error message "do_md5: read_password_packet failed" into debug
+        level(Kitagawa)
+
+===============================================================================
+
+                        3.0.4 (umiyameboshi) 2011/06/01
+
+* Version 3.0.4
+
+      This version fixes various bugs since 3.0.3.
+
+      __________________________________________________________________
+
+* Incompatible changes
+
+      - In streaming replication, if delay_threshold is 0 or health
+        checking is disabled, the delay checking is not performed.
+        This is the behaviour according to a description of the
+        pgpool-II manual. But, so far the delay checking was performed
+        even if health checking was disabled(Guillaume Lelarge)
+
+      __________________________________________________________________
+
+* Bug fixes
+
+      - Fix pgpool-regclass() to be compiled in PostgreSQL 8.0 or later.
+        7.4 still produces errors(Tatsuo)
+
+      - Fix possible hangup when using /*NO LOAD BALANCE*/ comment in
+        streaming replication(Kitagawa)
+
+      - Fix hangup when received Flush(H) message or CloseComplete(C)
+        message(Kitagawa)
+
+      - Fix possible hangup that happen for the receiving timing of
+        ReadyForQuery(Z) message after pgpool-II connects to backends(Kitagawa)
+
+      - Add description about parameters for recovery_1st_stage_command
+        and recovery_2nd_stage_command(Tatsuo)
+
+      - Increase size of the internal system catalog cache from 32 to 128.
+        This has the effect of reducing "unnamed prepared statement does
+        not exist" error(Tatsuo, Kitagawa)
+
+      - Fix bug with pcp_connect() which causes double free. Patch
+        contributed by Jehan-Guillaume (ioguix) de Rorthais(Tatsuo)
+
+      - Fix bug with start_recoery() which is apparently wrong usage of
+        PQfinish()(Tatsuo)
+
+      - Fix incorrect error message which is sent to the frontend when
+        client idle time reached client_idle_limit(Tatsuo)
+
+      - Fix "backend status" variable name correctly in pool_status.
+        Replace the space with a '_'(Guillaume Lelarge)
+
+      - Fix hangup when using md5 authentication method and running as
+        daemon. Patch contributed by Nicolas Thauvin(Tatsuo)
+
+      - Fix log_per_node_statement so that it prints statements in the
+        extended query protocol. This used to work but was broken in 3.0
+        (Kitagawa)
+
+      __________________________________________________________________
+
+* Enhancements
+
+      - Add currval() and lastval() to black_function_list of sample
+        configuration files. If they are load balanced, currval() or
+        lastval() may be called before the result of nextval() or setval()
+        is propagated to slaves(Tatsuo)
+
+===============================================================================
+
+                        3.0.3 (umiyameboshi) 2011/02/23
+
+* Version 3.0.3
+
+      This version fixes various bugs since 3.0.1. Please note that
+      3.0.2 was canceled due to a packaging problem.
+
+      __________________________________________________________________
+
+* Incompatible changes
+
+      - Now installing C function "pgpool_walrecrunning()" is recommended
+          if you plan to use streaming replication mode.
+          This is necessary for better use of online recovery in the mode.
+        Also new variable "%P" can be used in the online recovery script.
+        If you do not install the function, these functionalities cannot be
+        used(Tatsuo).
+
+      - In raw mode if there's only one DB node and if a problem arises
+        with the DB node, it will be brought to down status. However if
+        the DB node goes into good condition again, you can use the DB
+        node without restarting pgpool. This change has been included in
+        3.0, but did not work(Tatsuo, Kitagawa)
+
+      __________________________________________________________________
+
+* Bug fixes
+
+      - Fix non portable code in password authentication.
+        Bug report from a FreeBSD user(Tatsuo)
+
+      - Fix bug that insert_lock locks all rows in user table
+        (Tatsuo, Kitagawa)
+
+      - Fix bug with password authentication. If user name is 32 bytes
+        long, pgpool child segfaults.(Tatsuo)
+
+      - Fix bug with md5 authentication. If raw mode or number of
+        backend is 1, pgpool child segfaults. Patch contributed by
+        Rob Shepherd(Tatsuo)
+
+      - Fix long standing bug with timestamp rewriting against array
+        and complex types. Patch contributed by Akio Ishida(Tatsuo)
+
+      - Fix bug that debug_level directive doesn't work. Patch
+        contributed by Gilles Darold(Tatsuo)
+
+      - Fix possible crash of pgpool child while doing failover(Kitagawa)
+
+      - Fix white/black_function_list so that it works correctly when user
+        calls function with schema name(Tatsuo)
+
+      - Fix bug that DROP DATABASE fails by connection cache(Kitagawa)
+
+      - Fix bug that failover fails in raw mode(Kitagawa)
+
+      - Fix possible termination of pgpool child when both simple query
+        protocol and extended query protocol are used in one session
+        (Kitagawa)
+
+      - Fix possible hang up when an error occurs while using extended
+        query protocol(Kitagawa)
+
+      - Fix pgpool-regclass() so that it doesn't use PG_TRY/CATCH.
+        It appeared that using PG_TRY/CATCH is not safe, sometimes backend
+        dies with PANIC:  ERRORDATA_STACK_SIZE exceeded.(Tatsuo)
+
+      - Fix bug that select query isn't sent to master node when it meets
+        the following conditions(Kitagawa)
+        - in MASTER/SLAVE mode
+        - use extended query protocol
+        - started transaction explicitly
+        - after write queries
+
+      - Fix bug with load_balance that JDBC driver sends BEGIN to master node
+        many times(Kitagawa)
+
+      - Fix pool_status so that failback_command and fail_over_on_backend_error
+        show correct values(Kitagawa)
+
+      - Remove parameters from pool_status: recovery_password,
+        system_db_password(Kitagawa)
+
+      - Fix online recovery problem in the streaming replication
+        mode(Tatsuo). Consider following scenario. Suppose node 0 is
+        the initial primary server and 1 is the initial standby
+        server.
+
+        1) Node 0 going down and node 1 promotes to new primary.
+        2) Recover node 0 as new standby.
+        3) pgpool-II assumes that node 0 is the new primary.
+
+        This problem happens because pgpool-II regarded unconditionally
+        the youngest node to be the primary. pgpool-II 3.0.3 now checks
+        each node by using pgpool_walrecrunning() to see if it is a
+        actually primary or not and is able to avoid the problem and
+        regards node as standby correctly. Also you can use new
+        variable "%P" to be used in the recovery script.  If you do
+        not install the function, the above problem is not resolved.
+
+      - Fix backend complaining "unexpected EOF on client connection"
+        while doing failover in streaming replication mode(Tatsuo)
+
+      - Fix pgpool crashes when all backends go down(Tatsuo)
+
+      - Fix replication delay checking so that it does not keep persistent
+        connection to backends. Because the persistent connection may
+        become bogus if a node down and then wake up between replication
+        delay checking period(Tatsuo)
+
+      - Rewrite and review english document(Marc Cousin, Gleu)
+
+      __________________________________________________________________
+
+* Enhancements
+
+      - Emit log if particular backend is down status while reading
+        the status file(Tatsuo)
+
+      - Emit error message if an error occurred by the query that
+        pgpool executed(Tatsuo)
+
+      - Add sql directories main Makefile(Tatsuo)
+
+===============================================================================
+
+                        3.0.1 (umiyameboshi) 2010/10/19
+
+* Version 3.0.1
+
+      This version fixes various bug in 3.0.
+
+      __________________________________________________________________
+
+* Bug fixes
+
+      - Fix bug with md5 auth. If there's more than 1 servers to be
+        authenticated, it segfaults(Tatsuo)
+
+      - Fix bug that a child process crashes when clients execute a query
+        contains syntax error in extended query protocol(Kitagawa)
+
+      - Fix bug with handling of portal information, it terminates
+        a child process(Kitagawa)
+
+      - Fix hungup when a query sent to one node caused an error
+        in extended query protocol(Kitagawa)
+
+      - Fix typo in English doc. Patch contributed by Asaf Ohaion(Tatsuo)
+
+===============================================================================
+
+                        3.0 (umiyameboshi) 2010/09/10
+
+* Version 3.0
+
+      This is the first version of pgpool-II 3.0 series.
+      That is, a "major version up" from 2.2 or 2.3 series.
+
+      The biggest news is, this version adapts to PostgreSQL 9.0's new
+      feature: Streaming Replication/Hot Standby. Streaming
+      replication can be used as a sub mode of master slave
+      mode. Master slave mode itself heavily enhanced:
+
+      - SELECTs in explicit transactions can be load balanced
+
+      - In extended protocol, PARSE/BIND/DESCRIBE messages are sent to
+        the node which execute EXECUTE message, not all node. This
+        will reduce lock contentions.
+
+      - Auto start of transaction happens only when it needed.
+
+      - Temporary tables can be used safely.
+
+      - SELECT which calls functions possibly write to database
+        executes on master(primary)
+
+      Also many new features are added and major refactoring has been
+      made to the internal structure of pgpoo-II. For example, in
+      replication mode, SELECTs calling functions possibly write to
+      database will not allow to load balance.
+
+      __________________________________________________________________
+
+* New features
+
+      - Online recovery can be used with master/slave/streaming
+        replication mode(Tatsuo)
+
+      - New directive "delay_threshold" is added to monitor
+        replication delay in master/slave/streaming replication
+        mode. If replication delay is too much, SELECTs are not load
+        balanced(Tatsuo)
+
+      - show pool_status shows replication delay in
+        master/slave/streaming replication mode(Tatsuo)
+
+      - New directive "log_standby_delay" is added to control logging of
+        replication delay in master/slave/streaming replication
+        mode(Tatsuo)
+
+      - When insert_lock is enabled and the table includes SERIAL data
+        type, issue row lock on the sequence table. Before we issues
+        table lock. Problem is, the table lock conflicts with auto
+        vacuum and sometimes caused excessive lock waiting(Tatsuo)
+
+      - Add support for more "SHOW" commands: pool_nodes,
+        pool_processes, pool_pools, and pool_version(Guillaume Lelarge)
+
+      - Backend process id and whether frontend connects to this
+        connection pool or not are added to pcp_proc_info's
+        output(Tatsuo)
+
+      - "Gracefuly detach" option is added to pcp_detatch_node. With
+        this option, pcp_detatch_node waits until all frontends
+        disconnected(Tatsuo)
+
+      - New directive "white_function_list" and "black_function_list"
+        are added to register functions those do not or do write to
+        database(Tatsuo)
+
+      - In master/slave mode, SELECTs to system catalogs executes only
+        on master/primary(Tatsuo)
+
+      - In master/slave mode, SELECTs to temporary table executes only
+        on master/primary(Tatsuo)
+
+      - In master/slave mode, write queries outside of explicit
+        transactions no longer trigger to start internal
+        transaction(Tatsuo)
+
+      - In master/slave mode, SELECTs inside explicit transactions are
+        load balanced(Tatsuo, Kitagawa)
+
+      - In master/slave mode, commands are no longer sent to all DB
+        nodes. This will prevent unnecessary locking(Tatsuo, Kitagawa)
+
+      - New command option adds to ignore the status file when
+        starting up(Tatsuo)
+
+      - Supports PostgreSQL 9.0's new VACUUM syntax(Tatsuo)
+
+      - New directive "failover_if_affected_tuples_mismatch" controls
+        the behavior when number of result rows of
+        INSERT/UPDATE/DELETE are differ(Tatsuo)
+
+      - When number of result rows of INSERT/UPDATE/DELETE are
+        differ, each number are logged(Tatsuo)
+
+      - md5 authentication is supported in replication mode and
+        master/slave mode(Tatsuo)
+
+      - Allow to force to move to online recovery second stage even
+        there are connecting frontends(Tatsuo)
+
+      - If there's only one DB node and it triggers failover,
+        pgpool-II will automatically connects if the DB node coming
+        up(Tatsuo)
+
+      - Pcp commands supports long options(Guillaume Lelarge)
+
+      - New directive "debug_level" added to control the debug message
+        logging(Tatsuo)
+
+      - Allow to use various boolean representations as PostgreSQL in
+        pgpool.conf(Kitagawa)
+
+      - New C language function pgpool_switch_xlog for online recovery
+        added(Kitagawa)
+
+      - New C language function pgpool_regclass added to avoid a trouble
+        about handling of duplicate table names in different schema(Tatsuo)
+
+      __________________________________________________________________
+
+* Bug fixes
+
+      - Do not rewrite statement which accesses columns having now()
+        etc. as the default value but the data type are not timestamp
+        etc.  Otherwise we have an error in DMLs(Tatsuo)
+
+      - Fix timestamp rewriting not to omit schema qualification(Tatsuo)
+
+      - Fix bug with timeout handling in pcp commands(Tatsuo)
+
+      - Fix SSL hang when large amount of data transfered(Tatsuo)
+
+      - Fix failover when there's only one DB node(Tatsuo)
+
+      - Fix bug with postmaster start check in online recovery.
+        Before it continued infinitely to try to connect to postmaster
+        if the first attempt failed(Tatsuo)
+
+
+===============================================================================
+2.3 Series (2009/12/07 - 2012/08/06)
+===============================================================================
+
+                    2.3.4 (tomiteboshi) 2012/08/06
+
+* Version 2.3.4
+
+      This version fixes various bugs since 2.3.3.
+
+      __________________________________________________________________
+
+* Bug fixes
+
+    - Fix do_error_execute_command() so that it discards responses from
+      backend until ErrorResponse received. (Toshihiro Kitagawa)
+
+      Note that we need to preserve non-error responses (i.e. ReadyForQuery)
+      and put back them using pool_unread().
+      Otherwise, ReadyForQuery response of DEALLOCATE. This could happen if
+      PHP PDO used.
+
+    - Fix SimpleForwardToFrontend() so that it reset select_in_transaction
+      flag and execute_select flag when bind error occurred while executing
+      SELECT. (Toshihiro Kitagawa)
+
+    - Fix SSL connection sometimes hung if lots of data read from backend.
+      This is caused by the buffering in OpenSSL layer. To fix the problem,
+      (Tatsuo Ishii)
+
+      we check the buffer has any pending data by using SSL_pending() before
+      calling select(2).
+      See thread [Pgpool-general] Fwd: PGPOOL II 2.3.3 hang in ssl mode for
+      more details.
+
+    - Fix bug with pcp_check_fd()'s timeout handling. (Tatsuo Ishii)
+
+      Per erboles.
+        Subject: [Pgpool-general] question about pcp_check_fd
+        Date: Sun, 23 May 2010 18:21:41 -0500
+        To: pgpool <pgpool-general@pgfoundry.org>
+
+    - Do not force replication of DEALLOCATE if operated in master/slave mode.
+      Reported by Jan Kantert. (Toshihiro Kitagawa)
+
+      See:
+        Subject: [Pgpool-hackers] Problems with PgPool 2.3.3 Prepare /
+                 Deallocation handling in Master/Slave mode
+        Date: Fri, 28 May 2010 20:59:47 +0200
+      For more details.
+
+    - Make timestamp rewriting schema aware. (Tatsuo Ishii)
+
+    - Do not rewrite statement which accesses columns having now() etc. as the
+      default value but the data type are not timestamp etc. (Tatsuo Ishii)
+
+      Otherwise we have an error in DMLS. See:
+        Subject: [Pgpool-general] function epoch seems to be causing error
+        To: pgpool-general@pgfoundry.org
+        Date: Mon, 16 Aug 2010 21:48:31 +0000 (UTC)
+      For more details.
+
+    - Fix insert_lock to be schema aware. (Tatsuo Ishii)
+
+    - Fix long standing bug with timestamp rewriting against array and complex
+      types.  (Tatsuo Ishii)
 
-         * Version 2.3.3
 
-         This version fixes various bugs since 2.3.2.2.
+      Failed examples are:
 
-         * Incompatible changes
+        INSERT INTO r1(col[1], col2.foo) VALUES (1, 2); -- insert_column_item
+        UPDATE r1 SET col1[1] = 1, col2.foo = 1; -- set_target
+        PREPARE "p" (int4[]) AS  SELECT $1[1]; -- c_expr
+        SELECT (ARRAY[1,2,3])[1];
+        SELECT (ARRAY[ARRAY[1]])[1][1];
+        SELECT ('{1,2,3}'::int[])[1];
+        SELECT ('{1,2,3}'::int[3])[1];
+        SELECT r1.col[1], (r1.col1).bar, (r1.col1).* FROM r1; -- columnref
+        SELECT (r1.col1).baz[1], (r1.col1).baz[1][2] FROM r1;
 
-         - Please note that this version of pgpool consumes more shared
-               memory than before. If you encounter problems when starting up
-               pgpool, please look into pgpool log. If you find messages
-               something like "could not create shared memory segment: Cannot
-               allocate memory", please increase the shared memory on your
-               system.
+      Patch provided by Akio Ishida.
 
-         - Now parallel mode requires replication mode turned
+    - Fix buffer overrun problem when pcp password is longer than 32.
+      (Tatsuo Ishii)
+
+    - Fix wait_for_query_response() not to send param status to frontend if
+      frontend is NULL. This could happen while processing reset_query_list.
+      (Tatsuo Ishii)
+
+===============================================================================
+
+                        2.3.3 (tomiteboshi) 2010/04/23
+
+* Version 2.3.3
+
+      This version fixes various bugs since 2.3.2.2.
+
+      __________________________________________________________________
+
+* Incompatible changes
+
+      - Please note that this version of pgpool consumes more shared
+        memory than before. If you encounter problems when starting up
+        pgpool, please look into pgpool log. If you find messages
+        something like "could not create shared memory segment: Cannot
+        allocate memory", please increase the shared memory on your
+        system.
+
+      - Now parallel mode requires replication mode turned
         on. parallel mode without replication mode turned on has been
-        broken since pgpool-II was born anyway(Kitagawa)
+        broken since pgpool-II was born anyway(Toshihiro Kitagawa)
+
+      - Change default value for insert_lock to false since there's no
+        point in turning this on in master/slave mode. Fix suggested by
+        Fujii Masao(Tatsuo Ishii)
 
-         - Change default value for insert_lock to false since there's no
-               point in turning this on in master/slave mode. Fix suggested by
-               Fujii Masao(Tatsuo)
+      __________________________________________________________________
 
-         * Newly added documents
+* Newly added documents
 
-         - README.online-recovery, which is an internal document of
-        online recovery, added(Tatsuo)
+      - README.online-recovery, which is an internal document of
+        online recovery, added(Tatsuo Ishii)
 
-         * Bug fixes
+      __________________________________________________________________
 
-         - Fix long standing bug since pgpool-II 1.0 which causes
-               segfault of pgpool child process.  This was caused by
-               miscalculation of shmem size in pgpool parent. Bug analysis by
-               Kitagawa patch created by Tatsuo
+* Bug fixes
 
-         - Add restriction for parallel mode(Kitagawa)
-               - The Natural Join is not supported
-               - The USING CLAUSE is converted to ON CLAUSE by query rewrite
-                 process
+      - Fix long standing bug since pgpool-II 1.0 which causes
+        segfault of pgpool child process.  This was caused by
+        miscalculation of shmem size in pgpool parent. Bug analysis by
+        Kitagawa patch created by Tatsuo
 
-         - Fix possible crash during rewriting JOIN syntax that have
-        USING in parallel query mode(Kitagawa)
+      - Add restriction for parallel mode(Toshihiro Kitagawa)
+        - The Natural Join is not supported
+        - The USING CLAUSE is converted to ON CLAUSE by query rewrite
+          process
 
-               This fix is supporting such as following JOIN syntax.
+      - Fix possible crash during rewriting JOIN syntax that have
+        USING in parallel query mode(Toshihiro Kitagawa)
 
-                example:
-                - SELECT * FROM a JOIN b USING (aid) JOIN c USING (cid);
-                - SELECT * FROM a JOIN b USING (aid) JOIN c USING (cid) JOIN d USING (did)
+        This fix is supporting such as following JOIN syntax.
 
-         - Fix parallel query so that it can parse INSERT statements that
-               have current_time before a partitioning key column(Kitagawa)
+         example:
+         - SELECT * FROM a JOIN b USING (aid) JOIN c USING (cid);
+         - SELECT * FROM a JOIN b USING (aid) JOIN c USING (cid)
+           JOIN d USING (did)
 
-         - Fix SimpleForwardToBackend() so that pgpool doesn't keep
-               waiting for reply from a backend, when clients using the
-               extended query protocol cause a command error such as bind
-               error. This bug occur in master/slave, raw, and connection
-               pool mode.  This fix is, sending SYNC message to recover error
-               after command error(Kiatagawa)
+      - Fix parallel query so that it can parse INSERT statements that
+        have current_time before a partitioning key column
+        (Toshihiro Kitagawa)
+
+      - Fix SimpleForwardToBackend() so that pgpool doesn't keep
+        waiting for reply from a backend, when clients using the
+        extended query protocol cause a command error such as bind
+        error. This bug occur in master/slave, raw, and connection
+        pool mode.  This fix is, sending SYNC message to recover error
+        after command error(Toshihiro Kitagawa)
 
-         - Fix SIGINT/SIGQUIT is ignored if pgpool child is in
-               select(). In this case pgpool retries select() thus the signal
-               is ignored(Tatsuo)
+      - Fix SIGINT/SIGQUIT is ignored if pgpool child is in
+        select(). In this case pgpool retries select() thus the signal
+        is ignored(Tatsuo Ishii)
 
-         - Fix connect_inet_domain_socket_by_port/
-               connect_unix_domain_socket_by_port so that they check if
-               SIGTERM/SIGINT/SIGQUIT signal has been delivered.  Per bug
-               report from Daniel Codina(Tatsuo)
+      - Fix connect_inet_domain_socket_by_port/
+        connect_unix_domain_socket_by_port so that they check if
+        SIGTERM/SIGINT/SIGQUIT signal has been delivered.  Per bug
+        report from Daniel Codina(Tatsuo Ishii)
 
-         - Fix possible crash during creating "kind mismatch" error
-               message. This used to work but was broken in 2.3.2(Tatsuo)
+      - Fix possible crash during creating "kind mismatch" error
+        message. This used to work but was broken in 2.3.2(Tatsuo Ishii)
 
-         - Fix bug with healh checking. If a network problem such as
-               unplugged wire happens while calling connect(), health
-               checking does not work since
-               connect_unix_domain_socket()/connect_inet_domain_socket() do
-               retry if connect() is interrupted by ALARM signal. Added new
-               retry argument which controls the retrying behavior to those
-               functions.  Per bug report and problem analysis by Daniel
-               Codina(Tatsuo)
+      - Fix bug with healh checking. If a network problem such as
+        unplugged wire happens while calling connect(), health
+        checking does not work since
+        connect_unix_domain_socket()/connect_inet_domain_socket() do
+        retry if connect() is interrupted by ALARM signal. Added new
+        retry argument which controls the retrying behavior to those
+        functions.  Per bug report and problem analysis by Daniel
+        Codina(Tatsuo Ishii)
 
-         - Fix enbug in 2.3.2.2 with time stamp rewriting in
-               SimpleForwardToBackend. Per bug report from Bugtrack #1010771.
-               Report from Peter Pramberge(Tatsuo)
+      - Fix enbug in 2.3.2.2 with time stamp rewriting in
+        SimpleForwardToBackend. Per bug report from Bugtrack #1010771.
+        Report from Peter Pramberge(Tatsuo Ishii)
 
-         - Fix rewriting "*" in paralell query.  Patch conributed by
-        sho-san(Kitagawa)
+      - Fix rewriting "*" in paralell query.  Patch conributed by
+        sho-san(Toshihiro Kitagawa)
 
-         - Fix connect_inet_domain_socket_by_port() so that it print out
-               error message by using hstrerror(), rather than
-               strerror()(Tatsuo)
+      - Fix connect_inet_domain_socket_by_port() so that it print out
+        error message by using hstrerror(), rather than
+        strerror()(Tatsuo Ishii)
 
-2.3.2.2 (tomiteboshi) 2010/02/22
+===============================================================================
 
-         * Version 2.3.2.2
+                    2.3.2.2 (tomiteboshi) 2010/02/22
 
-         This version fixes various bug in 2.3.x.
+* Version 2.3.2.2
 
-         - When rewriting timestamp in extended query, it allocated less
+      This version fixes various bug in 2.3.x.
+
+      - When rewriting timestamp in extended query, it allocated less
         than what it actually needed. This causes random problematic
         behavior, typically "message: invalid string in message" error
-        in backend(Tatsuo).
+        in backend(Tatsuo Ishii).
+
+      - In extended query, if one of parameters contains NULL, ppool
+        crashes(Tatsuo Ishii).
 
-         - In extended query, if one of parameters contains NULL, ppool
-        crashes(Tatsuo).
+      - If in previous status file all nodes were marked down status,
+        it is regarded that this file is bogus. This will prevent "all
+        node down" syndrome(Tatsuo Ishii).
 
-         - If in previous status file all nodes were marked down status,
-               it is regarded that this file is bogus. This will prevent "all
-               node down" syndrome(Tatsuo).
+===============================================================================
 
-2.3.2.1 (tomiteboshi) 2010/02/11
+                    2.3.2.1 (tomiteboshi) 2010/02/11
 
-         * Version 2.3.2.1
+* Version 2.3.2.1
 
-         This version fixes bug in 2.3.x. It is identfied that
-         pgpool-II 2.3.x has a problem with erroneous query
-         processing(Akio Ishida).
+      This version fixes bug in 2.3.x. It is identfied that
+      pgpool-II 2.3.x has a problem with erroneous query
+      processing(Akio Ishida).
 
-2.3.2 (tomiteboshi) 2010/02/07
+===============================================================================
 
-         * Version 2.3.2
+                    2.3.2 (tomiteboshi) 2010/02/07
 
-         This version includes various fixes for bugs in 2.3.1 or before.
-         All 2.3.x users are encouraged to upgrade to 2.3.2 as soon as
-         possible.
+* Version 2.3.2
 
-         Also this version enables long awaited SSL support and large
-         object replication support.
+      This version includes various fixes for bugs in 2.3.1 or before.
+      All 2.3.x users are encouraged to upgrade to 2.3.2 as soon as
+      possible.
 
-         * Enhancements
+      Also this version enables long awaited SSL support and large
+      object replication support.
 
-         - SSL support(Sean Finney)
+      __________________________________________________________________
 
-         - Large object replication support. You need PostgreSQL 8.1 or
-        later, however(Tatsuo)
+* Enhancements
 
-         - Emit statement log when error or notice message comes from
-               query parsing process. This is usefull because PostgreSQL does
-               not log particular statement if the error was detected
-               *before* raw parser get executed.  This typlically happens
-               when encoding error was found(Tatsuo)
+      - SSL support(Sean Finney)
 
-         - Display original query to log if kind mismatch error was
-        caused by DEALLOCATE(Tatsuo)
+      - Large object replication support. You need PostgreSQL 8.1 or
+        later, however(Tatsuo Ishii)
 
-         - While health checking and recovery use postgres database if
-               possible.  If postgres database does not exist, use template1
-               as it stands now.  While connecting template1, certain
-               commands, for example DROP DATABASE cannot used. Using postgres
-               database allows to use these commands while recovery(Tatsuo)
+      - Emit statement log when error or notice message comes from
+        query parsing process. This is usefull because PostgreSQL does
+        not log particular statement if the error was detected
+        *before* raw parser get executed.  This typlically happens
+        when encoding error was found(Tatsuo Ishii)
 
-         * Bug fixes
+      - Display original query to log if kind mismatch error was
+        caused by DEALLOCATE(Tatsuo Ishii)
 
-         - Fix errors in timestamp rewriting which occasionaly cause
-               broken packet sentto slave nodes(Tatsuo)
+      - While health checking and recovery use postgres database if
+        possible.  If postgres database does not exist, use template1
+        as it stands now.  While connecting template1, certain
+        commands, for example DROP DATABASE cannot used. Using postgres
+        database allows to use these commands while recovery(Tatsuo Ishii)
 
-         - Fix errors when timestamp rewriting is used with V2
+      __________________________________________________________________
+
+* Bug fixes
+
+      - Fix errors in timestamp rewriting which occasionaly cause
+        broken packet sentto slave nodes(Tatsuo Ishii)
+
+      - Fix errors when timestamp rewriting is used with V2
         protocol(Toshihiro Kitagawa)
 
-         - Propagate Bind, Describe and Close messages to only master
-        node if running in master/slave and in transaction (Tatsuo)
+      - Propagate Bind, Describe and Close messages to only master
+        node if running in master/slave and in transaction (Tatsuo Ishii)
 
-         - Fix do_child() so that check_stop_request() exits immediately
-               when smart shutdown signal has been sent.  This has been used
-               to work in 2.2(Toshihiro Kitagawa)
+      - Fix do_child() so that check_stop_request() exits immediately
+        when smart shutdown signal has been sent.  This has been used
+        to work in 2.2(Toshihiro Kitagawa)
 
-         - Fix ProcessFrontendResponse not to accept invalid frotend
+      - Fix ProcessFrontendResponse not to accept invalid frotend
         packet(Xavier Noguer)
 
-         - Use %dz for sizeof in fprintf for more portability(Tatsuo)
+      - Use %dz for sizeof in fprintf for more portability(Tatsuo Ishii)
+
+      - Fix compiler warnings(Tatsuo Ishii)
 
-         - Fix compiler warnings(Tatsuo)
+      - Do not force replication of DEALLOCATE if operated in
+        master/slave mode. Now that pgpool do not execute PARSE in all
+        nodes, this was pointless and caused problem (kind mismatch
+        when executing DEALLOCATE)(Tatsuo Ishii)
 
-         - Do not force replication of DEALLOCATE if operated in
-               master/slave mode. Now that pgpool do not execute PARSE in all
-               nodes, this was pointless and caused problem (kind mismatch
-               when executing DEALLOCATE)(Tatuso)
+===============================================================================
 
-2.3.1 (tomiteboshi) 2009/12/18
+                        2.3.1 (tomiteboshi) 2009/12/18
 
-         * Version 2.3.1
+* Version 2.3.1
 
-         This version includes various fixes for bugs in 2.3 or before.
-         All 2.3 users are encouraged to upgrade to 2.3.1 as soon as
-         possible.
+      This version includes various fixes for bugs in 2.3 or before.
+      All 2.3 users are encouraged to upgrade to 2.3.1 as soon as
+      possible.
+      __________________________________________________________________
 
-         * Bug fixes
+* Bug fixes
 
-         - If all of following conditions met, incorrect data is written
-        to DB(Tatsuo)
+      - If all of following conditions met, incorrect data is written
+        to DB(Tatsuo Ishii)
 
-               - pgpool is running in replication mode
-               - pgpool is running on 64bit OS
-               - INSERT or UPDATE are used which explicitly include now(),
-               - CURRENT_TIMESTAMP, CURRENT_DATE, CURRENT_TIME. Or the target
-               - Table's default value use above functions
-           - The SQL statement inclludes out of 32bit
-                 integer value(-2147483648 to 2147483647 in decimal)
+        - pgpool is running in replication mode
+        - pgpool is running on 64bit OS
+        - INSERT or UPDATE are used which explicitly include now(),
+        - CURRENT_TIMESTAMP, CURRENT_DATE, CURRENT_TIME. Or the target
+        - Table's default value use above functions
+        - The SQL statement inclludes out of 32bit
+          integer value(-2147483648 to 2147483647 in decimal)
 
-               Example SQL: INSERT INTO t1(id, regdate) VALUES(98887776655,
-               NOW());
+        Example SQL: INSERT INTO t1(id, regdate) VALUES(98887776655,
+        NOW());
 
-         - Fix crush in case of more than 18 DB nodes are used(Tatsuo)
+      - Fix crush in case of more than 18 DB nodes are used(Tatsuo Ishii)
 
-         - Enhance kind mismatch error message. If kind is ERROR or
-        NOTICE, the error or notice message from PostgreSQL will be printed(Tatsuo)
+      - Enhance kind mismatch error message. If kind is ERROR or
+        NOTICE, the error or notice message from PostgreSQL will be printed
+        (Tatsuo Ishii)
+
+===============================================================================
 
-2.3 (tomiteboshi) 2009/12/07
+                            2.3 (tomiteboshi) 2009/12/07
 
-         * Version 2.3
+* Version 2.3
 
-         This version enhances replication, especially CURRENT_TIMESTAMP,
-         CURRENT_DATE, now() etc. now can be properly replicated. Also
-         perforance of replication when num_init_children == 1 is
-         enhanced. Pgpool-II now records the status of down nodes, and
-         remember when it restarts to ensure that keep the node status as
-         before. Also some logs are enhanced and more fine fail over
-         controls are added. Please note that pgpool-II 2.3 includes all
-         of enhancements and fixes of pgpool-II 2.2.1 to 2.2.6.
+      This version enhances replication, especially CURRENT_TIMESTAMP,
+      CURRENT_DATE, now() etc. now can be properly replicated. Also
+      perforance of replication when num_init_children == 1 is
+      enhanced. Pgpool-II now records the status of down nodes, and
+      remember when it restarts to ensure that keep the node status as
+      before. Also some logs are enhanced and more fine fail over
+      controls are added. Please note that pgpool-II 2.3 includes all
+      of enhancements and fixes of pgpool-II 2.2.1 to 2.2.6.
 
-         * Incompatibilities from 2.2.x
+      __________________________________________________________________
 
-         - pgpool_status file is created under logdir. So you need to
+* Incompatibilities from 2.2.x
+
+      - pgpool_status file is created under logdir. So you need to
         give write permission to the directory so that pgpool-II can
         read/write pgpool_status file.
 
-         * Enhancements
+      __________________________________________________________________
+
+* Enhancements
 
-         - Enable proper replication of results of temporal functions
+      - Enable proper replication of results of temporal functions
         (CURRENT_TIMESTAMP, CURRENT_DATE, now() etc.). Now
         applications can execute INSERT/UPDATE tables which include
         defaut values using those temporal functions. There are small
         limitations. See restriction sections of docs for more
         details (Akio Ishida)
 
-         - Use PostgreSQL 8.4's SQL parser(Akio Ishida)
+      - Use PostgreSQL 8.4's SQL parser(Akio Ishida)
 
-         - Enhance the performance 20% to 100% of replication when
-               num_init_children == 1(Tatsuo)
+      - Enhance the performance 20% to 100% of replication when
+        num_init_children == 1(Tatsuo Ishii)
 
-         - Add new directive log_per_node_statement which is similar to
+      - Add new directive log_per_node_statement which is similar to
         log_statement except that prints info for each DB node to make
-        it easier which query is sent to which DB node(Tatsuo)
+        it easier which query is sent to which DB node(Tatsuo Ishii)
 
-         - Add new directive fail_over_on_backend_error to control the
-                behaviro of fail over(Tatsuo)
+      - Add new directive fail_over_on_backend_error to control the
+         behaviro of fail over(Tatsuo Ishii)
 
-         - Record DB node status and remember when pgpool-II restarts(Tatsuo)
+      - Record DB node status and remember when pgpool-II restarts(Tatsuo Ishii)
 
-         - EXPLAIN and EXPLAIN ANALYZE for SELECT query are now load
+      - EXPLAIN and EXPLAIN ANALYZE for SELECT query are now load
         balanced. This will prevent unwanted kind mismatch errors when
-        EXPLAIN produces slightly different plan(Tatsuo)
+        EXPLAIN produces slightly different plan(Tatsuo Ishii)
 
-         - Enhance CSS of pgpool-ja.html(Tatsuo)
+      - Enhance CSS of pgpool-ja.html(Tatsuo Ishii)
 
-         - Add sample configuration file for replication mode and
-        master/slave mode(Tatsuo)
+      - Add sample configuration file for replication mode and
+        master/slave mode(Tatsuo Ishii)
+
+     - Add test for temporal data(Akio Ishida)
+
+
+===============================================================================
+2.2 Series (2009/02/08 - 2012/08/06)
+===============================================================================
+
+                    2.2.8 (urukiboshi) 2012/08/06
+
+* Version 2.2.8
+
+      It includes various fixes for bugs various bug fixes in 2.2.7.
+
+      __________________________________________________________________
 
-        - Add test for temporal data(Akio Ishida)
+* Bug fixes
 
-2.2.6 (urukiboshi) 2009/12/01
+      - Fix do_error_execute_command() so that it discards responses from
+        backend until ErrorResponse received. (Toshihiro Kitagawa)
 
-         * Version 2.2.6
+        Note that we need to preserve non-error responses (i.e. ReadyForQuery)
+        and put back them using pool_unread().
+        Otherwise, ReadyForQuery response of DEALLOCATE. This could happen if
+        PHP PDO used.
 
-         This version enhances handling of backend weight. Also it allows
-         to use temp tables in master/slave mode. It includes various
-         fixes for bugs in 2.2.5 or before as usual.
+      - Fix SimpleForwardToFrontend() so that it reset select_in_transaction
+        flag and execute_select flag when bind error occurred while executing
+        SELECT. (Toshihiro Kitagawa)
 
-         * Bug fixes
+      - Fix bug with pcp_check_fd()'s timeout handling. (Tatsuo Ishii)
 
-         - Do not allow to load balance DECLARE, CLOSE, FETCH and
+        Per erboles.
+          Subject: [Pgpool-general] question about pcp_check_fd
+          Date: Sun, 23 May 2010 18:21:41 -0500
+          To: pgpool <pgpool-general@pgfoundry.org>
+
+      - Fix buffer overrun problem when pcp password is longer than 32.
+        (Tatsuo Ishii)
+
+      - Fix wait_for_query_response() not to send param status to frontend if
+        frontend is NULL. This could happen while processing reset_query_list.
+        (Tatsuo Ishii)
+
+===============================================================================
+
+                    2.2.7 (urukiboshi) 2010/04/15
+
+* Version 2.2.7
+
+      This version enhances displaying error messages when kind
+      mismatch error occurs. Also it includes various fixes for bugs
+      in 2.2.6 or before as usual.
+
+      __________________________________________________________________
+
+* Bug fixes
+
+      - Fix occasional hangup in extend protocol + master/slave mode,
+        row mode or connection pool mode. Back patch from 2.3
+        tree(Toshihiro Kitagawa)
+
+      - Fix long standing bug since pgpool-II 1.0 which causes
+        segfault of pgpool child process. This was caused by
+        miscalculation of shmem size in pgpool parent. Bug analysis by
+        Kitagawa patch created by Tatsuo
+
+      - Send Parse, Bind, Describe and Close message to only master
+        node if operated in explicit transaction and master/slave
+        mode(Tatsuo Ishii).
+
+      - Emit a log when postmaster goes down(Tatsuo Ishii)
+
+      - Fix memory leak in make_persistent_db_connection(Xavier
+        Noguer)
+
+      - Do not force replication of DEALLOCATE if operated in
+        master/slave mode. Now that pgpool do not execute PARSE in all
+        nodes, this was pointless and caused problem (kind mismatch
+        when executing DEALLOCATE) (Tatsuo Ishii)
+
+      - Fix crash with show pool_status when there many (more than 18)
+        DB nodes(Tatsuo Ishii)
+
+      - Enhance "kind mismatch" message. If kind is ERROR or NOTICE,
+        print the ERROR/NOTICE message to help users to find what's
+        going on(Tatsuo Ishii)
+
+===============================================================================
+
+                        2.2.6 (urukiboshi) 2009/12/01
+
+* Version 2.2.6
+
+      This version enhances handling of backend weight. Also it allows
+      to use temp tables in master/slave mode. It includes various
+      fixes for bugs in 2.2.5 or before as usual.
+
+      __________________________________________________________________
+
+* Bug fixes
+
+      - Do not allow to load balance DECLARE, CLOSE, FETCH and
         MOVE. If data gets updated and CLOSE issued after transaction
         commit(i.e. holdbale cursor), this will cause data
         inconsistency since CLOSE is executed one of the severs,
-        rather than all(Tatsuo)
+        rather than all(Tatsuo Ishii)
 
-         - In master/slave mode, execute Parse message on only master
+      - In master/slave mode, execute Parse message on only master
         node. In previous versions Parse executed on all nodes, which
-        grabbed unneccessary lock(Tatsuo)
+        grabbed unneccessary lock(Tatsuo Ishii)
 
-         - Remove init script from all runlevels before uninstall(Devrim)
+      - Remove init script from all runlevels before uninstall(Devrim)
 
-         - Fix pgpoo.spec(Devrim)
+      - Fix pgpoo.spec(Devrim)
 
-         - Do not execute REINDEX DATABASE or SYSTEM, CREATE/DROP TABLE
-        SPACE inside a transaction block(Tatsuo)
+      - Do not execute REINDEX DATABASE or SYSTEM, CREATE/DROP TABLE
+        SPACE inside a transaction block(Tatsuo Ishii)
 
-         * Enhancements
+      __________________________________________________________________
 
-         - Allow to change weight by reloading pgool.conf. This will take
-        effect for next client sessions(Tatsuo)
+* Enhancements
 
-         - Reply with usefull error messages, rather than "server closed
+      - Allow to change weight by reloading pgool.conf. This will take
+        effect for next client sessions(Tatsuo Ishii)
+
+      - Reply with usefull error messages, rather than "server closed
         the connection unexpectedly" when authentication fails(Glyn
         Astill)
 
-         - Add info to logs when writing to sockets falis to know if it
-        was for backend or frontend(Tatsuo)
+      - Add info to logs when writing to sockets falis to know if it
+        was for backend or frontend(Tatsuo Ishii)
 
-         - Do not complain when writing to socket of frontend
-        fails(Tatsuo)
+      - Do not complain when writing to socket of frontend
+        fails(Tatsuo Ishii)
 
-         - Allow to use temp tables in master/slave
+      - Allow to use temp tables in master/slave
         mode. INSERT/UPDATE/DELETE will automatically be sent to
         master only. Still SELECT you need to add /*NO LOAD BALANCE*/
-        comment(Tatsuo)
+        comment(Tatsuo Ishii)
+
+      - Add temp table test to test/jdbc(Tatsuo Ishii)
 
-         - Add temp table test to test/jdbc(Tatsuo)
+===============================================================================
 
-2.2.5 (urukiboshi) 2009/10/4
-         * Version 2.2.5
+                        2.2.5 (urukiboshi) 2009/10/4
 
-         This version fixes various bugs in 2.2.4 or before.
+* Version 2.2.5
 
-         * Bug fixes
+      This version fixes various bugs in 2.2.4 or before.
 
-         - Fix connection_count_down(). It decrements the connection
+      __________________________________________________________________
+
+* Bug fixes
+
+      - Fix connection_count_down(). It decrements the connection
         counter too much in some corner cases and causes online
-        recover never completes(Tatsuo)
+        recover never completes(Tatsuo Ishii)
 
-         - Detect frontend exiting while waiting for commands complete in
+      - Detect frontend exiting while waiting for commands complete in
         other cases such as internal locks are issued and Parse
-        (Tatsuo)
+        (Tatsuo Ishii)
 
-         - Fix inifinit loop in reset_backend(Xavier Noguer, Tatsuo)
+      - Fix inifinit loop in reset_backend(Xavier Noguer, Tatsuo)
 
-         - Fix Parse() to print actual query when it detects kind
-        mismatch error(Tatsuo)
+      - Fix Parse() to print actual query when it detects kind
+        mismatch error(Tatsuo Ishii)
 
-         - Document enhancements(Tatsuo)
+      - Document enhancements(Tatsuo Ishii)
 
-2.2.4 (urukiboshi) 2009/8/24
-         * Version 2.2.4
+===============================================================================
 
-         This version fixes various bugs in 2.2.3 or before.
+                        2.2.4 (urukiboshi) 2009/8/24
 
-         * Bug fixes
+* Version 2.2.4
 
-         - Fix possible bug introduced in pgpool-II 2.2.2.  Load balance
-               control variables may remain not be restored and subsequent
-               DML/DDL call might sent to only master node(Tatsuo)
+      This version fixes various bugs in 2.2.3 or before.
 
-         - Send NOTICE message to frontend periodically if V2 protocol is
-               used. This is ifdef out since it affectes visible change to
-               applications.  2.2.3 unconditionaly sends param packet to
-               client even it uses version 2 protocol, which is apparentlt
-               wrong. Also tweak checking period from 1 second to 30 seconds
-               since 1 second seems too aggressive(Tatsuo)
+      __________________________________________________________________
 
-         - Block signals before forking children rather after.  Otherwise
-               parent will be killed by failover signal if it receives a
-               signal before establishing signal handler(Tatsuo)
+* Bug fixes
 
-         - Remove unnecessary spaces and tabs at the end of line(Jun Kuriyama)
+      - Fix possible bug introduced in pgpool-II 2.2.2.  Load balance
+        control variables may remain not be restored and subsequent
+        DML/DDL call might sent to only master node(Tatsuo Ishii)
 
-2.2.3 (urukiboshi) 2009/8/11
-         * Version 2.2.3
+      - Send NOTICE message to frontend periodically if V2 protocol is
+        used. This is ifdef out since it affectes visible change to
+        applications.  2.2.3 unconditionaly sends param packet to
+        client even it uses version 2 protocol, which is apparentlt
+        wrong. Also tweak checking period from 1 second to 30 seconds
+        since 1 second seems too aggressive(Tatsuo Ishii)
 
-         This version fixes various bugs in 2.2.2 or before.
+      - Block signals before forking children rather after.  Otherwise
+        parent will be killed by failover signal if it receives a
+        signal before establishing signal handler(Tatsuo Ishii)
 
-         * Bug fixes
+      - Remove unnecessary spaces and tabs at the end of line(Jun Kuriyama)
 
-         - Fix child process death if one of backends is not available(Tatsuo).
+===============================================================================
 
-         - Fix various parallel query bugs(Yoshiharu Mori)
+                            2.2.3 (urukiboshi) 2009/8/11
 
-         - Fix message corruption for kid mismatch error(Akio Ishida)
+* Version 2.2.3
 
-         - Now stetmemt_time works(Tatsuo)
+      This version fixes various bugs in 2.2.2 or before.
 
-         - Enhance health checking to detect postmaster stopping by
-        SIGSTOP(Tatsuo)
+      __________________________________________________________________
 
-         - Detect frontend abnormal exiting while waiting for reply from
-        backend. This only works with V3 protocol(Tatsuo)
+* Bug fixes
 
-         - Do not start internal transaction if command is CLUSTER
-        without arguments(Tatsuo)
+      - Fix child process death if one of backends is not available(Tatsuo Ishii).
 
-         - Fix bug with COPY FROM in that backend process remains after
-        COPY failed(Tatsuo)
+      - Fix various parallel query bugs(Yoshiharu Mori)
 
-         * Enhancements
+      - Fix message corruption for kid mismatch error(Akio Ishida)
 
-         - Show last query for extended protocol(Akio Ishida)
+      - Now stetmemt_time works(Tatsuo Ishii)
 
-         - Allow to compile sql/pgpool-recovery/pgpool-recovery.c with
-        PostgreSQL 8.4(Tatsuo)
+      - Enhance health checking to detect postmaster stopping by
+        SIGSTOP(Tatsuo Ishii)
 
-2.2.2 (urukiboshi) 2009/5/5
-         * Version 2.2.2
+      - Detect frontend abnormal exiting while waiting for reply from
+        backend. This only works with V3 protocol(Tatsuo Ishii)
 
-         This version fixes various bugs in 2.2.1 or before. Please note
-         that an importan fix is made to avoid data incositency risk,
-         which could happen when client does not exit gracely(without
-         sending "X" packet) while pgpool is trying to send data to
-         it. This could happen with all version of pgpool-II.
+      - Do not start internal transaction if command is CLUSTER
+        without arguments(Tatsuo Ishii)
 
-         * Bug fixes
+      - Fix bug with COPY FROM in that backend process remains after
+        COPY failed(Tatsuo Ishii)
 
-         - Ignore write error on frontend connection. This is needed to
-               continue processing with backend, otherwise we risk data
-               incositency(Tatsuo)
+      __________________________________________________________________
 
-         - Fix bug introduced in 2.2.1 (In master slave mode, sometimes
-               DEALLOCATE fails). If prepared statement reused, pgpool
-               hangs(Toshihiro)
+* Enhancements
 
-         - Fix pgpool crash when SQL command PREPARE and protocol level
-        EXECUTE are mixed. The bug was introduced in 2.2(Tatsuo)
+      - Show last query for extended protocol(Akio Ishida)
 
-         - Avoid "unexpected EOF on client connection" error in PostgreSQL
-        when reset query fails(Tatsuo)
-               
-2.2.1 (urukiboshi) 2009/4/25
-         * Version 2.2.1
+      - Allow to compile sql/pgpool-recovery/pgpool-recovery.c with
+        PostgreSQL 8.4(Tatsuo Ishii)
 
-         This version fixes various bugs in 2.2.
+===============================================================================
 
-         * Bug fixes
+                        2.2.2 (urukiboshi) 2009/5/5
 
-         - In master slave mode, sometimes DEALLOCATE fails. This is
-               caused by that the first PREPARE was not executed on the
-               slave(Toshihiro)
+* Version 2.2.2
 
-         - Update pgpool.spec along with related files(Devrim)
+      This version fixes various bugs in 2.2.1 or before. Please note
+      that an importan fix is made to avoid data incositency risk,
+      which could happen when client does not exit gracely(without
+      sending "X" packet) while pgpool is trying to send data to
+      it. This could happen with all version of pgpool-II.
 
-         - Fix inser_lock so that it is ignored when protocol version is
-        2(Tatsuo)
-               
-         - Remove excessive log messages regarding parameter change notice(Tatsuo)
+      __________________________________________________________________
 
-         - Add missing files to doc(Tatsuo)
+* Bug fixes
 
-2.2 (urukiboshi) 2009/2/28
-         * Version 2.2
+      - Ignore write error on frontend connection. This is needed to
+        continue processing with backend, otherwise we risk data
+        incositency(Tatsuo Ishii)
 
-         This version enhances SERIAL data type handling and on line
-         recovery. Also an important bug, serializable transactions could
-         cause data inconsistency among DB nodes, is fixed. Query
-         cancelation, which never worked since pgpool-II was born, is
-         finally fixed.
+      - Fix bug introduced in 2.2.1 (In master slave mode, sometimes
+          DEALLOCATE fails). If prepared statement reused, pgpool
+          hangs(Toshihiro Kitagawa)
 
-         * New features/enhancements
+      - Fix pgpool crash when SQL command PREPARE and protocol level
+        EXECUTE are mixed. The bug was introduced in 2.2(Tatsuo Ishii)
 
-               - With insert_lock, now a table is locked only if it has
-          SERIAL data type and now the default value for insert_lock
-          is true(Tatsuo)
+      - Avoid "unexpected EOF on client connection" error in PostgreSQL
+        when reset query fails(Tatsuo Ishii)
+
+===============================================================================
+
+                        2.2.1 (urukiboshi) 2009/4/25
+
+* Version 2.2.1
+
+      This version fixes various bugs in 2.2.
+
+      __________________________________________________________________
+
+* Bug fixes
+
+      - In master slave mode, sometimes DEALLOCATE fails. This is
+        caused by that the first PREPARE was not executed on the
+        slave(Toshihiro Kitagawa)
+
+      - Update pgpool.spec along with related files(Devrim)
+
+      - Fix inser_lock so that it is ignored when protocol version is
+        2(Tatsuo Ishii)
+
+      - Remove excessive log messages regarding parameter change notice(Tatsuo Ishii)
+
+      - Add missing files to doc(Tatsuo Ishii)
+
+===============================================================================
+
+                            2.2 (urukiboshi) 2009/2/28
+
+* Version 2.2
+
+      This version enhances SERIAL data type handling and on line
+      recovery. Also an important bug, serializable transactions could
+      cause data inconsistency among DB nodes, is fixed. Query
+      cancelation, which never worked since pgpool-II was born, is
+      finally fixed.
 
-               - Start internal transaction other than INSERT, UPDATE, DELETE
-          and SELECT to keep node consistency(Tatsuo)
+      __________________________________________________________________
 
-               - Add client_idle_limit_in_recovery directive. This will
-                 prevent 2nd stage of on line recovery from not going forward
-                 by idle clients sitting forever(Tatsuo)
+* New features/enhancements
 
-               - Add pid_file_name directive which specifies a path to the
-                 file containing pgpool process id. "logdir" is no more used(Tatsuo)
+        - With insert_lock, now a table is locked only if it has
+          SERIAL data type and now the default value for insert_lock
+          is true(Tatsuo Ishii)
+
+        - Start internal transaction other than INSERT, UPDATE, DELETE
+          and SELECT to keep node consistency(Tatsuo Ishii)
 
-               - Allow to load balance DECLARE, FETCH and CLOSE(Tatsuo)
+        - Add client_idle_limit_in_recovery directive. This will
+          prevent 2nd stage of on line recovery from not going forward
+          by idle clients sitting forever(Tatsuo Ishii)
 
-               - Add -d option to pcp commands(Jun Kuriyama)
+        - Add pid_file_name directive which specifies a path to the
+          file containing pgpool process id. "logdir" is no more used(Tatsuo Ishii)
 
-               - Enahnce kind mismatch error message to include originarl
-          query string(Tatsuo)
+        - Allow to load balance DECLARE, FETCH and CLOSE(Tatsuo Ishii)
 
-         * Bug fixes
+        - Add -d option to pcp commands(Jun Kuriyama)
 
-           - Close all file descriptors when running in daemon mode.
-             Otherwise we inherit sockets from apache when it's
-             started by pgpoolAdmin. This results in that port 80 is
-             occupied for example.  Patch provided by Akio
-             Ishida. Also add chdir("/"). This is always good for
-             daemon programs(Tatsuo)
+        - Enahnce kind mismatch error message to include originarl
+          query string(Tatsuo Ishii)
 
-           - Allow MD5 authentication in raw mode as stated in docs(Tatsuo)
+      __________________________________________________________________
 
-           - Check transaction serialization failure error in
-             serializable mode and abort all nodes if so. Otherwise
-             we allow data inconsistency among DB nodes(Tatsuo).
+* Bug fixes
 
-             See following scenario: (M:master, S:slave)
+        - Close all file descriptors when running in daemon mode.
+          Otherwise we inherit sockets from apache when it's
+          started by pgpoolAdmin. This results in that port 80 is
+          occupied for example.  Patch provided by Akio
+          Ishida. Also add chdir("/"). This is always good for
+          daemon programs(Tatsuo Ishii)
 
-                       M:S1:BEGIN;
-                       M:S2:BEGIN;
-                       S:S1:BEGIN;
-                       S:S2:BEGIN;
-                       M:S1:SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
-                       M:S2:SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
-                       S:S1:SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
-                       S:S2:SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
-                       M:S1:UPDATE t1 SET i = i + 1;
-                       S:S1:UPDATE t1 SET i = i + 1;
-                       M:S2:UPDATE t1 SET i = i + 1; <-- blocked
-                       S:S1:COMMIT;
-                       M:S1:COMMIT;
-                       M:S2:ERROR:  could not serialize access due to concurrent update
-                       S:S2:UPDATE t1 SET i = i + 1; <-- success in UPDATE and data becomes inconsistent!
+        - Allow MD5 authentication in raw mode as stated in docs(Tatsuo Ishii)
 
-               - avoid kind mismatch error caused by "SET TRANSACTION
-                 ISOLATION LEVEL must be called before any query"(Tatsuo).
+        - Check transaction serialization failure error in
+          serializable mode and abort all nodes if so. Otherwise
+          we allow data inconsistency among DB nodes(Tatsuo Ishii).
 
-                  This could happen in following scenario:
+          See following scenario: (M:master, S:slave)
 
-               M:S1:BEGIN;
+            M:S1:BEGIN;
+            M:S2:BEGIN;
             S:S1:BEGIN;
-                       M:S1:SELECT 1; <-- only sent to MASTER
-                       M:S1:SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
-                       S:S1:SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
-                       M: <-- error
-                       S: <-- ok since no previous SELECT is sent. kind mismatch error occurs!
+            S:S2:BEGIN;
+            M:S1:SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
+            M:S2:SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
+            S:S1:SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
+            S:S2:SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
+            M:S1:UPDATE t1 SET i = i + 1;
+            S:S1:UPDATE t1 SET i = i + 1;
+            M:S2:UPDATE t1 SET i = i + 1; <-- blocked
+            S:S1:COMMIT;
+            M:S1:COMMIT;
+            M:S2:ERROR:  could not serialize access due to concurrent update
+            S:S2:UPDATE t1 SET i = i + 1; <-- success in UPDATE and data
+                                              becomes inconsistent!
+
+        - avoid kind mismatch error caused by "SET TRANSACTION
+          ISOLATION LEVEL must be called before any query"(Tatsuo Ishii).
+
+           This could happen in following scenario:
+
+            M:S1:BEGIN;
+            S:S1:BEGIN;
+            M:S1:SELECT 1; <-- only sent to MASTER
+            M:S1:SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
+            S:S1:SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
+            M: <-- error
+            S: <-- ok since no previous SELECT is sent. kind mismatch error occurs!
 
-               - Process status display has extra space on FreeeBSD(Jun Kuriyama)
+        - Process status display has extra space on FreeeBSD(Jun Kuriyama)
 
-               - Fix incorrect kind mismatch detection case. e.g: BEGIN;
-                 BEGIN; (Tatsuo)
+        - Fix incorrect kind mismatch detection case. e.g: BEGIN;
+          BEGIN; (Tatsuo Ishii)
 
-           - If PostgreSQL sends lots of DEBUG message, sometimes pgpool
-             complains:
-                 2008-11-08 22:41:53 ERROR: pid 23744: do_command: backend does not
-                 return ReadyForQuery. This due to a wrong assumption for the
-                 client/server protocol(Tatsuo)
+        - If PostgreSQL sends lots of DEBUG message, sometimes pgpool
+          complains:
+          2008-11-08 22:41:53 ERROR: pid 23744: do_command: backend does not
+          return ReadyForQuery. This due to a wrong assumption for the
+          client/server protocol(Tatsuo Ishii)
 
-               - Fix the case when sending an erronous query to abort
+        - Fix the case when sending an erronous query to abort
           transaction. It assumed that after sending an error query,
           always ReadyForQuery came right after that. If some
           debugging or logging verboseness is set, PostgreSQL might
-          sends NOTICE before ReadyForQuery(Tatsuo)
+          sends NOTICE before ReadyForQuery(Tatsuo Ishii)
 
-               - Query cancelation now works. It never worked since pgpool-II
-          was born(Tatsuo)
+        - Query cancelation now works. It never worked since pgpool-II
+          was born(Tatsuo Ishii)
 
-               - Fix online recovery to wait for failback done before
+        - Fix online recovery to wait for failback done before
           allowing to accept connections from clients. It was supposed
           to work like this but actually was not since the day 0 when
           online recovery was born. Without the fix there could be
-          potential data inconsistency among DB nodes(Tatsuo)
+          potential data inconsistency among DB nodes(Tatsuo Ishii)
 
-               - Fix pgpool-II crash after on line recovery. This happens
+        - Fix pgpool-II crash after on line recovery. This happens
           after the failback process adds a recovered node which has
-          no connection to the node(Tatsuo)
+          no connection to the node(Tatsuo Ishii)
 
-               - Fix pgpool-II errors when postgresql.conf is reloaded. This
+        - Fix pgpool-II errors when postgresql.conf is reloaded. This
           was caused by parameter status packet sent asynchronously
           from backend, which indicates the internal setting of
-          backend has been changed(Tatsuo)
+          backend has been changed(Tatsuo Ishii)
+
+      __________________________________________________________________
+
+* Incompatible changes
+
+        - Always fail over and restart all children. Before we do
+          restart only if master has not been changed. This is
+          wrong. If we have trouble with network cable or something,
+          TCP/IP stack keeps on retrying for long time and the only
+          way to prevent it is restarting process(Tatsuo Ishii)
+
+        - "logdir" is no more used. Instead use
+          "pid_file_name"(Tatsuo Ishii)
+
+        - Default value for insert_lock is now true(Tatsuo Ishii)
 
-         * Incompatible changes
 
-               - Always fail over and restart all children. Before we do
-                 restart only if master has not been changed. This is
-                 wrong. If we have trouble with network cable or something,
-                 TCP/IP stack keeps on retrying for long time and the only
-                 way to prevent it is restarting process(Tatsuo)
+===============================================================================
+2.1 Series (2008/07/25 - 2008/07/25)
+===============================================================================
 
-               - "logdir" is no more used. Instead use
-          "pid_file_name"(Tatsuo)
+                            2.1 (inamiboshi) 2008/7/25
 
-               - Default value for insert_lock is now true(Tatsuo)
+* Version 2.1
 
-2.1 (inamiboshi) 2008/7/25
-      * Version 2.1
+      __________________________________________________________________
+
+* New feature
 
-      * New feature
         - Add '%m' format to failover_command and failback_command to
-          obtain new master node ID. (Yoshiyuki)
+          obtain new master node ID. (Yoshiyuki Asaba)
         - Add '%m' format to failover_command and failback_command to
-          obtain old master node ID. (Yoshiyuki)
+          obtain old master node ID. (Yoshiyuki Asaba)
         - Add new directive "recovery_timeout" to specify recovery
-          timeout in second. (Taiki)
-        - Add optino '-v' to print pgpool version. (Yoshiyuki)
+          timeout in second. (Taiki Yamaguchi)
+        - Add optino '-v' to print pgpool version. (Yoshiyuki Asaba)
+
+      __________________________________________________________________
+
+* Incompatibility
 
-      * Incompatibility
         - Restrict pgpool_recovery() and pgpool_remote_start()
-          functions to superusers. (Yoshiyuki)
+          functions to superusers. (Yoshiyuki Asaba)
         - Do not create a connection pool to standby node in raw
-          mode. (Yoshiyuki)
-        - Remove "replication_timeout" parameter. (Yoshiyuki)
+          mode. (Yoshiyuki Asaba)
+        - Remove "replication_timeout" parameter. (Yoshiyuki Asaba)
           - This enabled if replication_strict was false. However,
             replication_strict was already removed.
-        - Ignore timeout argument of pcp commands. (Taiki)
+        - Ignore timeout argument of pcp commands. (Taiki Yamaguchi)
         - Do not replicate "COPY TO STDOUT" when replicate_select is
-          false. (Yoshiyuki)
+          false. (Yoshiyuki Asaba)
+
+      __________________________________________________________________
+
+* Bug fix
+
+    ** General
 
-      * Bug fix
-      ** General
         - Fix crash when CloseComplete message was
-          received. (Yoshiyuki)
-        - Improve network I/O routine. (Yoshiyuki)
-        - Fix compile errors on Solaris 10. (Yoshiyuki)
-        - Improve log messages of health check and recovery. (Tatsuo)
+          received. (Yoshiyuki Asaba)
+        - Improve network I/O routine. (Yoshiyuki Asaba)
+        - Fix compile errors on Solaris 10. (Yoshiyuki Asaba)
+        - Improve log messages of health check and recovery. (Tatsuo Ishii)
         - Change error level of the "failed to read kind from
-          frontend" message from ERROR to LOG. (Yoshiyuki)
-        - Fix failover failure in raw mode. (Taiki)
-        - Fix zombie process bug. (Yoshiyuki)
+          frontend" message from ERROR to LOG. (Yoshiyuki Asaba)
+        - Fix failover failure in raw mode. (Taiki Yamaguchi)
+        - Fix zombie process bug. (Yoshiyuki Asaba)
         - Fix health_check_timeout to work correctly. (Kenichi Sawada)
         - Support ps status on FreeBSD. (ISHIDA Akio)
         - Improve bind(2) failure report. (Jun Kuriyama)
         - Improve error message when client authentication
-          failed. (Tatsuo)
+          failed. (Tatsuo Ishii)
 
-      ** Replication
-        - Fix replicate_select to work correctly. (Tatsuo)
-        - Fix a wrong rollback bug with extended query. (Yoshiyuki)
-        - Fix a bug with asynchronous query. (Yoshiyuki)
+    ** Replication
+
+        - Fix replicate_select to work correctly. (Tatsuo Ishii)
+        - Fix a wrong rollback bug with extended query. (Yoshiyuki Asaba)
+        - Fix a bug with asynchronous query. (Yoshiyuki Asaba)
         - Fix hint clause handling like /*REPLICATION*/ with extended
-          query. (Yoshiyuki)
-        - Fix crash of "DEALLOCATE ALL". (Yoshiyuki)
+          query. (Yoshiyuki Asaba)
+        - Fix crash of "DEALLOCATE ALL". (Yoshiyuki Asaba)
         - Fix hang up when a backend node does immediate
-          shutdown. (Yoshiyuki)
-        - Fix hang up online recovery in high load. (Yoshiyuki)
+          shutdown. (Yoshiyuki Asaba)
+        - Fix hang up online recovery in high load. (Yoshiyuki Asaba)
         - Fix hang up with extended query protocol when SELECT is
-          failed inside a transaction block. (Yoshiyuki)
+          failed inside a transaction block. (Yoshiyuki Asaba)
+
+    ** Master Slave
 
-      ** Master Slave
-        - Fix load balancing to work correctly. (Yoshiyuki)
+        - Fix load balancing to work correctly. (Yoshiyuki Asaba)
         - Fix crash if SET, PREPARE or DEALLOCATE is executed inside a
-          transaction block. (Yoshiyuki)
+          transaction block. (Yoshiyuki Asaba)
 
-      ** Parallel query
-        - Fix INSERT failure. (Yoshiharu)
+    ** Parallel query
+
+        - Fix INSERT failure. (Yoshiharu Mori)
         - Fix syntax error when a query contains "AS" in FROM
           clause. (sho)
-        - Fix Hung up when two or more statment was executed 
-          in parallel mode (Yoshiharu)
+        - Fix Hung up when two or more statment was executed
+          in parallel mode (Yoshiharu Mori)
         - Fix Query rewriting of Join Expression and DISTINCT ON
-          (Yoshiharu)
+          (Yoshiharu Mori)
+
+===============================================================================
+2.0 Series (2007/11/16 - 2007/11/21)
+===============================================================================
+
+                    2.0.1 (hikitsuboshi) 2007/11/21
 
-2.0.1 (hikitsuboshi) 2007/11/21
       * Version 2.0.1
-      * Fix process down with UPDATE or DELETE query.(Yoshiyuki)
+      * Fix process down with UPDATE or DELETE query.(Yoshiyuki Asaba)
       * Send a syntax query only to a master node if master_slave is
-        true.(Yoshiyuki)
+        true.(Yoshiyuki Asaba)
+
+===============================================================================
 
-2.0 (hikitsuboshi) 2007/11/16
-      * Version 2.0
+                    2.0 (hikitsuboshi) 2007/11/16
+
+* Version 2.0
+
+      __________________________________________________________________
+
+* Incompatibility since pgpool-II 1.x
 
-      * Incompatibility since pgpool-II 1.x
         - the default value for ignore_leading_white_space is now
-          true(Yoshiyuki
+          true(Yoshiyuki Asaba)
         - replicate_strict is removed. The value is always
-          true(Yoshiyuki)
+          true(Yoshiyuki Asaba)
+
+      __________________________________________________________________
 
-      * General
-        - Allow to reload pgpool.conf(Yoshiyuki)
-        - The paraser is now compatible with PostgreSQL 8.3(Yoshiyuki)
+* General
+        - Allow to reload pgpool.conf(Yoshiyuki Asaba)
+        - The paraser is now compatible with PostgreSQL 8.3(Yoshiyuki Asaba)
         - Add new directive "failover_command" to specify command when
-          a node is detached(Yoshiyuki)
+          a node is detached(Yoshiyuki Asaba)
         - Add new directive "client_idle_limit" to specify the time out since
-          the last command is arrived from a client(Tatsuo)
+          the last command is arrived from a client(Tatsuo Ishii)
+
+      __________________________________________________________________
+
+* Replication
 
-      * Replication
         - Always start a new transaction even if the query is not in
           an explicit transaction to enhance the reliabilty of
-          replication(Yoshiyuki)
+          replication(Yoshiyuki Asaba)
         - Enhance the performance of replication for write
           queries. Now the worst case is 1/2 compared with single DB
           node regardless the number of DB nodes. Previous release
           tends to degrade according to the numer of DB
-          nodes(Yoshiyuki)
+          nodes(Yoshiyuki Asaba)
         - Add "online recovery" which allows to add a DB node and sync
           with other DB nodes without stopping the pgpool
-          server(Yoshiyuki)
+          server(Yoshiyuki Asaba)
         - Abort a transaction if INSERT, UPDATE and DELETE reports
-          different number of result rows(Yoshiyuki)
+          different number of result rows(Yoshiyuki Asaba)
 
           x=# update t set a = a + 1;
           ERROR:  pgpool detected difference of the number of update tuples
         - If the results from DB nodes do not match, select the
           possible correct result by "decide by majority". Previous
           release always trust the result of the master DB
-          node(Yoshiyuki)
-        - Allow load balance in V2 frontend/backend protocol(Yoshiyuki)
+          node(Yoshiyuki Asaba)
+        - Allow load balance in V2 frontend/backend protocol(Yoshiyuki Asaba)
+
+      __________________________________________________________________
+
+* Parallel query
 
-      * Parallel query
         - Allow "partial replication" to enhance the performance of
-          the parallel query(Yoshiharu)
+          the parallel query(Yoshiharu Mori)
+
+
+===============================================================================
+1.3 Series (2007/10/23 - 2007/10/23)
+===============================================================================
+
+                        1.3 (sohiboshi) 2007/10/23
 
-1.3 (sohiboshi) 2007/10/23
       * Version 1.3
       * Add new "authentication_timeout" directive, being the default
-        value is 60. (Yoshiyuki)
+        value is 60. (Yoshiyuki Asaba)
         - Maximum time in seconds to complete client authentication.
       * Reject a connection when startup packet length is greater than
-        10,000 byte. (Yoshiyuki)
+        10,000 byte. (Yoshiyuki Asaba)
       * Fix invalid memory access when pgpool processed DEALLOCATE
-        statement. (Yoshiyuki)
-      * Fix hang up in load balance mode. (Yoshiyuki)
+        statement. (Yoshiyuki Asaba)
+      * Fix hang up in load balance mode. (Yoshiyuki Asaba)
         - This was introduced in V1.2.
       * Fix segmentation fault in 64-bit environment when query cache
-        is enable. (Yoshiyuki)
+        is enable. (Yoshiyuki Asaba)
+
+
+===============================================================================
+1.2 Series (2007/08/01 - 2007/09/28)
+===============================================================================
+
+                        1.2.1 (tomoboshi) 2007/09/28
 
-1.2.1 (tomoboshi) 2007/09/28
       * Version 1.2.1
-      * Fix deadlock while processing Parse message. (Yoshiyuki)
-      * Fix memory leak in reset_prepared_list(). (Yoshiyuki)
-      * Fix compile error on FreeBSD 4.11. (Yoshiyuki)
+      * Fix deadlock while processing Parse message. (Yoshiyuki Asaba)
+      * Fix memory leak in reset_prepared_list(). (Yoshiyuki Asaba)
+      * Fix compile error on FreeBSD 4.11. (Yoshiyuki Asaba)
       * SET, PREPARE and DEALLOCATE statements are replicated in
-        master/slave mode. (Yoshiyuki)
+        master/slave mode. (Yoshiyuki Asaba)
+
+===============================================================================
+
+                        1.2 (tomoboshi) 2007/08/01
 
-1.2 (tomoboshi) 2007/08/01
       * Version 1.2
       * Add new "replicate_select" directive, being the default value
-        is false. (Yoshiyuki
+        is false. (Yoshiyuki Asaba)
         - If it is true, SELECT query is replicated. This behavior is
           same as V3.2 or earlier.
-      * Improve signal handling. (Yoshiyuki)
+      * Improve signal handling. (Yoshiyuki Asaba)
         - 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 
+        block. The bug was introduced in V3.3. (Yoshiyuki Asaba)
+      * Fix PREPARE/EXECUTE handling in master slave mode. (Yoshiyuki Asaba)
+      * Fix "kind mismatch error" when deadlock error
       * Fix hang up and SEGV in extended query protocol when a warning
-        SQL like "SELECT '\'';" executed. (Yoshiyuki)
+        SQL like "SELECT '\'';" executed. (Yoshiyuki Asaba)
       * Fix hang up when postmaster did fast or immediate
-        shutdown. (Yoshiyuki)
-      * Fix memory leak when connection cache was full. (Yoshiyuki)
+        shutdown. (Yoshiyuki Asaba)
+      * Fix memory leak when connection cache was full. (Yoshiyuki Asaba)
       * Load balancing node is selected when a session
-        starts. (Yoshiyuki)
+        starts. (Yoshiyuki Asaba)
       * Fix buffer overrun if connection_life_time was
-        set. (Yoshiyuki)
+        set. (Yoshiyuki Asaba)
+
+
+===============================================================================
+1.1 Series (2007/5/25 - 2007/6/15)
+===============================================================================
+
+                            1.1.1 (amiboshi) 2007/6/15
 
-1.1.1 (amiboshi) 2007/6/15
       * Version 1.1.1
       * Fix "kind mismatch" bug when load_balance_mode is true
-        introduced in 1.1 (Yoshiyuki)
-      * Fix deadlock with extended query protocol(Yoshiyuki)
-      * Fix numerous bugs with protocol V2(Yoshiyuki)
+        introduced in 1.1 (Yoshiyuki Asaba)
+      * Fix deadlock with extended query protocol(Yoshiyuki Asaba)
+      * Fix numerous bugs with protocol V2(Yoshiyuki Asaba)
+
+===============================================================================
+
+                            1.1 (amiboshi) 2007/5/25
 
-1.1 (amiboshi) 2007/5/25
       * Version 1.1
-      * Support HBA authentication(Taiki)
-      * Support log_connections(Taiki)
-      * Support log_hostname(Taiki)
-      * Show pgpool status in ps command(Taiki)
-      * Fix compile error on MacOS X(Yoshiyuki)
-      * Allow load balancing with extended protocol(Yoshiyuki)
+      * Support HBA authentication(Taiki Yamaguchi)
+      * Support log_connections(Taiki Yamaguchi)
+      * Support log_hostname(Taiki Yamaguchi)
+      * Show pgpool status in ps command(Taiki Yamaguchi)
+      * Fix compile error on MacOS X(Yoshiyuki Asaba)
+      * Allow load balancing with extended protocol(Yoshiyuki Asaba)
       * Improve replication. SELECT nextval() and SELECT setval() are
-        now replicated. (Yoshiyuki)
-      * Change SELECT query is only sent to the master node. (Yoshiyuki)
+        now replicated. (Yoshiyuki Asaba)
+      * Change SELECT query is only sent to the master node. (Yoshiyuki Asaba)
         - Use /*REPLICATION*/ comment to repliate a SELECT query.
       * Fix unexpected failover error due to receiving an interrupt
-        signal while connecting to the backend. (Yoshiyuki)
+        signal while connecting to the backend. (Yoshiyuki Asaba)
       * Add "pgpool.pam" file, for PAM configuration file, to be
-        installed under "$PREFIX/share/pgpool-II/". (Taiki)
-      * Fix core dump when executing large SQL. (Yoshiyuki)
+        installed under "$PREFIX/share/pgpool-II/". (Taiki Yamaguchi)
+      * Fix core dump when executing large SQL. (Yoshiyuki Asaba)
+
+
+===============================================================================
+1.0 Series (2006/09/08 - 2007/02/12)
+===============================================================================
+
+                            1.0.2 (suboshi) 2007/02/12
 
-1.0.2 (suboshi) 2007/02/12
       * Version 1.0.2
       * Fix bug when executing large SQL to prevent pgpool goes into
-        infinite loop(Yoshiyuki)
-      * Fix bug with extended protocol handling(Yoshiyuki)
-      * Enhance log for failover and failback(Tatsuo)
-      * Add backend status info to show pool_status(Tatsuo)
-      * Fix UPDATE/DELETE returns wrong number of rows(Tatsuo)
+        infinite loop(Yoshiyuki Asaba)
+      * Fix bug with extended protocol handling(Yoshiyuki Asaba)
+      * Enhance log for failover and failback(Tatsuo Ishii)
+      * Add backend status info to show pool_status(Tatsuo Ishii)
+      * Fix UPDATE/DELETE returns wrong number of rows(Tatsuo Ishii)
       * Fix configure fails to link libpq when used with older
-        version of gcc(Yoshiyuki)
-      * Fix DEALLOCATE treatment when used with PHP:PDO DBD-Pg(Yoshiyuki)
+        version of gcc(Yoshiyuki Asaba)
+      * Fix DEALLOCATE treatment when used with PHP:PDO DBD-Pg(Yoshiyuki Asaba)
       * Do not load balance SELECT FOR UPDATE, SELECT INTO and SELECT
         with comments. This behavior is compatible with
-        pgpool-I(Yoshiyuki)
+        pgpool-I(Yoshiyuki Asaba)
       * Obtain path to libpq using pg_config. --with-pgsql will be
-        removed in next version(Yoshiyuki
+        removed in next version(Yoshiyuki Asaba)
       * When reusing connection pool, reconnect to backend if the
-        socket is broken(Yoshiyuki)
+        socket is broken(Yoshiyuki Asaba)
       * Fix error with configure when used with PostgreSQL
-        7.4(Yoshiyuki)
+        7.4(Yoshiyuki Asaba)
+
+===============================================================================
+
+                            1.0.1 (suboshi) 2006/09/22
 
-1.0.1 (suboshi) 2006/09/22
       * Version 1.0.1
       * This version fixes bugs including master/slave not being
         working, deadlock problem in COPY FROM STDIN. Also documents
         are improved.
 
-1.0.0 (suboshi) 2006/09/08
+===============================================================================
+
+                            1.0 (suboshi) 2006/09/08
+
       * Initial release
 
 Local Variables:
index 759b349eb9e2dbd8f9cfbb02845ea05dfcafbc65..de81ce4e1248fe4a07ccd995b45f4f737dad1bc1 100644 (file)
@@ -48,9 +48,9 @@ Last modified: Sat Apr  5 18:19:36 JST 2014
     </div>
     <br />
 
-       <div class="header_small" align="center">
+        <div class="header_small" align="center">
 
-               [<a href="pgpool-en.html">English page</a>]             </div>  </td>
+            [<a href="pgpool-en.html">English page</a>]        </div>    </td>
     <td valign="top" style="border-left:1px dotted #cccccc;">
 
 
@@ -458,33 +458,33 @@ PostgreSQLのUNIXドメインソケットが置かれているディレクトリ
     これを超えた場合は、そのクライアントは、pgpool-IIのどれからのプロセスへのフロントエンドの接続が終了するまで
     待たされます(PostgreSQLと違ってエラーになりません)。
     待たされる数の上限は、2 * num_init_children です。
-       待ち行列は、OS内部に作られ、「listenキュー」と呼ばれます。listenキューの長さは「バックログ」と呼ばれます。
-       システムによってはバックログの上限が設定されており、2 * num_init_children がこれを越える場合はシステム側の設定変更が必要になります。
-               さもないと高負荷時にlistenキューが溢れ、pgpool-IIへの接続が失敗したり、システム内で行われるリトライにより著しく性能が低下することがあります。
-               listenキューが溢れているかどうかは、"netstat -s"で確認できます。"TcpExt"のパートで、
-               </p>
-               <p>
-               <pre>
+    待ち行列は、OS内部に作られ、「listenキュー」と呼ばれます。listenキューの長さは「バックログ」と呼ばれます。
+    システムによってはバックログの上限が設定されており、2 * num_init_children がこれを越える場合はシステム側の設定変更が必要になります。
+        さもないと高負荷時にlistenキューが溢れ、pgpool-IIへの接続が失敗したり、システム内で行われるリトライにより著しく性能が低下することがあります。
+        listenキューが溢れているかどうかは、"netstat -s"で確認できます。"TcpExt"のパートで、
+        </p>
+        <p>
+        <pre>
 535 times the listen queue of a socket overflowed
-               </pre>
-               </p>
-               <p>
-               のようなメッセージが出ていればlistenキューが溢れています。listenキュー溢れを防ぐためにバックログを大きくするには、Linuxでは以下のようにします(root権限が必要です)。
-               </p>
-               <p>
-               <pre>
+        </pre>
+        </p>
+        <p>
+        のようなメッセージが出ていればlistenキューが溢れています。listenキュー溢れを防ぐためにバックログを大きくするには、Linuxでは以下のようにします(root権限が必要です)。
+        </p>
+        <p>
+        <pre>
 # sysctl net.core.somaxconn
 net.core.somaxconn = 128
 # sysctl -w net.core.somaxconn = 256
-               </pre>
-               </p>
-               <p>
-               もちろん、/etc/sysctl.confに以下のように書いても構いません。
-               </p>
-               <p>
-               <pre>
+        </pre>
+        </p>
+        <p>
+        もちろん、/etc/sysctl.confに以下のように書いても構いません。
+        </p>
+        <p>
+        <pre>
 net.core.somaxconn = 256
-               </pre>
+        </pre>
     </p>
     <p>
     基本的に後述のmax_pool * num_init_children分だけPostgreSQLへのコネクションが張られますが、
@@ -1760,7 +1760,7 @@ max_wal_senders = 1
 以下は例ですので、必ず実際に合わせて調整してください。
 
 <pre>
-host    replication    postgres                192.168.0.10/32         trust
+host    replication    postgres        192.168.0.10/32        trust
 </pre>
 
 </ol>
@@ -1788,11 +1788,11 @@ pgpool-IIのStreaming Replicationモードは、こうした振り分けを自
        <li>トランザクションの分離レベルがシリアライザブルの場合のSELECT
        <li>ROW EXCLUSIVE MODEよりも強いLOCK
        <li>トランザクションコマンドの一部
-               <ul>
-                <li>BEGIN READ WRITE, START TRANSACTION READ WRITE
-                <li>SET TRANSACTION READ WRITE, SET SESSION CHARACTERISTICS AS TRANSACTION READ WRITE
-                <li>SET transaction_read_only = off
-               </ul>
+            <ul>
+             <li>BEGIN READ WRITE, START TRANSACTION READ WRITE
+             <li>SET TRANSACTION READ WRITE, SET SESSION CHARACTERISTICS AS TRANSACTION READ WRITE
+             <li>SET transaction_read_only = off
+            </ul>
        <li>二相コミット関連のコマンド。PREPARE TRANSACTION, COMMIT PREPARED, ROLLBACK PREPARED
        <li>LISTEN, UNLISTEN, NOTIFY
        <li>VACUUM
@@ -2049,13 +2049,13 @@ num_init_children = 想定される同時接続数 * ( 1 + クエリの中で使
 
 <pre>
 CREATE TABLE pgpool_catalog.dist_def(
-    dbname TEXT,       -- DB名
-    schema_name TEXT,  --schema名
-    table_name TEXT,   -- テーブル名
-    col_name TEXT NOT NULL CHECK (col_name = ANY (col_list)),  -- 分散キー列名
-    col_list TEXT[] NOT NULL,  -- tableの属性名
-    type_list TEXT[] NOT NULL, -- 属性のタイプ名
-    dist_def_func TEXT NOT NULL,       -- 分散先のDBノードを決定する関数名
+    dbname TEXT,    -- DB名
+    schema_name TEXT,    --schema名
+    table_name TEXT,    -- テーブル名
+    col_name TEXT NOT NULL CHECK (col_name = ANY (col_list)),    -- 分散キー列名
+    col_list TEXT[] NOT NULL,    -- tableの属性名
+    type_list TEXT[] NOT NULL,    -- 属性のタイプ名
+    dist_def_func TEXT NOT NULL,    -- 分散先のDBノードを決定する関数名
     PRIMARY KEY (dbname,schema_name,table_name)
 );
 </pre>
@@ -2069,11 +2069,11 @@ CREATE TABLE pgpool_catalog.dist_def(
 
 <pre>
 CREATE TABLE pgpool_catalog.replicate_def(
-    dbname TEXT,       -- DB名
-    schema_name TEXT,  --schema名
-    table_name TEXT,   -- テーブル名
-    col_list TEXT[] NOT NULL,  -- tableの属性名
-    type_list TEXT[] NOT NULL, -- 属性のタイプ名
+    dbname TEXT,    -- DB名
+    schema_name TEXT,    --schema名
+    table_name TEXT,    -- テーブル名
+    col_list TEXT[] NOT NULL,    -- tableの属性名
+    type_list TEXT[] NOT NULL,    -- 属性のタイプ名
     PRIMARY KEY (dbname,schema_name,table_name)
 );
 </pre>
@@ -2662,10 +2662,10 @@ pgpool_switch_xlog 関数の基本動作は pg_switch_xlog 関数と同じです
 #! /bin/sh
 # Online recovery 2nd stage script
 #
-datadir=$1     # master dabatase cluster
-DEST=$2                # hostname of the DB node to be recovered
-DESTDIR=$3     # database cluster of the DB node to be recovered
-port=5432      # PostgreSQL port number
+datadir=$1        # master dabatase cluster
+DEST=$2            # hostname of the DB node to be recovered
+DESTDIR=$3        # database cluster of the DB node to be recovered
+port=5432        # PostgreSQL port number
 archdir=/data/archive_log    # archive log directory
 
 # Force to flush current value of sequences to xlog
@@ -3513,9 +3513,9 @@ configure に失敗します。必ず libpq 3.0 以降(PostgreSQL 7.4以降) を
    $ pcp_node_count [-d] 10 localhost 9898 postgres hogehoge
 
     第一引数    - タイムアウト値
-       秒数でタイムアウト値を指定します。この時間内にpgpool-IIから応
-       答がない場合はコネクションを切断して終了します。なお、
-       このオプションは 2.1 からは無視するようになっています。
+        秒数でタイムアウト値を指定します。この時間内にpgpool-IIから応
+        答がない場合はコネクションを切断して終了します。なお、
+        このオプションは 2.1 からは無視するようになっています。
     第二引数    - pgpool-IIが稼動しているホスト名
     第三引数    - PCPポート番号
     第四引数    - PCPユーザ名
@@ -3777,20 +3777,20 @@ desc : PCP port # to bind
    PCPコマンドは正常に処理を終了した場合、ステータス'0'で終了します。エラーが起
    きた場合は以下のステータスにより終了します。
 <pre>
-   UNKNOWNERR    1     不明なエラー
-   EOFERR    2 EOFエラー
-   NOMEMERR    3       メモリ不足
-   READERR    4        サーバからのデータ読み込みエラー
-   WRITEERR    5       サーバへのデータ書き込みエラー
-   TIMEOUTERR    6     タイムアウト
-   INVALERR    7       PCPコマンドへの不正なオプション
-   CONNERR    8        サーバ接続エラー
-   NOCONNERR    9      接続が存在しない
-   SOCKERR    10       ソケットエラー
-   HOSTERR    11       ホスト名解決エラー
-   BACKENDERR    12    サーバでのPCP処理エラー。存在しないプロセスIDの情報を取
-               得しようとした場合など
-   AUTHERR    13       認証エラー
+   UNKNOWNERR    1    不明なエラー
+   EOFERR    2    EOFエラー
+   NOMEMERR    3    メモリ不足
+   READERR    4    サーバからのデータ読み込みエラー
+   WRITEERR    5    サーバへのデータ書き込みエラー
+   TIMEOUTERR    6    タイムアウト
+   INVALERR    7    PCPコマンドへの不正なオプション
+   CONNERR    8    サーバ接続エラー
+   NOCONNERR    9    接続が存在しない
+   SOCKERR    10    ソケットエラー
+   HOSTERR    11    ホスト名解決エラー
+   BACKENDERR    12    サーバでのPCP処理エラー。存在しないプロセスIDの情報を取
+            得しようとした場合など
+   AUTHERR    13    認証エラー
 </pre>
 </p>
 
@@ -4036,13 +4036,13 @@ L 状態の場合には、pgpool.confのloadbalance_modeがtrueの場合には
 </p>
 <pre>
     SELECT L1-table.col FROM dblink(SELECT loadbalance(SELECT L1-table.col FROM L1-table WHERE L1-table.col % 2 = 0 AND TRUE))
-       WHERE
-               L1-table.col %2 = 0 AND
-         L1-table.col IN
-         (
-               SELECT P1-Table FROM
-               dblink(select pool_parallel(SELECT P1-table FROM P1-table))
-         ) ;
+        WHERE
+            L1-table.col %2 = 0 AND
+          L1-table.col IN
+          (
+              SELECT P1-Table FROM
+              dblink(select pool_parallel(SELECT P1-table FROM P1-table))
+          ) ;
 </pre>
 <p>
 ここで、pool_loadbalanceはクエリをいずれかのノードに送信する関数です。
@@ -4075,7 +4075,7 @@ FROM 句が P 状態で count(*) を使ったクエリは、以下のように
         sum(pool_c$1) as count
     FROM
         dblink(select pool_parallel('select count(*) from  P1-table'))
-                               AS pool_$1g (pool_c$1 bigint);
+                    AS pool_$1g (pool_c$1 bigint);
 </pre>
 
 <p>
@@ -4125,7 +4125,13 @@ pgpool-IIのチュートリアルは<a href="tutorial-ja.html">ここ</a>にあ
 
 <h1>リリースノート<a name="release"></a></h1>
 
+<!-- ================================================================================ -->
+<!-- 3.1                                                                              -->
+<!-- ================================================================================ -->
+
+<!-- -------------------------------------------------------------------------------- -->
 <h2><a name="release3.1.11"></a>3.1.11 (hatsuiboshi) 2014/03/24</h2>
+<!-- -------------------------------------------------------------------------------- -->
 <h3>概要</h3>
 <p>
 このバージョンは 3.1.10 に対するバグ修正リリースです。
@@ -4136,15 +4142,15 @@ pgpool-IIのチュートリアルは<a href="tutorial-ja.html">ここ</a>にあ
 
 <li>
     doc: num_init_children の項に「listen キュー」の説明とその「バックログ」を増やす方法について追記しました。
-       (Tatsuo Ishii)
+    (Tatsuo Ishii)
 </li>
 
 <li>
     UNLOGGED テーブルを検出する処理のパフォーマンスが悪かったのを修正しました。
-       (Tatsuo Ishii)
+    (Tatsuo Ishii)
     <p>
     この問題は <a href="http://www.sraoss.jp/pipermail/pgpool-hackers/2014-January/000435.html">[pgpool-hackers: 435]</a>
-       <a href="http://www.sraoss.jp/pipermail/pgpool-general/2013-December/002354.html">[pgpool-general:2325]</a> で指摘されました。
+    <a href="http://www.sraoss.jp/pipermail/pgpool-general/2013-December/002354.html">[pgpool-general:2325]</a> で指摘されました。
     </p>
 </li>
 
@@ -4152,10 +4158,10 @@ pgpool-IIのチュートリアルは<a href="tutorial-ja.html">ここ</a>にあ
     プライマリノードの検出ロジックを修正しました。(Tatsuo Ishii)
     <p>
     プライマリノードが検出されないことがありました。例えば、node 0 がプライマリ、node 1
-       がスタンバイのときに、node 0 が落ちたとします。ヘルスチェックがそれを検出しますが、
-       内部のステータスがまだ更新されていない場合 node 0 には問題がないよう見えるため node 0
-       への接続が試みられます。実際にはこの接続は失敗するため、node 1
-       が新プライマリであることを検出する前に処理が終了していました。
+    がスタンバイのときに、node 0 が落ちたとします。ヘルスチェックがそれを検出しますが、
+    内部のステータスがまだ更新されていない場合 node 0 には問題がないよう見えるため node 0
+    への接続が試みられます。実際にはこの接続は失敗するため、node 1
+    が新プライマリであることを検出する前に処理が終了していました。
     </p>
     <p>
     この問題は <a href="http://www.sraoss.jp/pipermail/pgpool-general/2014-January/002442.html">[pgpool-general: 2409]</a> にて報告されました。
@@ -4164,7 +4170,7 @@ pgpool-IIのチュートリアルは<a href="tutorial-ja.html">ここ</a>にあ
 
 <li>
     raw モードで自動コミットが off で JDBC を使用したときに、DML
-       が失敗するバグを修正しました。(Tatsuo Ishii)
+    が失敗するバグを修正しました。(Tatsuo Ishii)
     <p>
     この問題は <a href="http://www.pgpool.net/mantisbt/view.php?id=92">bug #92</a> で報告されました。
     </p>
@@ -4172,15 +4178,15 @@ pgpool-IIのチュートリアルは<a href="tutorial-ja.html">ここ</a>にあ
 
 <li>
     ストリーミングレプリケーションモードで無関係なノードにはクエリを送信しないように修正しました。
-       (Tatsuo Ishii)
+    (Tatsuo Ishii)
     <p>
     pgpool-II は BEGIN, END, SET などのクエリを全ての DB ノードに送っています。
-       しかし、ストリーミングレプリケーションではプライマリノードと高々1台のスタンバイノードにしか送る必要がありません。
-       (もしプライマリノードがロードバランスノードとして選択されている場合には1台だけで充分です。)
+    しかし、ストリーミングレプリケーションではプライマリノードと高々1台のスタンバイノードにしか送る必要がありません。
+    (もしプライマリノードがロードバランスノードとして選択されている場合には1台だけで充分です。)
     </p>
     <p>
     詳細は <a href="http://www.sraoss.jp/pipermail/pgpool-hackers/2014-February/000464.html">
-       [pgpool-hackers: 464]</a> を参照してください。
+    [pgpool-hackers: 464]</a> を参照してください。
     </p>
 </li>
 
@@ -4214,14 +4220,14 @@ pgpool-IIのチュートリアルは<a href="tutorial-ja.html">ここ</a>にあ
 
 <li>
     パラレルモードで system_db_hostname
-       が空欄の場合に発生するセグメンテーションフォルトを修正しました。
-       (Yugo Nagata)
+    が空欄の場合に発生するセグメンテーションフォルトを修正しました。
+    (Yugo Nagata)
 </li>
 
 <li>
     -d オプションで起動した場合に pgpool.conf
-       の処理中のデバッグメッセージを出力するように修正しました
-       (Yugo Nagata)
+    の処理中のデバッグメッセージを出力するように修正しました
+    (Yugo Nagata)
     <p>
     以前は -d オプション使用時でも出力されていないデバッグメッセージがありました。
     </p>
@@ -4229,31 +4235,31 @@ pgpool-IIのチュートリアルは<a href="tutorial-ja.html">ここ</a>にあ
 
 <li>
     レプリケーションモードで JDBC 使用時に now()
-       を含む準備文で発生する例外を修正しました。(Yugo Nagata)
+    を含む準備文で発生する例外を修正しました。(Yugo Nagata)
     <p>
     JDBC で準備文を PrepareThreshold 回以上実行した場合には、文に名前が付けられ Parse
-       の後に Describe メッセージが発行されます。このとき、pgpool は now()
-       をパラメータに書き換えるため、元のクエリには無かった新しいパラメータが追加されます。
-       この場合、フロントエンドに返されるParameterDscription メッセージ(Describe
-       の返答)は、元のクエリが持つパラメータと同じ数の OID を含むべきです。そうしないと、JDBC
-       はArrayIndexoutOfBoundsException 例外を発生させてしまいます。
+    の後に Describe メッセージが発行されます。このとき、pgpool は now()
+    をパラメータに書き換えるため、元のクエリには無かった新しいパラメータが追加されます。
+    この場合、フロントエンドに返されるParameterDscription メッセージ(Describe
+    の返答)は、元のクエリが持つパラメータと同じ数の OID を含むべきです。そうしないと、JDBC
+    はArrayIndexoutOfBoundsException 例外を発生させてしまいます。
     </p>
     <p>
     このバグは <a href="http://www.sraoss.jp/pipermail/pgpool-general-jp/2013-September/001191.html">
-       [pgpool-general-jp: 1192]</a> で報告されました。
+    [pgpool-general-jp: 1192]</a> で報告されました。
     </p>
 </li>
 
 <li>
     レプリケーションモードにて、デフォルト値が now()
-       のカラムを持つテーブルに対する準備文でエラーが発生するバグを修正しました。
-       (Yugo Nagata)
+    のカラムを持つテーブルに対する準備文でエラーが発生するバグを修正しました。
+    (Yugo Nagata)
     <p>
     デフォルト値が now() を持つ名前付き準備文を parse する際に、pgpool-II
-       は時刻値をパラメータで置き換えます。そのため、その後の bind
-       メッセージも追加されたパラメータの形式コードを含んでいる必要があります。
-       しかし、元のクエリのパラーメータ形式数が1だった場合、この処理がなされていませんでした。これが
-       "incorrect binary data format in bind parameter 2" のようなエラーの原因となっていました。
+    は時刻値をパラメータで置き換えます。そのため、その後の bind
+    メッセージも追加されたパラメータの形式コードを含んでいる必要があります。
+    しかし、元のクエリのパラーメータ形式数が1だった場合、この処理がなされていませんでした。これが
+    "incorrect binary data format in bind parameter 2" のようなエラーの原因となっていました。
     </p>
 </li>
 
@@ -4270,7 +4276,6 @@ pgpool-IIのチュートリアルは<a href="tutorial-ja.html">ここ</a>にあ
 <!-- -------------------------------------------------------------------------------- -->
 <h2><a name="release3.1.10"></a>3.1.10 (tokakiboshi) 2013/12/06</h2>
 <!-- -------------------------------------------------------------------------------- -->
-
 <h3>概要</h3>
 <p>
 このバージョンは 3.1.9 に対するバグ修正リリースです。
@@ -4403,7 +4408,9 @@ parse によるロックが残存するためです。</p>
 
 </ul>
 
+<!-- -------------------------------------------------------------------------------- -->
 <h2><a name="release3.1.9"></a>3.1.9 (hatsuiboshi) 2013/09/06</h2>
+<!-- -------------------------------------------------------------------------------- -->
 <h3>概要</h3>
 <p>
 このバージョンは 3.1.8 に対するバグ修正リリースです。
@@ -4441,7 +4448,9 @@ parse によるロックが残存するためです。</p>
 
 </ul>
 
+<!-- -------------------------------------------------------------------------------- -->
 <h2><a name="release3.1.8"></a>3.1.8 (hatsuiboshi) 2013/07/10</h2>
+<!-- -------------------------------------------------------------------------------- -->
 <h3>概要</h3>
 <p>
 このバージョンは 3.1.7 に対するバグ修正リリースです。
@@ -4552,7 +4561,9 @@ pcp_recovery_node コマンドで、バックエンドノード番号をチェ
 </li>
 </ul>
 
+<!-- -------------------------------------------------------------------------------- -->
 <h2><a name="release3.1.7"></a>3.1.7 (hatsuiboshi) 2013/04/26</h2>
+<!-- -------------------------------------------------------------------------------- -->
 <h3>概要</h3>
 <p>このバージョンは3.1.6に対するバグ修正リリースです。</p>
 <ul>
@@ -4665,7 +4676,9 @@ md5認証で長いユーザ名を処理する際のバグを修正しました
 
 </ul>
 
+<!-- -------------------------------------------------------------------------------- -->
 <h2><a name="release3.1.6"></a>3.1.6 (hatsuiboshi) 2013/02/08</h2>
+<!-- -------------------------------------------------------------------------------- -->
 <h3>概要</h3>
 <p>このバージョンは3.1.5に対するバグ修正リリースです。</p>
 <ul>
@@ -4775,20 +4788,6 @@ md5認証で長いユーザ名を処理する際のバグを修正しました
 
 <li>pg_md5 で、ユーザからのパスワード入力の後には改行するように修正しました。 (Yugo Nagata)</li>
 
-<li>watchdog のポート番号が既に使用されていた場合にエラーメッセージを出力するよう修正しました。
-  (Yugo Nagata)
-<p>
-  この問題は [pgpool-general: 1167] で Will Ferguson さんによって報告されました。
-</p>
-<blockquote>
-  [pgpool-general: 1167] Re: Watchdog error - wd_init: delegate_IP already exists<br />
-  From: Will Ferguson<br />
-  Date: Tue, 6 Nov 2012 13:03:36 +0000<br />
-  <a href="http://www.sraoss.jp/pipermail/pgpool-general/2012-November/001186.html">
-  http://www.sraoss.jp/pipermail/pgpool-general/2012-November/001186.html</a>
-</blockquote>
-</li>
-
 <li>コネクションプールが存在しない場合には、child_exit() が send_frontend_exits()
   を呼ばないよう修正しました。 (Tatsuo Ishii)
 <p>
@@ -4832,7 +4831,9 @@ md5認証で長いユーザ名を処理する際のバグを修正しました
 </li>
 </ul>
 
+<!-- -------------------------------------------------------------------------------- -->
 <h2><a name="release3.1.5"></a>3.1.5 (hatsuiboshi) 2012/10/12</h2>
+<!-- -------------------------------------------------------------------------------- -->
 <h3>概要</h3>
 <p>このバージョンは3.1.4に対するバグ修正リリースです。</p>
 
@@ -4925,7 +4926,9 @@ md5認証で長いユーザ名を処理する際のバグを修正しました
 </li>
 </ul>
 
+<!-- -------------------------------------------------------------------------------- -->
 <h2><a name="release3.1.4"></a>3.1.4 (hatsuiboshi) 2012/08/06</h2>
+<!-- -------------------------------------------------------------------------------- -->
 <h3>概要</h3>
 <p>このバージョンは3.1.3に対するバグ修正リリースです。</p>
 <p>また、PostgreSQL 9.2 に対応しました。</p>
@@ -5057,7 +5060,9 @@ md5認証で長いユーザ名を処理する際のバグを修正しました
 </li>
 </ul>
 
+<!-- -------------------------------------------------------------------------------- -->
 <h2><a name="release3.1.3"></a>3.1.3 (hatsuiboshi) 2012/04/23</h2>
+<!-- -------------------------------------------------------------------------------- -->
 <h3>概要</h3>
 <p>
 このバージョンは3.1.2に対するバグ修正リリースです。
@@ -5101,7 +5106,9 @@ md5認証で長いユーザ名を処理する際のバグを修正しました
 <li>デーモンモードで syslog を有効にしている際に md5 認証で発生するハングアップを修正しました。(Yugo Nagata)</li>
 </ul>
 
+<!-- -------------------------------------------------------------------------------- -->
 <h2><a name="release3.1.2"></a>3.1.2 (hatsuiboshi) 2012/01/31</h2>
+<!-- -------------------------------------------------------------------------------- -->
 <h3>概要</h3>
 <p>
 このバージョンは3.1.1に対するバグ修正リリースです。
@@ -5121,114 +5128,361 @@ md5認証で長いユーザ名を処理する際のバグを修正しました
 </li>
 </ul>
 
+<!-- -------------------------------------------------------------------------------- -->
 <h2><a name="release3.1.1"></a>3.1.1 (hatsuiboshi) 2011/12/06</h2>
+<!-- -------------------------------------------------------------------------------- -->
 <h3>概要</h3>
 <p>
 このバージョンは3.1に対するバグ修正リリースです。
 </p>
 <h3>バグ修正</h3>
-<p>
 <ul>
- <li>black_functon_listとwhite_function_listの読み込み処理でメモリ破壊を起こすバグを修正しました(Tatsuo Ishii)。
- <li>check_replication_time_lagの誤ったエラーメッセージを修正しました(Tatsuo Ishii)。
+ <li>black_functon_listとwhite_function_listの読み込み処理でメモリ破壊を起こすバグを修正しました(Tatsuo Ishii)。</li>
+ <li>check_replication_time_lagの誤ったエラーメッセージを修正しました(Tatsuo Ishii)。</li>
       ストリーミングレプリケーションの遅れのチェックのためにPostgreSQLに接続できなかった時に誤ったメッセージを出していました。3.1以降では health_check_userはこの目的のために使われていないので、これは誤りです。
  <li>メモリーリークを修正しました(Toshihiro Kitagawa)。これは、基本的に3.0.5(commit
           19a4ea9215da0b61728741fc0da2271958b09238)で行われた修正と同じものです。
- <li>strncpy()を使った修正を多数行いました(Tatsuo Ishii)。strncpy()が使われている箇所が複数あり、そこではコピー長とバッファサイズが同じであるケースが考慮されていません。このため、コピー後の文字列がNULL終端されていない可能性があり、多くの問題を後で引き起こすことになります。この問題を修正するために、ほとんどの箇所をstrlcpy()で置き換えました。
+ <li>strncpy()を使った修正を多数行いました(Tatsuo Ishii)。</li>
+     <p>strncpy()が使われている箇所が複数あり、そこではコピー長とバッファサイズが同じであるケースが考慮されていません。このため、コピー後の文字列がNULL終端されていない可能性があり、多くの問題を後で引き起こすことになります。この問題を修正するために、ほとんどの箇所をstrlcpy()で置き換えました。</p>
+ </li>
  <li>可能な場合にはキャッシュされたバックエンドの状態情報を更新するようにしました(Tatsuo Ishii)。
-     これにより、Jeff Frostから以下のメールで報告された問題が解決されました。
-     すなわち、 follow_master_command が正しくバックエンドの状態を読み取れない問題です。
+     <p>これにより、Jeff Frostから以下のメールで報告された問題が解決されました。
+     すなわち、 follow_master_command が正しくバックエンドの状態を読み取れない問題です。</p>
      <pre>
      Subject: [Pgpool-general] diagnosing BackendError from pcp_recovery_node
      To: pgpool-general@pgfoundry.org
      Date: Wed, 05 Oct 2011 15:15:07 -0700
-     </pre>
+     </pre></li>
  <li>Windows環境でのみ必要なPGDLLIMPORTIを削除しました。これはgccを使わない環境で問題を引き起こします。
-     パッチはIbrar Ahmedさんが提供しました。
+     パッチはIbrar Ahmedさんが提供しました。</li>
 </ul>
 
-<h2><a name="release3.1.0"></a>3.1.0 (hatsuiboshi) 2011/09/08</h2>
+<!-- -------------------------------------------------------------------------------- -->
+<h2><a name="release3.1"></a>3.1 (hatsuiboshi) 2011/09/08</h2>
+<!-- -------------------------------------------------------------------------------- -->
 <h3>概要</h3>
 <p>
 このバージョンは3.1系列の最初の版で、3.0系からの「メジャーバージョンアップ」にあたります。
 </p>
 
 <h3>互換性のない変更</h3>
-<p>
 <ul>
- <li>insert_lockのロック方法を変更しました。以前のinsert_lockは、シーケンステーブルに対して行ロックを行いましたが、現在は、pgpool_catalog.insert_lockテーブルに対して行ロックを行います。その理由は、シーケンステーブルに対するロックが内部エラーを引き起こすため、PostgreSQLのコア開発者がそれを許可しないことを決定したためです。したがって、pgpool-II経由でアクセスするすべてのデータベースにinsert_lockテーブルをあらかじめ作成しておく必要があります。もし、insert_lockテーブルが存在しない場合は、挿入対象のテーブルに対してロックを行います。これは、pgpool-II 2.2と2.3シリーズのinsert_lockと同じ動作です。また、過去のバージョンと互換性のあるinsert_lockを使用したい場合は、configureオプション(--enable-sequence-lock,--enable-table-lock)で設定できます(Kitagawa)
- <li>backend_socket_dirパラメータを廃止しました。その代わりに、backend_hostnameが'/'で始まるならば、それをUNIXドメインへのパスとみなします。backend_hostnameが空ならば、デフォルトのUNIXドメインパス(/tmp)が使われます。これは、libpqインタフェースの規約に従います。パッチはJehan-Guillaume (ioguix) de Rorthaisさんから頂きました。
- <li>フェイルオーバー時にpgpool_walrecrunning()を使用せず、プライマリノードへの昇格が完了するまで待つようになりました。関数を使用しない理由はプライマリノードを確実に見つけることができないためです。しかし、この修正にはプライマリノードが現れないときにrecovery_timeoutの間pgpool-IIが待ってしまう問題がまだ残っています(Kitagawa)
- <li>PostgreSQL DBノード情報を出力するpool_nodesに「ノードID」を追加しました(Jean-Paul Argudo)
- <li>シーケンス関数(nextval, setval)の扱いをblack/white_function_listの設定に完全に従うように変更しました。以前、それらは常に書き込み関数として扱われていました(Kitagawa)
+ <li>insert_lockのロック方法を変更しました。以前のinsert_lockは、シーケンステーブルに対して行ロックを行いましたが、現在は、pgpool_catalog.insert_lockテーブルに対して行ロックを行います。その理由は、シーケンステーブルに対するロックが内部エラーを引き起こすため、PostgreSQLのコア開発者がそれを許可しないことを決定したためです。したがって、pgpool-II経由でアクセスするすべてのデータベースにinsert_lockテーブルをあらかじめ作成しておく必要があります。もし、insert_lockテーブルが存在しない場合は、挿入対象のテーブルに対してロックを行います。これは、pgpool-II 2.2と2.3シリーズのinsert_lockと同じ動作です。また、過去のバージョンと互換性のあるinsert_lockを使用したい場合は、configureオプション(--enable-sequence-lock,--enable-table-lock)で設定できます(Kitagawa)</li>
+ <li>backend_socket_dirパラメータを廃止しました。その代わりに、backend_hostnameが'/'で始まるならば、それをUNIXドメインへのパスとみなします。backend_hostnameが空ならば、デフォルトのUNIXドメインパス(/tmp)が使われます。これは、libpqインタフェースの規約に従います。パッチはJehan-Guillaume (ioguix) de Rorthaisさんから頂きました。</li>
+ <li>フェイルオーバー時にpgpool_walrecrunning()を使用せず、プライマリノードへの昇格が完了するまで待つようになりました。関数を使用しない理由はプライマリノードを確実に見つけることができないためです。しかし、この修正にはプライマリノードが現れないときにrecovery_timeoutの間pgpool-IIが待ってしまう問題がまだ残っています(Kitagawa)</li>
+ <li>PostgreSQL DBノード情報を出力するpool_nodesに「ノードID」を追加しました(Jean-Paul Argudo)</li>
+ <li>シーケンス関数(nextval, setval)の扱いをblack/white_function_listの設定に完全に従うように変更しました。以前、それらは常に書き込み関数として扱われていました(Kitagawa)</li>
 </ul>
-</p>
 
 <h3>新機能</h3>
-<p>
 <ul>
- <li>syslogに対応しました。パッチはGilles Daroldさんから頂き、Guillaume Lelargeさんがレビューと編集をしました。
- <li>PostgreSQL 9.0で導入されたapplication_nameに対応しました。コネクションが再利用されたときに、スタートアップパケットのapplication_nameをバックエンドへ送信し、パラメータステータスをフロントエンドに返します(Tatsuo)
- <li>pgpool-II内部で使用するシステムカタログキャッシュの有効時間を、秒単位で指定できる設定項目relcache_expireが追加されました。これにより、ALTER TABLEによってテーブル定義が変更された際に、もはや有効でない結果を利用してしまうリスクが軽減されます。(Tatsuo)
- <li>follow_master_commandパラメータを追加しました。このパラメータには、マスタースレーブモードのストリーミングレプリケーション構成においてマスタノードがフェイルオーバーした後に実行されるコマンドを指定します。パッチはGilles Daroldさんから頂きました。
- <li>pcp_promote_nodeコマンドを追加しました。このコマンドはpgpool-IIに対して新しいマスタノードへの昇格を行います。これは、マスタースレーブモードのストリーミングレプリケーション構成のみで使用できます。パッチはGilles Daroldさんから頂きました。
- <li>pcp_pool_statusコマンドを追加しました。また、対応するC APIも追加されています。パッチはJehan-Guillaume (ioguix) de Rorthaisさんから頂きました。
- <li>バックエンドごとのパラメータ&quot;backend_flag&quot;を追加しました。これは、バックエンドごとの動作を制御します。今は&quot;ALLOW_TO_FAILOVER&quot;または&quot;DISALLOW_TO_FAILOVER&quot;が指定できます(Tatsuo)
- <li>health_check_passwordパラメータを追加しました。しかし、まだ実装されていません(Nicolas Thauvin)
- <li>sr_check_period、sr_check_user、sr_check_passwordパラメータを追加しました。これらは、ストリーミングレプリケーションの遅延チェックとプライマリノードの決定に使用されます(Tatsuo)
- <li>pg_md5コマンドに--username(または-u)オプションを追加しました。これは、UNIXアカウントを持たないユーザの管理を可能にします。日本語ドキュメントはTatsuo Ishiiさんが修正しました(Nicolas Thauvin)
- <li>pgpool_adm関数をpgpool_adm/に追加しました。これらは、pcpコマンドのように動作するC言語で書かれたユーザ定義関数です(Jehan-Guillaume (ioguix) de Rorthais)
- <li>簡体字中国語版のドキュメントを追加しました(Huang Jian, Sun Peng)
- <li>関数をアンインストールするためのSQLファイルをsql/に追加しました(Nicolas Thauvin)
- <li>マスタースレーブモードにおいて、unloggedテーブルに対するSELECTは、常にマスター(primary)で実行されるようになりました(Kitagawa)
+ <li>syslogに対応しました。パッチはGilles Daroldさんから頂き、Guillaume Lelargeさんがレビューと編集をしました。</li>
+ <li>PostgreSQL 9.0で導入されたapplication_nameに対応しました。コネクションが再利用されたときに、スタートアップパケットのapplication_nameをバックエンドへ送信し、パラメータステータスをフロントエンドに返します(Tatsuo)</li>
+ <li>pgpool-II内部で使用するシステムカタログキャッシュの有効時間を、秒単位で指定できる設定項目relcache_expireが追加されました。これにより、ALTER TABLEによってテーブル定義が変更された際に、もはや有効でない結果を利用してしまうリスクが軽減されます。(Tatsuo)</li>
+ <li>follow_master_commandパラメータを追加しました。このパラメータには、マスタースレーブモードのストリーミングレプリケーション構成においてマスタノードがフェイルオーバーした後に実行されるコマンドを指定します。パッチはGilles Daroldさんから頂きました。</li>
+ <li>pcp_promote_nodeコマンドを追加しました。このコマンドはpgpool-IIに対して新しいマスタノードへの昇格を行います。これは、マスタースレーブモードのストリーミングレプリケーション構成のみで使用できます。パッチはGilles Daroldさんから頂きました。</li>
+ <li>pcp_pool_statusコマンドを追加しました。また、対応するC APIも追加されています。パッチはJehan-Guillaume (ioguix) de Rorthaisさんから頂きました。</li>
+ <li>バックエンドごとのパラメータ&quot;backend_flag&quot;を追加しました。これは、バックエンドごとの動作を制御します。今は&quot;ALLOW_TO_FAILOVER&quot;または&quot;DISALLOW_TO_FAILOVER&quot;が指定できます(Tatsuo)</li>
+ <li>health_check_passwordパラメータを追加しました。しかし、まだ実装されていません(Nicolas Thauvin)</li>
+ <li>sr_check_period、sr_check_user、sr_check_passwordパラメータを追加しました。これらは、ストリーミングレプリケーションの遅延チェックとプライマリノードの決定に使用されます(Tatsuo)</li>
+ <li>pg_md5コマンドに--username(または-u)オプションを追加しました。これは、UNIXアカウントを持たないユーザの管理を可能にします。日本語ドキュメントはTatsuo Ishiiさんが修正しました(Nicolas Thauvin)</li>
+ <li>pgpool_adm関数をpgpool_adm/に追加しました。これらは、pcpコマンドのように動作するC言語で書かれたユーザ定義関数です(Jehan-Guillaume (ioguix) de Rorthais)</li>
+ <li>簡体字中国語版のドキュメントを追加しました(Huang Jian, Sun Peng)</li>
+ <li>関数をアンインストールするためのSQLファイルをsql/に追加しました(Nicolas Thauvin)</li>
+ <li>マスタースレーブモードにおいて、unloggedテーブルに対するSELECTは、常にマスター(primary)で実行されるようになりました(Kitagawa)</li>
 </ul>
-</p>
 
 <h3>バグ修正</h3>
-<p>
 <ul>
- <li>スタンバイノードでJDBCドライバのカーソルが使用できないバグを修正しました。この修正によって、マスタースレーブモードではトランザクションコマンドがすべてのノードに送られるようになります(Kitagawa)
- <li>空のクエリの処理に関するバグを修正しました。空のクエリはSELECTクエリと同じ扱いになります。この修正は、空のクエリのあとのロードバランスを可能にします(Kitagawa)
- <li>カラム定義が&quot;DEFAULT nextval(('&quot;x_seq&quot;'::text)::regclass)&quot;のようになっていてもinsert_lockが正しく動作するように修正しました(Kitagawa)
- <li>フェイルオーバー中はエラーメッセージを出力するようにpcp_attach_nodeコマンドを修正しました(Kitagawa)
- <li>拡張問い合わせプロトコルでpgpool-IIがクエリを解析できないときに出力されるログメッセージがクエリを表示するよう修正しました(Kitagawa)
- <li>pgpool-IIマニュアルのbackend_weightに関する説明を修正しました。それは、pgpool.confの再読み込みで変更できます(Tatsuo)
- <li>英語のチュートリアルドキュメント内の表現の改善と修正を行いました。修正の提案はHuang Jianさんによるものです(Tatsuo)
- <li>rawモードでノードを復帰させたときにノードの状態が更新されないバグを修正しました(Guillaume Lelarge)
- <li>ストリーミングレプリケーションモードにおけるレプリケーション遅延の計算が間違っていたのを修正しました(Tatsuo)
- <li>フェイルオーバーのログメッセージにおける誤った関数名&quot;notice_backend_error&quot;を、正しいもの&quot;degenerate_backend_set&quot;に置き換えました(Tatsuo)
- <li>pgpool.conf解析後の不要なログ出力を削除しました(Tatsuo)
- <li>バックエンドを新規追加した後に起こり得るpgpool/worker子プロセスのクラッシュを修正しました。修正はGurjeet Singhさんの提案によるものです(Tatsuo)
- <li>FOR SHARE/UPDATE句のあるサブクエリを含むSELECTがスレーブ(standby)に送られるバグを修正しました(Tatsuo)
- <li>PREPARE文でデフォルト値のタイムスタンプ書き換えに失敗するバグを修正しました。これは以前は動作していましたが、3.0で動作しなくなっていました(Kitagawa)
- <li>getopt_long()がない環境でpcpコマンドのコンパイルが失敗するのを修正しました(Tatsuo)
- <li>rawモード、enable_hbaが無効、バックエンドが2台以上の場合にpgpool子プロセスがクラッシュするのを修正しました(Kitagawa)
- <li>メモリリークをいくつか修正しました(Kitagawa)
+ <li>スタンバイノードでJDBCドライバのカーソルが使用できないバグを修正しました。この修正によって、マスタースレーブモードではトランザクションコマンドがすべてのノードに送られるようになります(Kitagawa)</li>
+ <li>空のクエリの処理に関するバグを修正しました。空のクエリはSELECTクエリと同じ扱いになります。この修正は、空のクエリのあとのロードバランスを可能にします(Kitagawa)</li>
+ <li>カラム定義が&quot;DEFAULT nextval(('&quot;x_seq&quot;'::text)::regclass)&quot;のようになっていてもinsert_lockが正しく動作するように修正しました(Kitagawa)</li>
+ <li>フェイルオーバー中はエラーメッセージを出力するようにpcp_attach_nodeコマンドを修正しました(Kitagawa)</li>
+ <li>拡張問い合わせプロトコルでpgpool-IIがクエリを解析できないときに出力されるログメッセージがクエリを表示するよう修正しました(Kitagawa)</li>
+ <li>pgpool-IIマニュアルのbackend_weightに関する説明を修正しました。それは、pgpool.confの再読み込みで変更できます(Tatsuo)</li>
+ <li>英語のチュートリアルドキュメント内の表現の改善と修正を行いました。修正の提案はHuang Jianさんによるものです(Tatsuo)</li>
+ <li>rawモードでノードを復帰させたときにノードの状態が更新されないバグを修正しました(Guillaume Lelarge)</li>
+ <li>ストリーミングレプリケーションモードにおけるレプリケーション遅延の計算が間違っていたのを修正しました(Tatsuo)</li>
+ <li>フェイルオーバーのログメッセージにおける誤った関数名&quot;notice_backend_error&quot;を、正しいもの&quot;degenerate_backend_set&quot;に置き換えました(Tatsuo)</li>
+ <li>pgpool.conf解析後の不要なログ出力を削除しました(Tatsuo)</li>
+ <li>バックエンドを新規追加した後に起こり得るpgpool/worker子プロセスのクラッシュを修正しました。修正はGurjeet Singhさんの提案によるものです(Tatsuo)</li>
+ <li>FOR SHARE/UPDATE句のあるサブクエリを含むSELECTがスレーブ(standby)に送られるバグを修正しました(Tatsuo)</li>
+ <li>PREPARE文でデフォルト値のタイムスタンプ書き換えに失敗するバグを修正しました。これは以前は動作していましたが、3.0で動作しなくなっていました(Kitagawa)</li>
+ <li>getopt_long()がない環境でpcpコマンドのコンパイルが失敗するのを修正しました(Tatsuo)</li>
+ <li>rawモード、enable_hbaが無効、バックエンドが2台以上の場合にpgpool子プロセスがクラッシュするのを修正しました(Kitagawa)</li>
+ <li>メモリリークをいくつか修正しました(Kitagawa)</li>
 </ul>
-</p>
 
 <h3>改良</h3>
+<ul>
+ <li>ストリーミングレプリケーション構成でのオンラインリカバリにおいて、リカバリ終了時に子プロセスを再起動しないようにしました。そのため、既存のセッションはオンラインリカバリ中も継続することができます(Tatsuo)</li>
+<li>ストリーミングレプリケーションモードにおいて、pcp_attache_nodeが既存のセッションを切断しなくなりました。ほかのモードでは依然としてセッションが切断されます(Tatsuo)。</li>
+ <li>PostgreSQL 9.0のパーサを移植しました。これによりPostgreSQL 9.0で新しく導入された暗黙のインデックス名を使用したCREATE INDEXが実行できるようになりました。パッチは石田さんから頂きました。</li>
+ <li>black_function_listとwhite_function_listパラメータに正規表現が使えるようになりました。パッチはGilles Daroldさんから頂き、Guillaume Lelargeさんがレビューしました。</li>
+ <li>読みやすいようにpgpool.confのサンプルファイルを再構成しました(Gleu)</li>
+ <li>pgpool-IIマニュアルのすべてのパラメータに&lsaquo;a name=&quot;...&quot;&rsaquo;タグを追加しました(Haruka Takatsuka)</li>
+ <li>pgpool-IIマニュアルのストリーミングレプリケーションにおけるオンラインリカバリの説明を改善しました(Tatsuo)</li>
+ <li>ストリーミングレプリケーションモードにおけるレプリケーション遅延をチェックするための関数を変更しました。現在、pgpoolはpg_last_xlog_receive_location()の代わりにpg_last_xlog_replay_location()を使用します。修正はAnton Yuzhaninovさんの提案によるものです(Tatsuo)</li>
+ <li>カラムのデフォルト値に任意の式を指定してもタイムスタンプ書き換えが動作するようにしました。以前は、now()が含まれているものを検知すると、単純にそれをnow()で置き換えてました。これは、デフォルト値の誤った書き換えを引き起こします。例えば、timezone('utc'::text, now())です。しかし、これは簡易プロトコルのみへの適用であることに注意してください。拡張プロトコル(例えばJava, PHP PDO)または、SQLの&quot;PREPARE&quot;にはまだ適用されていません(Tatsuo)</li>
+ <li>レプリケーション遅延のチェックに失敗したときに出力されるエラーメッセージを改良しました(Nicolas Thauvin)</li>
+ <li>エラーメッセージ&quot;do_md5: read_password_packet failed&quot;をデバッグレベルにしました(Kitagawa)</li>
+ <li>pgpool-regclass()をPostgreSQL 9.1でコンパイルできるようにしました(Tatsuo)</li>
+ <li>英語版と日本語版のpgpool-IIマニュアルを更新、同期しました(Tatsuo)</li>
+</ul>
+
+<!-- ================================================================================ -->
+<!-- 3.0                                                                              -->
+<!-- ================================================================================ -->
+<hr>
+
+<!-- -------------------------------------------------------------------------------- -->
+<h2><a name="release3.0.15"></a>3.0.15 (umiyameboshi) 2014/03/24</h2>
+<!-- -------------------------------------------------------------------------------- -->
+<h3>概要</h3>
 <p>
+このバージョンは 3.0.14 に対するバグ修正リリースです。
+</p>
+
+<h3>バグ修正</h3>
 <ul>
- <li>ストリーミングレプリケーション構成でのオンラインリカバリにおいて、リカバリ終了時に子プロセスを再起動しないようにしました。そのため、既存のセッションはオンラインリカバリ中も継続することができます(Tatsuo)
-<li>ストリーミングレプリケーションモードにおいて、pcp_attache_nodeが既存のセッションを切断しなくなりました。ほかのモードでは依然としてセッションが切断されます(Tatsuo)。
- <li>PostgreSQL 9.0のパーサを移植しました。これによりPostgreSQL 9.0で新しく導入された暗黙のインデックス名を使用したCREATE INDEXが実行できるようになりました。パッチは石田さんから頂きました。
- <li>black_function_listとwhite_function_listパラメータに正規表現が使えるようになりました。パッチはGilles Daroldさんから頂き、Guillaume Lelargeさんがレビューしました。
- <li>読みやすいようにpgpool.confのサンプルファイルを再構成しました(Gleu)
- <li>pgpool-IIマニュアルのすべてのパラメータに&lsaquo;a name=&quot;...&quot;&rsaquo;タグを追加しました(Haruka Takatsuka)
- <li>pgpool-IIマニュアルのストリーミングレプリケーションにおけるオンラインリカバリの説明を改善しました(Tatsuo)
- <li>ストリーミングレプリケーションモードにおけるレプリケーション遅延をチェックするための関数を変更しました。現在、pgpoolはpg_last_xlog_receive_location()の代わりにpg_last_xlog_replay_location()を使用します。修正はAnton Yuzhaninovさんの提案によるものです(Tatsuo)
- <li>カラムのデフォルト値に任意の式を指定してもタイムスタンプ書き換えが動作するようにしました。以前は、now()が含まれているものを検知すると、単純にそれをnow()で置き換えてました。これは、デフォルト値の誤った書き換えを引き起こします。例えば、timezone('utc'::text, now())です。しかし、これは簡易プロトコルのみへの適用であることに注意してください。拡張プロトコル(例えばJava, PHP PDO)または、SQLの&quot;PREPARE&quot;にはまだ適用されていません(Tatsuo)
- <li>レプリケーション遅延のチェックに失敗したときに出力されるエラーメッセージを改良しました(Nicolas Thauvin)
- <li>エラーメッセージ&quot;do_md5: read_password_packet failed&quot;をデバッグレベルにしました(Kitagawa)
- <li>pgpool-regclass()をPostgreSQL 9.1でコンパイルできるようにしました(Tatsuo)
- <li>英語版と日本語版のpgpool-IIマニュアルを更新、同期しました(Tatsuo)
+
+<li>
+    doc: num_init_children の項に「listen キュー」の説明とその「バックログ」を増やす方法について追記しました。
+    (Tatsuo Ishii)
+</li>
+
+<li>
+    UNLOGGED テーブルを検出する処理のパフォーマンスが悪かったのを修正しました。
+    (Tatsuo Ishii)
+    <p>
+    この問題は <a href="http://www.sraoss.jp/pipermail/pgpool-hackers/2014-January/000435.html">[pgpool-hackers: 435]</a>
+    <a href="http://www.sraoss.jp/pipermail/pgpool-general/2013-December/002354.html">[pgpool-general:2325]</a> で指摘されました。
+    </p>
+</li>
+
+<li>
+    プライマリノードの検出ロジックを修正しました。(Tatsuo Ishii)
+    <p>
+    プライマリノードが検出されないことがありました。例えば、node 0 がプライマリ、node 1
+    がスタンバイのときに、node 0 が落ちたとします。ヘルスチェックがそれを検出しますが、
+    内部のステータスがまだ更新されていない場合 node 0 には問題がないよう見えるため node 0
+    への接続が試みられます。実際にはこの接続は失敗するため、node 1
+    が新プライマリであることを検出する前に処理が終了していました。
+    </p>
+    <p>
+    この問題は <a href="http://www.sraoss.jp/pipermail/pgpool-general/2014-January/002442.html">[pgpool-general: 2409]</a> にて報告されました。
+    </p>
+</li>
+
+<li>
+    raw モードで自動コミットが off で JDBC を使用したときに、DML
+    が失敗するバグを修正しました。(Tatsuo Ishii)
+    <p>
+    この問題は <a href="http://www.pgpool.net/mantisbt/view.php?id=92">bug #92</a> で報告されました。
+    </p>
+</li>
+
+<li>
+    ストリーミングレプリケーションモードで無関係なノードにはクエリを送信しないように修正しました。
+    (Tatsuo Ishii)
+    <p>
+    pgpool-II は BEGIN, END, SET などのクエリを全ての DB ノードに送っています。
+    しかし、ストリーミングレプリケーションではプライマリノードと高々1台のスタンバイノードにしか送る必要がありません。
+    (もしプライマリノードがロードバランスノードとして選択されている場合には1台だけで充分です。)
+    </p>
+    <p>
+    詳細は <a href="http://www.sraoss.jp/pipermail/pgpool-hackers/2014-February/000464.html">
+    [pgpool-hackers: 464]</a> を参照してください。
+    </p>
+</li>
+
+<li>
+    バッファオーバランとメモリリークの可能性を修正しました。(Tatsuo Ishii)
+    <p>
+    Coverity 1111465, 1111482 の報告によります。
+    </p>
+</li>
+
+<li>
+    NULL ポインタの開放を修正しました。(Tatsuo Ishii)
+    <p>
+    Coverity 1111384 の報告によります。
+    </p>
+</li>
+
+<li>
+    メモリリークを修正しました。(Tatsuo Ishii)
+    <p>
+    Coverity 1111446 の報告によります。
+    </p>
+</li>
+
+<li>
+    パラレルモードで system_db_hostname
+    が空欄の場合に発生するセグメンテーションフォルトを修正しました。
+    (Yugo Nagata)
+</li>
+
+<li>
+    -d オプションで起動した場合に pgpool.conf
+    の処理中のデバッグメッセージを出力するように修正しました
+    (Yugo Nagata)
+    <p>
+    以前は -d オプション使用時でも出力されていないデバッグメッセージがありました。
+    </p>
+</li>
+
+<li>
+    レプリケーションモードで JDBC 使用時に now()
+    を含む準備文で発生する例外を修正しました。(Yugo Nagata)
+    <p>
+    JDBC で準備文を PrepareThreshold 回以上実行した場合には、文に名前が付けられ Parse
+    の後に Describe メッセージが発行されます。このとき、pgpool は now()
+    をパラメータに書き換えるため、元のクエリには無かった新しいパラメータが追加されます。
+    この場合、フロントエンドに返されるParameterDscription メッセージ(Describe
+    の返答)は、元のクエリが持つパラメータと同じ数の OID を含むべきです。そうしないと、JDBC
+    はArrayIndexoutOfBoundsException 例外を発生させてしまいます。
+    </p>
+    <p>
+    このバグは <a href="http://www.sraoss.jp/pipermail/pgpool-general-jp/2013-September/001191.html">
+    [pgpool-general-jp: 1192]</a> で報告されました。
+    </p>
+</li>
+
+<li>
+    レプリケーションモードにて、デフォルト値が now()
+    のカラムを持つテーブルに対する準備文でエラーが発生するバグを修正しました。
+    (Yugo Nagata)
+    <p>
+    デフォルト値が now() を持つ名前付き準備文を parse する際に、pgpool-II
+    は時刻値をパラメータで置き換えます。そのため、その後の bind
+    メッセージも追加されたパラメータの形式コードを含んでいる必要があります。
+    しかし、元のクエリのパラーメータ形式数が1だった場合、この処理がなされていませんでした。これが
+    "incorrect binary data format in bind parameter 2" のようなエラーの原因となっていました。
+    </p>
+</li>
+
+<li>
+    doc: パラレルモードは PREPARE 文の実行に対応していないことを追記しました。(Yugo Nagata)
+    <p>
+    <a href="http://www.pgpool.net/mantisbt/view.php?id=93">bug #93</a> の指摘によります。
+    </p>
+</li>
+
 </ul>
+
+<!-- -------------------------------------------------------------------------------- -->
+<h2><a name="release3.0.14"></a>3.0.14 (umiyameboshi) 2013/12/06</h2>
+<!-- -------------------------------------------------------------------------------- -->
+<h3>概要</h3>
+<p>
+このバージョンは 3.0.13 に対するバグ修正リリースです。
 </p>
 
-<hr>
+<h3>バグ修正</h3>
+<ul>
+
+<li>レプリケーションモード稼働時、一部のタイムゾーンでタイムスタンプの書き換えが誤っていました。(Tatsuo Ishii)
+<p>タイムスタンプの書き換え処理では、現在日時を取得するために "SELECT now()" を実行します。
+しかし一部のタイムゾーンにおいては、"02:30" のような場合に現在日時のためのバッファの大きさが
+十分ではありませんでした。"0900" のように 30 分刻みでのタイムゾーンでないときは、この問題は発生しません。
+そのため、これまでこの不具合が報告されたことはありませんでした。</p>
+<p>この不具合は <a href="http://www.sraoss.jp/pipermail/pgpool-general/2013-September/002142.html" target="_blank">[pgpool-general: 2113]</a> で報告され、Sean Hogan さんによって修正が提供されました。</p>
+</li>
+
+<li>Makefile: Makefiles 内の pg_config を $(PG_CONFIG) に置き換えました。
+したがって、PostgreSQL のメジャーバージョンが異なる場合には、コンパイル中で上書きされるようになります。(Tatsuo Ishii)
+<p>パッチは Christoph Berg さんから提供されました。(<a href="http://www.sraoss.jp/pipermail/pgpool-general/2013-September/002156.html" target="_blank">[pgpool-general: 2127]</a>)</p>
+</li>
+
+<li>configure: FreeBSD で問題があったため、-lcompat を削除しました。(Tatsuo Ishii)
+<p><a href="http://www.pgpool.net/mantisbt/view.php?id=15">bug#15</a> で報告されました。</p>
+</li>
+
+<li>pgpool.conf で <a href="#LOG_STANDBY_DELAY">log_standby_delay</a> を設定してないときに
+segfault していたのを修正しました。(Tatsuo Ishii)
+<p>これは、pool_config.l での log_standby_delay の初期化が誤っていたためです。
+<a href="http://www.pgpool.net/mantisbt/view.php?id=74" target="_blank">bug#74</a> として報告されました。</p>
+</li>
+
+<li>doc: パラレルモードの制限事項を追記しました。VALUES 句を使った複数行の INSERT はパラレルモードではサポートされていません。(Yugo Nagata)</li>
+
+<li>スタンバイノードがダウンしようとしているときに find_primary_node_repeatedly() が
+呼ばれないようにしました。(Tatsuo Ishii)
+<p>これによってフェイルオーバの所要時間が短くなります。
+<a href="http://www.pgpool.net/mantisbt/view.php?id=75" target="_blank">bug#75</a> として報告され、
+パッチを Tatsuo Ishii が編集しました。</p>
+</li>
+
+<li>read_password_packet() のエラーメッセージを修正しました。(Tatsuo Ishii)</li>
+
+<li>SSL 要求でのメモリリークを修正しました。(Tatsuo Ishii)
+<p>SSL での要求があったとき、pgpool 子プロセスは start up packet の読み込みをリトライしていました。
+しかし子プロセスは、以前の start up packet のメモリを解放していませんでした。</p>
+<p>これは Coverity "1111443 Resource" で発見されました。</p>
+</li>
+
+<li>do_query() がタイムスタンプの書き換えに失敗したとき、メモリリークしていました。(Tatsuo Ishii)
+<p>この修正のために、free_select_result() で NULL 引数を受け取れるようにしました。</p>
+<p>これは Coverity "1111454, 1111455 Resource leak" で発見されました。</p>
+</li>
+
+<li>"<code>DEALLOCATE portal|statement</code>" 実行時の対象ノードの選定ロジックを修正しました。(Tatsuo Ishii)
+<p>"<code>DEALLOCATE portal|statement</code>" 実行時、最後の prepared statement や portal が見つからない場合に、
+対象ノード選定マップがセットされていませんでした。
+おそらく、そうした場合はエラーなので、実際には問題ありません。</p>
+<p>これは Coverity "1111491 Structurally dead code" で発見されました。</p>
+</li>
+
+<li>MAX_NUM_BACKENDS の範囲チェックにおける不具合を修正しました。 (Tatsuo Ishii)
+<p>MAX_NUM_BACKENDS は DB ノードの最大数が限界値でした(現時点では 128)。
+実際には 128 の DB ノードで試す人がいなかったために、発見されなかった不具合のようです。</p>
+<p>これは Coverity "1111429, 1111430 and 1111431 Out-of-bounds write" で発見されました。</p>
+</li>
+
+<li>フロントエンド接続情報を、すでに無効なバックエンドについて set/unset しないようにしました。(Tatsuo Ishii)
+<p>この不具合は <a href="http://www.pgpool.net/mantisbt/view.php?id=82" target="_blank">bug#82</a> で報告されました。</p>
+</li>
+
+<li>pgpool_catalog への public access を許可していませんでした。
+<p>これは、pgpool_catalog がレプリケーションモードで作成されている場合に、
+ユーザテーブルにデータを INSERT すると発生します。</p>
+<p>この不具合は <a href="http://www.sraoss.jp/pipermail/pgpool-general-jp/2013-November/001228.html" target="_blank">[pgpool-general-jp: 1229]</a> で報告されました。</p>
+</li>
+
+<li>pool_do_auth() のエラーケースで変数を初期化していませんでした。 (Tatsuo Ishii)
+<p>有効なバックエンドがいないとき、pgpool は認証フェーズのフロントエンドにごみの pid を返していました。
+実際に、有効なバックエンドがいないために、フロントエンドは認証後に接続することができません。
+もちろんこれは問題あるものではありません。</p>
+<p>これは Coverity "1127331 Uninitialized scalar variable" で発見されました。</p>
+</li>
+
+<li>ノード ID を使ったエラーメッセージの発行時に、ノード ID の範囲チェックをするようにしました。
+(Tatsuo Ishii)
+<p>これは Coverity "1111433 "Out-of-bounds read" で発見されました。</p>
+</li>
+
+<li>parse_copy_data() でのバッファオーバーランとリソースリークを修正しました。 (Tatsuo Ishii)
+<p>これは Coverity "1111427 Out-of-bounds write"、"1111453 Resource leak" で発見されました。</p>
+</li>
+
+<li>CopyDataRaws() で segfault する可能性があったのを修正しました。(Tatsuo Ishii)
+<p>pool_get_id() がエラーを返した場合に VALID_BACKEND が配列外にアクセスしようとしていました。</p>
+<p>これは Coverity "1111433 Out-of-bounds read" で発見されました。</p>
+</li>
+
+<li>make_persistent_db_connection のリソースリークを修正しました。(Tatsuo Ishii)
+<p>この修正ののために、新しく free_persisten_db_connection_memory 関数を追加しました。</p>
+<p>これは Coverity #1111468 で発見されました。</p>
+</li>
+
+<li>Coverity で見つかったさまざまな不具合を修正しました。(Tatsuo Ishii)</li>
+
+</ul>
 
+<!-- -------------------------------------------------------------------------------- -->
 <h2><a name="release3.0.13"></a>3.0.13 (umiyameboshi) 2013/09/06</h2>
+<!-- -------------------------------------------------------------------------------- -->
 <h3>概要</h3>
 <p>
 このバージョンは 3.0.12 に対するバグ修正リリースです。
@@ -5266,7 +5520,9 @@ md5認証で長いユーザ名を処理する際のバグを修正しました
 
 </ul>
 
+<!-- -------------------------------------------------------------------------------- -->
 <h2><a name="release3.0.12"></a>3.0.12 (umiyameboshi) 2013/07/10</h2>
+<!-- -------------------------------------------------------------------------------- -->
 <h3>概要</h3>
 <p>
 このバージョンは 3.0.11 に対するバグ修正リリースです。
@@ -5372,7 +5628,9 @@ pcp_recovery_node コマンドで、バックエンドノード番号をチェ
 </li>
 </ul>
 
+<!-- -------------------------------------------------------------------------------- -->
 <h2>3.0.11 (umiyameboshi) 2013/04/26</h2>
+<!-- -------------------------------------------------------------------------------- -->
 <h3>概要</h3>
 <p>
 このバージョンでは、3.0.10における様々なバグが修正されています。
@@ -5489,7 +5747,9 @@ md5認証で長いユーザ名を処理する際のバグを修正しました
 
 </ul>
 
+<!-- -------------------------------------------------------------------------------- -->
 <h2>3.0.10 (umiyameboshi) 2013/02/08</h2>
+<!-- -------------------------------------------------------------------------------- -->
 <h3>概要</h3>
 <p>
 このバージョンでは、3.0.9における様々なバグが修正されています。
@@ -5533,24 +5793,6 @@ md5認証で長いユーザ名を処理する際のバグを修正しました
 </blockquote>
 </li>
 
-<li>通常のテーブルと同名の一時テーブルがあるときに、クエリキャッシュの結果が不正になる
-  バグを修正しました。 (Tatsuo Ishii)
-<p>
-  以下はバグを引き起こす処理の例です。
-</p>
-<pre>
-  1) CREATE TABLE t1(i int);    -- 通常のテーブルを作成
-  2) INSERT INTO t1 VALUES(1);
-  3) SELECT * FROM t1;        -- クエリキャッシュが作成される
-  4) CREATE TEMP TABLE t1(i int);    -- 一時テーブルの作成
-  5) SELECT * FROM t1;        -- 誤ったクエリキャッシュが作成される!
-</pre>
-<p>
-  #3 で t1 のキャッシュが生成されますが、#5 でこれが不正に使われており、一時テーブル t1 が
-  一時テーブルと見なされていないのが問題でした。
-</p>
-</li>
-
 <li>pcp または worker 子プロセスの終了イベントを受信したときに、reaper() で wait3()
   ループを終了しないように修正しました。 (Tatsuo Ishii)
 <p>
@@ -5597,20 +5839,6 @@ md5認証で長いユーザ名を処理する際のバグを修正しました
 
 <li>pg_md5 で、ユーザからのパスワード入力の後には改行するように修正しました。 (Yugo Nagata)</li>
 
-<li>watchdog のポート番号が既に使用されていた場合にエラーメッセージを出力するよう修正しました。
-  (Yugo Nagata)
-<p>
-  この問題は [pgpool-general: 1167] で Will Ferguson さんによって報告されました。
-</p>
-<blockquote>
-  [pgpool-general: 1167] Re: Watchdog error - wd_init: delegate_IP already exists<br />
-  From: Will Ferguson
-  Date: Tue, 6 Nov 2012 13:03:36 +0000
-  <a href="http://www.sraoss.jp/pipermail/pgpool-general/2012-November/001186.html">
-  http://www.sraoss.jp/pipermail/pgpool-general/2012-November/001186.html</a>
-</blockquote>
-</li>
-
 <li>コネクションプールが存在しない場合には、child_exit() が send_frontend_exits()
   を呼ばないよう修正しました。 (Tatsuo Ishii)
 <p>
@@ -5656,7 +5884,9 @@ md5認証で長いユーザ名を処理する際のバグを修正しました
 
 </ul>
 
+<!-- -------------------------------------------------------------------------------- -->
 <h2>3.0.9 (umiyameboshi) 2012/10/12</h2>
+<!-- -------------------------------------------------------------------------------- -->
 <h3>概要</h3>
 <p>
 このバージョンでは、3.0.8における様々なバグが修正されています。
@@ -5750,8 +5980,15 @@ md5認証で長いユーザ名を処理する際のバグを修正しました
     </blockquote>
 </ul>
 
+<!-- -------------------------------------------------------------------------------- -->
 <h2>3.0.8 (umiyameboshi) 2012/08/06</h2>
+<!-- -------------------------------------------------------------------------------- -->
+<h3>概要</h3>
+<p>
+このバージョンでは、3.0.7における様々なバグが修正されています。
+</p>
 
+<h3>バグ修正</h3>
 <ul>
 <li>Solaris でのロードバランスを修正しました。(Tatsuo Ishii)
     <p>Solaris での random() 関数の仕様のために問題があったため、rand() に変更しました。</p>
@@ -5801,7 +6038,9 @@ md5認証で長いユーザ名を処理する際のバグを修正しました
 </li>
 </ul>
 
+<!-- -------------------------------------------------------------------------------- -->
 <h2>3.0.7 (umiyameboshi) 2012/04/23</h2>
+<!-- -------------------------------------------------------------------------------- -->
 <h3>概要</h3>
 <p>
 このバージョンでは、3.0.6におけるバグが修正されています。
@@ -5827,7 +6066,9 @@ md5認証で長いユーザ名を処理する際のバグを修正しました
 <li>PREPARE 文でエラーが起きた際に発生するハングアップを修正しました。Tominari Katsumata さんの報告に基づきます。(Toshihiro Kitagagwa)</li>
 </ul>
 
+<!-- -------------------------------------------------------------------------------- -->
 <h2>3.0.6 (umiyameboshi) 2013/02/08</h2>
+<!-- -------------------------------------------------------------------------------- -->
 <h3>概要</h3>
 <p>
 このバージョンでは、3.0.5におけるバグが修正されています。
@@ -5846,7 +6087,9 @@ md5認証で長いユーザ名を処理する際のバグを修正しました
 </li>
 </ul>
 
+<!-- -------------------------------------------------------------------------------- -->
 <h2>3.0.5 (umiyameboshi) 2011/10/31</h2>
+<!-- -------------------------------------------------------------------------------- -->
 <h3>概要</h3>
 <p>
 このバージョンでは、3.0.4における様々なバグが修正されています。
@@ -5879,136 +6122,131 @@ md5認証で長いユーザ名を処理する際のバグを修正しました
 <li>エラーメッセージ"do_md5: read_password_packet failed"をデバッグレベルにしました(Kitagawa)</li>
 </ul>
 
+<!-- -------------------------------------------------------------------------------- -->
 <h2>3.0.4 (umiyameboshi) 2011/06/01</h2>
+<!-- -------------------------------------------------------------------------------- -->
 <h3>概要</h3>
 <p>
 このバージョンでは、3.0.3における様々なバグが修正されています。
 </p>
 
 <h3>互換性のない変更</h3>
-<p>
 <ul>
- <li>ストリーミングレプリケーションにおいて、delay_thresholdが0またはヘルスチェックが無効ならば、遅延チェックは実施されません。これはpgpool-IIマニュアル通りの動作ですが、これまではヘルスチェックが無効の場合も遅延チェックが実施されていました(Guillaume Lelarge)
+ <li>ストリーミングレプリケーションにおいて、delay_thresholdが0またはヘルスチェックが無効ならば、遅延チェックは実施されません。これはpgpool-IIマニュアル通りの動作ですが、これまではヘルスチェックが無効の場合も遅延チェックが実施されていました(Guillaume Lelarge)</li>
 </ul>
-</p>
 
 <h3>バグ修正</h3>
-<p>
 <ul>
- <li>pgpool-regclass()をPostgreSQL 8.0以降でコンパイルできるように修正しました。7.4はまだエラーが出ます(Tatsuo)
- <li>ストリーミングレプリケーション構成で/*NO LOAD BALANCE*/コメントを使用したときにハングアップする可能性を修正しました(Kitagawa)
- <li>Flush(H)メッセージやCloseComplete(C)メッセージを受信したときのハングアップを修正しました(Kitagawa)
- <li>pgpool-IIがバックエンドに接続後、RedyForQuery(Z)メッセージを受信するタイミングによって起こり得るハングアップを修正しました(Kitagawa)
- <li>recovery_1st_stage_commandとrecovery_2nd_stage_commandパラメータの説明を追加しました(Tatsuo)
- <li>pgpool-II内部で使用するシステムカタログキャッシュのサイズを32から128に増やしました。これは&quot;unnamed prepared statement does not exist&quot;エラーを軽減する効果があります(Tatsuo, Kitagawa)
- <li>pcp_connect()関数で二重free()を行うバグを修正しました。パッチはJehan-Guillaume (ioguix) de Rorthaisさんから頂きました(Tatsuo)
- <li>PQfinish()関数を誤って使用しているstart_recoery()のバグを修正しました(Tatsuo)
- <li>クライアントのアイドル時間がclient_idle_limitに達したときに、フロントエンドに送信される正しくないエラーメッセージを修正しました(Tatsuo)
- <li>pool_statusの「backend status」変数の名前を正しく修正しました。スペースを'_'に置き換えました(Guillaume Lelarge)
- <li>md5認証方式を採用してデーモンとして実行したときのハングアップを修正しました。パッチは、Nicolas Thauvinさんから頂きました(Tatsuo)
- <li>拡張問い合わせプロトコルでSQL文が出力されるように、log_per_node_statementを修正しました。これは以前は動作していましたが、3.0で動作しなくなっていました(Kitagawa)
+ <li>pgpool-regclass()をPostgreSQL 8.0以降でコンパイルできるように修正しました。7.4はまだエラーが出ます(Tatsuo)</li>
+ <li>ストリーミングレプリケーション構成で/*NO LOAD BALANCE*/コメントを使用したときにハングアップする可能性を修正しました(Kitagawa)</li>
+ <li>Flush(H)メッセージやCloseComplete(C)メッセージを受信したときのハングアップを修正しました(Kitagawa)</li>
+ <li>pgpool-IIがバックエンドに接続後、RedyForQuery(Z)メッセージを受信するタイミングによって起こり得るハングアップを修正しました(Kitagawa)</li>
+ <li>recovery_1st_stage_commandとrecovery_2nd_stage_commandパラメータの説明を追加しました(Tatsuo)</li>
+ <li>pgpool-II内部で使用するシステムカタログキャッシュのサイズを32から128に増やしました。これは&quot;unnamed prepared statement does not exist&quot;エラーを軽減する効果があります(Tatsuo, Kitagawa)</li>
+ <li>pcp_connect()関数で二重free()を行うバグを修正しました。パッチはJehan-Guillaume (ioguix) de Rorthaisさんから頂きました(Tatsuo)</li>
+ <li>PQfinish()関数を誤って使用しているstart_recoery()のバグを修正しました(Tatsuo)</li>
+ <li>クライアントのアイドル時間がclient_idle_limitに達したときに、フロントエンドに送信される正しくないエラーメッセージを修正しました(Tatsuo)</li>
+ <li>pool_statusの「backend status」変数の名前を正しく修正しました。スペースを'_'に置き換えました(Guillaume Lelarge)</li>
+ <li>md5認証方式を採用してデーモンとして実行したときのハングアップを修正しました。パッチは、Nicolas Thauvinさんから頂きました(Tatsuo)</li>
+ <li>拡張問い合わせプロトコルでSQL文が出力されるように、log_per_node_statementを修正しました。これは以前は動作していましたが、3.0で動作しなくなっていました(Kitagawa)</li>
 </ul>
-</p>
 
 <h3>改良</h3>
-<p>
 <ul>
- <li>サンプルの設定ファイルのblack_function_listにcurrval()とlastval()を追加しました。もしそれらがロードバランスされると、nextval()やsetval()の結果がスレーブに反映される前にcurrval()またはlastval()が呼ばれることがあります(Tatsuo)
+ <li>サンプルの設定ファイルのblack_function_listにcurrval()とlastval()を追加しました。もしそれらがロードバランスされると、nextval()やsetval()の結果がスレーブに反映される前にcurrval()またはlastval()が呼ばれることがあります(Tatsuo)</li>
 </ul>
-</p>
 
+<!-- -------------------------------------------------------------------------------- -->
 <h2><a name="release3.0.3"></a>3.0.3 (umiyameboshi) 2011/02/23</h2>
+<!-- -------------------------------------------------------------------------------- -->
 <h3>概要</h3>
 <p>
 このバージョンでは、3.0.1における様々なバグが修正されています(pgpool-II 3.0.2のリリースはパッケージングの問題でキャンセルされました)。
 </p>
 
 <h3>互換性のない変更</h3>
-<p>
 <ul>
- <li>ストリーミングレプリケーションモードを使用する場合に、PostgreSQLサーバにC関数「pgpool_walrecrunning()」をインストールすることが推奨されます(後述)。この場合、新しい変数「%P」がオンラインリカバリのスクリプトで利用できるようになります。この関数をインストールしない場合は、従来と同じ動作になります(Tatsuo)
- <li>rawモードでDBノードがひとつだけの場合、DBノードに問題が発生するとダウン状態になりますが、DBノードが復旧したらpgpoolの再起動なしにDBノードを使用できるようにしました。この変更は3.0に含まれていましたが、動作していませんでした(Tatsuo, Kitagawa)
+ <li>ストリーミングレプリケーションモードを使用する場合に、PostgreSQLサーバにC関数「pgpool_walrecrunning()」をインストールすることが推奨されます(後述)。この場合、新しい変数「%P」がオンラインリカバリのスクリプトで利用できるようになります。この関数をインストールしない場合は、従来と同じ動作になります(Tatsuo)</li>
+ <li>rawモードでDBノードがひとつだけの場合、DBノードに問題が発生するとダウン状態になりますが、DBノードが復旧したらpgpoolの再起動なしにDBノードを使用できるようにしました。この変更は3.0に含まれていましたが、動作していませんでした(Tatsuo, Kitagawa)</li>
 </ul>
-</p>
 
 <h3>バグ修正</h3>
-<p>
 <ul>
- <li>パスワード認証における移植性を損なうコードを修正しました。これはFreeBSDユーザからのバグ報告に基づきます(Tatsuo)
- <li>insert_lockがユーザテーブルの全行をロックするバグを修正しました(Tatsuo, Kitagawa)
- <li>ユーザ名の長さが32バイトのときにpgpool子プロセスがクラッシュするパスワード認証のバグを修正しました(Tatsuo)
- <li>rawモードまたはバックエンドノード数が1のときに、pgpool子プロセスがクラッシュするmd5認証のバグを修正しました。パッチはRob Shepherdさんから頂きました(Tatsuo)
- <li>以前からあった配列と複合型に対するタイムスタンプ書き換えのバグを修正しました。パッチはAkio Ishidaさんから頂きました(Tatsuo)
- <li>debug_levelパラメータが動作しないバグを修正しました。パッチはGilles Daroldさんから頂きました(Tatsuo)
- <li>フェイルオーバー中に起こりうるpgpool子プロセスのクラッシュを修正しました(Kitagawa)
- <li>ユーザがスキーマ名の付いた関数を呼んだときにwhite/black_function_listが正しく動作するように修正しました(Tatsuo)
- <li>コネクションキャッシュによってDROP DATABASEが失敗するバグを修正しました(Kitagawa)
- <li>rawモードでフェイルオーバが失敗するバグを修正しました(Kitagawa)
- <li>1セッションで簡易問い合わせプロトコルと拡張問い合わせプロトコルの両方が使われたときに起こりうるpgpool子プロセスの終了を修正しました(Kitagawa)
- <li>拡張問い合わせプロトコルを使用中にエラーが発生すると起こりうるハングアップを修正しました(Kitagawa)
- <li>PG_TRY/CATCHを使用しないようにpgpool-regclass()を修正しました。PG_TRY/CATCHは、時々バックエンドが「PANIC:  ERRORDATA_STACK_SIZE exceeded.」というメッセージとともに終了するので安全でないように見えます(Tatsuo)
- <li>JDBCドライバがマスタノードに何度もBEGINを発行するロードバランスのバグを修正しました(Kitagawa)
- <li>failback_commandとfail_over_on_backend_errorが正しい値を表示するようにpool_statusを修正しました(Kitagawa)
- <li>pool_statusからrecovery_passwordとsystem_db_passwordを削除しました(Kitagawa)
- <li>ストリーミングレプリケーションモードでフェイルオーバを実行中に、バックエンドのログに「unexpected EOF on client connection」が出ないように修正しました(Tatsuo)
- <li>バックエンドがすべてダウンした場合に発生するpgpoolのクラッシュを修正しました(Tatsuo)
- <li>レプリケーション遅延チェックがバックエンドとの永続的な接続を行わないように修正しました。これは、レプリケーション遅延チェックの間でDBノードのダウンとアップが起きた場合に永続的な接続が不正になる可能性があるためです(Tatsuo)
- <li>英語ドキュメントを書き直してレビューしました(Marc Cousin, Gleu)
+ <li>パスワード認証における移植性を損なうコードを修正しました。これはFreeBSDユーザからのバグ報告に基づきます(Tatsuo)</li>
+ <li>insert_lockがユーザテーブルの全行をロックするバグを修正しました(Tatsuo, Kitagawa)</li>
+ <li>ユーザ名の長さが32バイトのときにpgpool子プロセスがクラッシュするパスワード認証のバグを修正しました(Tatsuo)</li>
+ <li>rawモードまたはバックエンドノード数が1のときに、pgpool子プロセスがクラッシュするmd5認証のバグを修正しました。パッチはRob Shepherdさんから頂きました(Tatsuo)</li>
+ <li>以前からあった配列と複合型に対するタイムスタンプ書き換えのバグを修正しました。パッチはAkio Ishidaさんから頂きました(Tatsuo)</li>
+ <li>debug_levelパラメータが動作しないバグを修正しました。パッチはGilles Daroldさんから頂きました(Tatsuo)</li>
+ <li>フェイルオーバー中に起こりうるpgpool子プロセスのクラッシュを修正しました(Kitagawa)</li>
+ <li>ユーザがスキーマ名の付いた関数を呼んだときにwhite/black_function_listが正しく動作するように修正しました(Tatsuo)</li>
+ <li>コネクションキャッシュによってDROP DATABASEが失敗するバグを修正しました(Kitagawa)</li>
+ <li>rawモードでフェイルオーバが失敗するバグを修正しました(Kitagawa)</li>
+ <li>1セッションで簡易問い合わせプロトコルと拡張問い合わせプロトコルの両方が使われたときに起こりうるpgpool子プロセスの終了を修正しました(Kitagawa)</li>
+ <li>拡張問い合わせプロトコルを使用中にエラーが発生すると起こりうるハングアップを修正しました(Kitagawa)</li>
+ <li>PG_TRY/CATCHを使用しないようにpgpool-regclass()を修正しました。PG_TRY/CATCHは、時々バックエンドが「PANIC:  ERRORDATA_STACK_SIZE exceeded.」というメッセージとともに終了するので安全でないように見えます(Tatsuo)</li>
+ <li>JDBCドライバがマスタノードに何度もBEGINを発行するロードバランスのバグを修正しました(Kitagawa)</li>
+ <li>failback_commandとfail_over_on_backend_errorが正しい値を表示するようにpool_statusを修正しました(Kitagawa)</li>
+ <li>pool_statusからrecovery_passwordとsystem_db_passwordを削除しました(Kitagawa)</li>
+ <li>ストリーミングレプリケーションモードでフェイルオーバを実行中に、バックエンドのログに「unexpected EOF on client connection」が出ないように修正しました(Tatsuo)</li>
+ <li>バックエンドがすべてダウンした場合に発生するpgpoolのクラッシュを修正しました(Tatsuo)</li>
+ <li>レプリケーション遅延チェックがバックエンドとの永続的な接続を行わないように修正しました。これは、レプリケーション遅延チェックの間でDBノードのダウンとアップが起きた場合に永続的な接続が不正になる可能性があるためです(Tatsuo)</li>
+ <li>英語ドキュメントを書き直してレビューしました(Marc Cousin, Gleu)</li>
  <li>以下の条件を満たすとき SELECT クエリがマスタノードに送信されないバグを修正しました(Kitagawa)
  <ul>
-  <li>マスタースレーブモードである
-  <li>拡張問い合わせプロトコルを使用している
-  <li>明示的にトランザクションを開始している
-  <li>更新クエリを実行した後である
- </ul>
- <li>ストリーミングレプリケーションモード利用時のオンラインリカバリにおいて、以下のシナリオがうまく動作しない問題を修正しました。以下のシナリオでは、ノード0を最初のプライマリサーバ、ノード1を最初のスタンバイサーバとします。
-      <p>
+  <li>マスタースレーブモードである</li>
+  <li>拡張問い合わせプロトコルを使用している</li>
+  <li>明示的にトランザクションを開始している</li>
+  <li>更新クエリを実行した後である</li>
+ </ul></li>
+ <li>ストリーミングレプリケーションモード利用時のオンラインリカバリにおいて、以下のシナリオがうまく動作しない問題を修正しました。
+      <p>以下のシナリオでは、ノード0を最初のプライマリサーバ、ノード1を最初のスタンバイサーバとします。</p>
       <ol>
        <li>ノード0プライマリサーバがダウンし、ノード1スタンバイサーバが新しいプライマリサーバになる
        <li>ノード0の旧プライマリサーバは、オンラインリカバリで新スタンバイサーバになる
        <li>このときpgpool-IIは、ノード0の新スタンバイサーバを、プライマリサーバとみなしてしまう
       </ol>
-      </p>
-      これは、生きているノード番号の一番若いサーバをプライマリサーバと見なしていたためです。
+      <p>これは、生きているノード番号の一番若いサーバをプライマリサーバと見なしていたためです。
       pgpool-II 3.0.3では、pgpool_walrecrunning()を使って、実際にそのノードがプライマリサーバかどうか判定するため、このような問題は起きません。
 この機能をうまく使うために、オンラインリカバリのスクリプトで%P(古いプライマリノード番号)が利用できるようになっています。
-なお、pgpool_walrecrunning()がインストールされていない場合は、上の問題は解消されず、3.0.1と同様の動作になります。
+なお、pgpool_walrecrunning()がインストールされていない場合は、上の問題は解消されず、3.0.1と同様の動作になります。</p></li>
 </ul>
-</p>
 
 <h3>改良</h3>
-<p>
 <ul>
- <li>ステータスファイルを読んでいるときに、特定のバックエンドがダウン状態ならばログを出力するようにしました(Tatsuo)
- <li>pgpoolが実行したクエリでエラーが発生した場合に、エラーメッセージを出力するようにしました(Tatsuo)
- <li>sqlディレクトリに主要なMakefileを追加しました(Tatsuo)
+ <li>ステータスファイルを読んでいるときに、特定のバックエンドがダウン状態ならばログを出力するようにしました(Tatsuo)</li>
+ <li>pgpoolが実行したクエリでエラーが発生した場合に、エラーメッセージを出力するようにしました(Tatsuo)</li>
+ <li>sqlディレクトリに主要なMakefileを追加しました(Tatsuo)</li>
 </ul>
-</p>
 
+<!-- -------------------------------------------------------------------------------- -->
 <h2><a name="release3.0.2"></a>3.0.2(umiyameboshi) 2011/02/17</h2>
+<!-- -------------------------------------------------------------------------------- -->
 <h3>概要</h3>
 <p>
 このバージョンは問題があったために、リリースが取り消されました。
 </p>
 
+<!-- -------------------------------------------------------------------------------- -->
 <h2><a name="release3.0.1"></a>3.0.1 (umiyameboshi) 2010/10/19</h2>
+<!-- -------------------------------------------------------------------------------- -->
 <h3>概要</h3>
 <p>
 このバージョンでは、3.0における様々なバグが修正されています。
 </p>
 
 <h3>バグ修正</h3>
-<p>
 <ul>
- <li>認証されるサーバが複数ある場合にクラッシュするmd5認証のバグを修正しました(Tatsuo)
- <li>拡張問い合わせプロトコルにおいて、構文エラーのクエリを実行したときに子プロセスがクラッシュするバグを修正しました(Kitagawa)
- <li>ポータル情報のハンドリングにおける子プロセスが終了するバグを修正しました(Kitagawa)
- <li>拡張問い合わせプロトコルにおいて、ひとつのノードに送信されたクエリがエラーを起こしたときにハングアップするバグを修正しました(Kitagawa)
- <li>英語ドキュメントの誤植を修正しました。Asaf Ohaionさんのパッチを取り込みました(Tatsuo)
+ <li>認証されるサーバが複数ある場合にクラッシュするmd5認証のバグを修正しました(Tatsuo)</li>
+ <li>拡張問い合わせプロトコルにおいて、構文エラーのクエリを実行したときに子プロセスがクラッシュするバグを修正しました(Kitagawa)</li>
+ <li>ポータル情報のハンドリングにおける子プロセスが終了するバグを修正しました(Kitagawa)</li>
+ <li>拡張問い合わせプロトコルにおいて、ひとつのノードに送信されたクエリがエラーを起こしたときにハングアップするバグを修正しました(Kitagawa)</li>
+ <li>英語ドキュメントの誤植を修正しました。Asaf Ohaionさんのパッチを取り込みました(Tatsuo)</li>
 </ul>
-</p>
 
+<!-- -------------------------------------------------------------------------------- -->
 <h2><a name="release3.0"></a>3.0 (umiyameboshi) 2010/09/10</h2>
+<!-- -------------------------------------------------------------------------------- -->
 <h3>概要</h3>
 <p>
 このバージョンは3.0系列の最初の版で、2.2系や2.3系からの「メジャーバージョンアップ」にあたります。
@@ -6016,125 +6254,216 @@ PostgreSQL 9.0の新機能であるStreaming Replication/Hot Standby構成に対
 </p>
 <p>
 マスタースレーブモード全般で多くの改善がなされています。
+</p>
 <ul>
- <li>明示的なトランザクション内のSELECTが負荷分散できるようになりました
- <li>不必要なDBノードにparse/bindメッセージが送られなくなりロック競合が減りました
- <li>不必要な内部トランザクションの起動がなくなり、オーバヘッドが軽減しています
- <li>一時テーブルを意識せずに安全に使えるようになりました
- <li>書き込みを伴う関数呼び出しを行なうSELECTをマスター(primay)でのみ実行するように制御できるようになりました
+ <li>明示的なトランザクション内のSELECTが負荷分散できるようになりました</li>
+ <li>不必要なDBノードにparse/bindメッセージが送られなくなりロック競合が減りました</li>
+ <li>不必要な内部トランザクションの起動がなくなり、オーバヘッドが軽減しています</li>
+ <li>一時テーブルを意識せずに安全に使えるようになりました</li>
+ <li>書き込みを伴う関数呼び出しを行なうSELECTをマスター(primay)でのみ実行するように制御できるようになりました</li>
 </ul>
-</p>
 <p>
 レプリケーションモードにおいても、書き込みを伴う関数呼び出しを行なうSELECTを負荷分散するかどうかの制御できるようになるなどの改良が加えられています。
 </p>
 
 <h3>新機能</h3>
-<p>
 <ul>
  <li>PostgreSQL 9.0の新機能であるStreaming Replication/Hot Standby(SR+HS)構成に対応しました(Tatsuo, Kitagawa)。
-pgpool-IIは基本的にはmaster/slave modeとして動作しますが、その際に "master_slave_sub_mode" という新しい設定項目に"stream"を設定することにより、SR+HS構成に最適な動作をします。
+<p>pgpool-IIは基本的にはmaster/slave modeとして動作しますが、その際に "master_slave_sub_mode" という新しい設定項目に"stream"を設定することにより、SR+HS構成に最適な動作をします。
 たとえば、更新クエリはPrimaryサーバにのみ送信し、SELECTはPrimaryとStandbyサーバに負荷分散することが可能です。
 そのほか、Standbyサーバをオンラインリカバリで復旧したり、PrimaryとStandbyのレプリケーション同期を監視し、遅れが大きいようならPrimaryにのみSELECTを送信させるようにすることも可能です。
 詳細は<a href="#stream">Streaming Replicationへの対応"</a>をご覧下さい。
-</p>
+</p></li>
 
-<ul>
- <li>オンラインリカバリがStreaming Replication対応で動作しているmaster/slaveモードに対応しました(Tatsuo)
+ <li>オンラインリカバリがStreaming Replication対応で動作しているmaster/slaveモードに対応しました(Tatsuo)</li>
 
  <li>Streaming Replicationモード用の新しい設定項目 "delay_threshold" が追加され、レプリケーションの遅れが監視できるようになりました。
-遅延が多い場合には、負荷分散しないようにすることができます(Tatsuo)
+遅延が多い場合には、負荷分散しないようにすることができます(Tatsuo)</li>
 
- <li>show pool_statusで、Streaming Replicationにおけるレプリケーションの遅延が確認できるようになりました(Tatsuo)
+ <li>show pool_statusで、Streaming Replicationにおけるレプリケーションの遅延が確認できるようになりました(Tatsuo)</li>
 
- <li>Streaming Replicationにおけるレプリケーションの遅延のログを制御する新しい設定項目"log_standby_delay"が追加されました(Tatsuo)
-
-</ul>
+ <li>Streaming Replicationにおけるレプリケーションの遅延のログを制御する新しい設定項目"log_standby_delay"が追加されました(Tatsuo)</li>
 
  <li>insert_lockが有効で、テーブルにシリアル型が含まれている場合、テーブルロックではなく、該当シーケンスを行ロックするようにしました。
-以前はテーブルロックをしていましたが、auto vacuumとロックが衝突したりして性能が低下する問題がありました(Tatsuo)
+以前はテーブルロックをしていましたが、auto vacuumとロックが衝突したりして性能が低下する問題がありました(Tatsuo)</li>
 
- <li>新しい"SHOW"コマンドが追加されました。すなわち、pool_nodes, pool_processes, pool_pools, pool_versionです(Guillaume Lelarge)
+ <li>新しい"SHOW"コマンドが追加されました。すなわち、pool_nodes, pool_processes, pool_pools, pool_versionです(Guillaume Lelarge)</li>
 
- <li>pcp_proc_infoコマンドの出力結果に、PostgreSQLバックエンドプロセスのプロセスIDとフロントエンドからの接続があるかどうかが追加されました(Tatsuo)
+ <li>pcp_proc_infoコマンドの出力結果に、PostgreSQLバックエンドプロセスのプロセスIDとフロントエンドからの接続があるかどうかが追加されました(Tatsuo)</li>
 
- <li>関数呼び出しを伴うSELECTを制御する設定項目white_function_listとback_function_listが追加されました(Tatsuo)
+ <li>関数呼び出しを伴うSELECTを制御する設定項目white_function_listとback_function_listが追加されました(Tatsuo)</li>
 
- <li>マスタースレーブモードにおいて、システムカタログを検索するSELECTは、整合性を保つために常にマスター(primary)で実行されるようになりました(Tatsuo)
+ <li>マスタースレーブモードにおいて、システムカタログを検索するSELECTは、整合性を保つために常にマスター(primary)で実行されるようになりました(Tatsuo)</li>
 
- <li>マスタースレーブモードにおいて、一時テーブルを検索するSELECTは、整合性を保つために常にマスター(primary)で実行されるようになりました(Tatsuo)
+ <li>マスタースレーブモードにおいて、一時テーブルを検索するSELECTは、整合性を保つために常にマスター(primary)で実行されるようになりました(Tatsuo)</li>
 
- <li>マスタスレーブモードで、明示的なトランザクション内で実行されない更新クエリにおいて、自動的にトランザクションを開始することを止めました。これは不必要でした。これによって、パフォーマンスが向上しています(Tatsuo)
+ <li>マスタスレーブモードで、明示的なトランザクション内で実行されない更新クエリにおいて、自動的にトランザクションを開始することを止めました。これは不必要でした。これによって、パフォーマンスが向上しています(Tatsuo)</li>
 
- <li>マスタスレーブモードで、明示的なトランザクション内で実行されるSELECTコマンドが負荷分散できるようになりました(Tatsuo, Kitagawa)
+ <li>マスタスレーブモードで、明示的なトランザクション内で実行されるSELECTコマンドが負荷分散できるようになりました(Tatsuo, Kitagawa)</li>
 
  <li>マスタスレーブモードで、必要なDBノードにのみコマンドが送られるようになりました。
-これにより、たとえばパースコマンドが不必要なDBノードにおいてもロックを取ってしまうようなことがなくなりました(Tatsuo, Kitagawa)
+これにより、たとえばパースコマンドが不必要なDBノードにおいてもロックを取ってしまうようなことがなくなりました(Tatsuo, Kitagawa)</li>
 
- <li>pgpoolの起動時に、ステータスファイルを無視するオプションが追加されました(Tatsuo)
+ <li>pgpoolの起動時に、ステータスファイルを無視するオプションが追加されました(Tatsuo)</li>
 
- <li>PostgreSQL 9.0のVACUUMの新しい書式をpgpool-IIのパーサがサポートしました(Tatsuo)
+ <li>PostgreSQL 9.0のVACUUMの新しい書式をpgpool-IIのパーサがサポートしました(Tatsuo)</li>
 
  <li>フェイルオーバ/フェイルバックコマンドで、"%H"という特殊変数が利用できるようになりました。
-これは、新しいマスターノードのホスト名を表します(Tatsuo)
+これは、新しいマスターノードのホスト名を表します(Tatsuo)</li>
 
  <li>failover_if_affected_tuples_mismatch という設定項目が追加されました(Tatsuo)
-従来、レプリケーションモードでINSERT/UPDATE/DELETEの結果行数が異なると、トランザクションをアボートしてセッションを強制切断していました。
-failover_if_affected_tuples_mismatch を trueに設定すると、この現象が起きたときに、不一致のあったDBノードを切り放して縮退運転に入るようになります。
+<p>従来、レプリケーションモードでINSERT/UPDATE/DELETEの結果行数が異なると、トランザクションをアボートしてセッションを強制切断していました。
+failover_if_affected_tuples_mismatch を trueに設定すると、この現象が起きたときに、不一致のあったDBノードを切り放して縮退運転に入るようになります。</p></li>
 
- <li>レプリケーションモードでDBノード間でINSERT/UPDATE/DELETEの結果行数の不一致が検出された際に、各DBノードにおける結果行数がログに記録されるようになりました(Tatsuo)
+ <li>レプリケーションモードでDBノード間でINSERT/UPDATE/DELETEの結果行数の不一致が検出された際に、各DBノードにおける結果行数がログに記録されるようになりました(Tatsuo)</li>
 
- <li>レプリケーションモードとマスタスレーブモードで、md5認証がサポートされました(Tatsuo)
+ <li>レプリケーションモードとマスタスレーブモードで、md5認証がサポートされました(Tatsuo)</li>
 
- <li>オンラインリカバリで、強制的にフロントエンドへの接続を切断して直ちにセカンドステージに入ることができるようになりました。そのためには、client_idle_limit_in_recovery に -1 を設定します(Tatsuo)
+ <li>オンラインリカバリで、強制的にフロントエンドへの接続を切断して直ちにセカンドステージに入ることができるようになりました。そのためには、client_idle_limit_in_recovery に -1 を設定します(Tatsuo)</li>
 
- <li>RAWモードにおいて、DBノードが1個だけしか存在しない状態でDBがエラーを起したためにDBノードを切り放したあとでDBノードが回復した場合に、pgpool-IIを再起動することになしにDBノードを利用できるようになりました(Tatsuo)
+ <li>RAWモードにおいて、DBノードが1個だけしか存在しない状態でDBがエラーを起したためにDBノードを切り放したあとでDBノードが回復した場合に、pgpool-IIを再起動することになしにDBノードを利用できるようになりました(Tatsuo)</li>
 
- <li>pcpコマンドにおいて、ロングオプションがサポートされました(Guillaume Lelarge)
+ <li>pcpコマンドにおいて、ロングオプションがサポートされました(Guillaume Lelarge)</li>
 
- <li>debug_level という設定項目が追加され、pgpool.confの再読み込みによってデバッグメッセージの出力をオン/オフできるようになりました(Tatsuo)
+ <li>debug_level という設定項目が追加され、pgpool.confの再読み込みによってデバッグメッセージの出力をオン/オフできるようになりました(Tatsuo)</li>
 
- <li>pgpool.confで、postgresql.confと同じ真偽値表現が利用できるようになりました。従来は、true/false, 1/0しか使えませんでした(Kitagawa)
+ <li>pgpool.confで、postgresql.confと同じ真偽値表現が利用できるようになりました。従来は、true/false, 1/0しか使えませんでした(Kitagawa)</li>
 
- <li>オンラインリカバリのセカンドステージをより安全に実行するために、C言語関数pgpool_switch_xlogを追加しました(Kitagawa)
+ <li>オンラインリカバリのセカンドステージをより安全に実行するために、C言語関数pgpool_switch_xlogを追加しました(Kitagawa)</li>
 
- <li>異なるスキーマに同じ名前のテーブルが存在する場合に起きる不具合を回避するために、C言語関数pgpool_regclassを追加しました(Tatsuo)
+ <li>異なるスキーマに同じ名前のテーブルが存在する場合に起きる不具合を回避するために、C言語関数pgpool_regclassを追加しました(Tatsuo)</li>
 
 </ul>
-</p>
 
 <h3>互換性のない変更</h3>
-<p>
 <ul>
 <li>replicate_selectとload_balance_modeを共にtrueに設定した場合、トランザクションブロックの外側で実行されるSELECT文は、replicate_selectに従うようになりました。以前は、load_balance_modeに従うようになっていました。もしクライアントがこの動作を利用している場合は、replicate_selectをfalseにしてback_function_listを設定することで同じ動作を実現できます。</li>
 </ul>
-</p>
 
-<p>
 <h3>バグ修正</h3>
-</p>
-<p>
 <ul>
 
  <li>型が時刻データ以外の列の場合、デフォルト値にnow()が含まれていても書き換えを行なわないようにしました。
-今までは無条件に書き換えを行なっていたため、書き換えの結果、INSERT文などがエラーになっていました(Tatsuo)
+今までは無条件に書き換えを行なっていたため、書き換えの結果、INSERT文などがエラーになっていました(Tatsuo)</li>
 
  <li>タイムスタンプの書き換え処理対象となるテーブルのスキーマが無視されないようにしました。
 ただし、この機能を有効にするためには、付属のユーザ定義関数"pgpool_regclass"のインストールが必要です。
-この関数がインストールされていない場合は、依然としてスキーマが無視されてしまいます(Tatsuo)
+この関数がインストールされていない場合は、依然としてスキーマが無視されてしまいます(Tatsuo)</li>
 
- <li>pcpコマンドのタイムアウトの扱いにおけるバグが修正されました(Tatsuo)
+ <li>pcpコマンドのタイムアウトの扱いにおけるバグが修正されました(Tatsuo)</li>
 
- <li>SSLが有効な状態で、大量のデータ通信が起るとハングする問題が修正されました(Tatsuo)
+ <li>SSLが有効な状態で、大量のデータ通信が起るとハングする問題が修正されました(Tatsuo)</li>
 
- <li>DBノードが1個だけしか存在しない状態でDBがエラーを起したた際に、間違ったDBノードがフェイルオーバするバグを修正しました(Tatsuo)
+ <li>DBノードが1個だけしか存在しない状態でDBがエラーを起したた際に、間違ったDBノードがフェイルオーバするバグを修正しました(Tatsuo)</li>
 
  <li>オンラインリカバリ時のpostmasterの起動チェックにおけるバグを修正しました。
-今まではpostmasterへの最初の接続が失敗すると、接続を無限に繰り返すようになっていました(Tatsuo)
+今まではpostmasterへの最初の接続が失敗すると、接続を無限に繰り返すようになっていました(Tatsuo)</li>
 
 </ul>
+
+<!-- ================================================================================ -->
+<!-- 2.3                                                                              -->
+<!-- ================================================================================ -->
+<hr>
+
+<!-- -------------------------------------------------------------------------------- -->
+<h2><a name="release2.3.4"></a>2.3.4 (tomiteboshi) 2012/08/06</h2>
+<!-- -------------------------------------------------------------------------------- -->
+<p>このバージョンでは、2.3.3 以前の色々なバグが修正されています。</p>
+
+<h3>バグ修正</h3>
+
+<ul>
+<li>
+do_error_execute_command() が ErrorResponse を受け取るまでバックエンドからの
+結果を見ないように修正しました。 (Toshihiro Kitagawa)
+<p>
+ReadyForQuery のようなエラーでない結果をとっておき、pool_unread() で呼び出す必要があるためです。
+これは PHP PDO を使っているときに起こる可能性がありました。
 </p>
+</li>
+
+<li>
+SimpleForwardToFrontend() が、SELECT 実行中に bind エラーになったとき、
+select_in_transaction フラグと execute_select フラグををリセットするように修正しました。
+(Toshihiro Kitagawa)
+</li>
 
+<li>
+バックエンドからたくさんの結果を読み込んでいる間に、SSL 接続がハングすることが
+あるのを修正しました。Tatsuo Ishii)
+<p>詳細は、[Pgpool-general] Fwd: PGPOOL II 2.3.3 hang in ssl mode のスレッドを参照してください。</p>
+</li>
+
+<li>
+pcp_check_fd() のタイムアウト処理のバグを修正しました。 (Tatsuo Ishii)
+  <p>これは以下で報告されました。 </p>
+  <blockquote>
+  Subject: [Pgpool-general] question about pcp_check_fd
+  Date: Sun, 23 May 2010 18:21:41 -0500
+  To: pgpool <pgpool-general@pgfoundry.org>
+  </blockquote>
+</li>
+
+<li>
+master/slave モードで稼働中、DEALLOCATE をレプリケーションしないようにしました。(Toshihiro Kitagawa)
+<p>これは、以下で Jan Kantert から報告されました。</p>
+<blockquote>
+Subject: [Pgpool-hackers] Problems with PgPool 2.3.3 Prepare /
+         Deallocation handling in Master/Slave mode
+Date: Fri, 28 May 2010 20:59:47 +0200
+</blockquote>
+</li>
+
+<li>タイムスタンプの書き換えで、スキーマを認識するようにしました。(Tatsuo Ishii)</li>
+
+<li>
+now() などデフォルト値にもつがデータ型が timestamp 型でないようなカラムへの
+アクセスがあるステートメントを、書き換えないようにしました。(Tatsuo Ishii)
+
+<p>そうしていなかったために、DML でエラーになっていました。</p>
+<blockquote>
+Subject: [Pgpool-general] function epoch seems to be causing error
+To: pgpool-general@pgfoundry.org
+Date: Mon, 16 Aug 2010 21:48:31 +0000 (UTC)
+</blockquote>
+</li>
+
+<li>insert_lock がスキーマを認識するようになりました。(Tatsuo Ishii)</li>
+
+<li>
+配列型や複合型のカラムのタイムスタンプ書き換えにおける、古くからあるバグを
+修正しました。(Tatsuo Ishii)
+<p>例えば、以下の場合に失敗していました。</p>
+<pre>
+INSERT INTO r1(col[1], col2.foo) VALUES (1, 2); -- insert_column_item
+UPDATE r1 SET col1[1] = 1, col2.foo = 1; -- set_target
+PREPARE "p" (int4[]) AS  SELECT $1[1]; -- c_expr
+SELECT (ARRAY[1,2,3])[1];
+SELECT (ARRAY[ARRAY[1]])[1][1];
+SELECT ('{1,2,3}'::int[])[1];
+SELECT ('{1,2,3}'::int[3])[1];
+SELECT r1.col[1], (r1.col1).bar, (r1.col1).* FROM r1; -- columnref
+SELECT (r1.col1).baz[1], (r1.col1).baz[1][2] FROM r1;
+</pre>
+
+<p>パッチは Akio Ishida から提供されました。</p>
+</li>
+
+<li>pcp パスワードが 32 文字以上のときに、バッファオーバーランするのを修正しました。(Tatsuo Ishii)</li>
+
+<li>
+wait_for_query_response() が、frontend がないときには何もしないように修正しました。(Tatsuo Ishii)
+<p>
+バックエンドをリセットする reset_query_list のクエリを実行に 時間がかかったときに発生する可能性があり、
+またクラッシュすることがありました。
+</p>
+</li>
+</ul>
+
+<!-- -------------------------------------------------------------------------------- -->
 <h2><a name="release2.3.3"></a>2.3.3 (tomiteboshi) 2010/04/23</h2>
+<!-- -------------------------------------------------------------------------------- -->
 <h3>概要</h3>
 <p>このバージョンでは、2.3.2.2 以前の色々なバグが修正されています。</p>
 
@@ -6205,7 +6534,9 @@ pgpool がバックエンドの応答を待ち続けなくなります。
 strerror() ではなく hstrerror() を使うように修正しました。 (Tatsuo)</li>
 </ul>
 
+<!-- -------------------------------------------------------------------------------- -->
 <h2><a name="release2.3.2.2"></a>2.3.2.2 (tomiteboshi) 2010/02/22</h2>
+<!-- -------------------------------------------------------------------------------- -->
 <h3>概要</h3>
 <p>
 このバージョンでは、2.3.xにおける様々なバグを修正しています。
@@ -6214,21 +6545,24 @@ strerror() ではなく hstrerror() を使うように修正しました。 (Tat
 </p>
 
 <h3>バグ修正</h3>
-<p>
 <ul>
- <li>タイムスタンプデータを含む拡張プロトコル問い合わせで、"message: invalid string in message"のエラーを出してトランザクションが終了してしまうバグを修正しました(Tatsuo)
- <li>タイムスタンプデータを含む拡張プロトコル問い合わせで、bind時にNULLを含むパラメータが存在するとpgpoolがクラッシュするバグを修正しました(Tatsuo)
- <li>pgpool_status上ですべてのノードがダウンのときにはこれを無効とし、「all node down症候群」が起きないようにしました(Tatsuo)
+ <li>タイムスタンプデータを含む拡張プロトコル問い合わせで、"message: invalid string in message"のエラーを出してトランザクションが終了してしまうバグを修正しました(Tatsuo)</li>
+ <li>タイムスタンプデータを含む拡張プロトコル問い合わせで、bind時にNULLを含むパラメータが存在するとpgpoolがクラッシュするバグを修正しました(Tatsuo)</li>
+ <li>pgpool_status上ですべてのノードがダウンのときにはこれを無効とし、「all node down症候群」が起きないようにしました(Tatsuo)</li>
 </ul>
-</p>
 
+<!-- -------------------------------------------------------------------------------- -->
 <h2><a name="release2.3.2.1"></a>2.3.2.1 (tomiteboshi) 2010/02/11</h2>
+<!-- -------------------------------------------------------------------------------- -->
 <h3>概要</h3>
 <p>
 このバージョンでは、2.3.xにおいて、エラーとなるようなSQLを実行するとpgpoolへのセッションが切断されるバグを修正しています(Akio Ishida)。
 </p>
 
+</p>
+<!-- -------------------------------------------------------------------------------- -->
 <h2><a name="release2.3.2"></a>2.3.2 (tomiteboshi) 2010/02/07</h2>
+<!-- -------------------------------------------------------------------------------- -->
 <h3>概要</h3>
 <p>
 このバージョンでは、2.3.1の色々なバグが修正されています。
@@ -6239,34 +6573,31 @@ strerror() ではなく hstrerror() を使うように修正しました。 (Tat
 </p>
 
 <h3>改良点</h3>
-<p>
 <ul>
- <li>フロントエンドとpgpool-II、pgpool-IIとPostgreSQLの間のSSL通信がサポートされました(Sean Finney)
- <li>ラージオブジェクトのレプリケーションがサポートされました(Tatsuo)
+ <li>フロントエンドとpgpool-II、pgpool-IIとPostgreSQLの間のSSL通信がサポートされました(Sean Finney)</li>
+ <li>ラージオブジェクトのレプリケーションがサポートされました(Tatsuo)</li>
  <li>ヘルスチェックとオンラインリカバリの際に可能であればpostgresデータベースを使うようにしました。
       postgresデータベースが存在しない場合はtemplate1が使われます(以前の動作と同じ)。
-      これにより、DROP DATABASEなどのコマンドがオンラインリカバリ中でも使えるようになりました(Tatsuo)
+      これにより、DROP DATABASEなどのコマンドがオンラインリカバリ中でも使えるようになりました(Tatsuo)</li>
  <li>問い合わせのパース処理でエラーが起きたときに、SQL文をログに出力するようにしました。
-      エンコーディングエラーなどが発生した際にはPostgreSQLのログにもSQL文が記録されないため、これは有効です(Tatsuo)
- <li>kind mismatchエラーが発生し、その原因がDEALLOCATEコマンドだった場合にDEALLOCATEが削除しようとしたPREPARED文の元になったSQL文をログに出力するようにしました(Tatsuo)
+      エンコーディングエラーなどが発生した際にはPostgreSQLのログにもSQL文が記録されないため、これは有効です(Tatsuo)</li>
+ <li>kind mismatchエラーが発生し、その原因がDEALLOCATEコマンドだった場合にDEALLOCATEが削除しようとしたPREPARED文の元になったSQL文をログに出力するようにしました(Tatsuo)</li>
 </ul>
-</p>
 
 <h3>バグ修正</h3>
-<p>
-<ul>
- <li>たまにタイムスタンプを書き換えた問い合わせがマスタ以外のDBノードに不正なパケットを送ってしまう問題を修正しました(Tatsuo)
- <li>V2プロトコルでタイムスタンプの書き換え処理がエラーになるのを修正しました(Toshihiro Kitagawa)
- <li>master/slaveモード、かつトランザクション内で発行されるBind、Describe、Closeメッセージはマスタだけに送るようにしました(Tatsuo)
- <li>2.3でsmart shutdownによりすぐに停止しなくなったバグを修正しました(Toshihiro Kitagawa)
- <li>フロントエンドからの不正なコマンドを受け付けないようにしました(Xavier Noguer)
- <li>移植性を高めるために、fprintfの引数に%dzを使用するようにしました(Tatsuo)
- <li>コンパイラワーニングを修正しました(Tatsuo)
- <li>master/slaveモードの際に、DEALLOCATEをすべてのノードに送らないようにして、kind mismatchエラーを防ぐようにしました(Tatsuo)
+ <li>たまにタイムスタンプを書き換えた問い合わせがマスタ以外のDBノードに不正なパケットを送ってしまう問題を修正しました(Tatsuo)</li>
+ <li>V2プロトコルでタイムスタンプの書き換え処理がエラーになるのを修正しました(Toshihiro Kitagawa)</li>
+ <li>master/slaveモード、かつトランザクション内で発行されるBind、Describe、Closeメッセージはマスタだけに送るようにしました(Tatsuo)</li>
+ <li>2.3でsmart shutdownによりすぐに停止しなくなったバグを修正しました(Toshihiro Kitagawa)</li>
+ <li>フロントエンドからの不正なコマンドを受け付けないようにしました(Xavier Noguer)</li>
+ <li>移植性を高めるために、fprintfの引数に%dzを使用するようにしました(Tatsuo)</li>
+ <li>コンパイラワーニングを修正しました(Tatsuo)</li>
+ <li>master/slaveモードの際に、DEALLOCATEをすべてのノードに送らないようにして、kind mismatchエラーを防ぐようにしました(Tatsuo)</li>
 </ul>
-</p>
 
+<!-- -------------------------------------------------------------------------------- -->
 <h2><a name="release2.3.1"></a>2.3.1 (tomiteboshi) 2009/12/18</h2>
+<!-- -------------------------------------------------------------------------------- -->
 <h3>概要</h3>
 <p>
 このバージョンでは、2.3の色々なバグが修正されています。
@@ -6274,31 +6605,31 @@ strerror() ではなく hstrerror() を使うように修正しました。 (Tat
 </p>
 
 <h3>バグ修正と改良点</h3>
-<p>
 <ul>
  <li>以下のすべての条件に合致する場合、DBに不正な値が書き込まれるバグを修正しました(Tatsuo)
-      <p>
       <ol>
-       <li>レプリケーションモードで動作
-       <li>64bit OS
-       <li>INSERTまたはUPDATEにおいて、now(), CURRENT_TIMESTAMP, CURRENT_DATE, CURRENT_TIMEを直接含むか、テーブルのデフォルト値に含んでいる
-       <li>更にそのSQL内に32bit(10進で-2147483648から2147483647)の範囲を超える整数定数が含まれている
+       <li>レプリケーションモードで動作</li>
+       <li>64bit OS</li>
+       <li>INSERTまたはUPDATEにおいて、now(), CURRENT_TIMESTAMP, CURRENT_DATE, CURRENT_TIMEを直接含むか、テーブルのデフォルト値に含んでいる</li>
+       <li>更にそのSQL内に32bit(10進で-2147483648から2147483647)の範囲を超える整数定数が含まれている</li>
       </ol>
-      以上を満たすSQLの例:
+      <p>以上を満たすSQLの例:</p>
       <pre>
       INSERT INTO t1(id, regdate) VALUES(98887776655, NOW());
       </pre>
+      <p>
       この例では、98887776655が32bit値にカットされて書き込まれます。
-      </p>
+      </p></li>
 
   <li>18以上のDBノードを使用している場合に、show pool_statusでクラッシュするバグを修正しました。
-このバグはshow pool_statusが実装されてからずっと存在していたものです。
+このバグはshow pool_statusが実装されてからずっと存在していたものです。</li>
 
-  <li>"kind mismatch"メッセージが出た際に、kindがERRORまたはNOTICEならば、そのメッセージを表示するようにしました。これにより、PostgreSQLのログを見なくてもkind mismatchエラーの原因を容易に調べることができるようになりました(Tatsuo)
+  <li>"kind mismatch"メッセージが出た際に、kindがERRORまたはNOTICEならば、そのメッセージを表示するようにしました。これにより、PostgreSQLのログを見なくてもkind mismatchエラーの原因を容易に調べることができるようになりました(Tatsuo)</li>
  </ul>
-</p>
 
+<!-- -------------------------------------------------------------------------------- -->
 <h2><a name="release2.3"></a>2.3 (tomiteboshi) 2009/12/07</h2>
+<!-- -------------------------------------------------------------------------------- -->
 <h3>概要</h3>
 <p>
 このバージョンでは、レプリケーション機能に改良が加えられ、時刻データ(CURRENT_TIMESTAMP, CURRENT_DATE, now()など)を正しく扱うことができるようになりました。
@@ -6310,32 +6641,104 @@ strerror() ではなく hstrerror() を使うように修正しました。 (Tat
 
 <h3>pgpool-II 2.2.からの非互換性</h3>
 <ul>
-<li>[logdir]の下にpgpool_statusというファイルが作られるので、pgpoolの実行ユーザが読み書きできる権限を与えておいてください。
+<li>[logdir]の下にpgpool_statusというファイルが作られるので、pgpoolの実行ユーザが読み書きできる権限を与えておいてください。</li>
 </ul>
 
 <h3>改良点</h3>
 <ul>
-<li>レプリケーションにおいて、時刻データ(CURRENT_TIMESTAMP, CURRENT_DATE, now()など)を正しく扱うことができるようになりました。特にアプリケーションに変更を加えることなく、INSERT/UPDATE文、テーブルのデフォルト値にこれらの時刻関数を含むケースでも正しくレプリケーションできます(いくつか制限事項があります。詳細は<a href="#restriction">制限事項</a>を参照してください)。(Akio Ishida)
-<li>SQLパーサをPostgreSQL 8.4のものにバージョンアップしました(Akio Ishida)
-<li>同時接続数が1(num_init_childrenが1)のときのレプリケーション性能が20%から100%向上しました(Tatsuo)
-<li>新しいディレクティブlog_per_node_statementが追加されました(Tatsuo)
+<li>レプリケーションにおいて、時刻データ(CURRENT_TIMESTAMP, CURRENT_DATE, now()など)を正しく扱うことができるようになりました。特にアプリケーションに変更を加えることなく、INSERT/UPDATE文、テーブルのデフォルト値にこれらの時刻関数を含むケースでも正しくレプリケーションできます(いくつか制限事項があります。詳細は<a href="#restriction">制限事項</a>を参照してください)。(Akio Ishida)</li>
+<li>SQLパーサをPostgreSQL 8.4のものにバージョンアップしました(Akio Ishida)</li>
+<li>同時接続数が1(num_init_childrenが1)のときのレプリケーション性能が20%から100%向上しました(Tatsuo)</li>
+<li>新しいディレクティブlog_per_node_statementが追加されました(Tatsuo)</li>
+<p>
 log_statementと似ていますが、DBノード単位でログが出力されるので、レプリケーションや負荷分散の確認が容易です。
-また、バックエンドのプロセスIDも表示されるので、バックエンドのログと併せての解析が容易になっています。
-<li>新しいディレクティブfail_over_on_backend_errorが追加され、フェイルオーバの挙動がより細かく制御できるようになりました(Tatsuo)
+また、バックエンドのプロセスIDも表示されるので、バックエンドのログと併せての解析が容易になっています。</p></li>
+<li>新しいディレクティブfail_over_on_backend_errorが追加され、フェイルオーバの挙動がより細かく制御できるようになりました(Tatsuo)</li>
 <li>pgpool-II停止時にダウンしたDBノードの情報をステータスファイルに記録し、pgpool-IIを起動したときにその情報をリストアできるようにしました(Tatsuo)
-ステータスファイルは [logdir]/pgpoo_status というファイルに書かれます。
+<p>ステータスファイルは [logdir]/pgpoo_status というファイルに書かれます。</p></li>
 <li>EXPLAINと、問い合わせがSELECTのときのEXPLAIN ANALYZEが負荷分散されるようになりました。
-これによって、DBノードの間で大幅に問い合わせプランが異るために、kind mismatchエラーが起きるのを防ぐことができます(Tatsuo)
-<li>日本語ドキュメントの体裁を改良しました(Tatsuo)
-<li>レプリケーションモード、マスタースレーブモード用のデフォルトpgpoo.conf.sampleが別途追加されました(Tatsuo)
-<li>時刻データのテストが追加されました(Akio Ishida)
+これによって、DBノードの間で大幅に問い合わせプランが異るために、kind mismatchエラーが起きるのを防ぐことができます(Tatsuo)</li>
+<li>日本語ドキュメントの体裁を改良しました(Tatsuo)</li>
+<li>レプリケーションモード、マスタースレーブモード用のデフォルトpgpoo.conf.sampleが別途追加されました(Tatsuo)</li>
+<li>時刻データのテストが追加されました(Akio Ishida)</li>
 </ul>
 
+<!-- ================================================================================ -->
+<!-- 2.2                                                                              -->
+<!-- ================================================================================ -->
+<hr>
+
+<!-- -------------------------------------------------------------------------------- -->
+<h2>2.2.8 (urukiboshi) 2012/08/06</h2>
+<!-- -------------------------------------------------------------------------------- -->
+<h3>概要</h3>
+<p>このバージョンでは、2.2.7 のバグが修正されています。</p>
+
+<h3>バグ修正</h3>
+<ul>
+<li>
+do_error_execute_command() が ErrorResponse を受け取るまでバックエンドからの結果を
+見ないように修正しました。 (Toshihiro Kitagawa)
+<p>
+ReadyForQuery のようなエラーでない結果をとっておき、pool_unread() で呼び出す
+必要があるためです。
+これは PHP PDO を使っているときに起こる可能性がありました。
 </p>
+</li>
 
-<h2>2.2.6 (urukiboshi) 2009/12/01</h2>
+<li>
+SimpleForwardToFrontend() が、SELECT 実行中に bind エラーになったとき、
+select_in_transaction フラグと execute_select フラグををリセットするように修正しました。
+(Toshihiro Kitagawa)
+</li>
+
+<li>
+pcp_check_fd() のタイムアウト処理のバグを修正しました。 (Tatsuo Ishii)
+<p>これは以下で報告されました。</p>
+<blockquote>
+Subject: [Pgpool-general] question about pcp_check_fd<br>
+Date: Sun, 23 May 2010 18:21:41 -0500<br>
+To: pgpool <pgpool-general@pgfoundry.org>
+</blockquote>
+</li>
+
+<li>pcp パスワードが 32 文字以上のときに、バッファオーバーランするのを修正しました。(Tatsuo Ishii)</li>
+
+<li>
+wait_for_query_response() が、frontend がないときには何もしないように修正しました。(Tatsuo Ishii)
+<p>
+バックエンドをリセットする reset_query_list のクエリを実行に 時間がかかったときに
+発生する可能性があり、またクラッシュすることがありました。
+</p>
+</li>
+</ul>
+
+<!-- -------------------------------------------------------------------------------- -->
+<h2>2.2.7 (urukiboshi) 2010/04/15</h2>
+<!-- -------------------------------------------------------------------------------- -->
 <h3>概要</h3>
 <p>
+このバージョンでは、kind mismatchエラーが起きた際のエラーメッセージが改善されています。
+また、2.2.6以前の色々なバグが修正されています。
+</p>
+<h3>バグ修正</h3>
+<ul>
+<li>マスター/スレーブモード、rawモード、またはコネクションプールモードにおいて、拡張プロトコルを使用している際に時々ハングアップするバグを修正しました。これは、2.3系からのバックパッチです(Kitagawa)</li>
+<li>pgpool子プロセスがsegfaultを起こすpgpool-II 1.0から長い間存在したバグを修正しました。
+これは、親プロセスがshmemサイズの計算を間違えていたことに起因します。バグ解析(Kitagawa)、パッチ作成(Tatsuo)</li>
+<li>マスター/スレーブモードにおいて、明示的なトランザクションで操作した場合は、Parse、Bind、Describe、そしてCloseメッセージをマスターノードのみに送るようにしました(Tatsuo)</li>
+<li>postmasterが終了する際に、ログを出力するようにしました(Tatsuo)</li>
+<li>make_persistent_db_connection関数のメモリリークを修正しました(Xavier Noguer)</li>
+<li>マスター/スレーブモードでは、DEALLOCATEの強制的なレプリケーションをしないようにしました。
+pgpoolはParseをすべてのノードで実行しないため、これは無意味で問題(DEALLOCATE実行時のkind mismatch)を引き起こしていました(Tatsuo)</li>
+<li>18より多いDBノードでshow pool_statusを実行したときにクラッシュするバグを修正しました(Tatsuo)</li>
+<li>kind mismatchメッセージを改善しました。kindがERROR、またはNOTICEの場合は、何が起きているかユーザーがわかりやすいようにERROR/NOTICEメッセージを出力します(Tatsuo)</li>
+</ul>
+
+<!-- -------------------------------------------------------------------------------- -->
+<h2>2.2.6 (urukiboshi) 2009/12/01</h2>
+<!-- -------------------------------------------------------------------------------- -->
+<h3>概要</h3>
 このバージョンでは、ロードバランスの重みパラメータweightの扱いが改善され、
 また一時テーブルがマスター/スレーブモードで利用できるようになりました。
 もちろんいつものように2.2.5以前の色々なバグが修正されています。
@@ -6344,85 +6747,89 @@ log_statementと似ていますが、DBノード単位でログが出力され
 <ul>
 <li>DECLARE, CLOSE, FETCH, MOVEがロードバランスの対象にならなくなりました。
 もしデータが更新され、トランザクションがコミットされた後にCLOSEが発行されるとデータの一貫性がなくなるからです
-(つまり、holdできるカーソルの場合のことを言っています)(Tatsuo)
+(つまり、holdできるカーソルの場合のことを言っています)(Tatsuo)</li>
 <li>マスター/スレーブモードにおいて、拡張プロトコルのParseをマスター上でのみ実行するようにしました。
-以前はすべてのノードでParseが実行されていたのですが、これだと不必要なロックがスレーブでも取られてしまいます(Tatsuo)
-<li>uninstallの前にすべてのランレベルからinitスクリプトを削除するようにしました(Devrim)
-<li>認証に失敗したときに適切なエラーメッセージを出すようにしました(Glyn Astill)
-<li>ソケットへの書き込みに失敗したときにフロントエンド用なのかバックエンド用なのかわかるようにしました(Tatsuo)
-<li>フロントエンド用のソケットに書き込み失敗したときにいちいちエラーを出さないようにしました(Tatsuo)
+以前はすべてのノードでParseが実行されていたのですが、これだと不必要なロックがスレーブでも取られてしまいます(Tatsuo)</li>
+<li>uninstallの前にすべてのランレベルからinitスクリプトを削除するようにしました(Devrim)</li>
+<li>認証に失敗したときに適切なエラーメッセージを出すようにしました(Glyn Astill)</li>
+<li>ソケットへの書き込みに失敗したときにフロントエンド用なのかバックエンド用なのかわかるようにしました(Tatsuo)</li>
+<li>フロントエンド用のソケットに書き込み失敗したときにいちいちエラーを出さないようにしました(Tatsuo)</li>
 <li>マスター/スレーブモードで一時テーブルが使えるようになりました。
 INSERT/UPDATE/DELETEは自動的にマスタのみに送られます。SELECTに関しては明示的にクエリの前に
-/*NO LOAD BALANCE*/というコメントを付けなければなりません(Tatsuo)
+/*NO LOAD BALANCE*/というコメントを付けなければなりません(Tatsuo)</li>
 </ul>
-</p>
 
+<!-- -------------------------------------------------------------------------------- -->
 <h2>2.2.5 (urukiboshi) 2009/10/4</h2>
+<!-- -------------------------------------------------------------------------------- -->
 <h3>概要</h3>
 <p>
 このバージョンでは、2.2.4以前の色々なバグが修正されています。
 </p>
 <h3>バグ修正</h3>
 <ul>
-<li>コネクション数のカウントのミスにより、オンラインリカバリが終わらなくなるバグを修正しました(Tatsuo)
-<li>内部的にロックを発行する際にもフロントエンドが異常終了したことを検出してSQLコマンドをキャンセルするようにしました(Tatsuo)
-<li>接続の終了処理で無限ループに陥ることがあるバグを修正しました(Xavier Noguer, Tatsuo)
-<li>拡張プロトコルのパース処理でkind mismatch errorが起きた際に正しいSQL文を表示するようにしました(Tatsuo)
-<li>ドキュメントを改善しました(Tatsuo)
+<li>コネクション数のカウントのミスにより、オンラインリカバリが終わらなくなるバグを修正しました(Tatsuo)</li>
+<li>内部的にロックを発行する際にもフロントエンドが異常終了したことを検出してSQLコマンドをキャンセルするようにしました(Tatsuo)</li>
+<li>接続の終了処理で無限ループに陥ることがあるバグを修正しました(Xavier Noguer, Tatsuo)</li>
+<li>拡張プロトコルのパース処理でkind mismatch errorが起きた際に正しいSQL文を表示するようにしました(Tatsuo)</li>
+<li>ドキュメントを改善しました(Tatsuo)</li>
 </ul>
-</p>
 
+<!-- -------------------------------------------------------------------------------- -->
 <h2>2.2.4 (urukiboshi) 2009/8/24</h2>
+<!-- -------------------------------------------------------------------------------- -->
 <h3>概要</h3>
 <p>
 このバージョンでは、2.2.3以前の色々なバグが修正されています。
-</p>
 <h3>バグ修正</h3>
 <ul>
- <li>pgpool-II 2.2.2で入ってしまったバグを修正しました。フロントエンドがアボートするタイミングによっては、以後内部状態がリセットされず、次のセッションでDMLやDDLがマスターノードのみ送られ、ノード間でデータの不一致が生じることがありました(Tatsuo)
+ <li>pgpool-II 2.2.2で入ってしまったバグを修正しました。フロントエンドがアボートするタイミングによっては、以後内部状態がリセットされず、次のセッションでDMLやDDLがマスターノードのみ送られ、ノード間でデータの不一致が生じることがありました(Tatsuo)</li>
  <li>pgpool-II 2.2.3でバージョン2プロトコルのクライアントが動かなくなってしまっていたのを修正しました。
-      また、時間のかかるクエリを待っている間にフロントエンドが異常終了したことを検知する間隔を1秒から30秒に変更しました。このチェックは、2.2.4ではプロトコルバージョンが3のときのみ有効です(Tatsuo)
+      また、時間のかかるクエリを待っている間にフロントエンドが異常終了したことを検知する間隔を1秒から30秒に変更しました。このチェックは、2.2.4ではプロトコルバージョンが3のときのみ有効です(Tatsuo)</li>
  <li>子プロセスを起動する前にシグナルのブロックやハンドラの設定を行なうようにしました。
-これは、pgpool-IIを起動した直後にフェイルオーバなどの事象が発生して子プロセスから親プロセスにシグナルが送られると、pgpool-IIの親プロセスが死んでしまうことがあるからです(Tatsuo)
+これは、pgpool-IIを起動した直後にフェイルオーバなどの事象が発生して子プロセスから親プロセスにシグナルが送られると、pgpool-IIの親プロセスが死んでしまうことがあるからです(Tatsuo)</li>
 </ul>
-</p>
 
+<!-- -------------------------------------------------------------------------------- -->
 <h2>2.2.3 (urukiboshi) 2009/8/11</h2>
+<!-- -------------------------------------------------------------------------------- -->
 <h3>概要</h3>
 <p>
 このバージョンでは、2.2.2以前の色々なバグが修正されています。
 </p>
 <h3>バグ修正</h3>
 <ul>
- <li>バックエンドに新しいコネクションを張る際に、バックエンドの一つが障害を起しているケースで、後処理の中でpgpool-IIの子プロセスが落ちることがあるバグを修正しました(Tatsuo)
- <li>パラレルクエリのバグを修正しました(Yoshiharu Mori)
- <li>拡張プロトコルの場合にもエラーメッセージの中で最後に使用したクエリが表示できるようになりました(Akio Ishida)
- <li>kind mismatch errorメッセージの作成で、メッセージ内容が壊れることがあるバグを修正しました(Tatsuo, Akio Ishida)
- <li>バックエンドへの接続記述子の参照タイミングによってはpgpool-IIの子プロセスが落ちることがあるバグを修正しました(Tatsuo)。
- <li>pool_errorやpool_logの引数が間違っていた個所を修正しました(Akio Ishida)。
+ <li>バックエンドに新しいコネクションを張る際に、バックエンドの一つが障害を起しているケースで、後処理の中でpgpool-IIの子プロセスが落ちることがあるバグを修正しました(Tatsuo)</li>
+ <li>パラレルクエリのバグを修正しました(Yoshiharu Mori)</li>
+ <li>拡張プロトコルの場合にもエラーメッセージの中で最後に使用したクエリが表示できるようになりました(Akio Ishida)</li>
+ <li>kind mismatch errorメッセージの作成で、メッセージ内容が壊れることがあるバグを修正しました(Tatsuo, Akio Ishida)</li>
+ <li>バックエンドへの接続記述子の参照タイミングによってはpgpool-IIの子プロセスが落ちることがあるバグを修正しました(Tatsuo)。</li>
+ <li>pool_errorやpool_logの引数が間違っていた個所を修正しました(Akio Ishida)。</li>
  <li>statement_timeoutのタイムアウトによるエラー処理を改良しました。実際にはタイムアウトまでにstatement_timeoutで設定した時間の倍かかっていたのを直しました。また、masterだけがstatement_timeoutを返した場合にも対応できるようにしました。以前はkind mismatchエラーになっていました(Tatsuo)。
-(master以外がstatement_timeoutを返さないケースではkind mismatchエラーになります)。
+(master以外がstatement_timeoutを返さないケースではkind mismatchエラーになります)。</li>
 
- <li>health checkをより強化し、postmasterがSIGSTOPで止ってしまっている場合も障害検知できるようにしました。
+ <li>health checkをより強化し、postmasterがSIGSTOPで止ってしまっている場合も障害検知できるようにしました。</li>
 
  <li>バックエンドにSQLを投げ、その応答を待っている間にクライアントがpgpoolに対するコネクションを切断したことが検出できるようになりました。
 たとえば、WebアプリケーションではDBに対してリクエストを投げて、応答がないとキャンセルするようなことが頻繁に起ります。
 この場合、今まではpgpoolやPostgreSQLのプロセスが残ってしまい、同時接続数が枯渇したり、ロックを取ったままのトランザクションが残るなどしてシステム全体に影響を与えることがありました。
-今回の修正により、こうした状況が検出できるようになっただけでなく、SQLの応答待ちの間にクライアントがコネクションを切断した際には、SQLコマンドのキャンセルをpgpoolが行なって、ロック待ちなどのバックエンドプロセスが残るのを防ぐことができるようになりました(Tatsuo)。
+今回の修正により、こうした状況が検出できるようになっただけでなく、SQLの応答待ちの間にクライアントがコネクションを切断した際には、SQLコマンドのキャンセルをpgpoolが行なって、ロック待ちなどのバックエンドプロセスが残るのを防ぐことができるようになりました(Tatsuo)。</li>
 
-<li>引数なしのCLUSTERコマンドはトランザクションの中では実行できないので、自動トランザクションをスタートしないようにしました(Tatsuo)。
+<li>引数なしのCLUSTERコマンドはトランザクションの中では実行できないので、自動トランザクションをスタートしないようにしました(Tatsuo)。</li>
 
-<li>複数のプリペアドステートメントを使っている際に、セッションの終りでその一部だけが解放されるバグを修正しました(Akio Ishida)
+<li>複数のプリペアドステートメントを使っている際に、セッションの終りでその一部だけが解放されるバグを修正しました(Akio Ishida)</li>
 。
-<li>sql/pgpool-recovery/pgpool-recovery.cがPostgreSQL 8.4でコンパイルできるようにしました(Tatsuo)。
+<li>sql/pgpool-recovery/pgpool-recovery.cがPostgreSQL 8.4でコンパイルできるようにしました(Tatsuo)。</li>
 
-<li>拡張プロトコルを使っている場合に、クライアントとpgpoolの間でお互いに待ち状態になってしまうことがあるバグを修正しました(Gavin Sherry)。
+<li>拡張プロトコルを使っている場合に、クライアントとpgpoolの間でお互いに待ち状態になってしまうことがあるバグを修正しました(Gavin Sherry)。</li>
 
-<li>COPY FROMを実行中にクライアントが処理を中断した場合に、バックエンドプロセスが残ってしまうバグを修正しました(Tatsuo)。
+<li>COPY FROMを実行中にクライアントが処理を中断した場合に、バックエンドプロセスが残ってしまうバグを修正しました(Tatsuo)。</li>
 
 </ul>
 
+<!-- -------------------------------------------------------------------------------- -->
 <h2>2.2.2 (urukiboshi) 2009/5/5</h2>
+<!-- -------------------------------------------------------------------------------- -->
 <h3>概要</h3>
 <p>
 このバージョンでは、2.2.1以前の色々なバグが修正されています。
@@ -6431,16 +6838,18 @@ INSERT/UPDATE/DELETEは自動的にマスタのみに送られます。SELECTに
 </p>
 <h3>バグ修正</h3>
 <ul>
-  <li>フロントエンドにpgpoolがデータを送信する際のエラーを無視するようにしました。これによって、バックエンドとの間で必要な処理が中断されないようになり、バックエンドの間でデータの一貫性がなくなる問題が回避されるようになりました(Tatsuo)。
+  <li>フロントエンドにpgpoolがデータを送信する際のエラーを無視するようにしました。これによって、バックエンドとの間で必要な処理が中断されないようになり、バックエンドの間でデータの一貫性がなくなる問題が回避されるようになりました(Tatsuo)。</li>
 
-  <li>マスタースレーブモードに関する2.2.1の修正の際に生じたバグを修正しました。プリペアドステートメントを使い回すとハングアップする可能性がありました(Toshihiro)。
+  <li>マスタースレーブモードに関する2.2.1の修正の際に生じたバグを修正しました。プリペアドステートメントを使い回すとハングアップする可能性がありました(Toshihiro)。</li>
 
-  <li>SQLコマンドのPREPAREとプロトコルレベルのEXECUTEが混在するとバックエンドがクラッシュするバグを修正しました。このバグが、2.2で持ち込まれたものです(Tatsuo)。
+  <li>SQLコマンドのPREPAREとプロトコルレベルのEXECUTEが混在するとバックエンドがクラッシュするバグを修正しました。このバグが、2.2で持ち込まれたものです(Tatsuo)。</li>
 
-  <li>コネクションのリセット用の問合わせを実行中にエラーが起きた場合に、PostgreSQLのログに"unexpected EOF on client connection"が記録される問題を修正しました(Tatsuo)。
+  <li>コネクションのリセット用の問合わせを実行中にエラーが起きた場合に、PostgreSQLのログに"unexpected EOF on client connection"が記録される問題を修正しました(Tatsuo)。</li>
 </ul>
 
+<!-- -------------------------------------------------------------------------------- -->
 <h2>2.2.1 (urukiboshi) 2009/4/25</h2>
+<!-- -------------------------------------------------------------------------------- -->
 <h3>概要</h3>
 <p>
 このバージョンでは、2.2の色々なバグが修正されています。
@@ -6448,18 +6857,20 @@ INSERT/UPDATE/DELETEは自動的にマスタのみに送られます。SELECTに
 <h3>バグ修正</h3>
 <ul>
   <li>master/slaveモードで、DEALLOCATEが失敗することがある問題を修正しました。
-       これは、最初のPREPAREがslaveで実行されないことによるものです(Toshihiro)
+       これは、最初のPREPAREがslaveで実行されないことによるものです(Toshihiro)</li>
 
-  <li>pgpool.specなどを2.2対応にしました(Devrim)
+  <li>pgpool.specなどを2.2対応にしました(Devrim)</li>
 
-  <li>Version 2プロトコルではinsert_lockが無視されるようにしました(Tatsuo)
+  <li>Version 2プロトコルではinsert_lockが無視されるようにしました(Tatsuo)</li>
 
-  <li>パラメータ変更メッセージがバックエンドから届く度にログが出力されるのを止めました(Tatsuo)
+  <li>パラメータ変更メッセージがバックエンドから届く度にログが出力されるのを止めました(Tatsuo)</li>
 
-  <li>ドキュメントで追加し忘れたファイルを登録しました(Tatsuo)
+  <li>ドキュメントで追加し忘れたファイルを登録しました(Tatsuo)</li>
 </ul>
 
+<!-- -------------------------------------------------------------------------------- -->
 <h2>2.2 (urukiboshi) 2009/2/28</h2>
+<!-- -------------------------------------------------------------------------------- -->
 <h3>概要</h3>
 <p>
 このバージョンでは、SERIALデータの扱いとオンラインリカバリに改良が行なわれています。
@@ -6467,19 +6878,17 @@ INSERT/UPDATE/DELETEは自動的にマスタのみに送られます。SELECTに
 </p>
 
 <h3>新機能</h3>
-<p>
 <ul>
-<li>insert_lockが有効な場合、SERIAL型を持つテーブルだけがロックされるようになりました(Tatsuo)。
+<li>insert_lockが有効な場合、SERIAL型を持つテーブルだけがロックされるようになりました(Tatsuo)。</li>
 <li>設定項目client_idle_limit_in_recoveryが追加されました。
      オンラインリカバリの第2ステージでクライアントがアイドルのまま居座ることによって、
-     オンラインリカバリが進行しなくなることを防ぐことができます(Tatsuo)。
+     オンラインリカバリが進行しなくなることを防ぐことができます(Tatsuo)。</li>
 <li>設定項目pid_file_nameが追加されました。これは、pgpool-IIのpidファイルを指定します。
-     これにより、logdirは使用されなくなりました(Tatsuo)。
-<li>DECLARE, FETCH, CLOSEで負荷分散されるようになりました(Tatsuo)。
-<li>pcpコマンドにデバッグオプション(-d)が追加されました(Jun Kuriyama)。
-<li>"kind mismatch"エラーの際に、原因となったクエリを表示するようにしました(Tatsuo)。
+     これにより、logdirは使用されなくなりました(Tatsuo)。</li>
+<li>DECLARE, FETCH, CLOSEで負荷分散されるようになりました(Tatsuo)。</li>
+<li>pcpコマンドにデバッグオプション(-d)が追加されました(Jun Kuriyama)。</li>
+<li>"kind mismatch"エラーの際に、原因となったクエリを表示するようにしました(Tatsuo)。</li>
 </ul>
-</p>
 
 <h3>互換性</h3>
 <ul>
@@ -6487,10 +6896,10 @@ INSERT/UPDATE/DELETEは自動的にマスタのみに送られます。SELECTに
        この結果、フェイルオーバ時には必ずpgpoolへのセッションが一端切れることになります。
        こうしないと、ネットワークケーブル抜けなどの際に、
        TCP/IPのレイヤで再送が行なわれ、長い時間そのままになってしまうことが
-       あるからです(Tatsuo)。
-  <li>設定項目logdirは使われなくなりました。代りに、pid_file_nameを使ってください(Tatsuo)。
+       あるからです(Tatsuo)。</li>
+  <li>設定項目logdirは使われなくなりました。代りに、pid_file_nameを使ってください(Tatsuo)。</li>
 
-  <li>insert_lockのデフォルト値がtrueになりました(Tatsuo)。
+  <li>insert_lockのデフォルト値がtrueになりました(Tatsuo)。</li>
 </ul>
 
 <h3>バグ修正</h3>
@@ -6498,11 +6907,11 @@ INSERT/UPDATE/DELETEは自動的にマスタのみに送られます。SELECTに
   <li> pgpoolがデーモンモードで起動される際に、すべてのファイルディスクリプタを
        閉じるようにしました。こうしないと、pgpoolAdminから起動された際に
        apacheのソケットファイルを引き継いでしまい、80番ポートが
-       専有されてしまいます(Akio Ishida)。
+       専有されてしまいます(Akio Ishida)。</li>
   <li> トランザクションをシリアライズできないエラーが発生したときに、
        すべてのDBノードのトランザクションをアボートするようにしました。
        こうしないと、DBノードの間でデータの不整合が起きることがあります(Tatsuo)。
-       例を示します(Mはマスタ、Sはスレーブを示します)。
+       <p>例を示します(Mはマスタ、Sはスレーブを示します)。</p>
        <pre>
        M:S1:BEGIN;
        M:S2:BEGIN;
@@ -6519,13 +6928,13 @@ INSERT/UPDATE/DELETEは自動的にマスタのみに送られます。SELECTに
        M:S1:COMMIT;
        M:S2:ERROR:  could not serialize access due to concurrent update
        S:S2:UPDATE t1 SET i = i + 1; <-- success in UPDATE and data becomes inconsistent!
-       </pre>
+       </pre></li>
 
- <li> rawモードでMD5認証が使えるようにしました。ドキュメント上では使えるはずでした(Tatsuo)。
+ <li> rawモードでMD5認証が使えるようにしました。ドキュメント上では使えるはずでした(Tatsuo)。</li>
 
  <li> "SET TRANSACTION ISOLATION LEVEL must be called before any query"の
        エラーが発生した場合に"kind mimatch"エラーになることを防ぐようにしました(Tatsuo)。
-       以下のシナリオで問題が発生します。
+       <p>以下のシナリオで問題が発生します。</p>
        <pre>
        M:S1:BEGIN;
        S:S1:BEGIN;
@@ -6534,339 +6943,377 @@ INSERT/UPDATE/DELETEは自動的にマスタのみに送られます。SELECTに
        S:S1:SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
        M: <-- error
        S: <-- ok since no previous SELECT is sent. kind mismatch error occurs!
-       </pre>
+       </pre></li>
 
-<li>FreeBSDにおいて、psでのprocess statusの表示で余計なスペースが含まれてしまうのを修正しました(Jun Kuriyama)
+<li>FreeBSDにおいて、psでのprocess statusの表示で余計なスペースが含まれてしまうのを修正しました(Jun Kuriyama)</li>
 
-<li>BEGIN;を2度続けるとkind mismatch errorが発生するのを修正しました(Tatsuo)
+<li>BEGIN;を2度続けるとkind mismatch errorが発生するのを修正しました(Tatsuo)</li>
 
-<li>PostgreSQLがたくさんのDEBUGメッセージを出力する場合に、誤ってエラーと見なすバグを修正しました(Tatsuo)
+<li>PostgreSQLがたくさんのDEBUGメッセージを出力する場合に、誤ってエラーと見なすバグを修正しました(Tatsuo)</li>
 
-<li>クエリのキャンセルが動くようになりました(Tatsuo)
+<li>クエリのキャンセルが動くようになりました(Tatsuo)</li>
 
 <li>オンラインリカバリの後クライアントからの接続を受け付けるタイミングが早すぎるバグを修正しました。
-このバグにより、ノードデータの貫性が保たれない可能性がありました(Tatsuo)
+このバグにより、ノードデータの貫性が保たれない可能性がありました(Tatsuo)</li>
 
 <li>SELECT, INSERT, UPDATE, DELETE以外のコマンドでも必要ならばトランザクションブロックの内側で実行するようにしました。
-これにより、エラー発生の際にロールバックしてノードの整合性を保つことができます(Tatsuo)
+これにより、エラー発生の際にロールバックしてノードの整合性を保つことができます(Tatsuo)</li>
 
 <li>オンラインリカバリ後、pgpool-IIの子プロセスがクラッシュすることがあるバグを修正しました。
-これは、オンラインリカバリの後、新しくアタッチされたノードに接続がないのに、そのノードに子プロセスが終了時に終了メッセージをバックエンドに送信しようとして起っていました(Tatsuo)
+これは、オンラインリカバリの後、新しくアタッチされたノードに接続がないのに、そのノードに子プロセスが終了時に終了メッセージをバックエンドに送信しようとして起っていました(Tatsuo)</li>
 
 <li>PostgreSQLがpostgresql.confを再読み込みした際にpgpoolがエラーを検出してしまうバグを修正しました。
-これは、PostgreSQLが(たぶん)ドキュメントに書かれていないタイミングで「パラメータ変更」パケットを送信してくるために起り、修正はそのことに対応したものです(Tatsuo)
+これは、PostgreSQLが(たぶん)ドキュメントに書かれていないタイミングで「パラメータ変更」パケットを送信してくるために起り、修正はそのことに対応したものです(Tatsuo)</li>
 
 </ul>
 
+<!-- ================================================================================ -->
+<!-- 2.1                                                                              -->
+<!-- ================================================================================ -->
+<hr>
+
+<!-- -------------------------------------------------------------------------------- -->
 <h2>2.1 (inamiboshi) 2008/7/25</h2>
+<!-- -------------------------------------------------------------------------------- -->
 <h3>新機能</h3>
 <ul>
   <li> failover_command と failback_command に、新しいマスタノード ID
-  を表す '%m' をサポートしました。(Yoshiyuki)
+  を表す '%m' をサポートしました。(Yoshiyuki)</li>
   <li> failover_command と failback_command に、古いマスタノード ID を
-  表す '%M' をサポートしました。(Yoshiyuki)
+  表す '%M' をサポートしました。(Yoshiyuki)</li>
   <li> リカバリのタイムアウト時間を指定する recovery_timeout パラメー
-  タを追加しました。(Taiki)
+  タを追加しました。(Taiki)</li>
   <li> pg_md5 コマンドに -p オプションを追加しました。(Volkan Yazici,
-  Taiki)
+  Taiki)</li>
   <li> pgpool -v を実行するとバージョン番号を表示し、終了するようにし
-  ました。(Yoshiyuki)
+  ました。(Yoshiyuki)</li>
 </ul>
 
 <h3>互換性</h3>
 <ul>
   <li> pgpool_recovery と pgpool_remote_start 関数はスーパーユーザのみ実行
-  できるように権限チェックを強化しました。(Yoshiyuki)
+  できるように権限チェックを強化しました。(Yoshiyuki)</li>
   <li> raw モードでスタンバイノードにはコネクションプールを作成しない
-  ようにしました。(Yoshiyuki)
-  <li> replication_timeout パラメータを削除しました。(Yoshiyuki)
-  <li> PCP クライアントコマンドのタイムアウトを無効にしました。(Taiki)
+  ようにしました。(Yoshiyuki)</li>
+  <li> replication_timeout パラメータを削除しました。(Yoshiyuki)</li>
+  <li> PCP クライアントコマンドのタイムアウトを無効にしました。(Taiki)</li>
   <li> replicate_select = false の場合に、COPY TO STDOUT をレプリケー
-  ションさせないようにしました。(Yoshiyuki)
+  ションさせないようにしました。(Yoshiyuki)</li>
 </ul>
 
 <h3>修正</h3>
 <h4> 全般 </h4>
 <ul>
   <li> CloseComplete メッセージを受けとるとクラッシュする不具合を修正
-  しました。(Yoshiyuki)
-  <li> メッセージ転送処理を効率よくしました。(Yoshiyuki)
-  <li> Solaris 10 でコンパイルできるようにしました。(Yoshiyuki)
-  <li> ヘルスチェックとリカバリのログ出力を改良しました。(Tatsuo)
-  <li> 様々なメモリリークを修正しました。(Yoshiyuki)
+  しました。(Yoshiyuki)</li>
+  <li> メッセージ転送処理を効率よくしました。(Yoshiyuki)</li>
+  <li> Solaris 10 でコンパイルできるようにしました。(Yoshiyuki)</li>
+  <li> ヘルスチェックとリカバリのログ出力を改良しました。(Tatsuo)</li>
+  <li> 様々なメモリリークを修正しました。(Yoshiyuki)</li>
   <li> "failed to read kind from frontend" というエラーメッセージを
-  ERRORレベルから LOG レベルに下げました。(Yoshiyuki)
+  ERRORレベルから LOG レベルに下げました。(Yoshiyuki)</li>
   <li> raw モードでフェイルオーバに失敗する不具合を修正しました。
-  (Taiki)
+  (Taiki)</li>
   <li> 不正なノードを追加・切り離しを行うとゾンビプロセスが発生する不
-  具合を修正しました。(Yoshiyuki)
+  具合を修正しました。(Yoshiyuki)</li>
   <li> health_check_timeout が正しく動作しない不具合を修正しました。
-  (Kenichi Sawada)
+  (Kenichi Sawada)</li>
   <li> FreeBSD で ps コマンドの出力が正しくない不具合を修正しました。
-  (ISHIDA Akio)
+  (ISHIDA Akio)</li>
   <li> Unix domain ソケットが残っている場合のエラーメッセージを強化し
-  ました。(Jun Kuriyama)
-  <li> 認証に失敗した場合のエラーメッセージを強化しました。(Tatsuo)
+  ました。(Jun Kuriyama)</li>
+  <li> 認証に失敗した場合のエラーメッセージを強化しました。(Tatsuo)</li>
 </ul>
 
 <h4>レプリケーション</h4>
 <ul>
   <li> replicate_select を設定しても、常に false の挙動になる不具合を
-  修正しました。(Tatsuo)
+  修正しました。(Tatsuo)</li>
   <li> 拡張問い合わせプロトコルを使っていると、トランザクションを誤ってロー
-  ルバックしてしまう不具合を修正しました。(Yoshiyuki)
+  ルバックしてしまう不具合を修正しました。(Yoshiyuki)</li>
   <li> 非同期クエリを使っていると pgpool が不安定になる不具合を修正し
-  ました。(Yoshiyuki)
+  ました。(Yoshiyuki)</li>
   <li> 拡張問合せプロトコルを使うと /* REPLICATION */などのヒント句が消えて
-  しまう不具合を修正しました。(Yoshiyuki)
+  しまう不具合を修正しました。(Yoshiyuki)</li>
   <li> DEALLOCATE ALL を実行するとクラッシュする不具合を修正しました。
-  (Yoshiyuki)
+  (Yoshiyuki)</li>
   <li> immediate shutdown するとハングアップする不具合を修正しました。
-  (Yoshiyuki)
+  (Yoshiyuki)</li>
   <li> 高負荷時にオンラインリカバリを実施すると、リカバリプロセスがハ
-  ングアップする可能性のある不具合を修正しました。(Yoshiyuki)
+  ングアップする可能性のある不具合を修正しました。(Yoshiyuki)</li>
   <li> 拡張問合せプロトコルを使って SELECT を実行した際に、トランザク
   ションブロック内でクエリがエラーになると、pgpool がハングアップする
-  可能性のある不具合を修正しました。(Yoshiyuki)
+  可能性のある不具合を修正しました。(Yoshiyuki)</li>
 </ul>
 
 <h4>マスタースレーブ</h4>
 <ul>
   <li> トランザクションブロック内で、SET, PREPARE, DEALLOCATE を実行す
-  ると、プロセスがダウンする不具合を修正しました。(Yoshiyuki)
+  ると、プロセスがダウンする不具合を修正しました。(Yoshiyuki)</li>
   <li> マスタースレーブモードでロードバランスが正しく動作していない不
-  具合を修正しました。(Yoshiyuki)
+  具合を修正しました。(Yoshiyuki)</li>
 </ul>
 
 <h4>パラレルクエリ</h4>
 <ul>
-  <li> INSERT に失敗する不具合を修正しました。(Yoshiharu)
-  <li> FROM 句に AS が含まれると構文エラーになる不具合を修正しました。(sho)
-  <li> クエリを複数回実行するとハングアップする不具合を修正しました。(Yoshiharu)
-  <li> JOIN に失敗する不具合を修正しました。(Yoshiharu)
-  <li> DISTINCT構文 の解析に失敗する不具合を修正しました。(Yoshiharu)
+  <li> INSERT に失敗する不具合を修正しました。(Yoshiharu)</li>
+  <li> FROM 句に AS が含まれると構文エラーになる不具合を修正しました。(sho)</li>
+  <li> クエリを複数回実行するとハングアップする不具合を修正しました。(Yoshiharu)</li>
+  <li> JOIN に失敗する不具合を修正しました。(Yoshiharu)</li>
+  <li> DISTINCT構文 の解析に失敗する不具合を修正しました。(Yoshiharu)</li>
 </ul>
 
+<!-- ================================================================================ -->
+<!-- 2.0                                                                              -->
+<!-- ================================================================================ -->
 <hr>
 
+<!-- -------------------------------------------------------------------------------- -->
 <h2>2.0.1 (hikitsuboshi) 2007/11/21</h2>
+<!-- -------------------------------------------------------------------------------- -->
 <ul>
   <li> UPDATE もしくは DELETE を実行するとプロセスがダウンする不具合を
-       修正しました。(Yoshiyuki)
+       修正しました。(Yoshiyuki)</li>
   <li> master_slave を true に設定している場合に、SQL 構文エラーを検知
-       した時にマスタにのみそのクエリを送信するようにしました。(Yoshiyuki)
+       した時にマスタにのみそのクエリを送信するようにしました。(Yoshiyuki)</li>
 </ul>
 
 <hr>
 
+<!-- -------------------------------------------------------------------------------- -->
 <h2>2.0 (hikitsuboshi) 2007/11/16</h2>
+<!-- -------------------------------------------------------------------------------- -->
 <h3>互換性</h3>
 <ul>
   <li> ignore_leading_white_space のデフォルト値を true にしました。
-  (Yoshiyuki)
+  (Yoshiyuki)</li>
   <li> replicate_strict を廃止しました。常に replicate_strict が true
-  の挙動になります。(Yoshiyuki)
+  の挙動になります。(Yoshiyuki)</li>
 </ul>
 
 <h3>全般</h3>
 <ul>
   <li> pgpool.conf をリロードできるようにしました。リロード時に分散ルー
-  ルも同時にリロードします。(Yoshiyuki)
-  <li> SQL パーサを PostgreSQL 8.3 に対応しました。(Yoshiyuki)
+  ルも同時にリロードします。(Yoshiyuki)</li>
+  <li> SQL パーサを PostgreSQL 8.3 に対応しました。(Yoshiyuki)</li>
   <li> ノードを切り離した際にユーザが設定したコマンドを実行できるよう
   に、pgpool.conf に failover_command というパラメータを追加しました。
-  (Yoshiyuki)
+  (Yoshiyuki)</li>
   <li> ノードを復帰した際にユーザが設定したコマンドを実行できるように、
   pgpool.conf に failback_command というパラメータを追加しました。
-  (Yoshiyuki)
+  (Yoshiyuki)</li>
   <li> pgpool.conf に client_idle_limit というパラメータを追加しました。
   このパラメータではクライアントからのクエリの最大待ち時間を設定するこ
-  とができます。(Tatsuo)
+  とができます。(Tatsuo)</li>
 </ul>
 
 <h3>レプリケーション</h3>
 <ul>
   <li> トランザクションブロックに囲まれていないクエリをレプリケーショ
   ンさせる場合、内部的にトランザクションを開始させるようにしました。
-  (Yoshiyuki)
-  <li> レプリケーションを高速化させるようにしました。(Yoshiyuki)
+  (Yoshiyuki)</li>
+  <li> レプリケーションを高速化させるようにしました。(Yoshiyuki)</li>
   <li> ノードを再同期させて復帰させる、オンラインリカバリ機能を実装し
-  ました。(Yoshiyuki)
+  ました。(Yoshiyuki)</li>
   <li> INSERT, UPDATE, DELETE した行数がすべて一致しなかった場合に、ト
   ランザクションをアボートさせるようにしました。(Yoshiyuki)
 <pre>
    x=# update t set a = a + 1;
    ERROR:  pgpool detected difference of the number of update tuples
    HINT:  check data consistency between master and other db node
-</pre>
+</pre></li>
   <li> 複数のバックエンドから異なる結果が返ってきた場合に、同じ結果が
-  多数返ってきた結果を信頼する多数決方式を実装しました。(Yoshiyuki)
-  <li> V2 問合せプロトコルでロードバランスできるようにしました。(Yoshiyuki)
+  多数返ってきた結果を信頼する多数決方式を実装しました。(Yoshiyuki)</li>
+  <li> V2 問合せプロトコルでロードバランスできるようにしました。(Yoshiyuki)</li>
 </ul>
 
 <h3>パラレルクエリ</h3>
 <ul>
-  <li> パラレルモードで部分レプリケーションをサポートしました。(Yoshiharu)
+  <li> パラレルモードで部分レプリケーションをサポートしました。(Yoshiharu)</li>
 </ul>
 
+<!-- ================================================================================ -->
+<!-- 1.3                                                                              -->
+<!-- ================================================================================ -->
 <hr>
 
+<!-- -------------------------------------------------------------------------------- -->
 <h2>1.3 (sohiboshi) 2007/10/23</h2>
+<!-- -------------------------------------------------------------------------------- -->
 <ul>
   <li> 新しく authentication_timeout というパラメータを追加しました。(Yoshiyuki)
     <ul>
-     <li>このパラメータでは認証時間のタイムアウトを設定します。
-     <li>デフォルト値は 60 (1 分)です。
-   </ul>
-  <li> スタートアップパケットの長さが 10000 バイト越えている場合には、接続を切断するようにしました。(Yoshiyuki)
+     <li>このパラメータでは認証時間のタイムアウトを設定します。</li>
+     <li>デフォルト値は 60 (1 分)です。</li>
+   </ul></li>
+  <li> スタートアップパケットの長さが 10000 バイト越えている場合には、接続を切断するようにしました。(Yoshiyuki)</li>
   <li> DEALLOCATE を実行するとまれに不正なメモリアクセスが発生する不具
-       合を修正しました。(Yoshiyuki)
+       合を修正しました。(Yoshiyuki)</li>
   <li> トランザクション内で SELECT を実行した後に SELECT を正しくロードバラ
        ンスできない不具合を修正しました。(Yoshiyuki)
        <ul>
-    <li> この不具合は 1.2 で混入した不具合です。
-       </ul>
-  <li> 64bit 環境でクエリキャッシュ機能を有効にすると、クラッシュする可能性のある不具合を修正しました(Yoshiyuki)
+    <li> この不具合は 1.2 で混入した不具合です。</li>
+       </ul></li>
+  <li> 64bit 環境でクエリキャッシュ機能を有効にすると、クラッシュする可能性のある不具合を修正しました(Yoshiyuki)</li>
 </ul>
 
+<!-- ================================================================================ -->
+<!-- 1.2                                                                              -->
+<!-- ================================================================================ -->
 <hr>
 
+<!-- -------------------------------------------------------------------------------- -->
 <h2>1.2.1 (tomoboshi) 2007/09/28</h2>
+<!-- -------------------------------------------------------------------------------- -->
 <ul>
   <li> 拡張問合せプロトコルの Parse メッセージの処理でデッドロックが発
-  生する可能性がある不具合を修正しました。(Yoshiyuki)
+  生する可能性がある不具合を修正しました。(Yoshiyuki)</li>
 
   <li> Prepared statement を管理する領域がメモリリークしている不具合を
-  修正しました。(Yoshiyuki)
+  修正しました。(Yoshiyuki)</li>
 
-  <li> 一部の OS でコンパイルエラーになる不具合を修正しました。(Yoshiyuki)
+  <li> 一部の OS でコンパイルエラーになる不具合を修正しました。(Yoshiyuki)</li>
 
-  <li>master/slave モード内で SET, PREPARE, DEALLOCATE 文をレプリケーションさせるようにしました。(Yoshiyuki)
+  <li>master/slave モード内で SET, PREPARE, DEALLOCATE 文をレプリケーションさせるようにしました。(Yoshiyuki)</li>
 </ul>
 
 <hr>
 
+<!-- -------------------------------------------------------------------------------- -->
 <h2>1.2 (tomoboshi) 2007/08/01</h2>
+<!-- -------------------------------------------------------------------------------- -->
 <ul>
   <li> pgpool.conf に replicate_select という新規パラメータを追加しま
   した。デフォルト値は false です。(Yoshiyuki)
   <ul>
     <li> true に設定した場合は、ロードバランスされない SELECT 文をレプ
     リケーションします(pgpool-II 1.0 の挙動)。false の場合はマスタにの
-    み SELECT を送信します。
-  </ul>
+    み SELECT を送信します。</li>
+  </ul></li>
 
   <li> シグナル処理を安全に行うようにしました。(Yoshiyuki)
   <ul>
     <li>まれにゾンビプロセスが残ってしまったり、不安定になることがありました。
-  </ul>
+  </ul></li>
 
   <li> トランザクション中に SELECT 文がエラーになると、ハングアップし
   てしまう不具合を修正しました。(Yoshiyuki)
   <ul>
     <li> この不具合は 1.1 に入った不具合です。
-  </ul>
+  </ul></li>
 
   <li> PREPARE/EXECUTE が master/slave モードで正しく動作しない不具合
-  を修正しました。(Yoshiyuki)
+  を修正しました。(Yoshiyuki)</li>
 
   <li> デッドロックを検知すると、kind mismatch error が発生する不具合
-  を修正しました。(Yoshiyuki)
+  を修正しました。(Yoshiyuki)</li>
 
   <li> 拡張問い合わせプロトコルを使ったドライバを使用した場合に、構文
         解析時に警告が発生する SQL 文を実行するとハングアップもしくは
-        プロセスがクラッシュする不具合を修正しました。(Yoshiyuki)
+        プロセスがクラッシュする不具合を修正しました。(Yoshiyuki)</li>
 
   <li> コネクションキャッシュが一杯になるとメモリリークが発生する不具
-  合を修正しました。(Yoshiyuki)
+  合を修正しました。(Yoshiyuki)</li>
 
   <li> セッションが残った状態で PostgreSQL を fast shutdown もしくは
   immediate shutdown すると、残ったセッションがハングアップする不具合
-  を修正しました。(Yoshiyuki)
+  を修正しました。(Yoshiyuki)</li>
 
   <li> ロードバランス先を接続開始時に決定し、同じセッション内ではすべ
-  て同じノードにクエリを送信するようにしました。(Yoshiyuki)
+  て同じノードにクエリを送信するようにしました。(Yoshiyuki)</li>
 
   <li> connection_life_time を設定している場合にバッファオーバランが発
-  生する可能性がある不具合を修正しました。(Yoshiyuki)
+  生する可能性がある不具合を修正しました。(Yoshiyuki)</li>
 
 </ul>
 
+<!-- ================================================================================ -->
+<!-- 1.1                                                                              -->
+<!-- ================================================================================ -->
 <hr>
 
+<!-- -------------------------------------------------------------------------------- -->
 <h2>1.1.1 (amiboshi) 2007/06/15</h2>
+<!-- -------------------------------------------------------------------------------- -->
 <ul>
   <li> load_balance_mode を有効にしていると、"kind mismatch" エラーが
   発生してしまう不具合を修正しました。これは 1.1 で入った不具合です。
-  (Yoshiyuki)
+  (Yoshiyuki)</li>
   <li> プロトコルバージョン 2 を使ったドライバでレプリケーション使用す
-  ると、pgpool がハングアップする不具合を修正しました(Yoshiyuki)
+  ると、pgpool がハングアップする不具合を修正しました(Yoshiyuki)</li>
   <li> 拡張問合せプロトコルを使用すると、まれにデッドロックが発生する
-  不具合を修正しました(Yoshiyuki)
+  不具合を修正しました(Yoshiyuki)</li>
 </ul>
 
 <hr>
 
+<!-- -------------------------------------------------------------------------------- -->
 <h2>1.1 (amiboshi) 2007/05/25</h2>
+<!-- -------------------------------------------------------------------------------- -->
 <ul>
-  <li> HBA 認証をサポートしました(Taiki)
-  <li> log_connections をサポートしました(Taiki)
-  <li> log_hostname をサポートしました(Taiki)
-  <li> ps コマンドで pgpool の状態がわかるようにしました(Taiki)
-  <li> MacOS X でコンパイルエラーになる不具合を修正しました(Yoshiyuki)
+  <li> HBA 認証をサポートしました(Taiki)</li>
+  <li> log_connections をサポートしました(Taiki)</li>
+  <li> log_hostname をサポートしました(Taiki)</li>
+  <li> ps コマンドで pgpool の状態がわかるようにしました(Taiki)</li>
+  <li> MacOS X でコンパイルエラーになる不具合を修正しました(Yoshiyuki)</li>
   <li> 拡張問い合わせプロトコルを使ったクエリをロードバランスできるよ
-  うにしました(Yoshiyuki)
+  うにしました(Yoshiyuki)</li>
   <li> レプリケーション設定時、SELECT は master にのみ送信するようにし
   ました(Yoshiyuki)
     <ul>
       <li> もし SELECT をレプリケーションさせる場合は /*REPLICATION*/
-      のように SELECT の前にコメントを付ける必要があります
-    </ul>
+      のように SELECT の前にコメントを付ける必要があります</li>
+    </ul></li>
   <li> レプリケーション設定時、SELECT nextval() および SELECT setval()
-  を自動的にレプリケーションさせるようにしました(Yoshiyuki)
+  を自動的にレプリケーションさせるようにしました(Yoshiyuki)</li>
   <li> バックエンドへ接続中にシグナルに割り込まれると、フェイルオーバ
-  してしまう不具合を修正しました(Yoshiyuki)
+  してしまう不具合を修正しました(Yoshiyuki)</li>
   <li> PAM 認証のサンプルファイル pgpool.pam を
-  $PREFIX/share/pgpool-II/ にインストールするようにしました(Taiki)
+  $PREFIX/share/pgpool-II/ にインストールするようにしました(Taiki)</li>
   <li> 巨大な SQL を実行しようとした場合に pgpool が無限ループに入る不
-  具合を修正しました(Yoshiyuki)
+  具合を修正しました(Yoshiyuki)</li>
 </ul>
 
+<!-- ================================================================================ -->
+<!-- 1.0                                                                              -->
+<!-- ================================================================================ -->
 <hr>
 
+<!-- -------------------------------------------------------------------------------- -->
 <h2>1.0.2 (suboshi) 2007/02/13</h2>
+<!-- -------------------------------------------------------------------------------- -->
 <ul>
   <li> 巨大な SQL を実行しようとした場合に pgpool が無限ループに入る不
-  具合を修正しました(Yoshiyuki)
+  具合を修正しました(Yoshiyuki)</li>
   <li> 拡張問合せプロトコルを使った場合にまれに pgpool が止まってしま
-  う不具合を修正しました(Yoshiyuki)
+  う不具合を修正しました(Yoshiyuki)</li>
   <li> フェイルオーバ、フェイルバック時のログ出力を改善しました
-  (Tatsuo)
+  (Tatsuo)</li>
   <li> SHOW pool_status の結果にバックエンドステータス情報を追加しまし
-  た(Tatsuo)
+  た(Tatsuo)</li>
   <li> レプリケーション時に UPDATE/DELETE の件数が実際の件数とは異なっ
-  た結果を返す不具合を修正しました(Tatsuo)
+  た結果を返す不具合を修正しました(Tatsuo)</li>
   <li> 古い gcc を使うと libpq のリンクに失敗する不具合を修正しました
-  (Yoshiyuki)
+  (Yoshiyuki)</li>
   <li> PHP:PDO や DBD-Pg を使った場合に、自動 DEALLOCATE が失敗してし
-  まう不具合を修正しました(Yoshiyuki)
+  まう不具合を修正しました(Yoshiyuki)</li>
   <li> SELECT FOR UPDATE, SELECT INTO をロードバランスさせないようにし
   ました。また、SELECT の前にコメントがある場合もロードバランスさせな
-  いようにしました。これは pgpool-I との互換性のためです。(Yoshiyuki)
+  いようにしました。これは pgpool-I との互換性のためです。(Yoshiyuki)</li>
   <li> configure 時の libpq のデフォルトパスを pg_config コマンドを使っ
   て取得するようにしました。なお、--with-pgsql 関連のオプションは次の
-  バージョンでは廃止予定です(Yoshiyuki)
+  バージョンでは廃止予定です(Yoshiyuki)</li>
   <li> コネクションプール再利用時に、ソケットが壊れている場合は再接続
-  するようにしました(Yoshiyuki)
+  するようにしました(Yoshiyuki)</li>
   <li> PostgreSQL 7.4.x の libpq を使ってビルドしようとすると、
   configure スクリプトでエラーとなってしまう不具合を修正しました
-  (Yoshiyuki)
+  (Yoshiyuki)</li>
 </ul>
 
 <div class="copyright">
 <hr>
 <copyright>
-Copyright &copy; 2003 &ndash; 2013 pgpool Global Development Group
+Copyright &copy; 2003 &ndash; 2014 pgpool Global Development Group
 </copyright>
 </div>
 </body>