pgpool2.git / summary / log / commit / refs
commit c3b2ee28fc8b86b1214b8cfb18a004bb3b43d9e8
Author: Tatsuo Ishii <ishii at sraoss.co.jp>
Date: Mon Dec 07 09:39:55 2009 +0000
Prepare 2.3
ChangeLog | 1371 +++++++++++++++++++++++++++++++++++++++++++++++++---
NEWS | 227 +++++++++
doc/pgpool-en.html | 115 ++++-
doc/pgpool-ja.html | 317 ++++++++++--
4 files changed, 1907 insertions(+), 123 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index b2ffa636d..0b4b8dcbe 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,127 @@
+2009-12-07 18:38 t-ishii
+
+ * NEWS, doc/pgpool-en.html, doc/pgpool-ja.html: Prepare 2.3
+
+2009-12-07 17:11 t-ishii
+
+ * pool_process_query.c: Allow to load balance EXPLAIN and EXPLAIN
+ ANALYZE (only if query is SELECT). This will prevent kind mismatch
+ errors when query plan are different among servers.
+
+2009-12-06 21:55 t-ishii
+
+ * main.c, pool.h, pool_type.h: Restore backend status by using
+ pgpool_status file.
+
+2009-12-06 20:53 t-ishii
+
+ * version.h: Change code name for pgpool-II 2.3
+
+2009-12-06 18:57 t-ishii
+
+ * pgpool.conf.sample-master-slave, pgpool.conf.sample-replication:
+ Add pgpool.conf sample for replication mode and master/slave mode
+
+2009-12-06 17:46 t-ishii
+
+ * pgpool.conf.sample, pool.h, pool_config.c, pool_config.l,
+ pool_process_query.c, pool_process_reporting.c, pool_stream.c:
+ Add new configuration parameter fail_over_on_backend_error which
+ controls the behavior when write to backend socket fails.
+
+ Also add pool_log when postmaster administrative shutdown detected.
+
+2009-12-06 16:52 t-ishii
+
+ * pool_process_query.c, pool_proto_modules.c: Ignore error of
+ pool_flush(frontend).
+
+2009-12-06 16:46 t-ishii
+
+ * pool_proto_modules.c: Optimization when num_init_children == 1.
+ In this case we don't need to wait for master returning a response
+ before sending a query to the other nodes.
+
+2009-12-06 16:43 t-ishii
+
+ * Makefile.am, Makefile.in, pool_process_query.c,
+ pool_process_reporting.c: Teach process_reporting() about
+ log_per_node_statement. Also refactor pool_process_query.c to
+ remove process_reporting() and make a new source file
+ "pool_process_reporting.c" to hold the funtcion. Main reason for
+ this is, process_reporting() is now big enough to have a separate C
+ source file.
+
+2009-12-02 23:19 t-ishii
+
+ * child.c, pool.h, pool_process_query.c: Enhance SIGINT handler.
+
+2009-12-02 23:11 t-ishii
+
+ * pool_proto_modules.c: Fix ProcessFrontendResponse() handling of
+ Parse message in master/slave mode. If it's inside transaction,
+ enable master_slave_dml, which means execute parse on master only.
+ This will prevent unwanted parase executed on slave, which holds at
+ least AccessShareLock on tables until transaction commits. It seems
+ unamed statement does not release the lock until execute.
+
+ Please note that, even with this fix, bind state will remain on
+ slave if JDBC issues parse with autocommit off. This is because
+ BEGIN parsed, bind on both master and slave but execute only on
+ master. However, this is not harmfull since parse/bind does not hold
+ any locks on tables.
+
+ Also add some logging statemets.
+
+2009-12-01 22:05 t-ishii
+
+ * ChangeLog: v2.2.6
+
+2009-12-01 22:02 t-ishii
+
+ * doc/pgpool-ja.html, NEWS: Add release note
+
+2009-11-29 20:56 t-ishii
+
+ * pool_process_query.c: Fix is_select_query() not to allow cursor
+ statements. Close() should not allowed since hold cursor + update
+ may cause data inconsistency.
+
+2009-11-29 17:42 t-ishii
+
+ * pool_process_query.c: Add logging by per_node_statement().
+
+2009-11-29 17:29 t-ishii
+
+ * pool_proto_modules.c: Fix ProcessFrontendResponse() handling of
+ Parse message in master/slave mode. If it's inside transaction,
+ enable master_slave_dml, which means execute parse on master only.
+ This will prevent unwanted parase executed on slave, which holds at
+ least AccessShareLock on tables until transaction commits. It seems
+ unamed statement does not release the lock until execute.
+
+ Please note that, even with this fix, bind state will remain on
+ slave if JDBC issues parse with autocommit off. This is because
+ BEGIN parsed, bind on both master and slave but execute only on
+ master. However, this is not harmfull since parse/bind does not hold
+ any locks on tables.
+
+2009-11-18 15:55 t-ishii
+
+ * config.h.in, configure, configure.in: Add -lcrypt for linking
+ commnad. Certain distribution ships libpq without linking to
+ libcrypt by some reasons which I don't know.
+
+2009-11-18 15:45 t-ishii
+
+ * config.h.in, configure, configure.in: Add -lcrypt for linking
+ commnad. Certain distribution ships libpq without linking to
+ libcrypt by some reasons which I don't know.
+
+2009-11-15 20:16 t-ishii
+
+ * ChangeLog: Run cvs2cl.pl -t --fsf -b -F trunk
+
2009-11-15 17:27 t-ishii
* pgpool.conf.sample, pool.h, pool_config.c, pool_config.l,
@@ -20,6 +144,16 @@
Remove unnecessary argument of end_load_balance().
+2009-11-14 22:16 t-ishii
+
+ * pool.h, pool_process_query.c, pool_proto_modules.c,
+ pool_proto_modules.h, child.c: Fix connection_cache = false case.
+ In this mode, if frontend exits abnormaly, some global state
+ variables are not reset. For this purpose, new function
+ reset_variables() added.
+
+ Remove unnecessary argument of end_load_balance().
+
2009-11-14 20:41 t-ishii
* pool_config.c: Update pool_config.l
@@ -28,6 +162,14 @@
* pool_config.l: Allow to change weight with reloading pgpool.conf
+2009-11-14 20:38 t-ishii
+
+ * pool_config.c: Update pgpool_config.l
+
+2009-11-14 20:37 t-ishii
+
+ * pool_config.l: Allow to change weight with reloading pgpool.conf
+
2009-11-14 20:35 t-ishii
* main.c: Limit listen(2)'s backlog parameter to
@@ -81,6 +223,16 @@
* pool_relcache.c: Fix relcache replacement logic bug. Patches
provided by Akio Ishida.
+2009-11-05 13:12 t-ishii
+
+ * parser/outfuncs.c, test/parser/expected/insert.out,
+ test/parser/expected/select.out, test/parser/input/insert.sql,
+ test/parser/input/select.sql: Fix nodeToString() bug. example
+ test case: If nodeToString() is given the parse tree of "insert into
+ r1 values(1,2), (3,4)", it returns "insert into r1 values(1,2),
+ values(3,4)", which is apparently wrong. Patch provided by Akio
+ Ishida.
+
2009-11-05 12:43 t-ishii
* ChangeLog, TODO, parser/outfuncs.c,
@@ -109,6 +261,13 @@
unhelpfull "server closed the connection unexpectedly" message.
Patch provided by Glyn Astill with minor tweak by Tatsuo Ishii.
+2009-11-03 10:57 t-ishii
+
+ * pool.h, pool_auth.c, pool_process_query.c: When authentication
+ fails, report to frontend proper error messages, rather than
+ unhelpfull "server closed the connection unexpectedly" message.
+ Patch provided by Glyn Astill with minor tweak by Tatsuo Ishii.
+
2009-11-03 10:50 t-ishii
* pool_stream.c: Fix pool_flush_it() so that it does not complain
@@ -120,6 +279,11 @@
* pool_proto_modules.c: Allow is_temp_table to work with pre 8.4
PostgreSQL.
+2009-10-30 14:01 t-ishii
+
+ * pool_proto_modules.c: Allow is_temp_table to work with pre 8.4
+ PostgreSQL.
+
2009-10-29 22:44 t-ishii
* Makefile.am, Makefile.in, child.c, configure, configure.in,
@@ -136,15 +300,40 @@
used to control this. SELECT still needs /*NO LOAD BALANCE*/. It's
hard to find all tables in a SELECT statement.
+2009-10-29 21:58 t-ishii
+
+ * child.c, pool.h, pool_process_query.c, Makefile.am, Makefile.in,
+ configure, configure.in, pool_proto_modules.c: Add
+ pool_relcache.c to Makefile.am. Refactor need_insert_lock to use
+ pool_search_relcache and friends. Add LocalSessionId to child.c
+ which manage per session counter of relcache. Allow to use temp
+ tables with master/slave mode. Parse() failed. since Parse() was
+ always sent to master and slave and slave does not have the temp
+ table. To fix this, is_temp_table() added to pool_proto_modules.c
+ which inquire particular table is a temporary one or not when
+ INSERT/UPDATE/DELETE. If it's a temporary table, parse message is
+ sent to only master. Note that /*NO LOAD BALANCE*/ directive can be
+ used to control this. SELECT still needs /*NO LOAD BALANCE*/. It's
+ hard to find all tables in a SELECT statement.
+
2009-10-29 21:46 t-ishii
* pool_relcache.c: Per process relation cache module
+2009-10-29 21:42 t-ishii
+
+ * pool_relcache.c: Per process relation cache module
+
2009-10-25 16:19 t-ishii
* test/jdbc/: CreateTempTableTest.java, expected/CreateTempTable,
RunTest.java: Add temp table test
+2009-10-25 16:14 t-ishii
+
+ * test/jdbc/: CreateTempTableTest.java, expected/CreateTempTable:
+ Add temp table test
+
2009-10-22 20:52 devrim
* redhat/: pgpool.init, pgpool.sysconfig: Fix logging, per report
@@ -166,12 +355,31 @@
* pgpool.8.in: Fix typo in man page. Patch provided by Rodolphe.
+2009-10-12 11:19 t-ishii
+
+ * pgpool.8.in: Fix typo in man pages. Patch provided by Rodolphe.
+
2009-10-12 10:54 t-ishii
* pool_process_query.c: REINDEX DATABASE or SYSTEM should not be
executed in a transaction block. See [pgpool-general-jp: 623] for
more details.
+2009-10-12 10:41 t-ishii
+
+ * pool_process_query.c: REINDEX DATABASE or SYSTEM should not be
+ executed in a transaction block. See [pgpool-general-jp: 623] for
+ more details.
+
+2009-10-06 00:13 devrim
+
+ * pgpool.spec:
+ - Update to 2.2.5, for various fixes described at
+
+ http://lists.pgfoundry.org/pipermail/pgpool-general/2009-October/002188.html
+ - Re-apply a fix for Red Hat Bugzilla #442372
+ - Add 2 new docs, per Tatsuo.
+
2009-10-06 00:12 devrim
* pgpool.spec:
@@ -186,20 +394,34 @@
- Re-apply a fix for Red Hat Bugzilla #442372
- Sync with Fedora spec.
+2009-10-04 18:15 t-ishii
+
+ * NEWS, configure.in, configure, ChangeLog (utags: V2_2_5): Prepare
+ 2.2.5
+
+2009-10-04 18:15 t-ishii
+
+ * doc/pgpool-ja.html (tags: V2_2_5): Add release note for 2.2.5
+
2009-10-04 08:52 t-ishii
- * doc/: tutorial-en.html, tutorial-ja.html: Add sample to use
- rotatelogs
+ * doc/: tutorial-en.html (tags: V2_2_5), tutorial-en.html,
+ tutorial-ja.html: Add sample to use rotatelogs
+
+2009-10-03 21:45 t-ishii
+
+ * doc/tutorial-ja.html (tags: V2_2_5): Add sample to use rotatelogs
2009-10-03 21:39 t-ishii
- * sample/pgpool_recovery_pitr: Enhance online recovery 2nd stage
- script to sync sequence value
+ * sample/: pgpool_recovery_pitr (tags: V2_2_5),
+ pgpool_recovery_pitr: Enhance online recovery 2nd stage script to
+ sync sequence value
2009-10-03 20:55 t-ishii
- * pool_proto_modules.h: Remove unnecessary declaration
- "allow_close_transaction"
+ * pool_proto_modules.h (tags: V2_2_5), pool_proto_modules.h: Remove
+ unnecessary declaration "allow_close_transaction"
2009-10-02 17:00 t-ishii
@@ -207,12 +429,13 @@
2009-10-02 16:56 t-ishii
- * pool_proto_modules.c: Fix Parse() to use
- wait_for_query_response() instead of synchronize().
+ * pool_proto_modules.c (tags: V2_2_5), pool_proto_modules.c: Fix
+ Parse() to use wait_for_query_response() instead of synchronize().
2009-10-02 16:53 t-ishii
- * pool_process_query.c: Fix comment
+ * pool_process_query.c (tags: V2_2_5), pool_process_query.c: Fix
+ comment
2009-09-26 18:14 t-ishii
@@ -239,6 +462,26 @@
Patches by Xavier Noguer with minor tweak by Tatsuo Ishii.
+2009-09-26 16:36 t-ishii
+
+ * pool_process_query.c: Fix reset_backend to deal with DEALLOCATE
+ error. In this case prepared objects are not removed and
+ reset_backend is infinitely called.
+
+ Fix do_command to guard against the case that after execution of an
+ SQL command, the backend does not return either N, E or C. This
+ should not happen but there was a report that it actually happend in
+ certain cases(maybe caused by asynchronized backend data?)
+
+ See:
+
+ Subject: Re: [Pgpool-general] pgpool 2.2.4: DEALLOCATED children
+ From: Xavier Noguer Date: Fri, 25 Sep 2009 03:35:57 -0400
+
+ For more details.
+
+ Patches by Xavier Noguer with minor tweak by Tatsuo Ishii.
+
2009-09-26 09:27 t-ishii
* pool_process_query.c: Remove error checks for
@@ -268,17 +511,42 @@
This patch was applied to only 2.2-STABLE tree by y-mori on
2009/09/08.
+2009-09-25 23:36 t-ishii
+
+ * pool_proto_modules.c: Make allow_close_transaction to static and
+ add comments.
+
+ Let execute CREATAE TEMP TABLE on every nodes in master/slave mode.
+ If not, subsequent Parse or Bind to use the table will fail. At
+ this point this doen't work since MASTER_SLAVE set to 0 in
+ ProcessFrontendResponse. More analysis is needed...
+
2009-09-25 16:35 t-ishii
- * main.c: Fix write_pid_file. It forgot to write out NULL
- termination of pid. Pgpool occasionally won't stop because of this
- bug.
+ * main.c (tags: V2_2_5), main.c: Fix write_pid_file. It forgot to
+ write out NULL termination of pid. Pgpool occasionally won't stop
+ because of this bug.
+
+2009-09-23 20:39 t-ishii
+
+ * pool_process_query.c: Remove error checks for
+ pool_write(frontend), pool_flush(frontend) in
+ SimpleForwardToFrontend.
+
+ Check error for send_deallocate() in reset_backend. Otherwise
+ send_deallocate will be called infinitely. Per bug report from
+ Agustin Almonte Ferrada. See:
+
+ Subject: Re: [Pgpool-general] pgpool 2.2.4: DEALLOCATED children
+ From: Agustin Almonte Ferrada <aalmonte@antica.cl> To: Tatsuo Ishii
+ <ishii@sraoss.co.jp> Cc: pgpool-general@pgfoundry.org Date: Wed, 23
+ Sep 2009 01:55:54 -0400
2009-09-23 11:03 t-ishii
- * pool_auth.c: Fix pool_read_kind and pool_read_int so that the
- error message for kind is shown in hexadecimal. Other part of
- pgpool-II already does this.
+ * pool_auth.c (tags: V2_2_5), pool_auth.c: Fix pool_read_kind and
+ pool_read_int so that the error message for kind is shown in
+ hexadecimal. Other part of pgpool-II already does this.
2009-09-17 20:32 t-ishii
@@ -290,6 +558,16 @@
else. This patch should give a way insert_lock() to espcape from the
situation.
+2009-09-17 20:17 t-ishii
+
+ * pool_process_query.c, pool_proto_modules.c, pool_proto_modules.h:
+ Teach do_command() to use wait_for_query_response(). insert_lock()
+ calls do_command() to issue LOCK TABLE to lock tables having SERIAL
+ column when insert_lock is true. Problem is, insert_lock() waits
+ forever in do_command() if the target table is locked by someone
+ else. This patch should give a way insert_lock() to espcape from the
+ situation.
+
2009-09-06 12:56 t-ishii
* child.c, pool.h: Fix connection_count_down() so that it does
@@ -309,6 +587,54 @@
* pool_process_query.c: Undef #define SEND_NOTICE_ON_PROTO2, which
was defined by mistake.
+2009-09-06 12:52 t-ishii
+
+ * child.c, pool.h (utags: V2_2_5): Fix connection_count_down() so
+ that it does decrement too much in some corner cases. If failed to
+ read a start up packet, or receive cancel request etc.,
+ connection_count_down() is called and goes back to the onnection
+ accept loop. Problem is, at the very beginning of the connection
+ accept loop, if we have received a signal, we call child_exit()
+ which calls connection_count_down() again. Problem report by
+ Ryoichi TANABE. See [pgpool-general-jp: 616] for more details.
+
+ Also unneccesary public declarations for connection_count_up() and
+ connection_count_down() are removed.
+
+2009-08-24 13:58 t-ishii
+
+ * ChangeLog (tags: V2_2_4): Prepare 2.2.4
+
+2009-08-24 13:55 t-ishii
+
+ * NEWS, configure, doc/pgpool-ja.html (utags: V2_2_4): Prepare
+ 2.2.4
+
+2009-08-24 13:53 t-ishii
+
+ * configure.in (tags: V2_2_4): Prepare 2.2.4.
+
+2009-08-24 13:36 t-ishii
+
+ * TODO (tags: V2_2_5, V2_2_4): Add a few items
+
+2009-08-22 13:19 t-ishii
+
+ * child.c, main.c, md5.c (tags: V2_2_5), pcp_child.c (tags:
+ V2_2_5), pg_md5.c (tags: V2_2_5), pool_auth.c, pool_config.c
+ (tags: V2_2_5), pool_connection_pool.c (tags: V2_2_5),
+ pool_error.c (tags: V2_2_5), pool_hba.c (tags: V2_2_5), pool_ip.c
+ (tags: V2_2_5), pool_params.c (tags: V2_2_5), pool_path.c (tags:
+ V2_2_5), pool_process_query.c, pool_proto_modules.c,
+ pool_query_cache.c (tags: V2_2_5), pool_rewrite_outfuncs.c (tags:
+ V2_2_5), pool_rewrite_query.c (tags: V2_2_5), pool_sema.c (tags:
+ V2_2_5), pool_shmem.c (tags: V2_2_5), pool_signal.c (tags:
+ V2_2_5), pool_stream.c (tags: V2_2_5), pool_system.c (tags:
+ V2_2_5), ps_status.c (tags: V2_2_5), recovery.c (tags: V2_2_5),
+ strlcpy.c (tags: V2_2_5), pcp/md5.c (tags: V2_2_5) (utags:
+ V2_2_4): Remove unnecessary spaces and tabs at end of line.
+ Patch conributed by Jun Kuriyama.
+
2009-08-22 13:04 t-ishii
* child.c, main.c, md5.c, pcp_child.c, pg_md5.c, pool_auth.c,
@@ -338,6 +664,16 @@
SEND_NOTICE_ON_PROTO2 around line 879 to enable this feature in
version 2 protocol.
+2009-08-18 17:38 t-ishii
+
+ * pool_process_query.c, pool_proto_modules.c, pool_proto_modules.h
+ (tags: V2_2_4): Change wait_for_query_response() so that it sends
+ NOTICE message to frontend periodically. It appears that pgpool-II
+ 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.
+
2009-08-18 17:30 t-ishii
* child.c: Remove unneccessary call to send_frontend_exit() in
@@ -354,11 +690,47 @@
before establish signal handler. See [pgpool-general-jp: 586] for
more details.
+2009-08-13 22:36 t-ishii
+
+ * child.c: Remove unnessary call of send_frontend_exits() in die().
+
+2009-08-13 22:34 t-ishii
+
+ * main.c: Block signals before forking children rather after.
+ Otherwise parent will be killed by failover signal if it receives
+ before establish signal handler. See [pgpool-general-jp: 586] for
+ more details.
+
+2009-08-11 22:53 t-ishii
+
+ * ChangeLog (tags: V2_2_3): Prepare 2.2.3.
+
+2009-08-11 22:52 t-ishii
+
+ * configure.in, configure (utags: V2_2_3): Stamp 2.2.3.
+
+2009-08-11 22:48 t-ishii
+
+ * doc/pgpool-ja.html (tags: V2_2_3): Fix description of parallel
+ query. Add release note for 2.2.3.
+
2009-08-11 22:23 t-ishii
- * pool_connection_pool.c: Fix new_connection() so that it does
- leave garbage in POOL_CONNECTION_POOL->slot[i]. This caused segfault
- in child_exit(). Bug report at [pgpool-general-jp: 586].
+ * pool_connection_pool.c (tags: V2_2_3), pool_connection_pool.c:
+ Fix new_connection() so that it does leave garbage in
+ POOL_CONNECTION_POOL->slot[i]. This caused segfault in child_exit().
+ Bug report at [pgpool-general-jp: 586].
+
+2009-08-07 14:27 y-mori
+
+ * pool_process_query.c, pool_rewrite_outfuncs.c (utags: V2_2_3):
+ FIX parallel query
+
+ 1. Fix JOIN Expr
+ Subquery was used on larg or rarg.
+ Subquery was used on ON-Cluase.
+ Full OUTER JOIN was not optimized.
+ 2. Fail_on_error=false was passed to the 3rd arguments of dblink.
2009-08-06 20:38 t-ishii
@@ -371,9 +743,9 @@
2009-08-06 16:55 t-ishii
- * pool_proto_modules.c: Print last query for kind mismatch error
- message even extended protocol is used. Patch contributed by Akio
- Ishida.
+ * pool_proto_modules.c (tags: V2_2_3), pool_proto_modules.c: Print
+ last query for kind mismatch error message even extended protocol is
+ used. Patch contributed by Akio Ishida.
2009-08-06 16:46 t-ishii
@@ -382,6 +754,13 @@
Takahiro Itagaki at [pgsql-jp: 39950]. Fix suggested by Akio Ishida
at [pgsql-jp: 39952].
+2009-08-06 16:38 t-ishii
+
+ * pool_process_query.c: Fix buffer overrun error which mangled kind
+ mismatch error message in pool_send_error_message(). Bug rpeort by
+ Takahiro Itagaki at [pgsql-jp: 39950]. Fix suggested by Akio Ishida
+ at [pgsql-jp: 39952].
+
2009-08-03 19:31 t-ishii
* parser/: kwlist.h, kwlookup.c: Missing files for PostgreSQL 8.4
@@ -393,6 +772,13 @@
referring to sp. Current implementation may interrupt in the window,
after setting p and before setting sp.
+2009-08-01 20:40 t-ishii
+
+ * child.c (tags: V2_2_3): Check MASTER_CONNECTION(p)->sp) is non 0
+ before further referring to sp. Current implementation may interrupt
+ in the window, after setting p and before setting sp. Per bug report
+ from Jun Kuwamura.
+
2009-08-01 20:34 t-ishii
* pool_connection_pool.c: Fix pool_debug's mismatch between data
@@ -423,6 +809,20 @@
test/parser/expected/select.out, test/parser/expected/update.out:
Adopt PostgreSQL 8.4 parser. Patch contributed by Akio Ishida.
+2009-07-30 16:46 t-ishii
+
+ * pool_process_query.c: Fix typo in comment
+
+2009-07-28 14:52 y-mori
+
+ * doc/: pgpool-en.html (tags: V2_2_5, V2_2_4, V2_2_3),
+ pgpool-ja.html: add restrictions for parallel mode
+
+ -Natural Join
+ => not support
+ -USING CLAUSE at Join Expression
+ => auto convert to ON CLAUSE
+
2009-07-28 09:34 t-ishii
* pool_process_query.c: Fix typo in comment
@@ -432,6 +832,11 @@
* pool_rewrite_outfuncs.c: Fix breakage by previous commit. Patch
by Guillaume Lelarge.
+2009-07-26 18:04 t-ishii
+
+ * pool_rewrite_outfuncs.c: Fix breakage by previous commit. Patch
+ by Guillaume Lelarge.
+
2009-07-26 12:09 t-ishii
* pool_rewrite_outfuncs.c: fix: Join statment in parallel query
@@ -454,8 +859,24 @@
2009-07-26 11:57 t-ishii
- * pool_sema.c: Fix various pool_error/log format errors. Patch
- provided by Akio Ishida.
+ * pool_sema.c (tags: V2_2_3), pool_sema.c: Fix various
+ pool_error/log format errors. Patch provided by Akio Ishida.
+
+2009-07-24 21:30 y-mori
+
+ * pool_rewrite_outfuncs.c: fix: Join statment in parallel query
+
+ sample)
+ Accouts table is defined by dist_def,
+ the below query is executed as loadbalance.
+
+ SELECT a.aid
+ FROM
+ accounts as a
+ JOIN
+ accounts as b
+ ON a.aid=b.aid
+ WHERE a.aid =1 or a.aid=2;
2009-07-22 17:51 t-ishii
@@ -464,6 +885,13 @@
various pool_error/log format errors. Patch provided by Akio
Ishida.
+2009-07-22 17:46 t-ishii
+
+ * child.c, main.c (tags: V2_2_3), pool.h (tags: V2_2_4, V2_2_3),
+ pool_process_query.c, pool_proto_modules.c,
+ pool_rewrite_outfuncs.c, pool_shmem.c (tags: V2_2_3): Fix various
+ pool_error/log format errors. Patch provided by Akio Ishida.
+
2009-07-22 17:26 t-ishii
* pool_process_query.c, pool_proto_modules.c, pool_proto_modules.h:
@@ -487,6 +915,30 @@
Also refactor error detecting modules (detect_deadlock_error and so
on).
+2009-07-22 14:33 t-ishii
+
+ * pool_process_query.c, pool_proto_modules.c, pool_proto_modules.h
+ (tags: V2_2_3): Query cancel by statement timeout does not
+ generate "kind mismatch" error any more. How to reproduce the test
+ case:
+
+ Directory connect to PostgreSQL. T1: BEGIN; T1: LOCK TABLE t1;
+
+ T2: SET statement_timeout TO 5000; T2: UPDATE t1 SET ...
+
+ UPDATE query aborts and error message comes out on T2: ERROR:
+ canceling statement due to statement timeout
+
+ A side effect of this is, statement timeout works correctly (rather
+ than statement timeout value * # of node).
+
+ Note that to initiate T1 by directory connecting to slave node will
+ not work (still results in kind mismatch error). But I don't think
+ this could happend in the real world.
+
+ Also refactor error detecting modules (detect_deadlock_error and so
+ on).
+
2009-07-21 18:48 t-ishii
* main.c: Check read(2) error in health_check(). This should detect
@@ -497,6 +949,10 @@
To: pgpool-general@pgfoundry.org Date: Sun, 05 Jul 2009 18:01:18
+0000
+2009-07-21 12:59 t-ishii
+
+ * ChangeLog: Update Change. We are getting closer to 2.2.3.
+
2009-07-21 10:43 t-ishii
* pool.h, pool_proto_modules.c: Check frontend connection while
@@ -504,11 +960,23 @@
Replace synchronize() with wait_for_query_response(). Also tweak
pool.h so that it includes cancel packet's mazic proto number.
+2009-07-21 10:36 t-ishii
+
+ * pool.h, pool_proto_modules.c: Check frontend connection while
+ waiting for response from backend for extended protocol (Execute()).
+ Replace sychronize() with wait_for_query_response(). Also tweak
+ pool.h so that it includes cancel packet's mazic proto number.
+
2009-07-21 09:30 t-ishii
* pool_process_query.c: Do not start transaction if the command is
CLUSTER with no argument
+2009-07-21 09:26 t-ishii
+
+ * pool_process_query.c: Do not start transaction if the command is
+ CLUSTER with no argument
+
2009-07-20 21:21 t-ishii
* child.c, pool.h, pool_process_query.c, pool_proto_modules.c,
@@ -559,6 +1027,18 @@
copy-in state if it receives ABORT (issued in reset_backend). It
seems PostgreSQL is not implemented as stated in the doc...
+2009-07-20 20:47 t-ishii
+
+ * child.c, pool.h, pool_process_query.c, pool_proto_modules.c,
+ pool_proto_modules.h: Check frontend connection while waiting for
+ response from backend. This is done in wait_for_query_response() by
+ writing a dummy parameter status packet to pgpool client every 1
+ second. If the write fails, a cancel packet is sent to backend to
+ free backend. This is usefull to prevent pgpool child from waiting
+ forever for backend response. Pgpool client will diconnect to pgpool
+ if the query takes too long. This is typical use case for Web
+ applications.
+
2009-07-15 15:09 t-ishii
* pool_process_query.c: Fix bug with prepared statement
@@ -583,11 +1063,85 @@
Bug analysis and fix provided by Akio Ishida.
+2009-07-15 14:14 t-ishii
+
+ * pool_process_query.c: Fix bug with prepared statement
+ deallocation:
+
+ Subject: [Pgpool-general] Pgpool probelms From: Nimesh Satam
+ <nimesh.satam@gmail.com> To: pgpool-general@pgfoundry.org Cc: Nimesh
+ Satam <nimesh.zedo@gmail.com> Date: Wed, 17 Jun 2009 11:31:37 +0530
+
+ This was caused a bug in reset_backend().
+
+ if (qcnt >= qn + prepared_list.cnt) {
+ reset_prepared_list(&prepared_list);
+ return 2; } send_deallocate(backend, &prepared_list, qcnt - qn);
+ return 1;
+
+ Problem is, send_deallocate -> SimpleQuery("DEALLOCATE") calls
+ del_prepared_list, which will decrement prepared_list.cnt. In short,
+ incrementing of qcnt *and* decrementing of prepared_list.cnt happen
+ at the same time. So deallocate is only called 1/2 times than it
+ should be.
+
+ Bug analysis and fix provided by Akio Ishida.
+
+2009-07-14 17:42 t-ishii
+
+ * sql/pgpool-recovery/pgpool-recovery.c (tags: V2_2_5, V2_2_4,
+ V2_2_3): Update copyright year
+
2009-07-14 17:39 t-ishii
- * sql/pgpool-recovery/pgpool-recovery.c: PostgreSQL 8.4 needs to
+ * sql/pgpool-recovery/: pgpool-recovery.c: PostgreSQL 8.4 needs to
include utils/binutils.h
+2009-06-26 13:59 t-ishii
+
+ * pool_process_query.c: Fix bug with SimpleForwardToFrontend().
+ Clients using the extend protocol send 'H'(Flush) after each
+ command. Problem is, SimpleForwardToFrontend does not immediately
+ forward 'C'(Command Complete) packet to frontend. So the client
+ sends 'H' and wait for 'C'. On the other hand backend receives 'H'
+ but reply back nothing since Command complete has nothing to be
+ returned. Both side stuck.
+
+ The fix is, forwarding 'C' packet immediately after receiving it
+ from backend. To prevent similar bugs happen in the future, I put
+ pool_flush(frontend) after calling SimpleForwardToFrontend in
+ pool_process_query() (other places already do this).
+
+ The extra pool_flush() might harm performance. So I did some tests
+ using pgbench -S, and found nothing has been changed regarding
+ performance after patching.
+
+ Bug report from Gavin Sherry along with patches for
+ SimpleForwardToFrontend().
+
+2009-05-27 11:01 t-ishii
+
+ * pool.h, pool_process_query.c: Add pool_set_timeout() to control
+ pool_check_fd()'s behavior. This can be used for various places.
+ The first user is reset_backend() to fix following scenario: Do
+ COPY_FROM(for example pgbench -i) Cancel pgbench pgpool waits for
+ response from backend while sending reset queries and hang. Backend
+ waits for data coming from pgpool forever.
+
+ BTW, I don't think PostgreSQL's befaviro for COPY_FROM is quite
+ correct since the doc stats:"Receipt of any other non-copy message
+ type constitutes an error that will abort the copy-in state as
+ described above" If my understanding correct, COPY_FROM should abort
+ copy-in state if it receives ABORT (issued in reset_backend). It
+ seems PostgreSQL is not implemented as stated in the doc...
+
+2009-05-24 22:56 t-ishii
+
+ * sql/pgpool-recovery/Makefile (tags: V2_2_5, V2_2_4, V2_2_3):
+ Support pre 8.0 PostgreSQL which does not have pg_config --pgxs
+ option. Patch provided by Enrico Pirozzi with slight modification
+ by Tatsuo Ishii
+
2009-05-24 17:43 t-ishii
* sql/pgpool-recovery/Makefile: Support pre 8.0 PostgreSQL which
@@ -596,30 +1150,54 @@
2009-05-12 10:01 t-ishii
- * doc/pgpool-en.html: Fix description of client_idle_limit
+ * doc/: pgpool-en.html: Fix description of client_idle_limit
+
+2009-05-05 11:07 t-ishii
+
+ * configure.in, configure, NEWS (tags: V2_2_3) (utags: V2_2_2):
+ prepare 2.2.2
+
+2009-05-05 11:04 t-ishii
+
+ * doc/pgpool-ja.html (tags: V2_2_2): Add 2.2.2 release note
2009-05-02 17:48 t-ishii
- * pool_process_query.c: Fix is_select_query() to test "sql"
- parameter is NULL. As of 2.2, pgpool sets Portal->sql_string to
- NULL for SQL command PREPARE. Usually this is ok, since in most
- cases SQL command EXECUTE follows anyway. Problem is, some
- applications mix PREPARE with extended protocol command "EXECUTE"
- and so on. Execute() seems to think this never happens but it is not
- real. Someday we should extract actual query string from
- PrepareStmt->query and set it to Portal->sql_string.
+ * pool_process_query.c, pool_process_query.c (tags: V2_2_2): Fix
+ is_select_query() to test "sql" parameter is NULL. As of 2.2,
+ pgpool sets Portal->sql_string to NULL for SQL command PREPARE.
+ Usually this is ok, since in most cases SQL command EXECUTE follows
+ anyway. Problem is, some applications mix PREPARE with extended
+ protocol command "EXECUTE" and so on. Execute() seems to think this
+ never happens but it is not real. Someday we should extract actual
+ query string from PrepareStmt->query and set it to
+ Portal->sql_string.
2009-05-02 17:45 t-ishii
- * pool_stream.c: Fix pool_flush() so that it ignores error on
- frontend connection. This is needed to continue processing with
- backend, otherwise we risk data incositency.
+ * pool_stream.c (tags: V2_2_3, V2_2_2), pool_stream.c: Fix
+ pool_flush() so that it ignores error on frontend connection. This
+ is needed to continue processing with backend, otherwise we risk
+ data incositency.
2009-05-02 17:41 t-ishii
- * child.c: Call pool_send_frontend_exits() before pool_discard_cp()
- when resetting connection fails. This will avoid "unexpected EOF on
- client connection" error on when pgpool client exits abnormaly
+ * child.c (tags: V2_2_2), child.c: Call pool_send_frontend_exits()
+ before pool_discard_cp() when resetting connection fails. This will
+ avoid "unexpected EOF on client connection" error on when pgpool
+ client exits abnormaly
+
+2009-05-01 09:39 t-ishii
+
+ * pool_proto_modules.c (tags: V2_2_2): Add missing patches for
+ this:
+
+ 2009-04-08 20:11 t-ishii
+
+ * pool_proto_modules.c (V2_2_STABLE): In master slave mode,
+ sometimes DEALLOCATE fails. This is caused by that the first
+ PREPARE was not executed on the slave. Patch contributed by
+ Toshihiro Kitagawa.
2009-05-01 09:37 t-ishii
@@ -630,11 +1208,33 @@
caused by that the first PREPARE was not executed on the slave.
Patch contributed by Toshihiro Kitagawa.
+2009-04-25 16:20 t-ishii
+
+ * ChangeLog (tags: V2_2_2, V2_2_1): prepare for 2.2.1
+
+2009-04-25 16:16 t-ishii
+
+ * configure.in, configure (utags: V2_2_1): prepare for 2.2.1
+
+2009-04-25 16:12 t-ishii
+
+ * doc/pgpool-ja.html (tags: V2_2_1): Add 2.2.1 release note
+
+2009-04-25 16:05 t-ishii
+
+ * NEWS (tags: V2_2_1): Prepare 2.2.1
+
2009-04-08 20:11 t-ishii
- * pool_proto_modules.c: In master slave mode, sometimes DEALLOCATE
- fails. This is caused by that the first PREPARE was not executed on
- the slave. Patch contributed by Toshihiro Kitagawa.
+ * pool_proto_modules.c (tags: V2_2_1), pool_proto_modules.c: In
+ master slave mode, sometimes DEALLOCATE fails. This is caused by
+ that the first PREPARE was not executed on the slave. Patch
+ contributed by Toshihiro Kitagawa.
+
+2009-04-03 22:49 t-ishii
+
+ * doc/: pgpool-en.html (tags: V2_2_2, V2_2_1), pgpool-ja.html: Add
+ documents about configuration reloading.
2009-04-03 22:43 t-ishii
@@ -649,6 +1249,12 @@
happen with queries defined in reset_query_list. The bug had been
there since 2.1 BTW.
+2009-04-03 19:21 t-ishii
+
+ * pgpool.spec, redhat/pgpool.conf.sample.patch, redhat/pgpool.init
+ (utags: V2_2_1, V2_2_2, V2_2_3, V2_2_4, V2_2_5): Merge changes
+ made on HEAD regarding RPM spec files
+
2009-03-23 10:14 devrim
* pgpool.spec, redhat/pgpool.init:
@@ -668,21 +1274,32 @@
2009-03-14 12:39 t-ishii
- * pool_process_query.c: Fix need_insert_lock so that it returns
- false if the protocol version is 2. insert_lock has not been working
- for V2 protocol anyway, so this is ok.
+ * pool_process_query.c, pool_process_query.c (tags: V2_2_1): Fix
+ need_insert_lock so that it returns false if the protocol version is
+ 2. insert_lock has not been working for V2 protocol anyway, so this
+ is ok.
2009-03-09 00:00 gleu
* main.c, pgpool.8.in, doc/pgpool-en.html: Update usage function,
doc and man page.
+2009-03-08 23:58 gleu
+
+ * main.c, pgpool.8.in (tags: V2_2_5, V2_2_4, V2_2_3) (utags:
+ V2_2_1, V2_2_2): Update usage function and man page.
+
2009-03-07 18:19 t-ishii
* pool_process_query.c: Add a comment to need_insert_lock() if the
query being used to check if the table has SERIAL column is valid
for PostgreSQL 7.3 to 8.3.
+2009-03-07 08:54 t-ishii
+
+ * pool_process_query.c: Make excessive message level in
+ read_kind_from_backend from LOG to DEBUG.
+
2009-03-07 08:49 t-ishii
* pool_process_query.c: Make excessive message level in
@@ -692,10 +1309,24 @@
* main.c: Add support for long options name in pgpool command.
+2009-03-01 22:34 t-ishii
+
+ * doc/pgpool-ja.html: Fix release note for 2.2
+
2009-03-01 22:22 t-ishii
* doc/pgpool-ja.html: Fix release note for 2.2
+2009-02-28 15:33 t-ishii
+
+ * Makefile.in (tags: V2_2_5, V2_2_4, V2_2_3, V2_2_2, V2_2_1,
+ V2_2_0): Update Makefile.am
+
+2009-02-28 15:33 t-ishii
+
+ * Makefile.am (tags: V2_2_5, V2_2_4, V2_2_3, V2_2_2, V2_2_1,
+ V2_2_0): Add doc/load_balance.png, doc/load_balance.odp
+
2009-02-28 15:29 t-ishii
* Makefile.in: Update Makefile.am
@@ -2138,6 +2769,10 @@
* pool_rewrite_query.c: FIX: INSERT statment in a parallel mode
How to count the Value Clause list was wrong
+2007-12-05 17:19 y-asaba
+
+ * pool_stream.c: Improve buffering algorithm in pool_write().
+
2007-12-05 17:15 y-asaba
* pool_stream.c: Improve buffering algorithm in pool_write().
@@ -2171,6 +2806,10 @@
ERROR: pgpool2 sql restriction
DETAIL: cannot use SElectStmt in InserStmt
+2007-11-29 14:50 y-asaba
+
+ * ChangeLog: update.
+
2007-11-24 22:04 t-ishii
* doc/: pgpool-en.html, pgpool-ja.html: Fix english docs. Add a
@@ -2213,6 +2852,11 @@
* pool_process_query.c: Send a syntax error query to a master node
when master_slave is true.
+2007-11-21 10:40 y-asaba
+
+ * pool_process_query.c: Send a syntax error query to a master node
+ when master_slave is true.
+
2007-11-16 14:29 y-mori
* doc/: pgpool-en.html (tags: V2_0_1), pgpool-ja.html (utags:
@@ -2220,8 +2864,8 @@
2007-11-16 11:52 y-asaba
- * pool_auth.c (tags: V2_0_1, V2_0_0): Fix segmentation fault in a
- password authentication when a node is down.
+ * pool_auth.c (tags: V2_0_1, V2_0_0), pool_auth.c: Fix segmentation
+ fault in a password authentication when a node is down.
2007-11-16 10:56 y-asaba
@@ -2358,6 +3002,15 @@
* pool_rewrite_outfuncs.c: fix: join rule for /*NOT*/SQL99 type
join,CROSS JOIN and NATURAL JOIN
+2007-11-06 16:22 y-asaba
+
+ * pool_process_query.c: Fix insert lock with JDBC and the following
+ scenario.
+
+ BEGIN;
+ INSERT INTO a ... <- get table lock.
+ INSERT INTO b ... <- don't get table lock.
+
2007-11-06 16:07 y-asaba
* test/jdbc/InsertTest.java (tags: V2_2_5, V2_2_4, V2_2_3, V2_2_2,
@@ -2379,11 +3032,31 @@
V2_1_0_BETA1, V2_0_1, V2_0_0), Makefile.am: Add INSERT statement
test.
+2007-11-06 13:38 y-asaba
+
+ * pool_process_query.c: Don't close internal transaction when
+ pgpool recieves Sync message.
+
+2007-11-05 16:26 y-asaba
+
+ * pool_process_query.c: Send Sync message before calling
+ insert_lock().
+
+2007-11-05 14:49 y-asaba
+
+ * pool_process_query.c: Fix insert_lock with extended query
+ protocol.
+
2007-11-05 14:26 y-asaba
* pool_process_query.c: Fix insert_lock with extended query
protocol.
+2007-11-05 13:24 y-mori
+
+ * pool_process_query.c: FIX: read wrong file descriptor in
+ pool_parallel_exec()
+
2007-11-05 11:08 y-asaba
* pool_process_query.c: Use FD_SETSIZE instead of 1024 at set_fd,
@@ -2393,6 +3066,10 @@
* pool_process_query.c: Ignore white space in need_insert_lock().
+2007-11-05 10:35 y-asaba
+
+ * pool_process_query.c: Ignore white space in need_insert_lock().
+
2007-11-02 18:20 y-mori
* pool_process_query.c: Fix: compile error at FreeBSD4.1
@@ -2588,6 +3265,10 @@
* pool_process_query.c: Check return value of pool_flush().
+2007-10-26 16:27 y-asaba
+
+ * pool_process_query.c: Check return value of pool_flush().
+
2007-10-23 16:32 y-asaba
* sql/pgpool-recovery/pgpool-recovery.c: Change error message.
@@ -2663,12 +3344,22 @@
* NEWS, doc/pgpool-ja.html: Merge from V1_STABLE branch.
+2007-10-22 13:20 y-asaba
+
+ * ChangeLog, NEWS, doc/pgpool-ja.html (utags: V1_3): Add a item
+ about fixing query cache.
+
+2007-10-18 21:41 t-ishii
+
+ * Makefile.in, configure, parser/scan.c (utags: V1_3): Run autoconf
+
2007-10-18 18:55 y-asaba
- * pool_query_cache.c (tags: V2_0_1, V2_0_0, V2_0_0_BETA1): Although
- the second argument of PQunescapeBytea() requires size_t which size
- is 8 byte in 64bit machine, pgpool passed 4 byte variable. It
- caused segfault. So fixed passing size_t variable.
+ * pool_query_cache.c (tags: V1_3), pool_query_cache.c (tags:
+ V2_0_1, V2_0_0, V2_0_0_BETA1): Although the second argument of
+ PQunescapeBytea() requires size_t which size is 8 byte in 64bit
+ machine, pgpool passed 4 byte variable. It caused segfault. So
+ fixed passing size_t variable.
2007-10-18 18:52 y-mori
@@ -2697,6 +3388,11 @@
* pool_process_query.c: Fix compile warning on Solaris.
+2007-10-18 11:49 y-asaba
+
+ * pool_process_query.c (tags: V1_3): Fix compiler warning on
+ Solaris.
+
2007-10-18 10:21 y-asaba
* pool_config.c, pool_config.l: Set failback_command default value
@@ -2709,18 +3405,72 @@
2007-10-17 15:31 y-mori
- * pool_rewrite_outfuncs.c: FIX: lost alias name of column in query
- rewriting when it was used at GRUP BY CLAUSE..etc
+ * pool_rewrite_outfuncs.c: FIX: lost alias name of column in query
+ rewriting when it was used at GRUP BY CLAUSE..etc
+
+2007-10-17 13:13 devrim
+
+ * pool_config.l (tags: V1_3): Fix typos in comments
+
+2007-10-17 13:03 devrim
+
+ * pgpool.spec (tags: V1_3):
+ - Update to 1.3
+
+2007-10-17 12:00 y-mori
+
+ * pool.h, pool_process_query.c, pool_rewrite_outfuncs.c: Fix:
+ compiler's warning
+
+2007-10-17 11:50 y-asaba
+
+ * NEWS: Release note for 1.3.
+
+2007-10-17 11:26 y-asaba
+
+ * Makefile.am (tags: V1_3): Add redhat/* into EXTRA_DIST.
+
+2007-10-16 22:46 devrim
+
+ * pgpool.spec: Sync with Fedora spec file Add init script and
+ sysconfig file
+
+2007-10-16 22:44 devrim
+
+ * redhat/: pgpool.init, pgpool.sysconfig (utags: V1_3): RPM init
+ script and sysconfig file for Fedora / Red Hat
+
+2007-10-16 18:18 y-asaba
+
+ * doc/pgpool-ja.html: Prepare for 1.3
+
+2007-10-16 18:08 y-asaba
+
+ * version.h (tags: V1_3): Prepare for 1.3
+
+2007-10-16 17:18 y-asaba
+
+ * configure.in (tags: V1_3): Prepare for 1.3.
-2007-10-17 12:00 y-mori
+2007-10-16 16:48 y-asaba
- * pool.h, pool_process_query.c, pool_rewrite_outfuncs.c: Fix:
- compiler's warning
+ * ChangeLog: update.
2007-10-16 12:44 y-asaba
* pool_process_query.c: Fix hang up in load balancing mode.
+2007-10-16 11:57 y-asaba
+
+ * pool_process_query.c: Fix hang up in load balancing mode.
+
+ BEGIN;
+ SELECT 1;
+ COMMIT;
+ SELECT 1; <-- hang up
+
+ The bug was introduced in V1.2. Reported by Felix J. Ogris.
+
2007-10-15 22:56 y-mori
* pool_rewrite_outfuncs.c: fix Type Casting of Constant value was
@@ -2766,11 +3516,30 @@
V2_0_1, V2_0_0, V2_0_0_BETA1), pool_type.h (tags: V2_0_1, V2_0_0,
V2_0_0_BETA1): ADD query rewriting to main trunc
+2007-10-15 15:51 y-asaba
+
+ * pool_process_query.c: Fix typo.
+
+2007-10-15 15:38 y-asaba
+
+ * pool_process_query.c, ChangeLog: Fix invalid memory access when
+ pgpool processed DEALLOCATE statement.
+
2007-10-15 15:11 y-asaba
* parser/pool_memory.c (tags: V2_0_1, V2_0_0, V2_0_0_BETA1): Fix
core dump with a large SQL.
+2007-10-15 14:45 y-asaba
+
+ * pool_process_query.c: reset queries are replicated in
+ master/slave mode.
+
+2007-10-12 23:14 y-mori
+
+ * pool_process_query.c, pool_rewrite_outfuncs.c,
+ pool_rewrite_query.c: ADD query rewriting
+
2007-10-12 21:27 t-ishii
* pgpool.conf.sample, pool.h, pool_config.c, pool_process_query.c,
@@ -2779,12 +3548,12 @@
2007-10-12 18:15 y-asaba
- * pgpool.conf.sample: Add new directive "authentication_timeout"
- into pgpool.conf.sample.
+ * pgpool.conf.sample (tags: V1_3), pgpool.conf.sample: Add new
+ directive "authentication_timeout" into pgpool.conf.sample.
2007-10-12 15:56 y-asaba
- * doc/pgpool-ja.html: Add authentication_timeout.
+ * doc/: pgpool-ja.html: Add authentication_timeout.
2007-10-12 14:55 y-asaba
@@ -2797,6 +3566,13 @@
scanner's error handling. If there was a unterminated double-quote
identifier, scanner entered infinite-loop.
+2007-10-12 14:20 y-asaba
+
+ * ChangeLog, parser/parser.c (tags: V1_3), parser/pool_parser.h
+ (tags: V1_3), parser/scan.l (tags: V1_3): Fix scanner's error
+ handling. If there was a unterminated double-quote identifier,
+ scanner entered infinite-loop.
+
2007-10-12 13:51 y-asaba
* child.c (tags: V2_0_1, V2_0_0, V2_0_0_BETA1), pool.h,
@@ -2834,10 +3610,18 @@
Need to work on show pool_status and docs.
+2007-10-12 13:32 y-asaba
+
+ * child.c (tags: V1_3), ChangeLog, pool.h (tags: V1_3),
+ pool_config.c (tags: V1_3), pool_config.l, pool_process_query.c:
+ Add new directive "authentication_timeout". The directive means the
+ maximum time in seconds to complete client authentication. The
+ default value is 60.
+
2007-10-11 17:32 y-asaba
- * child.c, pool.h: Check startup packet length. If the length is
- greater than 10,000 byte, pgpool reject the connection.
+ * ChangeLog, child.c, pool.h: Check startup packet length. If the
+ length is greater than 10,000 byte, pgpool reject the connection.
2007-10-11 10:49 y-asaba
@@ -3026,6 +3810,11 @@
* pgpool.conf.sample, pool_config.c, pool_config.l: The default
value of ignore_leading_white_space is true in pgpool-II 2.x.
+2007-09-28 10:39 y-asaba
+
+ * NEWS, doc/pgpool-ja.html (utags: V1_2_1): SET, PREPARE and
+ DEALLOCATE statements are replicated in master/slave mode.
+
2007-09-27 18:38 gleu
* pool_process_query.c: Typo fix.
@@ -3086,6 +3875,15 @@
detached because these don't belong to the group which master
belongs to.
+2007-09-26 14:01 y-asaba
+
+ * NEWS, doc/pgpool-ja.html: Add item into V1.2.1 release note.
+
+2007-09-26 13:23 y-asaba
+
+ * ChangeLog, pool_process_query.c (utags: V1_2_1): SET statements
+ are replicated in master/slave mode.
+
2007-09-26 12:32 y-asaba
* pool_sema.c (tags: V2_0_1, V2_0_0, V2_0_0_BETA1): Fix
@@ -3135,6 +3933,32 @@
* child.c, pool.h, pool_process_query.c: Fix hang up when load
balancing node was down.
+2007-09-14 20:06 y-asaba
+
+ * ChangeLog, child.c (tags: V1_2_1), pool.h (tags: V1_2_1),
+ pool_process_query.c: Fix hang up when load balancing node was
+ down.
+
+2007-09-12 13:43 y-asaba
+
+ * NEWS: 1.2.1 release note.
+
+2007-09-12 13:31 y-asaba
+
+ * doc/pgpool-ja.html: 1.2.1 release note in Japanese.
+
+2007-09-12 13:21 t-ishii
+
+ * configure (tags: V1_2_1): Run autoconf
+
+2007-09-12 12:55 y-asaba
+
+ * configure.in (tags: V1_2_1): Prepare for 1.2.1
+
+2007-09-10 22:34 t-ishii
+
+ * child.c: Fix misspell in a comment
+
2007-09-10 22:29 t-ishii
* pool_process_query.c: Modfify pool_send_error_message() so that
@@ -3163,10 +3987,21 @@
- Reuse parser memory space in free_parser().
- Check node type before comparing with "show pool_status()".
+2007-09-06 10:47 y-asaba
+
+ * doc/pgpool-en.html (tags: V1_3, V1_2_1): Fix restricted query
+ section.
+
2007-09-06 10:43 y-asaba
* doc/pgpool-en.html: Fix restricted query section.
+2007-08-29 19:03 y-mori
+
+ * pool.h, pool_process_query.c, pool_rewrite_outfuncs.c,
+ pool_rewrite_query.c, pool_rewrite_query.h: implemented QUERY
+ ANALYZING (now in progress)
+
2007-08-29 15:49 y-asaba
* pool_query_cache.c, pcp/pcp.c (tags: V2_0_1, V2_0_0,
@@ -3177,11 +4012,31 @@
* recovery.c: Fix compile error.
+2007-08-29 15:40 y-asaba
+
+ * pool_query_cache.c, pcp/pcp.c (tags: V1_3), pcp/pcp_stream.c
+ (tags: V1_3) (utags: V1_2_1): Fix compile error on FreeBSD 4.11.
+
2007-08-29 15:01 y-asaba
* pool_process_query.c: Read response messages in Parse() until
receiving ParseComplete or ErrorResponse message.
+2007-08-29 14:53 y-asaba
+
+ * pool_process_query.c: Read response messages in Parse() until
+ receiving ParseComplete or ErrorResponse message.
+
+2007-08-29 11:16 y-asaba
+
+ * ChangeLog, pool_process_query.c:
+ * Fix handling Parse message. Parse message including
+ INSERT/UPDATE/DELETE query acquires RowExclusiveLock. However pgpool
+ did not wait a response from each node. It was possible to occur
+ deadlock problem.
+
+ * Fix memory leak in reset_prepared_list()
+
2007-08-28 19:07 y-asaba
* pool_process_query.c: Add checking deadlock error message in
@@ -3197,6 +4052,10 @@
* Fix memory leak in reset_prepared_list()
+2007-08-17 10:51 t-ishii
+
+ * doc/pgpool-ja.html: Enhance documentation
+
2007-08-17 10:50 t-ishii
* TODO, doc/pgpool-ja.html: Enhance documentation.
@@ -3213,6 +4072,10 @@
If it is false, pgpool only sends them to the master node. This is a
current specification.
+2007-08-13 06:37 t-ishii
+
+ * pgpool.conf.sample (tags: V1_2_1): Fix typo in a comment
+
2007-08-06 10:42 y-asaba
* pool_process_query.c: Fix memory leak.
@@ -3221,10 +4084,46 @@
* child.c: Remove compiler warning.
+2007-08-01 13:26 y-asaba
+
+ * child.c (tags: V1_2): Remove compiler warning
+
+2007-08-01 13:06 y-asaba
+
+ * NEWS (tags: V1_2): Review release note.
+
+2007-08-01 13:03 y-asaba
+
+ * pool_process_query.c (tags: V1_2): Fix SEGV when connection_cache
+ is true and replication_mode is false.
+
+2007-07-31 13:02 y-asaba
+
+ * doc/pgpool-en.html (tags: V1_2): Add a description about
+ "replicate_select" directive.
+
+2007-07-27 21:09 y-mori
+
+ * pool_process_query.c, pool_rewrite_outfuncs.c,
+ pool_rewrite_query.c, pool_rewrite_query.h, pool_system.c: add
+ query analyzing process before rewriting query
+
+2007-07-27 14:57 y-asaba
+
+ * NEWS: Release note for 1.2
+
+2007-07-27 11:45 y-asaba
+
+ * doc/pgpool-ja.html (tags: V1_2): Update release note for v1.2
+
2007-07-27 10:19 y-asaba
* doc/pgpool-ja.html: Merge from V1_STABLE branch
+2007-07-26 19:24 y-asaba
+
+ * ChangeLog (tags: V1_2): update.
+
2007-07-26 19:15 y-asaba
* child.c, pool.h, pool_connection_pool.c (tags: V2_0_1, V2_0_0,
@@ -3232,11 +4131,51 @@
non-reentrant functions. We only set a flag in SIGALRM handler.
Then we close expired connections in safe places.
+2007-07-26 19:12 y-asaba
+
+ * pool_connection_pool.c (tags: V1_3, V1_2_1, V1_2): Fix buffer
+ over run when connection_life_time is expired.
+
+2007-07-26 18:03 y-asaba
+
+ * child.c, pool.h (tags: V1_2), pool_connection_pool.c: SIGALRM
+ handler didn't safe because it called non-reentrant functions. We
+ only set a flag in SIGALRM handler. Then we close expired
+ connections in safe places.
+
+2007-07-26 17:07 t-ishii
+
+ * configure, pool_config.c (tags: V1_2_1) (utags: V1_2): Run
+ autoconf
+
+2007-07-26 16:53 y-asaba
+
+ * doc/pgpool-ja.html: Add release note for 1.2 and description of
+ replicate_select parameter.
+
+2007-07-26 16:46 y-asaba
+
+ * version.h (tags: V1_2_1, V1_2): Prepare for 1.2
+
+2007-07-26 16:30 y-asaba
+
+ * pool_process_query.c: Add replicate_select value to the result of
+ "SHOW pool_status" command.
+
2007-07-26 14:15 y-asaba
* pool_connection_pool.c: Fix memory leak when connection slot is
full.
+2007-07-26 14:12 y-asaba
+
+ * ChangeLog: update.
+
+2007-07-26 14:11 y-asaba
+
+ * pool_connection_pool.c: Fix memory leak when connection slot is
+ full.
+
2007-07-26 11:28 t-ishii
* aclocal.m4, configure, pool_config.c: Run autoconf
@@ -3256,11 +4195,60 @@
If pgpool receives a warning message that is NoticeMessage('N')
under the extended query protocol, it reads a next message.
+2007-07-25 21:24 y-asaba
+
+ * pool_process_query.c: Fix memory leak.
+
+2007-07-25 20:39 y-asaba
+
+ * pool_process_query.c: Fix SEGV when pgpool received a Parse
+ message without a statement name.
+
2007-07-24 18:02 y-asaba
* pool.h, pool_process_query.c: Detect deadlock in do_command().
When insert_lock was true, kind mismatch error occured.
+2007-07-24 17:41 y-asaba
+
+ * ChangeLog, pool.h, pool_process_query.c: Detect deadlock in
+ do_command(). When insert_lock was true, kind mismatch error
+ occured.
+
+2007-07-24 10:57 y-asaba
+
+ * child.c, pool_process_query.c, pool_type.h (tags: V1_3, V1_2_1,
+ V1_2): Load balancing node was chosen before sending "SELECT"
+ statement. But this way had the following problems.
+
+ psql>\d accounts
+ Did not find any relation with OID XXX
+
+ pgpool chooses it after receiving AuthenticationOK('R') message. So
+ pgpool load balance to the same node inside a same session.
+
+ This fix isn't backported to pgpool.
+
+2007-07-24 10:39 y-asaba
+
+ * pool_config.l (tags: V1_2_1, V1_2): Fixed compile error.
+
+2007-07-23 15:54 y-asaba
+
+ * ChangeLog, pgpool.conf.sample (tags: V1_2), pool.h,
+ pool_config.l, pool_process_query.c: Add new parameter named
+ "replicate_select". Default value is 'false'.
+
+ If it is true, pgpool replicates SELECT queries when load balancing
+ is disabled. This is a old specification which was V1.0.
+
+ If it is false, pgpool only sends them to the master node. This is a
+ current specification.
+
+2007-07-23 15:30 y-asaba
+
+ * configure.in (tags: V1_2): Prepare for 1.2
+
2007-07-23 14:32 y-asaba
* pool_process_query.c: Fixed that start_internal_transaction() was
@@ -3281,6 +4269,26 @@
Or you send SIGHUP signal to the pgpool parent process.
+2007-07-19 15:01 y-mori
+
+ * pool_process_query.c: BUGFIX: Occasionally, Bad file descripter
+ is read in parallel_query_mode
+
+2007-07-18 20:33 devrim
+
+ * pgpool.spec (tags: V1_2_1, V1_2): Update to 1.2
+
+2007-07-17 17:58 y-mori
+
+ * pool_process_query.c, pool_rewrite_outfuncs.c,
+ pool_rewrite_query.c, pool_rewrite_query.h, pool_system.c,
+ pool_type.h: Unification of replication mode and parallel query
+ mode Now It's still working.
+
+2007-07-17 17:19 y-asaba
+
+ * ChangeLog: update
+
2007-07-17 15:04 y-asaba
* pool_process_query.c: Fix hang up when backend node did fast or
@@ -3294,11 +4302,47 @@
a message from them. when the error is sended, pgpool reads the
message and degenerate.
+2007-07-17 14:50 y-asaba
+
+ * pool_process_query.c: Fix hang up when backend node did fast or
+ immediate shutdown.
+
+ If shutdown occured, postgres send an error which error code is
+ "57P01" and error message is "terminating connection due to
+ administrator command".
+
+ However, another nodes did not send any messages. pgpool waited for
+ a message from them. when the error is sended, pgpool reads the
+ message and degenerate.
+
2007-07-17 11:33 y-asaba
* pool_process_query.c (tags: ROOT_OF_V2_0_PARALLEL_UNSTABLE):
Rearrange detect_deadlock_error().
+2007-07-17 11:26 y-asaba
+
+ * pool_process_query.c: Rearrange detect_deadlock_error().
+
+2007-07-11 11:15 y-asaba
+
+ * pool.h, pool_process_query.c, pool_stream.c (tags: V1_3, V1_2_1,
+ V1_2): Fixed kind mismatch error when deadlock error occured.
+ The problem is the following senario.
+
+ A: BEGIN:
+ B: BEGIN;
+ A: LOCK TABLE t1 IN SHARE ROW EXCLUSIVE MODE;
+ B: LOCK TABLE t2 IN SHARE ROW EXCLUSIVE MODE;
+ A: LOCK TABLE t2 IN SHARE ROW EXCLUSIVE MODE;
+ B: LOCK TABLE t1 IN SHARE ROW EXCLUSIVE MODE;
+
+ Transaction "A" aborts on master node, but it completes on another
+ nodes. It causes wrong failover.
+
+ So pgpool checks deadlock error(code == '40P01') and sends error
+ query to another nodes.
+
2007-07-10 18:56 y-asaba
* main.c (tags: ROOT_OF_V2_0_PARALLEL_UNSTABLE), pool.h (tags:
@@ -3326,6 +4370,22 @@
* main.c: Add comments.
+2007-07-09 14:17 y-asaba
+
+ * ChangeLog: update.
+
+2007-07-09 14:00 y-asaba
+
+ * config.h.in (tags: V1_3, V1_2_1, V1_2), configure.in, main.c
+ (tags: V1_3, V1_2_1, V1_2): Fix race condition between flag
+ checking and signal blocking.
+
+ Normally, this case solve to call pselect(2). But Linux's pselect(2)
+ is emulated by select(2) and sigprocmask(2). It contains this race.
+ So pgpool archieves using the self-pipe trick.
+
+ See 'man pselect' if you want to get more information.
+
2007-07-09 13:23 y-asaba
* main.c: Fix race condition between flag checking and signal
@@ -3368,6 +4428,28 @@
pgpool chooses it after receiving AuthenticationOK('R') message. So
pgpool load balance to the same node inside a same session.
+2007-07-05 20:14 y-asaba
+
+ * ChangeLog: Update ChangeLog.
+
+2007-07-05 19:58 y-asaba
+
+ * pool_process_query.c: Fix the following bugs in master_slave mode
+ && load_balance mode.
+
+ 1. We force to replicate PREPARE and DEALLOCATE statement because
+ of the case.
+
+ PREPARE xx AS SELECT 1;
+ EXECUTE xx;
+
+ If EXECUTE statement was load balanced, it occured the error.
+
+ ERROR: prepared statement "xx" does not exist
+
+ 2. pgpool didn't load balance a SELECT query using extended
+ protocol.
+
2007-07-05 18:12 y-asaba
* main.c: Improve signal handling.
@@ -3426,6 +4508,17 @@
V2_0_1, V2_0_0, V2_0_0_BETA1, ROOT_OF_V2_0_PARALLEL_UNSTABLE):
Fix checking the number of arguments.
+2007-06-27 17:30 y-asaba
+
+ * ChangeLog, pool.h, pool_process_query.c: Fix hang up when a
+ SELECT query has error inside transaction block. It occurs only in
+ simple query protocol. We reproduce the bug with the following
+ operation.
+
+ BEGIN;
+ SELECT * FROM non_exist_table; <-- ERROR
+ SELECT 1;
+
2007-06-26 10:35 y-asaba
* pcp_child.c: Remove unused variable.
@@ -4135,3 +5228,159 @@
pcp/pcp_proc_count.c, pcp/pcp_proc_info.c, pcp/pcp_stop_pgpool.c,
pcp/pcp_systemdb_info.c: Initial revision
+2006-09-08 12:35 t-ishii
+
+ * README, configure.in, Makefile.am, aclocal.m4, Makefile.in,
+ config.h.in (tags: V1_0_1), AUTHORS (tags: V2_2_5, V2_2_4,
+ V2_2_3, V2_2_2, V2_2_1, V2_2_0, V2_2_0_RC2, V2_2_0_RC1,
+ V2_2_0_BETA2, V2_2_0_BETA1, V2_1_0, V2_1_0_RC1, V2_1_0_BETA2,
+ V2_1_0_BETA1, V2_0_1, V2_0_0, V2_0_0_BETA1, V1_3, V1_2_1, V1_2,
+ ROOT_OF_V2_0_PARALLEL_UNSTABLE, V1_1_1, V1_1, V1_0_2, V1_0_1),
+ configure, COPYING (tags: V1_0_1), ChangeLog, INSTALL (tags:
+ V2_2_5, V2_2_4, V2_2_3, V2_2_2, V2_2_1, V2_2_0, V2_2_0_RC2,
+ V2_2_0_RC1, V2_2_0_BETA2, V2_2_0_BETA1, V2_1_0, V2_1_0_RC1,
+ V2_1_0_BETA2, V2_1_0_BETA1, V2_0_1, V2_0_0, V2_0_0_BETA1, V1_3,
+ V1_2_1, V1_2, ROOT_OF_V2_0_PARALLEL_UNSTABLE, V1_1_1, V1_1,
+ V1_0_2, V1_0_1), NEWS, TODO (tags: V1_0_1), config.guess (tags:
+ V1_3, V1_2_1, V1_2, V1_1_1, V1_1, V1_0_2, V1_0_1), config.sub
+ (tags: V1_3, V1_2_1, V1_2, ROOT_OF_V2_0_PARALLEL_UNSTABLE,
+ V1_1_1, V1_1, V1_0_2, V1_0_1), depcomp (tags: V2_2_5, V2_2_4,
+ V2_2_3, V2_2_2, V2_2_1, V2_2_0, V2_2_0_RC2, V2_2_0_RC1,
+ V2_2_0_BETA2, V2_2_0_BETA1, V2_1_0, V2_1_0_RC1, V2_1_0_BETA2,
+ V2_1_0_BETA1, V2_0_1, V2_0_0, V2_0_0_BETA1, V1_3, V1_2_1, V1_2,
+ ROOT_OF_V2_0_PARALLEL_UNSTABLE, V1_1_1, V1_1, V1_0_2, V1_0_1),
+ install-sh (tags: V2_2_5, V2_2_4, V2_2_3, V2_2_2, V2_2_1, V2_2_0,
+ V2_2_0_RC2, V2_2_0_RC1, V2_2_0_BETA2, V2_2_0_BETA1, V2_1_0,
+ V2_1_0_RC1, V2_1_0_BETA2, V2_1_0_BETA1, V2_0_1, V2_0_0,
+ V2_0_0_BETA1, V1_3, V1_2_1, V1_2, ROOT_OF_V2_0_PARALLEL_UNSTABLE,
+ V1_1_1, V1_1, V1_0_2, V1_0_1), ltmain.sh (tags: V1_3, V1_2_1,
+ V1_2, V1_1_1, V1_1, V1_0_2, V1_0_1), missing (tags: V2_2_5,
+ V2_2_4, V2_2_3, V2_2_2, V2_2_1, V2_2_0, V2_2_0_RC2, V2_2_0_RC1,
+ V2_2_0_BETA2, V2_2_0_BETA1, V2_1_0, V2_1_0_RC1, V2_1_0_BETA2,
+ V2_1_0_BETA1, V2_0_1, V2_0_0, V2_0_0_BETA1, V1_3, V1_2_1, V1_2,
+ ROOT_OF_V2_0_PARALLEL_UNSTABLE, V1_1_1, V1_1, V1_0_2, V1_0_1),
+ mkinstalldirs (tags: V2_2_5, V2_2_4, V2_2_3, V2_2_2, V2_2_1,
+ V2_2_0, V2_2_0_RC2, V2_2_0_RC1, V2_2_0_BETA2, V2_2_0_BETA1,
+ V2_1_0, V2_1_0_RC1, V2_1_0_BETA2, V2_1_0_BETA1, V2_0_1, V2_0_0,
+ V2_0_0_BETA1, V1_3, V1_2_1, V1_2, ROOT_OF_V2_0_PARALLEL_UNSTABLE,
+ V1_1_1, V1_1, V1_0_2, V1_0_1), pg_md5.c (tags: V2_0_1, V2_0_0,
+ V2_0_0_BETA1, V1_3, V1_2_1, V1_2, ROOT_OF_V2_0_PARALLEL_UNSTABLE,
+ V1_1_1, V1_1, V1_0_2, V1_0_1), pool_config.c, README.euc_jp,
+ main.c, md5.c (tags: V2_2_3, V2_2_2, V2_2_1, V2_2_0, V2_2_0_RC2,
+ V2_2_0_RC1, V2_2_0_BETA2, V2_2_0_BETA1, V2_1_0, V2_1_0_RC1,
+ V2_1_0_BETA2, V2_1_0_BETA1, V2_0_1, V2_0_0, V2_0_0_BETA1, V1_3,
+ V1_2_1, V1_2, ROOT_OF_V2_0_PARALLEL_UNSTABLE, V1_1_1, V1_1,
+ V1_0_2, V1_0_1), md5.h (tags: V2_2_5, V2_2_4, V2_2_3, V2_2_2,
+ V2_2_1, V2_2_0, V2_2_0_RC2, V2_2_0_RC1, V2_2_0_BETA2,
+ V2_2_0_BETA1, V2_1_0, V2_1_0_RC1, V2_1_0_BETA2, V2_1_0_BETA1,
+ V2_0_1, V2_0_0, V2_0_0_BETA1, V1_3, V1_2_1, V1_2,
+ ROOT_OF_V2_0_PARALLEL_UNSTABLE, V1_1_1, V1_1, V1_0_2, V1_0_1),
+ pgpool.conf.sample (tags: V1_0_1), pgpool.spec (tags: V1_0_1),
+ pool.h, pool_type.h (tags: V1_0_1), version.h (tags: V1_0_2,
+ V1_0_1), child.c (tags: V1_0_1), pool_auth.c (tags: V1_0_1),
+ pool_config.l (tags: V1_0_1), pool_error.c (tags: V1_0_1),
+ pool_connection_pool.c (tags: V1_0_1), pool_params.c (tags:
+ V1_0_1), pool_process_query.c, pool_signal.c (tags: V1_0_1),
+ pool_signal.h (tags: V1_0_1), pool_stream.c (tags: V1_0_1),
+ pcp.conf.sample (tags: V2_2_5, V2_2_4, V2_2_3, V2_2_2, V2_2_1,
+ V2_2_0, V2_2_0_RC2, V2_2_0_RC1, V2_2_0_BETA2, V2_2_0_BETA1,
+ V2_1_0, V2_1_0_RC1, V2_1_0_BETA2, V2_1_0_BETA1, V2_0_1, V2_0_0,
+ V2_0_0_BETA1, V1_3, V1_2_1, V1_2, ROOT_OF_V2_0_PARALLEL_UNSTABLE,
+ V1_1_1, V1_1, V1_0_2, V1_0_1), pcp_child.c (tags: V1_0_1),
+ pool_ipc.h (tags: V1_0_1), pool_sema.c (tags: V1_0_1),
+ pool_shmem.c (tags: V1_0_1), pool_system.c (tags: V1_0_1),
+ pool_rewrite_query.c (tags: V1_0_1), pool_rewrite_query.h (tags:
+ V1_0_1), pool_rewrite_outfuncs.c (tags: V1_3, V1_2_1, V1_2,
+ ROOT_OF_V2_0_PARALLEL_UNSTABLE, V1_1_1, V1_1, V1_0_2, V1_0_1),
+ pgpool.8.in (tags: V1_0_1), pool_query_cache.c (tags: V1_0_1),
+ doc/pgpool.html, doc/pgpool.html.en, doc/tutorial.html,
+ doc/tutorial.html.en, parser/Makefile.am (tags: V1_0_2, V1_0_1),
+ parser/Makefile.in, sample/dist_def_pgbench.sql (tags: V2_2_5,
+ V2_2_4, V2_2_3, V2_2_2, V2_2_1, V2_2_0, V2_2_0_RC2, V2_2_0_RC1,
+ V2_2_0_BETA2, V2_2_0_BETA1, V2_1_0, V2_1_0_RC1, V2_1_0_BETA2,
+ V2_1_0_BETA1, V2_0_1, V2_0_0, V2_0_0_BETA1, V1_3, V1_2_1, V1_2,
+ ROOT_OF_V2_0_PARALLEL_UNSTABLE, V1_1_1, V1_1, V1_0_2, V1_0_1),
+ sql/system_db.sql (tags: V2_0_0_BETA1, V1_3, V1_2_1, V1_2,
+ ROOT_OF_V2_0_PARALLEL_UNSTABLE, V1_1_1, V1_1, V1_0_2, V1_0_1),
+ parser/gram.c (tags: V1_0_2, V1_0_1), parser/gram.h (tags:
+ V1_0_2, V1_0_1), parser/gram.y (tags: V1_3, V1_2_1, V1_2,
+ ROOT_OF_V2_0_PARALLEL_UNSTABLE, V1_1_1, V1_1, V1_0_2, V1_0_1),
+ parser/gramparse.h (tags: V1_3, V1_2_1, V1_2,
+ ROOT_OF_V2_0_PARALLEL_UNSTABLE, V1_1_1, V1_1, V1_0_2, V1_0_1),
+ parser/list.c (tags: V1_3, V1_2_1, V1_2,
+ ROOT_OF_V2_0_PARALLEL_UNSTABLE, V1_1_1, V1_1, V1_0_2, V1_0_1),
+ parser/makefuncs.c (tags: V1_3, V1_2_1, V1_2,
+ ROOT_OF_V2_0_PARALLEL_UNSTABLE, V1_1_1, V1_1, V1_0_2, V1_0_1),
+ parser/makefuncs.h (tags: V1_3, V1_2_1, V1_2,
+ ROOT_OF_V2_0_PARALLEL_UNSTABLE, V1_1_1, V1_1, V1_0_2, V1_0_1),
+ parser/memnodes.h (tags: V2_0_1, V2_0_0, V2_0_0_BETA1, V1_3,
+ V1_2_1, V1_2, ROOT_OF_V2_0_PARALLEL_UNSTABLE, V1_1_1, V1_1,
+ V1_0_2, V1_0_1), parser/nodes.c (tags: V2_0_1, V2_0_0,
+ V2_0_0_BETA1, V1_3, V1_2_1, V1_2, ROOT_OF_V2_0_PARALLEL_UNSTABLE,
+ V1_1_1, V1_1, V1_0_2, V1_0_1), parser/nodes.h (tags: V1_3,
+ V1_2_1, V1_2, ROOT_OF_V2_0_PARALLEL_UNSTABLE, V1_1_1, V1_1,
+ V1_0_2, V1_0_1), parser/parsenodes.h (tags: V1_3, V1_2_1, V1_2,
+ ROOT_OF_V2_0_PARALLEL_UNSTABLE, V1_1_1, V1_1, V1_0_2, V1_0_1),
+ parser/parser.c (tags: V1_2_1, V1_2,
+ ROOT_OF_V2_0_PARALLEL_UNSTABLE, V1_1_1, V1_1, V1_0_2, V1_0_1),
+ parser/parser.h (tags: V1_3, V1_2_1, V1_2,
+ ROOT_OF_V2_0_PARALLEL_UNSTABLE, V1_1_1, V1_1, V1_0_2, V1_0_1),
+ parser/pg_list.h (tags: V1_3, V1_2_1, V1_2,
+ ROOT_OF_V2_0_PARALLEL_UNSTABLE, V1_1_1, V1_1, V1_0_2, V1_0_1),
+ parser/pool_memory.c (tags: V1_0_1), parser/pool_memory.h (tags:
+ V1_0_1), parser/pool_string.c (tags: V1_0_1),
+ parser/pool_string.h (tags: V1_0_1), parser/keywords.c (tags:
+ V1_3, V1_2_1, V1_2, ROOT_OF_V2_0_PARALLEL_UNSTABLE, V1_1_1, V1_1,
+ V1_0_2, V1_0_1), parser/keywords.h (tags: V1_3, V1_2_1, V1_2,
+ ROOT_OF_V2_0_PARALLEL_UNSTABLE, V1_1_1, V1_1, V1_0_2, V1_0_1),
+ parser/pool_parser.h (tags: V1_0_2, V1_0_1), parser/primnodes.h
+ (tags: V1_3, V1_2_1, V1_2, ROOT_OF_V2_0_PARALLEL_UNSTABLE,
+ V1_1_1, V1_1, V1_0_2, V1_0_1), parser/scansup.h (tags: V2_0_1,
+ V2_0_0, V2_0_0_BETA1, V1_3, V1_2_1, V1_2,
+ ROOT_OF_V2_0_PARALLEL_UNSTABLE, V1_1_1, V1_1, V1_0_2, V1_0_1),
+ parser/value.c (tags: V1_3, V1_2_1, V1_2,
+ ROOT_OF_V2_0_PARALLEL_UNSTABLE, V1_1_1, V1_1, V1_0_2, V1_0_1),
+ parser/value.h (tags: V1_3, V1_2_1, V1_2,
+ ROOT_OF_V2_0_PARALLEL_UNSTABLE, V1_1_1, V1_1, V1_0_2, V1_0_1),
+ parser/outfuncs.c (tags: V1_3, V1_2_1, V1_2,
+ ROOT_OF_V2_0_PARALLEL_UNSTABLE, V1_1_1, V1_1, V1_0_2, V1_0_1),
+ parser/scan.c, parser/scan.l (tags: V1_2_1, V1_2,
+ ROOT_OF_V2_0_PARALLEL_UNSTABLE, V1_1_1, V1_1, V1_0_2, V1_0_1),
+ pcp/Makefile.am (tags: V1_3, V1_2_1, V1_2, V1_1_1, V1_1, V1_0_2,
+ V1_0_1), pcp/Makefile.in, pcp/md5.h (tags: V2_2_5, V2_2_4,
+ V2_2_3, V2_2_2, V2_2_1, V2_2_0, V2_2_0_RC2, V2_2_0_RC1,
+ V2_2_0_BETA2, V2_2_0_BETA1, V2_1_0, V2_1_0_RC1, V2_1_0_BETA2,
+ V2_1_0_BETA1, V2_0_1, V2_0_0, V2_0_0_BETA1, V1_3, V1_2_1, V1_2,
+ ROOT_OF_V2_0_PARALLEL_UNSTABLE, V1_1_1, V1_1, V1_0_2, V1_0_1),
+ pcp/pcp.h (tags: V1_3, V1_2_1, V1_2, V1_1_1, V1_1, V1_0_2,
+ V1_0_1), pcp/md5.c (tags: V2_2_3, V2_2_2, V2_2_1, V2_2_0,
+ V2_2_0_RC2, V2_2_0_RC1, V2_2_0_BETA2, V2_2_0_BETA1, V2_1_0,
+ V2_1_0_RC1, V2_1_0_BETA2, V2_1_0_BETA1, V2_0_1, V2_0_0,
+ V2_0_0_BETA1, V1_3, V1_2_1, V1_2, ROOT_OF_V2_0_PARALLEL_UNSTABLE,
+ V1_1_1, V1_1, V1_0_2, V1_0_1), pcp/pcp.c (tags: V1_0_2, V1_0_1),
+ pcp/pcp_attach_node.c (tags: V2_0_1, V2_0_0, V2_0_0_BETA1, V1_3,
+ V1_2_1, V1_2, ROOT_OF_V2_0_PARALLEL_UNSTABLE, V1_1_1, V1_1,
+ V1_0_2, V1_0_1), pcp/pcp_detach_node.c (tags: V2_0_1, V2_0_0,
+ V2_0_0_BETA1, V1_3, V1_2_1, V1_2, ROOT_OF_V2_0_PARALLEL_UNSTABLE,
+ V1_1_1, V1_1, V1_0_2, V1_0_1), pcp/pcp_error.c (tags: V2_0_1,
+ V2_0_0, V2_0_0_BETA1, V1_3, V1_2_1, V1_2,
+ ROOT_OF_V2_0_PARALLEL_UNSTABLE, V1_1_1, V1_1, V1_0_2, V1_0_1),
+ pcp/pcp_node_count.c (tags: V2_0_1, V2_0_0, V2_0_0_BETA1, V1_3,
+ V1_2_1, V1_2, ROOT_OF_V2_0_PARALLEL_UNSTABLE, V1_1_1, V1_1,
+ V1_0_2, V1_0_1), pcp/pcp_stream.c (tags: V1_0_2, V1_0_1),
+ pcp/pcp_stream.h (tags: V2_0_1, V2_0_0, V2_0_0_BETA1, V1_3,
+ V1_2_1, V1_2, ROOT_OF_V2_0_PARALLEL_UNSTABLE, V1_1_1, V1_1,
+ V1_0_2, V1_0_1), pcp/pcp_node_info.c (tags: V2_0_1, V2_0_0,
+ V2_0_0_BETA1, V1_3, V1_2_1, V1_2, ROOT_OF_V2_0_PARALLEL_UNSTABLE,
+ V1_1_1, V1_1, V1_0_2, V1_0_1), pcp/pcp_proc_count.c (tags:
+ V2_0_0_BETA1, V1_3, V1_2_1, V1_2, ROOT_OF_V2_0_PARALLEL_UNSTABLE,
+ V1_1_1, V1_1, V1_0_2, V1_0_1), pcp/pcp_proc_info.c (tags: V2_0_1,
+ V2_0_0, V2_0_0_BETA1, V1_3, V1_2_1, V1_2,
+ ROOT_OF_V2_0_PARALLEL_UNSTABLE, V1_1_1, V1_1, V1_0_2, V1_0_1),
+ pcp/pcp_stop_pgpool.c (tags: V2_0_1, V2_0_0, V2_0_0_BETA1, V1_3,
+ V1_2_1, V1_2, ROOT_OF_V2_0_PARALLEL_UNSTABLE, V1_1_1, V1_1,
+ V1_0_2, V1_0_1), pcp/pcp_systemdb_info.c (tags: V2_0_1, V2_0_0,
+ V2_0_0_BETA1, V1_3, V1_2_1, V1_2, ROOT_OF_V2_0_PARALLEL_UNSTABLE,
+ V1_1_1, V1_1, V1_0_2, V1_0_1) (utags: V1_0_0): pgpool-II initial
+ release
+
diff --git a/NEWS b/NEWS
index 3e6b99500..325e6b936 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,230 @@
+2.3 (tomiteboshi) 2009/12/07
+
+ * 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.
+
+ * 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
+
+ - 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)
+
+ - Enhance the performance 20% to 100% of replication when
+ num_init_children == 1(Tatsuo)
+
+ - 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)
+
+ - Add new directive fail_over_on_backend_error to control the
+ behaviro of fail over(Tatsuo)
+
+ - Record DB node status and remember when pgpool-II restarts(Tatsuo)
+
+ - 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)
+
+ - Enhance CSS of pgpool-ja.html(Tatsuo)
+
+ - Add sample configuration file for replication mode and
+ master/slave mode(Tatsuo)
+
+ - Add test for temporal data(Akio Ishida)
+
+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)
+
+ - In master/slave mode, execute Parse message on only master
+ node. In previous versions Parse executed on all nodes, which
+ grabbed unneccessary lock(Tatsuo)
+
+ - Remove init script from all runlevels before uninstall(Devrim)
+
+ - Fix pgpoo.spec(Devrim)
+
+ - Do not execute REINDEX DATABASE or SYSTEM, CREATE/DROP TABLE
+ SPACE inside a transaction block(Tatsuo)
+
+ * Enhancements
+
+ - Allow to change weight by reloading pgool.conf. This will take
+ effect for next client sessions(Tatsuo)
+
+ - 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)
+
+ - Do not complain when writing to socket of frontend
+ fails(Tatsuo)
+
+ - 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)
+
+ - Add temp table test to test/jdbc(Tatsuo)
+
+2.2.5 (urukiboshi) 2009/10/4
+ * Version 2.2.5
+
+ This version fixes various bugs in 2.2.4 or before.
+
+ * Bug fixes
+
+ - Fix connection_count_down(). It decrements the connection
+ counter too much in some corner cases and causes online
+ recover never completes(Tatsuo)
+
+ - Detect frontend exiting while waiting for commands complete in
+ other cases such as internal locks are issued and Parse
+ (Tatsuo)
+
+ - Fix inifinit loop in reset_backend(Xavier Noguer, Tatsuo)
+
+ - Fix Parse() to print actual query when it detects kind
+ mismatch error(Tatsuo)
+
+ - Document enhancements(Tatsuo)
+
+2.2.4 (urukiboshi) 2009/8/24
+ * Version 2.2.4
+
+ This version fixes various bugs in 2.2.3 or before.
+
+ * Bug fixes
+
+ - 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)
+
+ - 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)
+
+ - Remove unnecessary spaces and tabs at the end of line(Jun Kuriyama)
+
+2.2.3 (urukiboshi) 2009/8/11
+ * Version 2.2.3
+
+ This version fixes various bugs in 2.2.2 or before.
+
+ * Bug fixes
+
+ - Fix child process death if one of backends is not available(Tatsuo).
+
+ - Fix various parallel query bugs(Yoshiharu Mori)
+
+ - Fix message corruption for kid mismatch error(Akio Ishida)
+
+ - Now stetmemt_time works(Tatsuo)
+
+ - 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)
+
+ - Do not start internal transaction if command is CLUSTER
+ without arguments(Tatsuo)
+
+ - Fix bug with COPY FROM in that backend process remains after
+ COPY failed(Tatsuo)
+
+ * Enhancements
+
+ - Show last query for extended protocol(Akio Ishida)
+
+ - Allow to compile sql/pgpool-recovery/pgpool-recovery.c with
+ PostgreSQL 8.4(Tatsuo)
+
+2.2.2 (urukiboshi) 2009/5/5
+ * Version 2.2.2
+
+ 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.
+
+ * Bug fixes
+
+ - 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)
+
+ - Fix pgpool crash when SQL command PREPARE and protocol level
+ EXECUTE are mixed. The bug was introduced in 2.2(Tatsuo)
+
+ - 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
+
+ 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)
+
+ - Update pgpool.spec along with related files(Devrim)
+
+ - 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)
+
2.2 (urukiboshi) 2009/2/28
* Version 2.2
diff --git a/doc/pgpool-en.html b/doc/pgpool-en.html
index aa766d6f0..a9e017997 100644
--- a/doc/pgpool-en.html
+++ b/doc/pgpool-en.html
@@ -7,7 +7,7 @@
</head>
<!-- hhmts start -->
-Last modified: Tue May 12 10:00:04 JST 2009
+Last modified: Mon Dec 7 18:37:01 JST 2009
<!-- hhmts end -->
<body bgcolor="#ffffff">
@@ -114,9 +114,10 @@ query, however, 7.4 and higher must be used.</p>
<p>
pgpool-II can be downloaded from <a href="http://pgfoundry.org/projects/pgpool/">pgpool Development page</a>.
+Also packages are provided for various platforms including CentOS, RedHat Enterprise Linux, Fedora and Debian.
</p>
-<p>Installing pgpool-II requires gcc 2.9 or higher, and GNU
+<p>Installing pgpool-II from source code requires gcc 2.9 or higher, and GNU
make. Also, pgpool-II links libpq library, so it must be installed on
a machine used to build pgpool-II.</p>
@@ -202,15 +203,6 @@ control their behaviors.</p>
<td align="center">(*)</td>
</tr>
- <tr>
- <td>Degeneration</td>
- <td align="center">X</td>
- <td align="center">X</td>
- <td align="center">O</td>
- <td align="center">O</td>
- <td align="center">X</td>
- </tr>
-
<tr>
<td>Failover</td>
<td align="center">O</td>
@@ -423,9 +415,7 @@ servers.</p>
<dt>logdir</dt>
<dd>
- <p>The directory path of the logs. pgpool-II 2.2 or later does not
- use this directive. In the future pgpool-II might implement its
- own logging system and we leave this directive as it is.
+ <p>The directory path of the logs. pgpool_status is written under this directory.
</p>
</dd>
@@ -448,7 +438,7 @@ servers.</p>
<dt>connection_cache</dt>
<dd>
- <p>Caches connections when set to true. Default is
+ <p>Caches connections to backend when set to true. Default is
true.</p>
</dd>
@@ -542,6 +532,18 @@ pgpool-II replaces special characters to backend information.
You need to reload pgpool.conf if you change failback_command.
</p>
+ <dt>fail_over_on_backend_error</dt>
+ <dd>
+ <p>
+If true, trigger fail over when writing to the backend communication
+socket fails. This is the same behavior of pgpool-II 2.2.x or
+earlier. If set to false, pgpool will report an error and disconnect
+the session.
+Please note that, however, pgpool will do the fail over when connecting to backend fails or pgpool detects the administrative shutdown of postmaster.
+You need to reload pgpool.conf if you change the value.
+</p>
+</dd>
+
<dt>ignore_leading_white_space</dt>
<dd>
<p>pgpool-II ignores white spaces at the beginning of SQL
@@ -561,6 +563,14 @@ pgpool-II replaces special characters to backend information.
</p>
</dd>
+ <dt>log_per_node_statement</dt>
+ <dd>
+ <p>Similar to log_statement, except that it prints logs for each DB node separately.
+ It would be usefull if you want to make sure that replication is working or not, for example.
+ You need to reload pgpool.conf if you change the value.
+ </p>
+ </dd>
+
<dt>log_hostname</dt>
<dd>
<p>
@@ -637,6 +647,9 @@ pgpool-II replaces special characters to backend information.
This parameter can be added by reloading a configuration
file. However, this cannot be updated so you must restart
pgpool-II.
+ In pgpool-II 2.2.6/2.3 or later, you can change the value by re-loading the configuration file.
+ This will take effect on next newly connected client sesson.
+ This is usefull if you want to prevent any query sent to slaves to perform some administrative work in master/slave mode.
</p>
</dd>
@@ -707,7 +720,7 @@ configuration parameters in the raw mode and below.</p>
the following, but can be changed to suit your system.
<pre>
- reset_query_list = 'ABORT; RESET ALL; SET SESSION AUTHORIZATION DEFAULT'
+ reset_query_list = 'ABORT; DISCARD ALL'
</pre>
<p>
@@ -723,8 +736,6 @@ configuration parameters in the raw mode and below.</p>
</p>
<ul>
<li>"ABORT" is not issued when not in a transaction block for 7.4 or later.
-<li>DISCARD ALL degrades performance since it aquires an exclusive lock on pg_listeners.
-If there will be many concurrent sessions, you might not want to use DISCARD ALL, rather you specify each object using DISCARD command.
</ul>
<p>
@@ -983,7 +994,7 @@ For the query to be load balanced, all the requirements below
<li>it's not SELECT INTO
<li>it's not SELECT FOR UPDATE nor FOR SHARE
<li>start with "SELECT" (ignore_leading_white_space = true will
- ignore leading white space) or one of COPY TO STDOUT, DECLARE..SELECT, FETCH, CLOSE
+ ignore leading white space) or one of COPY TO STDOUT, EXPLAIN, EXPLAIN ANALYZE SELECT...
</ul>
</p>
<p>
@@ -1023,6 +1034,9 @@ In addtion to that, set
true. pgpool-II will send queries that need to be replicated to the
Master DB, and others will be load balanced if possible.</p>
+<p>In master/slave mode, DDL and DML for temporary table can be executed on master only.
+SELECT should be executed on master only as well but for this you need to use comment /*NO LOAD BALANCE*/ before the SELECT statement.</p>
+
<p>In the master/slave mode, <code>replication_mode</code> must be set
to false, and <code>master_slave_mode</code> to true.</p>
@@ -1299,6 +1313,19 @@ pgpool [-f config_file][-F pcp_config_file] [-m {s[mart]|f[ast]|i[mmediate]}] st
<tr><td><code>-m i[mmediate]</code><br/><code>--mode i[mmediate]</code></td>
<td>the same as <code>'-m f'</code></td></tr> </table>
</p>
+<p>
+pgpool records backend status into [logdir]/pgpool_status file. When pgpool restarts it reads the file and restore the backend status. This will prevent data difference among DB nodes which might be caused by following scenario:
+<ol>
+<li>One of backend suddenly stopps and pgpool execute fail over
+<li>Update one of active DB through pgpool
+<li>Our administrator decides to stop pgpool
+<li>Someone decides to restart the stopping DB without letting our admin know
+<li>Our poor administrator restarts pgpool
+</ol>
+</p>
+<p>
+If for some reason, for example, the stopping DB is synched with the active DB by hand, you could remove pgpool_status safely before starting pgpool.
+</p>
<h1>Reloading pgpool-II configuration files<a name="reload"></a></h1>
<p>pgpool-II can reload configuration files without restarting it.
@@ -1627,10 +1654,56 @@ pgmgt.conf.php.
<p>There is no guarantee that the data, which returns different values
each time even though the same query was executed (e.g. random number,
-transaction ID, OID, SERIAL, sequence, CURRENT_TIMESTAMP), will be
+transaction ID, OID, SERIAL, sequence), will be
replicated correctly on multiple backends.</p>
+<p>For SERIAL, enabling insert_lock will help replicating data.
+insert_lock also helps SELECT setval() and SELECT nextval().</p>
+
+<p>In pgpool-II 2.3 or later, INSET/UPDATE using CURRENT_TIMESTAMP,
+CURRENT_DATE, now() can be replicated. Also INSET/UPDATE for tables
+using CURRENT_TIMESTAMP, CURRENT_DATE, now() as their DEFAULT values can
+be replicated.
+This is done by replacing those functions by constrants fetched from master at query execution time.
+There are a few limitations however:
+<ul>
+<li>The calculation of temporal data in table default value is not accurate in some cases. For example, following table definition:
+<pre>
+CREATE TABLE rel1(
+ d1 date DEFAULT CURRENT_DATE + 1
+)
+is treated same as:
+CREATE TABLE rel1(
+ d1 date DEFAULT CURRENT_DATE
+)
+</pre>
+<li>Suppose we have following table:
+<pre>
+CREATE TABLE rel1(
+ c1 int,
+ c2 timestamp default now()
+)
+</pre>
+We can replicate
+<pre>
+INSERT INTO rel1(c1) VALUES(1)
+</pre>
+since this turn into
+<pre>
+INSERT INTO rel1(c1, c2) VALUES(1, '2009-01-01 23:59:59.123456+09')
+</pre>
+However,
+<pre>
+INSERT INTO rel1(c1) SELECT 1
+</pre>
+cannot to be transformed thus cannot be properly replicated in the current implementation.
+</ul>
+</p>
-<p>Tables created by <code>CREATE TEMP TABLE</code> will not be
+<p>Tables created by <code>CREATE TEMP TABLE</code> will be delete at the end of
+session by specifying DISCARD ALL in reset_query_list if you are using PostgreSQL 8.3 or later.
+</p>
+<p>
+For 8.2.x or before <code>CREATE TEMP TABLE</code> will not be
deleted after exitting a session. It is because of the connection
pooling which, from the backend's point of view, seems that the
session is still alive. To avoid this, you must explicitly drop the
diff --git a/doc/pgpool-ja.html b/doc/pgpool-ja.html
index c1a7b746c..6bc1e300a 100644
--- a/doc/pgpool-ja.html
+++ b/doc/pgpool-ja.html
@@ -2,13 +2,13 @@
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=iso-2022-jp">
-<link rel="stylesheet" href="./pgpool.css" type="text/css">
+<link rel="stylesheet" href="./pgpool-ja.css" type="text/css">
<title>pgpool-II $B%f!<%6%^%K%e%"%k(B</title>
</head>
<body>
<!-- hhmts start -->
-Last modified: Fri Apr 3 19:48:41 JST 2009
+Last modified: Mon Dec 7 18:08:47 JST 2009
<!-- hhmts end -->
<body bgcolor="#ffffff">
@@ -93,6 +93,11 @@ pgpool-II$B$O!"(BLinux$B$r$O$8$a!"(BSolaris$B$d(BFreeBSD$B$J$I$N$[$H$s$I$
<h1>pgpool-II$B$N%$%s%9%H!<%k(B<a name="install"></a></h1>
+<p>
+Linux$BMQ$N(BRPM$B%Q%C%1!<%8$O!"(BCentOS$B!"(BFedora$BMQ$J$I$,Ds6!$5$l$F$$$^$9!#(B
+$B3:Ev%j%]%8%H%j$r%A%'%C%/$7$F$_$F$/$@$5$$!#(B
+</p>
+
<p>
pgpool-II $B$N%=!<%9%3!<%I$O(B<a
href="http://pgfoundry.org/projects/pgpool/">pgpool$B3+H/%Z!<%8(B</a>
@@ -100,7 +105,7 @@ href="http://pgfoundry.org/projects/pgpool/">pgpool$B3+H/%Z!<%8(B</a>
</p>
<p>
-pgpool-II$B$N%$%s%9%H!<%k$K$O!"(Bgcc 2.9$B0J>e!"$*$h$S(BGNU make$B$,I,MW$G$9!#(B
+pgpool-II$B$N%=!<%9%3!<%I$+$i$N%$%s%9%H!<%k$K$O!"(Bgcc 2.9$B0J>e!"$*$h$S(BGNU make$B$,I,MW$G$9!#(B
$B$^$?!"(Bpgpool-II$B$O(Blibpq(PostgreSQL$BIUB0$N%/%i%$%"%s%H%i%$%V%i%j(B)$B$r;HMQ$9$k$N$G!"%S%k%I$r9T$&%^%7%s>e$K(Blibpq$B$,%$%s%9%H!<%k$5$l$F$$$k$3$H$,I,MW$G$9!#(B
</p>
@@ -143,7 +148,7 @@ pgpool-II$B$N@_Dj%U%!%$%k$O%G%U%)%k%H$G$O(B/usr/local/etc/pgpool.conf$B$*$h$S
/usr/local/etc/pcp.conf$B$G$9!#(Bpgpool-II$B$OF0:n%b!<%I$K$h$C$F;HMQ$G$-$k5!G=$H!"(B
$BI,MW$J@_Dj9`L\$,0[$J$j$^$9!#(B
</p>
-<table border>
+<table border width="800">
<tr>
<th>$B;HMQ$G$-$k5!G=(B/$B%b!<%I(B</th>
@@ -182,21 +187,12 @@ pgpool-II$B$N@_Dj%U%!%$%k$O%G%U%)%k%H$G$O(B/usr/local/etc/pgpool.conf$B$*$h$S
</tr>
<tr>
-<td>$B=LB`1?E>(B</td>
-<td align="center">$B!_(B</td>
-<td align="center">$B!_(B</td>
+<td>$B%U%'%$%k%*!<%P(B</td>
<td align="center">$B!{(B</td>
<td align="center">$B!{(B</td>
-<td align="center">$B!_(B</td>
-</tr>
-
-<tr>
-<td>$B%U%'%$%k%*!<%P(B</td>
<td align="center">$B!{(B</td>
<td align="center">$B!{(B</td>
<td align="center">$B!_(B</td>
-<td align="center">$B!_(B</td>
-<td align="center">$B!_(B</td>
</tr>
<tr>
@@ -282,7 +278,7 @@ pgpool.conf$B$G$O6uGr9T$d(B#$B$G;O$^$k9T$O%3%a%s%H$H8+$J$5$l$^$9!#(B
<h3>raw$B%b!<%I(B</h3>
<p>
-$BC1$K(Bpgpool-II$B$r7PM3$7$F@\B3$9$k$@$1$N%b!<%I$G$9!#C1$K(BPostgreSQL$B%5!<%P$X$N@\(B
+$BC1$K(Bpgpool-II$B$r7PM3$7$F@\B3$9$k$@$1$N%b!<%I$G$9!#(BPostgreSQL$B%5!<%P$X$N@\(B
$BB3%;%C%7%g%s?t$r@)8B$7$?$j!"(B2$BBf0J>e$N(BPostgreSQL$B%5!<%P$rMQ0U$7$F%U%'%$%k(B
$B%*!<%PF0:n$r$5$;$?$$$H$-$KMxMQ$7$^$9!#(B
</p>
@@ -405,8 +401,8 @@ prefork$B$9$k(Bpgpool-II$B$N%5!<%P%W%m%;%9$N?t$G$9!#%G%U%)%k%HCM$O(B32$B$K$
<dt>logdir
<dd>
<p>
- pgpool-II$B$N3F<o%m%0%U%!%$%k$r3JG<$9$k%G%#%l%/%H%j$G$9$,!"(Bpgpool-II 2.2$B0J9_$G$O;HMQ$5$l$F$$$^$;$s!#(B
- $B>-MhFH<+$N%m%0%7%9%F%`$r<BAu$7$?:]$K;HMQ$5$l$k$+$b$7$l$J$$$N$G!"$3$N%(%s%H%j$O;D$7$F$"$j$^$9!#(B
+ pgpool-II$B$N3F<o%m%0%U%!%$%k$r3JG<$9$k%G%#%l%/%H%j$G$9!#(B
+ $B$3$N2<$K(BDB$B%N!<%I$N>uBV$r5-O?$9$k(Bpgpool_status$B%U%!%$%k$,=q$+$l$^$9!#(B
</p>
<dt>pid_file_name
@@ -428,7 +424,7 @@ prefork$B$9$k(Bpgpool-II$B$N%5!<%P%W%m%;%9$N?t$G$9!#%G%U%)%k%HCM$O(B32$B$K$
<dt>connection_cache
<dd>
<p>
- true$B$J$i%3%M%/%7%g%s$r%-%c%C%7%e$7$^$9!#%G%U%)%k%H$O(Btrue$B$G$9!#(B
+ true$B$J$i(BPostgreSQL$B$X$N%3%M%/%7%g%s$r%-%c%C%7%e$7$^$9!#%G%U%)%k%H$O(Btrue$B$G$9!#(B
$B$3$N%Q%i%a!<%?$rJQ99$7$?;~$K$O(B pgpool-II $B$r:F5/F0$7$F$/$@$5$$!#(B
</p>
@@ -514,6 +510,17 @@ pgpool $B$,I,MW$J>pJs$KCV$-49$($F%3%^%s%I$r<B9T$7$^$9!#(B
$B$3$N%Q%i%a!<%?$rJQ99$7$?;~$K$O@_Dj%U%!%$%k$r:FFI$_9~$_$7$F$/$@$5$$!#(B
</p>
+<dt>fail_over_on_backend_error
+<dd>
+<p>
+ true$B$J$i$P!"%P%C%/%(%s%I$N%=%1%C%H$X$N=q$-9~$_$K<:GT$9$k$H%U%'%$%k%*!<%P$7$^$9!#(B
+ $B$3$l$O(Bpgpool-II 2.2.x$B$^$G$N5sF0$HF1$8$G$9!#(B
+false$B$K$9$k$H!"%U%'%$%k%*!<%P$;$:!"C1$K%(%i!<$,%l%]!<%H$5$l$F%;%C%7%g%s$,@ZCG$5$l$^$9!#(B
+$B$3$N%Q%i%a!<%?$r(Bfalse$B$K$9$k>l9g$K$O!"(Bhealth check$B$rM-8z$K$9$k$3$H$r$*4+$a$7$^$9!#(B
+$B$J$*!"$3$N%Q%i%a!<%?$,(Bfalse$B$N>l9g$G$b!"%/%i%$%"%s%H$,(Bpgpool$B$K@\B3$9$k:]$K%P%C%/%(%s%I$X$N@\B3$K<:GT$7$?>l9g!"$"$k$$$O%P%C%/%(%s%I$,%7%c%C%H%@%&%s$5$l$?$3$H$r(Bpgpool-II$B$,8!CN$7$?>l9g$K$O%U%'%$%k%*!<%P$,5/$-$k$3$H$KCm0U$7$F$/$@$5$$!#(B
+$B$3$N%Q%i%a!<%?$rJQ99$7$?;~$K$O@_Dj%U%!%$%k$r:FFI$_9~$_$7$F$/$@$5$$!#(B
+</p>
+
<dt>ignore_leading_white_space
<dd>
<p>
@@ -533,6 +540,13 @@ pgpool $B$,I,MW$J>pJs$KCV$-49$($F%3%^%s%I$r<B9T$7$^$9!#(B
$B$3$N%Q%i%a!<%?$rJQ99$7$?;~$K$O@_Dj%U%!%$%k$r:FFI$_9~$_$7$F$/$@$5$$!#(B
</p>
+<dt>log_per_node_statement
+<dd>
+<p>
+ log_statement$B$H;w$F$$$^$9$,!"(BDB$B%N!<%IC10L$G%m%0$,=PNO$5$l$k$N$G!"%l%W%j%1!<%7%g%s$dIi2YJ,;6$N3NG'$,MF0W$G$9!#(B
+$B$3$N%Q%i%a!<%?$rJQ99$7$?;~$K$O@_Dj%U%!%$%k$r:FFI$_9~$_$7$F$/$@$5$$!#(B
+</p>
+
<dt>log_hostname
<dd>
<p>
@@ -598,17 +612,16 @@ backend_port $B$O?7$7$/DI2C$7$?9T$r@_Dj%U%!%$%k:FFI$_9~$_$GDI2C$9$k(B
<dt>backend_weight
<dd>
<p>
-$B;HMQ$9$k(BPostgreSQL$B%5!<%P$KBP$9$kIi2YJ,;6$NHfN($r;XDj$7$^$9!#(B
-$B<B:]$K$O!"(B"backend_weight"$B$N8e$K(BDB$B%N!<%I(BID$B$rIU2C$7$F;HMQ$9$kJ#?t(B
-$B$N(BPostgreSQL$B$r6hJL$7$^$9!#(B1$BBf$7$+(BPostgreSQL$B$r;HMQ$7$J$$>l9g$O!"(B
-"backend_weight0"$B$H$7$F$/$@$5$$!#(B
+$B;HMQ$9$k(BPostgreSQL$B%5!<%P$KBP$9$kIi2YJ,;6$NHfN($r(B0$B0J>e$N@0?t$^$?$OIbF0>.?tE@$G;XDj$7$^$9!#(B
+"backend_weight"$B$N8e$K$O!"(BDB$B%N!<%I(BID$B$rIU2C$7$F;HMQ$9$kJ#?t$N(BPostgreSQL$B$r6hJL$7$^$9!#(B
+1$BBf$7$+(BPostgreSQL$B$r;HMQ$7$J$$>l9g$O!"(B"backend_weight0"$B$H$7$F$/$@$5$$!#(B
$BIi2YJ,;6$r;HMQ$7$J$$>l9g$O!"!V(B1$B!W$r@_Dj$7$F$/$@$5$$!#(B
</p>
<p>
-backend_weight $B$O?7$7$/DI2C$7$?9T$r@_Dj%U%!%$%k:FFI$_9~$_$GDI2C$9$k(B
-$B$3$H$,$G$-$^$9!#$9$G$K$"$k>pJs$rESCf$GJQ99$9$k$3$H$O$G$-$^$;$s!#JQ99$9(B
-$B$k>l9g$K$O(B pgpool-II $B$r:F5/F0$7$F$/$@$5$$!#(B
+backend_weight $B$O?7$7$/DI2C$7$?9T$r@_Dj%U%!%$%k:FFI$_9~$_$GDI2C$9$k$3$H$,$G$-$^$9!#(B
+pgpool-II 2.2.6/2.3$B0J9_$G$O!"@_Dj%U%!%$%k$N:FFI9~$G(Bbackend_weight$BCM$rJQ99$G$-$^$9!#(B
+$B?7$7$/@\B3$7$?%/%i%$%"%s%H%;%C%7%g%s$+$i!"$3$N?7$7$$(Bweight$BCM$,H?1G$5$l$^$9!#(B
</p>
<dt>backend_data_directory
@@ -682,16 +695,16 @@ raw$B%b!<%I$K2C$(!"%3%M%/%7%g%s%W!<%j%s%0$,MxMQ$G$-$k$h$&$K$J$j$^$9!#(B
$B$r!V(B;$B!W$G6h@Z$C$FNs5s$7$^$9!#%G%U%)%k%H$O0J2<$N$h$&$K$J$C$F$$$^$9$,!"(B
$BG$0U$N(BSQL$BJ8$rDI2C$7$F$b9=$$$^$;$s!#(B
<pre>
- reset_query_list = 'ABORT; RESET ALL; SET SESSION AUTHORIZATION DEFAULT'
+ reset_query_list = 'ABORT; DISCARD ALL'
</pre>
<p>
- PostgreSQL$B$N%P!<%8%g%s$K$h$C$F;HMQ$G$-$k(BSQL$B%3%^%s%I$,0c$$$^$9$,!"(B
- $B3F%P!<%8%g%s$4$H$N$*4+$a@_Dj$O0J2<$G$9!#(B
+ PostgreSQL$B$N%P!<%8%g%s$K$h$C$F;HMQ$G$-$k(BSQL$B%3%^%s%I$,0c$$$^$9!#(B
+ $B3F%P!<%8%g%s$4$H$N$*4+$a@_Dj$O0J2<$G$9(B($B$?$@$7!"(B"ABORT"$B$OI,$:%3%^%s%I$K4^$a$F$/$@$5$$(B)$B!#(B
</p>
<p>
<table border>
-<tr><th>PostgreSQL$B%P!<%8%g%s(B</th><th>reset_query_list$B$N@_DjCM(B</th></tr>
+<tr><th>PostgreSQL$B%P!<%8%g%s(B</th><th>reset_query_list$B$N?d>)@_DjCM(B</th></tr>
<tr><td>7.1$B0JA0(B</td><td>ABORT</td></tr>
<tr><td>7.2$B$+$i(B8.2</td><td>ABORT; RESET ALL; SET SESSION AUTHORIZATION DEFAULT</td></tr>
<tr><td>8.3$B0J9_(B</td><td>ABORT; DISCARD ALL</td></tr>
@@ -702,9 +715,6 @@ raw$B%b!<%I$K2C$(!"%3%M%/%7%g%s%W!<%j%s%0$,MxMQ$G$-$k$h$&$K$J$j$^$9!#(B
<ul>
<li>$B!V(BABORT$B!W$O!"(BPostgreSQL 7.4$B0J>e$G$O%H%i%s%6%/%7%g%s%V%m%C%/$NCf$K$$(B
$B$J$$>l9g$K$OH/9T$5$l$^$;$s!#(B
-<li>DISCARD ALL$B$O%7%9%F%`%F!<%V%k$N(Bpg_listener$B$KGSB>%m%C%/$r$+$1$k$?$a!"(B
- $BF1;~<B9T%;%C%7%g%s$,B?$$$H$-$O@-G=Dc2<$r5/$7$^$9!#(B
- $BF1;~<B9T%;%C%7%g%s$,B?$$>l9g$O!"LLE]$G$b(BDISCARD$B%3%^%s%I$GGK4~$7$?$$%*%V%8%'%/%H$r$$$A$$$A;XDj$9$k$3$H$r$*4+$a$7$^$9!#(B
</ul>
</p>
@@ -739,8 +749,7 @@ raw$B%b!<%I!"%3%M%/%7%g%s%W!<%k%b!<%I$K2C$(!"0J2<$r@_Dj$7$^$9!#(B
<dt>load_balance_mode
<dd>
<p>
- true$B$r;XDj$9$k$H%l%W%j%1!<%7%g%s%b!<%I$N:]$K!"(BSELECT$BJ8$r%^%9%?$H%;(B
- $B%+%s%@%j$N4V$G%m!<%I%P%i%s%9$7$^$9!#%G%U%)%k%HCM$O(Bfalse$B$G$9!#(B
+ true$B$r;XDj$9$k$H%l%W%j%1!<%7%g%s%b!<%I$^$?$O%^%9%?!<%9%l!<%V%b!<%I$N:]$K!"(BSELECT$BJ8$r%m!<%I%P%i%s%9$7$F8!:w@-G=$r8~>e$5$;$k$3$H$,$G$-$^$9!#%G%U%)%k%HCM$O(Bfalse$B$G$9!#(B
$B$3$N%Q%i%a!<%?$rJQ99$7$?;~$K$O(B pgpool-II $B$r:F5/F0$7$F$/$@$5$$!#(B
</p>
@@ -930,7 +939,7 @@ replicate_select$B!"(Bload_balance_mode$B!"(BSELECT$BLd9g$o$;$,L@<(E*$J%H%i
recovery_2nd_stage_command $B$r<B9T$7$F$$$k4V$O(B pgpool $B$G$O%/%i%$%"%s(B
$B%H$+$i@\B3!";2>H!"99?7=hM}$r0l@Z(B<b>$B<u$1IU$1$^$;$s(B</b>$B!#$^$?!"%P%C%A(B
$B=hM}$J$I$K$h$C$F@\B3$7$F$$$k%/%i%$%"%s%H$,D9;~4VB8:_$7$F$$$k>l9g$K$O(B
- $B%3%^%s%I$r5/F0$7$^$;$s!#@\B3$r@)8B$7!"8=:_$N@\B3?t$,(B 0 $B$K$J$C$?;~E@(B
+ $B%3%^%s%I$r5/F0$7$^$;$s!#?7$?$J@\B3$r@)8B$7!"8=:_$N@\B3?t$,(B 0 $B$K$J$C$?;~E@(B
$B$G%3%^%s%I$r5/F0$7$^$9!#(B
</p>
<p>
@@ -976,10 +985,10 @@ load_balance_mode = true $B$r@_Dj$7$?>l9g!"0J2<$N>r7o$N$9$Y$F$rK~$?$7$?;~$K(BS
<ul>
<li>PostgreSQL$B$N%P!<%8%g%s$,(B7.4$B0J9_$G$"$k(B
<li>$BLd$$9g$o$;$,L@<(E*$J%H%i%s%/%6%7%g%s%V%m%C%/$NFbB&$K$J$$(B($B$D$^$j!"(BBEGIN$B$rH/9T$7$F$$$J$$(B)
-<li>SELECT$BJ8(B($B$?$@$7!"(BSELECT nextval $B$H(B SELECT setval $B$N>l9g$O=|$/(B)$B$^$?$O(BCOPY TO STDOUT, DECLARE..SELECT, FETCH, CLOSE$B$N$$$:$l$+$G$"$k(B
+<li>SELECT$BJ8(B(WITH$BIU$b4^$`!#(BSELECT nextval $B$H(B SELECT setval $B$O=|$/(B)$B$^$?$O(BCOPY TO STDOUT, EXPLAIN, EXPLAIN ANALYZE SELECT... $B$N$$$:$l$+$G$"$k(B
<li>SELECT INTO $BJ8$G$O$J$$(B
<li>SELECT FOR UPDATE/SELECT FOR SHARE$BJ8$G$O$J$$(B
-<li>$B%/%(%jJ8;zNs$,(B SELECT $B$G;O$^$k(B(ignore_leading_white_space = true$B$N>l9g$O6uGr$OL5;k$7$^$9(B)
+<li>$B%/%(%jJ8;zNs$,(B SELECT$B$^$?$O(BWITH $B$G;O$^$k(B(ignore_leading_white_space = true$B$N>l9g$O6uGr$OL5;k$7$^$9(B)
</ul>
</p>
<p>
@@ -1035,6 +1044,10 @@ DELETE $B$N99?77o?t$,$9$Y$F$N%N!<%I$,F1$8$G$J$$>l9g!"0U?^E*$K9=J8%(%i!<$r5/$9(
$B%m!<%I%P%i%s%9$N>r7o$O%l%W%j%1!<%7%g%s%b!<%I$HF1$8$G$9!#(B
</p>
+<p>
+$B%^%9%?%9%l!<%V%b!<%I$G$O!"0l;~%F!<%V%k$N:n@.!"99?7$O%^%9%?%N!<%I$G$N$_<B9T$5$l$^$9!#(B
+$B0l;~%F!<%V%k$X$N8!:w$O!"(BSELECT$BJ8$NA0$K(B/*NO LOAD BALANCE*/$B$H$$$&%3%a%s%H$r=q$/$3$H$K$h$C$F<B9T$G$-$^$9!#(B
+</p>
<p>
$B%^%9%?!<%9%l!<%V%b!<%I$G$O!"(Bpgpool.conf$B$N(Breplication_mode$B$r(Bfalse$B$K!"(Bmaster_slave_mode
$B$r(Btrue$B$K$7$^$9!#(B
@@ -1384,6 +1397,25 @@ pgpool [-f config_file][-F pcp_config_file] [-m {s[mart]|f[ast]|i[mmediate]}] st
</table>
</p>
+<p>
+pgpool$B$,Dd;_$9$k$H!"(B[logdir]/pgpool_status$B$H$$$&%U%!%$%k$K%P%C%/%(%s%I$N>uBV$r=q$-9~$_$^$9!#(B
+$B<!2s(Bpgpool$B$,5/F0$7$?$H$-$K$3$N%U%!%$%k$,B8:_$9$k$H!"%P%C%/%(%s%I$N>uBV$r$=$3$+$iI|85$7$^$9!#(B
+$B$3$l$K$h$C$F!"(B
+<ol>
+<li>$B%P%C%/%(%s%I$,Dd;_$7$F%U%'%$%k%*!<%P(B
+<li>pgpool$B7PM3$G@5>o$J(BDB$B$r99?7(B
+<li>pgpool$B$rDd;_(B
+<li>$BDd;_$7$F$$$?(BDB$B$r:F5/F0(B
+<li>pgpool$B$r:F5/F0(B
+</ol>
+</p>
+<p>
+$B$H$$$&%7!<%1%s%9$G!"IT@09g$N$"$k(BDB$B$+$i%l%W%j%1!<%7%g%s>uBV$K0\9T$9$k$3$H$rKI$0$3$H$,$G$-$^$9!#(B
+</p>
+<p>
+$B$b$7$b(BDB$B$N>uBV$KIT@09g$,$J$/$J$C$F$$$k!"$"$k$$$O(Bpgpool.conf$B$r=q$-49$($F@_Dj$rJQ$($F$7$^$C$?!"$H$$$&$H$-$O(Bpgpool_status$B$r:o=|$9$l$P%P%C%/%(%s%I$N>uBV$NI|85$r9T$$$^$;$s!#(B
+</p>
+
<h1>pgpool-II$B$N@_Dj%U%!%$%k$N:FFI$_9~$_(B<a name="reload"></a></h1>
<p>
pgpool-II$B$N@_Dj%U%!%$%k$O!"(Bpgpool-II$B$r:F5/F0$9$k$3$H$J$/FI$_D>$9$3$H$,$G$-$^$9!#(B
@@ -1719,12 +1751,51 @@ _PGPOOL2_PCP_TIMEOUT $B$rBg$-$/$7$F$/$@$5$$!#(B
<h2>$B%l%W%j%1!<%7%g%s%b!<%I$GCm0U$,I,MW$J4X?t$J$I(B</h2>
<p>
pgpool-II$B$G$OF1$8Ld$$9g$o$;$rAw$C$F$b0[$J$k7k(B
- $B2L$rJV$9$h$&$J%G!<%?!"$?$H$($PMp?t$d%H%i%s%6%/%7%g%s(BID$B!"(BOID$B!"(BSERIAL$B!"(B
- $B%7!<%1%s%9!"(BCURRENT_TIMETSTAMP$B$N$h$&$J$b$N$K4X$7$F$O%l%W%j%1!<%7%g(B
- $B%s$O$7$^$9$,!"(B2$BBf$N%[%9%H$G$^$C$?$/F1$8CM$,%3%T!<$5$l$kJ]>Z$O$"$j$^(B
- $B$;$s!#(B
+ $B2L$rJV$9$h$&$J%G!<%?!"$?$H$($PMp?t$d%H%i%s%6%/%7%g%s(BID$B!"(BOID$B$N$h$&$J$b$N$K4X$7$F$O%l%W%j%1!<%7%g(B
+ $B%s$O$7$^$9$,!"(B2$BBf$N%[%9%H$G$^$C$?$/F1$8CM$,%3%T!<$5$l$kJ]>Z$O$"$j$^$;$s!#(B
+</p>
+<p>
+$B%7%j%"%k7?$K4X$7$F$O!"(Binsert_lock$B$rM-8z$K$7$F$*$1$P%F!<%V%k%m%C%/$rMxMQ$7$FF14|$,<h$i$l$^$9!#(B
+$B%7!<%1%s%9$r07$&4X?t$r(BSELECT setval()$B!"(BSELECT nextval()$B$G8F$S=P$7$F$$$k>l9g$O<+F0E*$K%l%W%j%1!<%7%g%s$5$l$k$N$GF14|$,<h$l$^$9!#(B
+</p>
+<p>
+pgpool-II 2.3$B0J9_$G$O!"%F!<%V%k$N%G%U%)%k%HCM$G$NMxMQ$b4^$a!"(BCURRENT_TIMESTAMP, CURRENT_DATE, now()$B$O!"<+F0E*$K%^%9%?B&$+$i<hF@$7$?;~9oCM$KCV$-49$($k$3$H$K$h$C$F%l%W%j%1!<%7%g%s$G$-$k$h$&$K$J$C$F$$$^$9!#(B
+$B$?$@$7!"0J2<$NE@$KCm0U$7$F$/$@$5$$!#(B
+</p>
+<p>
+<ul>
+<li>DEFAULT$B$K%?%$%`%9%?%s%W$rJV$9<0$,4^$^$l$F$$$k$+$I$&$+$NH=Dj$O@53N$G$O$"$j$^$;$s!#Nc$($P(B
+<pre>
+CREATE TABLE rel1(
+ d1 date DEFAULT CURRENT_DATE + 1
+)
+</pre>
+$B$N$h$&$J$b$N$b8=:_$N%?%$%`%9%?%s%W$H$7$F=q$-49$($r9T$$$^$9!#(B
+<li>INSERT ... SELECT$B$G$O!"Ns$N(BDEFAULT$B$KBP$9$k=q$-49$($r9T$$$^$;$s!#Nc$($P!"(B
+<pre>
+CREATE TABLE rel1(
+ c1 int,
+ c2 timestamp default now()
+)
+</pre>
+$B$N;~!"(B
+<pre>
+INSERT INTO rel1(c1) VALUES(1)
+</pre>
+$B$O(B
+<pre>
+INSERT INTO rel1(c1, c2) VALUES(1, '2009-01-01 23:59:59.123456+09')
+</pre>
+$B$N$h$&$K=q$-49$($i$l$^$9$,(B
+<pre>
+INSERT INTO rel1(c1) SELECT 1
+</pre>
+$B$O=q$-49$($i$l$^$;$s!#(B
+</ul>
</p>
+
<p>
+PostgreSQL 8.2$B$+$=$l$h$jA0$N(BPostgreSQL$B$r$*;H$$$N>l9g!"(B
CREATE TEMP TABLE$B$G:n@.$5$l$?%F!<%V%k$O%U%m%s%H%(%s%I$,%;%C%7%g(B
$B%s$r=*N;$7$F$b:o=|$5$l$^$;$s!#$3$l$O!"%3%M%/%7%g%s%W!<%k$N8z(B
$B2L$G%P%C%/%(%s%I$+$i8+$k$H%;%C%7%g%s$,7QB3$7$F$$$k$h$&$K8+$((B
@@ -1732,6 +1803,9 @@ CREATE TEMP TABLE$B$G:n@.$5$l$?%F!<%V%k$O%U%m%s%H%(%s%I$,%;%C%7%g(B
$B%i%s%6%/%7%g%s%V%m%C%/$NCf$G(BCREATE TEMP TABLE ... ON COMMIT
DROP$B$r$*;H$$2<$5$$!#(B
</p>
+<p>
+PostgreSQL 8.3$B0J9_$G$O!"(Breset_query_list$B$K(BDISCARD ALL$B$r;XDj$9$l$P<+F0E*$K:o=|$5$l$k$N$GLdBj$"$j$^$;$s!#(B
+</p>
<h2>$B%/%(%j$K$D$$$F(B</h2>
<p>
@@ -2584,6 +2658,167 @@ pgpool-II$B$N%A%e!<%H%j%"%k$O(B<a href="tutorial-ja.html">$B$3$3(B<a/>$B$K$
<h1>$B%j%j!<%9%N!<%H(B<a name="release"></a></h1>
+<h2>2.3 (tomiteboshi) 2009/12/06</h2>
+<h3>$B35MW(B</h3>
+<p>
+$B$3$N%P!<%8%g%s$G$O!"%l%W%j%1!<%7%g%s5!G=$K2~NI$,2C$($i$l!";~9o%G!<%?(B(CURRENT_TIMESTAMP, CURRENT_DATE, now()$B$J$I(B)$B$r@5$7$/07$&$3$H$,$G$-$k$h$&$K$J$j$^$7$?!#(B
+$B$^$?!"F1;~@\B3?t$,(B1(num_init_children$B$,(B1)$B$N$H$-$N%l%W%j%1!<%7%g%s@-G=8~>e$7$F$$$^$9!#(B
+$B$^$?!"(Bpgpool-II$B:F5/F0;~$KA02s$N(BDB$B%N!<%I$N%@%&%s>uBV$r5-O?$7!"ITMQ0U$KI|5l%N!<%I$K%G!<%?$r=q$-9~$s$G%G!<%?$NIT@09g$,5/$-$k$3$H$rKI$0$3$H$,$G$-$k$h$&$K$J$j$^$7$?!#(B
+$B$=$N$[$+!"%/%(%j%m%0$,2~NI$5$l$F(BDB$B%N!<%IC10L$N>u67$,GD0.$7$d$9$/$J$j!"$^$?%U%!%$%k%*!<%P$N5sF0$,:Y$+$/@)8f$G$-$k$h$&$K$J$j$^$7$?!#(B
+$B$J$*!"(Bpgpool-II 2.3$B$K$O!"(Bpgpool-II 2.2.1$B$+$i(B2.2.6$B$^$G$N$9$Y$F$N%P%0=$@5!"2~NI$,4^$^$l$F$$$^$9!#(B
+</p>
+
+<h3>pgpool-II 2.2.$B$+$i$NHs8_49@-(B</h3>
+<ul>
+<li>[logdir]$B$N2<$K(Bpgpool_status$B$H$$$&%U%!%$%k$,:n$i$l$k$N$G!"(Bpgpool$B$N<B9T%f!<%6$,FI$_=q$-$G$-$k8"8B$rM?$($F$*$$$F$/$@$5$$!#(B
+</ul>
+
+<h3>$B2~NIE@(B</h3>
+<ul>
+<li>$B%l%W%j%1!<%7%g%s$K$*$$$F!";~9o%G!<%?(B(CURRENT_TIMESTAMP, CURRENT_DATE, now()$B$J$I(B)$B$r@5$7$/07$&$3$H$,$G$-$k$h$&$K$J$j$^$7$?!#FC$K%"%W%j%1!<%7%g%s$KJQ99$r2C$($k$3$H$J$/!"(BINSERT/UPDATE$BJ8!"%F!<%V%k$N%G%U%)%k%HCM$K$3$l$i$N;~9o4X?t$r4^$`%1!<%9$G$b@5$7$/%l%W%j%1!<%7%g%s$G$-$^$9(B($B$$$/$D$+@)8B;v9`$,$"$j$^$9!#>\:Y$O(B<a href="#restriction">$B@)8B;v9`(B</a>$B$r;2>H$7$F$/$@$5$$(B)$B!#(B(Akio Ishida)
+<li>SQL$B%Q!<%5$r(BPostgreSQL 8.4$B$N$b$N$K%P!<%8%g%s%"%C%W$7$^$7$?(B(Akio Ishida)
+<li>$BF1;~@\B3?t$,(B1(num_init_children$B$,(B1)$B$N$H$-$N%l%W%j%1!<%7%g%s@-G=$,(B20%$B$+$i(B100%$B8~>e$7$^$7$?(B(Tatsuo)
+<li>$B?7$7$$%G%#%l%/%F%#%V(Blog_per_node_statement$B$,DI2C$5$l$^$7$?(B(Tatsuo)
+log_statement$B$H;w$F$$$^$9$,!"(BDB$B%N!<%IC10L$G%m%0$,=PNO$5$l$k$N$G!"%l%W%j%1!<%7%g%s$dIi2YJ,;6$N3NG'$,MF0W$G$9!#(B
+$B$^$?!"%P%C%/%(%s%I$N%W%m%;%9(BID$B$bI=<($5$l$k$N$G!"%P%C%/%(%s%I$N%m%0$HJ;$;$F$N2r@O$,MF0W$K$J$C$F$$$^$9!#(B
+<li>$B?7$7$$%G%#%l%/%F%#%V(Bfail_over_on_backend_error$B$,DI2C$5$l!"%U%'%$%k%*!<%P$N5sF0$,$h$j:Y$+$/@)8f$G$-$k$h$&$K$J$j$^$7$?(B(Tatsuo)
+<li>pgpool-II$BDd;_;~$K%@%&%s$7$?(BDB$B%N!<%I$N>pJs$r%9%F!<%?%9%U%!%$%k$K5-O?$7!"(Bpgpool-II$B$r5/F0$7$?$H$-$K$=$N>pJs$r%j%9%H%"$G$-$k$h$&$K$7$^$7$?(B(Tatsuo)
+$B%9%F!<%?%9%U%!%$%k$O(B [logdir]/pgpoo_status $B$H$$$&%U%!%$%k$K=q$+$l$^$9!#(B
+<li>EXPLAIN$B$H!"Ld$$9g$o$;$,(BSELECT$B$N$H$-$N(BEXPLAIN ANALYZE$B$,Ii2YJ,;6$5$l$k$h$&$K$J$j$^$7$?!#(B
+$B$3$l$K$h$C$F!"(BDB$B%N!<%I$N4V$GBgI}$KLd$$9g$o$;%W%i%s$,0[$k$?$a$K!"(Bkind mismatch$B%(%i!<$,5/$-$k$N$rKI$0$3$H$,$G$-$^$9(B(Tatsuo)
+<li>$BF|K\8l%I%-%e%a%s%H$NBN:[$r2~NI$7$^$7$?(B(Tatsuo)
+<li>$B%l%W%j%1!<%7%g%s%b!<%I!"%^%9%?!<%9%l!<%V%b!<%IMQ$N%G%U%)%k%H(Bpgpoo.conf.sample$B$,JLESDI2C$5$l$^$7$?(B(Tatsuo)
+<li>$B;~9o%G!<%?$N%F%9%H$,DI2C$5$l$^$7$?(B(Akio Ishida)
+</ul>
+
+</p>
+
+<h2>2.2.6 (urukiboshi) 2009/12/01</h2>
+<h3>$B35MW(B</h3>
+<p>
+$B$3$N%P!<%8%g%s$G$O!"%m!<%I%P%i%s%9$N=E$_%Q%i%a!<%?(Bweight$B$N07$$$,2~A1$5$l!"(B
+$B$^$?0l;~%F!<%V%k$,%^%9%?!<!?%9%l!<%V%b!<%I$GMxMQ$G$-$k$h$&$K$J$j$^$7$?!#(B
+$B$b$A$m$s$$$D$b$N$h$&$K(B2.2.5$B0JA0$N?'!9$J%P%0$,=$@5$5$l$F$$$^$9!#(B
+</p>
+<h3>$B%P%0=$@5(B</h3>
+<ul>
+<li>DECLARE, CLOSE, FETCH, MOVE$B$,%m!<%I%P%i%s%9$NBP>]$K$J$i$J$/$J$j$^$7$?!#(B
+$B$b$7%G!<%?$,99?7$5$l!"%H%i%s%6%/%7%g%s$,%3%_%C%H$5$l$?8e$K(BCLOSE$B$,H/9T$5$l$k$H%G!<%?$N0l4S@-$,$J$/$J$k$+$i$G$9(B
+($B$D$^$j!"(Bhold$B$G$-$k%+!<%=%k$N>l9g$N$3$H$r8@$C$F$$$^$9(B)(Tatsuo)
+<li>$B%^%9%?!<!?%9%l!<%V%b!<%I$K$*$$$F!"3HD%%W%m%H%3%k$N(BParse$B$r%^%9%?!<>e$G$N$_<B9T$9$k$h$&$K$7$^$7$?!#(B
+$B0JA0$O$9$Y$F$N%N!<%I$G(BParse$B$,<B9T$5$l$F$$$?$N$G$9$,!"$3$l$@$HITI,MW$J%m%C%/$,%9%l!<%V$G$b<h$i$l$F$7$^$$$^$9(B(Tatsuo)
+<li>uninstall$B$NA0$K$9$Y$F$N%i%s%l%Y%k$+$i(Binit$B%9%/%j%W%H$r:o=|$9$k$h$&$K$7$^$7$?(B(Devrim)
+<li>$BG'>Z$K<:GT$7$?$H$-$KE,@Z$J%(%i!<%a%C%;!<%8$r=P$9$h$&$K$7$^$7$?(B(Glyn Astill)
+<li>$B%=%1%C%H$X$N=q$-9~$_$K<:GT$7$?$H$-$K%U%m%s%H%(%s%IMQ$J$N$+%P%C%/%(%s%IMQ$J$N$+$o$+$k$h$&$K$7$^$7$?(B(Tatsuo)
+<li>$B%U%m%s%H%(%s%IMQ$N%=%1%C%H$K=q$-9~$_<:GT$7$?$H$-$K$$$A$$$A%(%i!<$r=P$5$J$$$h$&$K$7$^$7$?(B(Tatsuo)
+<li>$B%^%9%?!<!?%9%l!<%V%b!<%I$G0l;~%F!<%V%k$,;H$($k$h$&$K$J$j$^$7$?!#(B
+INSERT/UPDATE/DELETE$B$O<+F0E*$K%^%9%?$N$_$KAw$i$l$^$9!#(BSELECT$B$K4X$7$F$OL@<(E*$K%/%(%j$NA0$K(B
+/*NO LOAD BALANCE*/$B$H$$$&%3%a%s%H$rIU$1$J$1$l$P$J$j$^$;$s(B(Tatsuo)
+</ul>
+</p>
+
+<h2>2.2.5 (urukiboshi) 2009/10/4</h2>
+<h3>$B35MW(B</h3>
+<p>
+$B$3$N%P!<%8%g%s$G$O!"(B2.2.4$B0JA0$N?'!9$J%P%0$,=$@5$5$l$F$$$^$9!#(B
+</p>
+<h3>$B%P%0=$@5(B</h3>
+<ul>
+<li>$B%3%M%/%7%g%s?t$N%+%&%s%H$N%_%9$K$h$j!"%*%s%i%$%s%j%+%P%j$,=*$o$i$J$/$J$k%P%0$r=$@5$7$^$7$?(B(Tatsuo)
+<li>$BFbItE*$K%m%C%/$rH/9T$9$k:]$K$b%U%m%s%H%(%s%I$,0[>o=*N;$7$?$3$H$r8!=P$7$F(BSQL$B%3%^%s%I$r%-%c%s%;%k$9$k$h$&$K$7$^$7$?(B(Tatsuo)
+<li>$B@\B3$N=*N;=hM}$GL58B%k!<%W$K4Y$k$3$H$,$"$k%P%0$r=$@5$7$^$7$?(B(Xavier Noguer, Tatsuo)
+<li>$B3HD%%W%m%H%3%k$N%Q!<%9=hM}$G(Bkind mismatch error$B$,5/$-$?:]$K@5$7$$(BSQL$BJ8$rI=<($9$k$h$&$K$7$^$7$?(B(Tatsuo)
+<li>$B%I%-%e%a%s%H$r2~A1$7$^$7$?(B(Tatsuo)
+</ul>
+</p>
+
+<h2>2.2.4 (urukiboshi) 2009/8/24</h2>
+<h3>$B35MW(B</h3>
+<p>
+$B$3$N%P!<%8%g%s$G$O!"(B2.2.3$B0JA0$N?'!9$J%P%0$,=$@5$5$l$F$$$^$9!#(B
+</p>
+<h3>$B%P%0=$@5(B</h3>
+<ul>
+ <li>pgpool-II 2.2.2$B$GF~$C$F$7$^$C$?%P%0$r=$@5$7$^$7$?!#%U%m%s%H%(%s%I$,%"%\!<%H$9$k%?%$%_%s%0$K$h$C$F$O!"0J8eFbIt>uBV$,%j%;%C%H$5$l$:!"<!$N%;%C%7%g%s$G(BDML$B$d(BDDL$B$,%^%9%?!<%N!<%I$N$_Aw$i$l!"%N!<%I4V$G%G!<%?$NIT0lCW$,@8$8$k$3$H$,$"$j$^$7$?(B(Tatsuo)
+ <li>pgpool-II 2.2.3$B$G%P!<%8%g%s(B2$B%W%m%H%3%k$N%/%i%$%"%s%H$,F0$+$J$/$J$C$F$7$^$C$F$$$?$N$r=$@5$7$^$7$?!#(B
+ $B$^$?!";~4V$N$+$+$k%/%(%j$rBT$C$F$$$k4V$K%U%m%s%H%(%s%I$,0[>o=*N;$7$?$3$H$r8!CN$9$k4V3V$r(B1$BIC$+$i(B30$BIC$KJQ99$7$^$7$?!#$3$N%A%'%C%/$O!"(B2.2.4$B$G$O%W%m%H%3%k%P!<%8%g%s$,(B3$B$N$H$-$N$_M-8z$G$9(B(Tatsuo)
+ <li>$B;R%W%m%;%9$r5/F0$9$kA0$K%7%0%J%k$N%V%m%C%/$d%O%s%I%i$N@_Dj$r9T$J$&$h$&$K$7$^$7$?!#(B
+$B$3$l$O!"(Bpgpool-II$B$r5/F0$7$?D>8e$K%U%!%$%k%*!<%P$J$I$N;v>]$,H/@8$7$F;R%W%m%;%9$+$i?F%W%m%;%9$K%7%0%J%k$,Aw$i$l$k$H!"(Bpgpool-II$B$N?F%W%m%;%9$,;`$s$G$7$^$&$3$H$,$"$k$+$i$G$9(B(Tatsuo)
+</ul>
+</p>
+
+<h2>2.2.3 (urukiboshi) 2009/8/11</h2>
+<h3>$B35MW(B</h3>
+<p>
+$B$3$N%P!<%8%g%s$G$O!"(B2.2.2$B0JA0$N?'!9$J%P%0$,=$@5$5$l$F$$$^$9!#(B
+</p>
+<h3>$B%P%0=$@5(B</h3>
+<ul>
+ <li>$B%P%C%/%(%s%I$K?7$7$$%3%M%/%7%g%s$rD%$k:]$K!"%P%C%/%(%s%I$N0l$D$,>c32$r5/$7$F$$$k%1!<%9$G!"8e=hM}$NCf$G(Bpgpool-II$B$N;R%W%m%;%9$,Mn$A$k$3$H$,$"$k%P%0$r=$@5$7$^$7$?(B(Tatsuo)
+ <li>$B%Q%i%l%k%/%(%j$N%P%0$r=$@5$7$^$7$?(B(Yoshiharu Mori)
+ <li>$B3HD%%W%m%H%3%k$N>l9g$K$b%(%i!<%a%C%;!<%8$NCf$G:G8e$K;HMQ$7$?%/%(%j$,I=<($G$-$k$h$&$K$J$j$^$7$?(B(Akio Ishida)
+ <li>kind mismatch error$B%a%C%;!<%8$N:n@.$G!"%a%C%;!<%8FbMF$,2u$l$k$3$H$,$"$k%P%0$r=$@5$7$^$7$?(B(Tatsuo, Akio Ishida)
+ <li>$B%P%C%/%(%s%I$X$N@\B35-=R;R$N;2>H%?%$%_%s%0$K$h$C$F$O(Bpgpool-II$B$N;R%W%m%;%9$,Mn$A$k$3$H$,$"$k%P%0$r=$@5$7$^$7$?(B(Tatsuo)$B!#(B
+ <li>pool_error$B$d(Bpool_log$B$N0z?t$,4V0c$C$F$$$?8D=j$r=$@5$7$^$7$?(B(Akio Ishida)$B!#(B
+ <li>statement_timeout$B$N%?%$%`%"%&%H$K$h$k%(%i!<=hM}$r2~NI$7$^$7$?!#<B:]$K$O%?%$%`%"%&%H$^$G$K(Bstatement_timeout$B$G@_Dj$7$?;~4V$NG\$+$+$C$F$$$?$N$rD>$7$^$7$?!#$^$?!"(Bmaster$B$@$1$,(Bstatement_timeout$B$rJV$7$?>l9g$K$bBP1~$G$-$k$h$&$K$7$^$7$?!#0JA0$O(Bkind mismatch$B%(%i!<$K$J$C$F$$$^$7$?(B(Tatsuo)$B!#(B
+(master$B0J30$,(Bstatement_timeout$B$rJV$5$J$$%1!<%9$G$O(Bkind mismatch$B%(%i!<$K$J$j$^$9(B)$B!#(B
+
+ <li>health check$B$r$h$j6/2=$7!"(Bpostmaster$B$,(BSIGSTOP$B$G;_$C$F$7$^$C$F$$$k>l9g$b>c328!CN$G$-$k$h$&$K$7$^$7$?!#(B
+
+ <li>$B%P%C%/%(%s%I$K(BSQL$B$rEj$2!"$=$N1~Ez$rBT$C$F$$$k4V$K%/%i%$%"%s%H$,(Bpgpool$B$KBP$9$k%3%M%/%7%g%s$r@ZCG$7$?$3$H$,8!=P$G$-$k$h$&$K$J$j$^$7$?!#(B
+$B$?$H$($P!"(BWeb$B%"%W%j%1!<%7%g%s$G$O(BDB$B$KBP$7$F%j%/%(%9%H$rEj$2$F!"1~Ez$,$J$$$H%-%c%s%;%k$9$k$h$&$J$3$H$,IQHK$K5/$j$^$9!#(B
+$B$3$N>l9g!":#$^$G$O(Bpgpool$B$d(BPostgreSQL$B$N%W%m%;%9$,;D$C$F$7$^$$!"F1;~@\B3?t$,8O3i$7$?$j!"%m%C%/$r<h$C$?$^$^$N%H%i%s%6%/%7%g%s$,;D$k$J$I$7$F%7%9%F%`A4BN$K1F6A$rM?$($k$3$H$,$"$j$^$7$?!#(B
+$B:#2s$N=$@5$K$h$j!"$3$&$7$?>u67$,8!=P$G$-$k$h$&$K$J$C$?$@$1$G$J$/!"(BSQL$B$N1~EzBT$A$N4V$K%/%i%$%"%s%H$,%3%M%/%7%g%s$r@ZCG$7$?:]$K$O!"(BSQL$B%3%^%s%I$N%-%c%s%;%k$r(Bpgpool$B$,9T$J$C$F!"%m%C%/BT$A$J$I$N%P%C%/%(%s%I%W%m%;%9$,;D$k$N$rKI$0$3$H$,$G$-$k$h$&$K$J$j$^$7$?(B(Tatsuo)$B!#(B
+
+<li>$B0z?t$J$7$N(BCLUSTER$B%3%^%s%I$O%H%i%s%6%/%7%g%s$NCf$G$O<B9T$G$-$J$$$N$G!"<+F0%H%i%s%6%/%7%g%s$r%9%?!<%H$7$J$$$h$&$K$7$^$7$?(B(Tatsuo)$B!#(B
+
+<li>$BJ#?t$N%W%j%Z%"%I%9%F!<%H%a%s%H$r;H$C$F$$$k:]$K!"%;%C%7%g%s$N=*$j$G$=$N0lIt$@$1$,2rJ|$5$l$k%P%0$r=$@5$7$^$7$?(B(Akio Ishida)
+$B!#(B
+<li>sql/pgpool-recovery/pgpool-recovery.c$B$,(BPostgreSQL 8.4$B$G%3%s%Q%$%k$G$-$k$h$&$K$7$^$7$?(B(Tatsuo)$B!#(B
+
+<li>$B3HD%%W%m%H%3%k$r;H$C$F$$$k>l9g$K!"%/%i%$%"%s%H$H(Bpgpool$B$N4V$G$*8_$$$KBT$A>uBV$K$J$C$F$7$^$&$3$H$,$"$k%P%0$r=$@5$7$^$7$?(B(Gavin Sherry)$B!#(B
+
+<li>COPY FROM$B$r<B9TCf$K%/%i%$%"%s%H$,=hM}$rCfCG$7$?>l9g$K!"%P%C%/%(%s%I%W%m%;%9$,;D$C$F$7$^$&%P%0$r=$@5$7$^$7$?(B(Tatsuo)$B!#(B
+
+</ul>
+
+<h2>2.2.2 (urukiboshi) 2009/5/5</h2>
+<h3>$B35MW(B</h3>
+<p>
+$B$3$N%P!<%8%g%s$G$O!"(B2.2.1$B0JA0$N?'!9$J%P%0$,=$@5$5$l$F$$$^$9!#(B
+$B$H$j$o$1!"(Bpgpool$B$,%/%i%$%"%s%H$H$N4V$G%G!<%?$N$d$j<h$j$r$7$F$$$k:GCf$K!"(Bpgpool$B$N%/%i%$%"%s%H$,=*N;(B(X)$B%Q%1%C%H$r(Bpgpool$B$KAw?.$;$:$K=*N;$7$?>l9g$K5/$k2DG=@-$,$"$j$^$9!#(B
+$B$3$N%P%0$O2a5n$N$9$Y$F$N(Bpgpool$B$KB8:_$7$F$$$^$9!#(B
+</p>
+<h3>$B%P%0=$@5(B</h3>
+<ul>
+ <li>$B%U%m%s%H%(%s%I$K(Bpgpool$B$,%G!<%?$rAw?.$9$k:]$N%(%i!<$rL5;k$9$k$h$&$K$7$^$7$?!#$3$l$K$h$C$F!"%P%C%/%(%s%I$H$N4V$GI,MW$J=hM}$,CfCG$5$l$J$$$h$&$K$J$j!"%P%C%/%(%s%I$N4V$G%G!<%?$N0l4S@-$,$J$/$J$kLdBj$,2sHr$5$l$k$h$&$K$J$j$^$7$?(B(Tatsuo)$B!#(B
+
+ <li>$B%^%9%?!<%9%l!<%V%b!<%I$K4X$9$k(B2.2.1$B$N=$@5$N:]$K@8$8$?%P%0$r=$@5$7$^$7$?!#%W%j%Z%"%I%9%F!<%H%a%s%H$r;H$$2s$9$H%O%s%0%"%C%W$9$k2DG=@-$,$"$j$^$7$?(B(Toshihiro)$B!#(B
+
+ <li>SQL$B%3%^%s%I$N(BPREPARE$B$H%W%m%H%3%k%l%Y%k$N(BEXECUTE$B$,:.:_$9$k$H%P%C%/%(%s%I$,%/%i%C%7%e$9$k%P%0$r=$@5$7$^$7$?!#$3$N%P%0$,!"(B2.2$B$G;}$A9~$^$l$?$b$N$G$9(B(Tatsuo)$B!#(B
+
+ <li>$B%3%M%/%7%g%s$N%j%;%C%HMQ$NLd9g$o$;$r<B9TCf$K%(%i!<$,5/$-$?>l9g$K!"(BPostgreSQL$B$N%m%0$K(B"unexpected EOF on client connection"$B$,5-O?$5$l$kLdBj$r=$@5$7$^$7$?(B(Tatsuo)$B!#(B
+</ul>
+
+<h2>2.2.1 (urukiboshi) 2009/4/25</h2>
+<h3>$B35MW(B</h3>
+<p>
+$B$3$N%P!<%8%g%s$G$O!"(B2.2$B$N?'!9$J%P%0$,=$@5$5$l$F$$$^$9!#(B
+</p>
+<h3>$B%P%0=$@5(B</h3>
+<ul>
+ <li>master/slave$B%b!<%I$G!"(BDEALLOCATE$B$,<:GT$9$k$3$H$,$"$kLdBj$r=$@5$7$^$7$?!#(B
+ $B$3$l$O!":G=i$N(BPREPARE$B$,(Bslave$B$G<B9T$5$l$J$$$3$H$K$h$k$b$N$G$9(B(Toshihiro)
+
+ <li>pgpool.spec$B$J$I$r(B2.2$BBP1~$K$7$^$7$?(B(Devrim)
+
+ <li>Version 2$B%W%m%H%3%k$G$O(Binsert_lock$B$,L5;k$5$l$k$h$&$K$7$^$7$?(B(Tatsuo)
+
+ <li>$B%Q%i%a!<%?JQ99%a%C%;!<%8$,%P%C%/%(%s%I$+$iFO$/EY$K%m%0$,=PNO$5$l$k$N$r;_$a$^$7$?(B(Tatsuo)
+
+ <li>$B%I%-%e%a%s%H$GDI2C$7K:$l$?%U%!%$%k$rEPO?$7$^$7$?(B(Tatsuo)
+</ul>
+
<h2>2.2 (urukiboshi) 2009/2/28</h2>
<h3>$B35MW(B</h3>
<p>
[parent: 6d4c43770307]