[Pgpool-general] pgPool hangs after some load

Tatsuo Ishii ishii at sraoss.co.jp
Wed Jun 3 15:08:35 UTC 2009


> Quoting "Tatsuo Ishii" <ishii at sraoss.co.jp>:
> >> Hello,
> > I strongly recommend to use newer version, pgpool-II 2.2.2.
> 
> I second that.  We too were experiencing strange hangs on 2.2.1 (to  
> the point I had a script monitor for this and force a pgpool-restart  
> to cope), but this happens less with 2.2.2 (still happens though).

2.2.2 still hangs? Have you identified what condition causes the hang?

I have identified pgpool-II 2.2.2 or before hangs in certain
conditions (COPY FROM, I think).

Could you grab V2_2_STABLE branch head or try included patches?
--
Tatsuo Ishii
SRA OSS, Inc. Japan
-------------- next part --------------
? .deps
? .libs
? Makefile
? autom4te.cache
? config.h
? config.log
? config.status
? libtool
? pg_md5
? pgpool
? pgpool-II-2.2.1.tar.gz
? pgpool-II-2.2.2.tar.gz
? pgpool.8
? stamp-h1
? doc/aaa
? parser/.deps
? parser/Makefile
? pcp/.deps
? pcp/.libs
? pcp/Makefile
? pcp/libpcp.la
? pcp/md5.lo
? pcp/pcp.lo
? pcp/pcp_attach_node
? pcp/pcp_detach_node
? pcp/pcp_error.lo
? pcp/pcp_node_count
? pcp/pcp_node_info
? pcp/pcp_proc_count
? pcp/pcp_proc_info
? pcp/pcp_recovery_node
? pcp/pcp_stop_pgpool
? pcp/pcp_stream.lo
? pcp/pcp_systemdb_info
Index: ChangeLog
===================================================================
RCS file: /cvsroot/pgpool/pgpool-II/ChangeLog,v
retrieving revision 1.40.2.1
diff -c -r1.40.2.1 ChangeLog
*** ChangeLog	25 Apr 2009 07:20:18 -0000	1.40.2.1
--- ChangeLog	3 Jun 2009 15:01:41 -0000
***************
*** 1,32 ****
  2009-04-25 16:16  t-ishii
  
! 	* configure.in, configure (V2_2_STABLE): prepare for 2.2.1
  
  2009-04-25 16:12  t-ishii
  
! 	* doc/pgpool-ja.html (V2_2_STABLE): Add 2.2.1 release note
  
  2009-04-25 16:05  t-ishii
  
! 	* NEWS (V2_2_STABLE): Prepare 2.2.1
  
  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-04-03 22:49  t-ishii
  
! 	* doc/: pgpool-en.html, pgpool-ja.html (V2_2_STABLE): Add documents
! 	  about configuration reloading.
  
  2009-04-03 19:21  t-ishii
  
  	* pgpool.spec, redhat/pgpool.conf.sample.patch, redhat/pgpool.init
! 	  (V2_2_STABLE): Merge changes made on HEAD regarding RPM spec
! 	  files
  
  2009-03-23 10:13  devrim
  
--- 1,81 ----
+ 2009-05-05 11:07  t-ishii
+ 
+ 	* configure.in, configure, NEWS (V2_2_STABLE): prepare 2.2.2
+ 
+ 2009-05-05 11:04  t-ishii
+ 
+ 	* doc/pgpool-ja.html (V2_2_STABLE): Add 2.2.2 release note
+ 
+ 2009-05-02 17:48  t-ishii
+ 
+ 	* pool_process_query.c (V2_2_STABLE): 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 (V2_2_STABLE): 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 (V2_2_STABLE): 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 (V2_2_STABLE): 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-04-25 16:20  t-ishii
+ 
+ 	* ChangeLog (tags: V2_2_1) (V2_2_STABLE): prepare for 2.2.1
+ 
  2009-04-25 16:16  t-ishii
  
! 	* configure.in, configure (V2_2_STABLE) (utags: V2_2_1): prepare
! 	  for 2.2.1
  
  2009-04-25 16:12  t-ishii
  
! 	* doc/pgpool-ja.html (tags: V2_2_1) (V2_2_STABLE): Add 2.2.1
! 	  release note
  
  2009-04-25 16:05  t-ishii
  
! 	* NEWS (tags: V2_2_1) (V2_2_STABLE): Prepare 2.2.1
  
  2009-04-08 20:11  t-ishii
  
! 	* pool_proto_modules.c (tags: V2_2_1) (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-04-03 22:49  t-ishii
  
! 	* doc/: pgpool-en.html (tags: V2_2_1), pgpool-ja.html
! 	  (V2_2_STABLE): Add documents about configuration reloading.
  
  2009-04-03 19:21  t-ishii
  
  	* pgpool.spec, redhat/pgpool.conf.sample.patch, redhat/pgpool.init
! 	  (V2_2_STABLE) (utags: V2_2_1): Merge changes made on HEAD
! 	  regarding RPM spec files
  
  2009-03-23 10:13  devrim
  
***************
*** 35,48 ****
  
  2009-03-14 12:39  t-ishii
  
! 	* pool_process_query.c (V2_2_STABLE): 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-08 23:58  gleu
  
! 	* main.c, pgpool.8.in (V2_2_STABLE): Update usage function and man
! 	  page.
  
  2009-03-07 18:19  t-ishii
  
--- 84,98 ----
  
  2009-03-14 12:39  t-ishii
  
! 	* pool_process_query.c (tags: V2_2_1) (V2_2_STABLE): 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-08 23:58  gleu
  
! 	* main.c, pgpool.8.in (V2_2_STABLE) (utags: V2_2_1): Update usage
! 	  function and man page.
  
  2009-03-07 18:19  t-ishii
  
***************
*** 61,76 ****
  
  2009-02-28 15:33  t-ishii
  
! 	* Makefile.in (tags: V2_2_0) (V2_2_STABLE): Update Makefile.am
  
  2009-02-28 15:33  t-ishii
  
! 	* Makefile.am (tags: V2_2_0) (V2_2_STABLE): Add
  	  doc/load_balance.png, doc/load_balance.odp
  
  2009-02-28 13:45  t-ishii
  
! 	* ChangeLog, NEWS, TODO, configure (utags: V2_2_0): Version 2.2
  
  2009-02-28 13:40  t-ishii
  
--- 111,128 ----
  
  2009-02-28 15:33  t-ishii
  
! 	* Makefile.in (tags: V2_2_1, V2_2_0) (V2_2_STABLE): Update
! 	  Makefile.am
  
  2009-02-28 15:33  t-ishii
  
! 	* Makefile.am (tags: V2_2_1, V2_2_0) (V2_2_STABLE): Add
  	  doc/load_balance.png, doc/load_balance.odp
  
  2009-02-28 13:45  t-ishii
  
! 	* ChangeLog, NEWS, TODO (tags: V2_2_1), configure (utags: V2_2_0):
! 	  Version 2.2
  
  2009-02-28 13:40  t-ishii
  
***************
*** 78,85 ****
  
  2009-02-24 11:20  t-ishii
  
! 	* pool_auth.c, pool_process_query.c (utags: V2_2_0): Prpare for
! 	  receiving parameter status packets.
  
  	  If postgresql.conf was changed and reloaded, PostgreSQL sends
  	  parameter status packets asynchronously even those changed
--- 130,137 ----
  
  2009-02-24 11:20  t-ishii
  
! 	* pool_auth.c (tags: V2_2_1), pool_process_query.c (utags: V2_2_0):
! 	  Prpare for receiving parameter status packets.
  
  	  If postgresql.conf was changed and reloaded, PostgreSQL sends
  	  parameter status packets asynchronously even those changed
***************
*** 101,108 ****
  
  2009-02-21 18:52  t-ishii
  
! 	* doc/load_balance.png (tags: V2_2_0, V2_2_0_RC2): A load balance
! 	  logic explanation figure
  
  2009-02-21 18:47  t-ishii
  
--- 153,160 ----
  
  2009-02-21 18:52  t-ishii
  
! 	* doc/load_balance.png (tags: V2_2_1, V2_2_0, V2_2_0_RC2): A load
! 	  balance logic explanation figure
  
  2009-02-21 18:47  t-ishii
  
***************
*** 147,153 ****
  
  2009-02-15 14:26  t-ishii
  
! 	* pgpool.conf.sample (tags: V2_2_0, V2_2_0_RC2),
  	  doc/pgpool-en.html, doc/pgpool-ja.html (utags: V2_2_0_RC1):
  	  Reflect the fact that DISCARD ALL holds exclusive lock on
  	  pg_listener, thus will degrade performance.
--- 199,205 ----
  
  2009-02-15 14:26  t-ishii
  
! 	* pgpool.conf.sample (tags: V2_2_1, V2_2_0, V2_2_0_RC2),
  	  doc/pgpool-en.html, doc/pgpool-ja.html (utags: V2_2_0_RC1):
  	  Reflect the fact that DISCARD ALL holds exclusive lock on
  	  pg_listener, thus will degrade performance.
***************
*** 189,200 ****
  
  2009-02-05 09:26  t-ishii
  
! 	* recovery.c (tags: V2_2_0, V2_2_0_RC2, V2_2_0_RC1, V2_2_0_BETA2):
! 	  Fix online recovery to wait for failback done before allowing to
! 	  accept connections from clients. It was supposed to work like this
! 	  but actually was not since the day 0 when online recovery was born.
! 	  Without the fix there could be potential data inconsistency among DB
! 	  nodes.
  
  2009-02-05 09:24  t-ishii
  
--- 241,252 ----
  
  2009-02-05 09:26  t-ishii
  
! 	* recovery.c (tags: V2_2_1, V2_2_0, V2_2_0_RC2, V2_2_0_RC1,
! 	  V2_2_0_BETA2): Fix online recovery to wait for failback done
! 	  before allowing to accept connections from clients. It was supposed
! 	  to work like this but actually was not since the day 0 when online
! 	  recovery was born. Without the fix there could be potential data
! 	  inconsistency among DB nodes.
  
  2009-02-05 09:24  t-ishii
  
***************
*** 219,231 ****
  
  2009-01-30 17:15  t-ishii
  
! 	* test/jdbc/README.euc_jp (tags: V2_2_0, V2_2_0_RC2, V2_2_0_RC1,
! 	  V2_2_0_BETA2): Add comment how to add CLASSPATH
  
  2009-01-30 09:06  y-mori
  
  	* pool_rewrite_query.c, pool_rewrite_query.h (utags: V2_2_0,
! 	  V2_2_0_BETA2, V2_2_0_RC1, V2_2_0_RC2): Add comment
  
  2009-01-28 15:48  t-ishii
  
--- 271,283 ----
  
  2009-01-30 17:15  t-ishii
  
! 	* test/jdbc/README.euc_jp (tags: V2_2_1, V2_2_0, V2_2_0_RC2,
! 	  V2_2_0_RC1, V2_2_0_BETA2): Add comment how to add CLASSPATH
  
  2009-01-30 09:06  y-mori
  
  	* pool_rewrite_query.c, pool_rewrite_query.h (utags: V2_2_0,
! 	  V2_2_0_BETA2, V2_2_0_RC1, V2_2_0_RC2, V2_2_1): Add comment
  
  2009-01-28 15:48  t-ishii
  
***************
*** 233,254 ****
  
  2009-01-27 10:04  t-ishii
  
! 	* COPYING (tags: V2_2_0, V2_2_0_RC2, V2_2_0_RC1, V2_2_0_BETA2):
! 	  Update copyright year
  
  2009-01-25 20:13  t-ishii
  
  	* NEWS, TODO (tags: V2_2_0_BETA2), configure, configure.in,
! 	  version.h (tags: V2_2_0, V2_2_0_RC2, V2_2_0_RC1, V2_2_0_BETA2),
! 	  doc/pgpool-en.html (tags: V2_2_0_BETA2), doc/pgpool-ja.html
! 	  (utags: V2_2_0_BETA1): Prepare 2.2 beta1
  
  2009-01-25 19:13  t-ishii
  
! 	* main.c, pool.h (tags: V2_2_0, V2_2_0_RC2, V2_2_0_RC1,
! 	  V2_2_0_BETA2), pool_config.l (tags: V2_2_0, V2_2_0_RC2,
  	  V2_2_0_RC1, V2_2_0_BETA2), pgpool.conf.sample (tags:
! 	  V2_2_0_BETA2), pool_config.c (tags: V2_2_0, V2_2_0_RC2,
  	  V2_2_0_RC1, V2_2_0_BETA2) (utags: V2_2_0_BETA1): Add
  	  pid_file_name directive
  
--- 285,306 ----
  
  2009-01-27 10:04  t-ishii
  
! 	* COPYING (tags: V2_2_1, V2_2_0, V2_2_0_RC2, V2_2_0_RC1,
! 	  V2_2_0_BETA2): Update copyright year
  
  2009-01-25 20:13  t-ishii
  
  	* NEWS, TODO (tags: V2_2_0_BETA2), configure, configure.in,
! 	  version.h (tags: V2_2_1, V2_2_0, V2_2_0_RC2, V2_2_0_RC1,
! 	  V2_2_0_BETA2), doc/pgpool-en.html (tags: V2_2_0_BETA2),
! 	  doc/pgpool-ja.html (utags: V2_2_0_BETA1): Prepare 2.2 beta1
  
  2009-01-25 19:13  t-ishii
  
! 	* main.c, pool.h (tags: V2_2_1, V2_2_0, V2_2_0_RC2, V2_2_0_RC1,
! 	  V2_2_0_BETA2), pool_config.l (tags: V2_2_1, V2_2_0, V2_2_0_RC2,
  	  V2_2_0_RC1, V2_2_0_BETA2), pgpool.conf.sample (tags:
! 	  V2_2_0_BETA2), pool_config.c (tags: V2_2_1, V2_2_0, V2_2_0_RC2,
  	  V2_2_0_RC1, V2_2_0_BETA2) (utags: V2_2_0_BETA1): Add
  	  pid_file_name directive
  
***************
*** 269,275 ****
  
  2009-01-22 18:29  y-mori
  
! 	* pool_stream.c (tags: V2_2_0, V2_2_0_RC2, V2_2_0_RC1,
  	  V2_2_0_BETA2, V2_2_0_BETA1): Fix different function name was used
  	  in the error message.
  
--- 321,327 ----
  
  2009-01-22 18:29  y-mori
  
! 	* pool_stream.c (tags: V2_2_1, V2_2_0, V2_2_0_RC2, V2_2_0_RC1,
  	  V2_2_0_BETA2, V2_2_0_BETA1): Fix different function name was used
  	  in the error message.
  
***************
*** 282,290 ****
  
  2009-01-22 09:50  t-ishii
  
! 	* child.c (tags: V2_2_0, V2_2_0_RC2, V2_2_0_RC1, V2_2_0_BETA2,
! 	  V2_2_0_BETA1): Remove unnecessary function declaration for
! 	  child_exit()
  
  	  Add comments to child_exit() which had no comments at all
  
--- 334,342 ----
  
  2009-01-22 09:50  t-ishii
  
! 	* child.c (tags: V2_2_1, V2_2_0, V2_2_0_RC2, V2_2_0_RC1,
! 	  V2_2_0_BETA2, V2_2_0_BETA1): Remove unnecessary function
! 	  declaration for child_exit()
  
  	  Add comments to child_exit() which had no comments at all
  
***************
*** 306,313 ****
  
  2009-01-18 22:54  t-ishii
  
! 	* ps_status.c (tags: V2_2_0, V2_2_0_RC2, V2_2_0_RC1, V2_2_0_BETA2,
! 	  V2_2_0_BETA1): Fix FreeBSD case. patch provided by Jun Kuriyama.
  
  2009-01-14 23:54  t-ishii
  
--- 358,366 ----
  
  2009-01-18 22:54  t-ishii
  
! 	* ps_status.c (tags: V2_2_1, V2_2_0, V2_2_0_RC2, V2_2_0_RC1,
! 	  V2_2_0_BETA2, V2_2_0_BETA1): Fix FreeBSD case. patch provided by
! 	  Jun Kuriyama.
  
  2009-01-14 23:54  t-ishii
  
***************
*** 331,339 ****
  
  2009-01-07 22:27  t-ishii
  
! 	* pool_connection_pool.c (tags: V2_2_0, V2_2_0_RC2, V2_2_0_RC1,
! 	  V2_2_0_BETA2, V2_2_0_BETA1), pool_proto_modules.c: Update
! 	  copyright year
  
  2009-01-02 18:38  t-ishii
  
--- 384,392 ----
  
  2009-01-07 22:27  t-ishii
  
! 	* pool_connection_pool.c (tags: V2_2_1, V2_2_0, V2_2_0_RC2,
! 	  V2_2_0_RC1, V2_2_0_BETA2, V2_2_0_BETA1), pool_proto_modules.c:
! 	  Update copyright year
  
  2009-01-02 18:38  t-ishii
  
***************
*** 349,357 ****
  
  2008-12-31 23:42  t-ishii
  
! 	* pool_sema.c (tags: V2_2_0, V2_2_0_RC2, V2_2_0_RC1, V2_2_0_BETA2,
! 	  V2_2_0_BETA1): Enhance error message when failed to create
! 	  semaphores.  Patch contributed by Jun Kuriyama.
  
  2008-12-31 19:25  t-ishii
  
--- 402,410 ----
  
  2008-12-31 23:42  t-ishii
  
! 	* pool_sema.c (tags: V2_2_1, V2_2_0, V2_2_0_RC2, V2_2_0_RC1,
! 	  V2_2_0_BETA2, V2_2_0_BETA1): Enhance error message when failed to
! 	  create semaphores.  Patch contributed by Jun Kuriyama.
  
  2008-12-31 19:25  t-ishii
  
***************
*** 359,366 ****
  	  pcp_node_count.c, pcp_node_info.c, pcp_proc_count.c,
  	  pcp_proc_info.c, pcp_recovery_node.c, pcp_stop_pgpool.c,
  	  pcp_systemdb_info.c (utags: V2_2_0, V2_2_0_BETA1, V2_2_0_BETA2,
! 	  V2_2_0_RC1, V2_2_0_RC2): Add -d (debug)option to pcp commands.
! 	  patch contributed by Jun Kuriyama
  
  2008-12-30 21:16  t-ishii
  
--- 412,419 ----
  	  pcp_node_count.c, pcp_node_info.c, pcp_proc_count.c,
  	  pcp_proc_info.c, pcp_recovery_node.c, pcp_stop_pgpool.c,
  	  pcp_systemdb_info.c (utags: V2_2_0, V2_2_0_BETA1, V2_2_0_BETA2,
! 	  V2_2_0_RC1, V2_2_0_RC2, V2_2_1): Add -d (debug)option to pcp
! 	  commands. patch contributed by Jun Kuriyama
  
  2008-12-30 21:16  t-ishii
  
***************
*** 381,389 ****
  
  	* child.c, main.c, pool.h, pool_auth.c (tags: V2_2_0_RC2,
  	  V2_2_0_RC1, V2_2_0_BETA2, V2_2_0_BETA1), pool_type.h (tags:
! 	  V2_2_0, V2_2_0_RC2, V2_2_0_RC1, V2_2_0_BETA2, V2_2_0_BETA1): Fix
! 	  bug with query cancel. It seems this has not been working since
! 	  pgpool-II was born.
  
  	  To fix this, now we have each connection's pid and cancel key in the
  	  shared memory area. If a cancel packet is sent, the table is
--- 434,442 ----
  
  	* child.c, main.c, pool.h, pool_auth.c (tags: V2_2_0_RC2,
  	  V2_2_0_RC1, V2_2_0_BETA2, V2_2_0_BETA1), pool_type.h (tags:
! 	  V2_2_1, V2_2_0, V2_2_0_RC2, V2_2_0_RC1, V2_2_0_BETA2,
! 	  V2_2_0_BETA1): Fix bug with query cancel. It seems this has not
! 	  been working since pgpool-II was born.
  
  	  To fix this, now we have each connection's pid and cancel key in the
  	  shared memory area. If a cancel packet is sent, the table is
***************
*** 392,399 ****
  
  2008-12-27 16:26  t-ishii
  
! 	* config.h.in (tags: V2_2_0, V2_2_0_RC2, V2_2_0_RC1, V2_2_0_BETA2,
! 	  V2_2_0_BETA1): Update timestamp
  
  2008-12-23 21:26  t-ishii
  
--- 445,452 ----
  
  2008-12-27 16:26  t-ishii
  
! 	* config.h.in (tags: V2_2_1, V2_2_0, V2_2_0_RC2, V2_2_0_RC1,
! 	  V2_2_0_BETA2, V2_2_0_BETA1): Update timestamp
  
  2008-12-23 21:26  t-ishii
  
***************
*** 436,449 ****
  
  2008-12-13 20:25  t-ishii
  
! 	* parser/gram.c (tags: V2_2_0), Makefile.am, Makefile.in,
! 	  parser/gram.h (tags: V2_2_0) (utags: V2_2_0_BETA1, V2_2_0_BETA2,
! 	  V2_2_0_RC1, V2_2_0_RC2): Update generated files
  
  2008-12-13 20:23  t-ishii
  
  	* pool_process_query.c, pool_proto_modules.c, pool_proto_modules.h
! 	  (tags: V2_2_0, V2_2_0_RC2, V2_2_0_RC1, V2_2_0_BETA2,
  	  V2_2_0_BETA1): Refactor pool_process_query.c. Now it is devided
  	  into pool_process_query.c and pool_proto_modules.c.  Also
  	  pool_proto_modules.h added which is a companion header file.
--- 489,502 ----
  
  2008-12-13 20:25  t-ishii
  
! 	* parser/gram.c (tags: V2_2_1, V2_2_0), Makefile.am, Makefile.in,
! 	  parser/gram.h (tags: V2_2_1, V2_2_0) (utags: V2_2_0_BETA1,
! 	  V2_2_0_BETA2, V2_2_0_RC1, V2_2_0_RC2): Update generated files
  
  2008-12-13 20:23  t-ishii
  
  	* pool_process_query.c, pool_proto_modules.c, pool_proto_modules.h
! 	  (tags: V2_2_1, V2_2_0, V2_2_0_RC2, V2_2_0_RC1, V2_2_0_BETA2,
  	  V2_2_0_BETA1): Refactor pool_process_query.c. Now it is devided
  	  into pool_process_query.c and pool_proto_modules.c.  Also
  	  pool_proto_modules.h added which is a companion header file.
***************
*** 548,567 ****
  
  2008-11-07 18:20  t-ishii
  
! 	* ChangeLog, Makefile.in, aclocal.m4 (tags: V2_2_0, V2_2_0_RC2,
! 	  V2_2_0_RC1, V2_2_0_BETA2, V2_2_0_BETA1), configure,
  	  pgpool.conf.sample, pool.h, pool_config.c, pool_config.l,
  	  pool_process_query.c, pool_stream.c, doc/pgpool-en.html,
! 	  doc/pgpool-ja.html, parser/Makefile.in (tags: V2_2_0, V2_2_0_RC2,
! 	  V2_2_0_RC1, V2_2_0_BETA2, V2_2_0_BETA1), pcp/Makefile.in (tags:
! 	  V2_2_0, V2_2_0_RC2, V2_2_0_RC1, V2_2_0_BETA2, V2_2_0_BETA1): Add
! 	  client_idle_limit_in_recovery
  
  2008-10-31 14:21  t-ishii
  
! 	* doc/load_balance.odp (tags: V2_2_0, V2_2_0_RC2, V2_2_0_RC1,
! 	  V2_2_0_BETA2, V2_2_0_BETA1): Add a flow chart which explains load
! 	  balance/replication/send to master only is decided.
  
  2008-10-31 10:31  t-ishii
  
--- 601,620 ----
  
  2008-11-07 18:20  t-ishii
  
! 	* ChangeLog, Makefile.in, aclocal.m4 (tags: V2_2_1, V2_2_0,
! 	  V2_2_0_RC2, V2_2_0_RC1, V2_2_0_BETA2, V2_2_0_BETA1), configure,
  	  pgpool.conf.sample, pool.h, pool_config.c, pool_config.l,
  	  pool_process_query.c, pool_stream.c, doc/pgpool-en.html,
! 	  doc/pgpool-ja.html, parser/Makefile.in (tags: V2_2_1, V2_2_0,
! 	  V2_2_0_RC2, V2_2_0_RC1, V2_2_0_BETA2, V2_2_0_BETA1),
! 	  pcp/Makefile.in (tags: V2_2_1, V2_2_0, V2_2_0_RC2, V2_2_0_RC1,
! 	  V2_2_0_BETA2, V2_2_0_BETA1): Add client_idle_limit_in_recovery
  
  2008-10-31 14:21  t-ishii
  
! 	* doc/load_balance.odp (tags: V2_2_1, V2_2_0, V2_2_0_RC2,
! 	  V2_2_0_RC1, V2_2_0_BETA2, V2_2_0_BETA1): Add a flow chart which
! 	  explains load balance/replication/send to master only is decided.
  
  2008-10-31 10:31  t-ishii
  
***************
*** 633,641 ****
  
  2008-07-04 22:00  y-mori
  
! 	* pool_rewrite_outfuncs.c (tags: 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): FIX: query
! 	  rewrite of DISTINCT ON
  
  2008-07-04 14:27  y-mori
  
--- 686,694 ----
  
  2008-07-04 22:00  y-mori
  
! 	* pool_rewrite_outfuncs.c (tags: 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): FIX:
! 	  query rewrite of DISTINCT ON
  
  2008-07-04 14:27  y-mori
  
***************
*** 674,682 ****
  
  2008-05-04 14:04  y-asaba
  
! 	* sql/pgpool-recovery/pgpool-recovery.c (tags: 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): Use
! 	  snprintf().
  
  2008-04-12 03:09  devrim
  
--- 727,735 ----
  
  2008-05-04 14:04  y-asaba
  
! 	* sql/pgpool-recovery/pgpool-recovery.c (tags: 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): Use snprintf().
  
  2008-04-12 03:09  devrim
  
***************
*** 695,707 ****
  
  2008-04-09 16:03  y-asaba
  
! 	* sample/replicate_def_pgbench.sql (tags: 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): Fix
! 	  SQL error.
  
  2008-04-09 16:01  y-asaba
  
! 	* sql/system_db.sql (tags: 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): Drop
  	  replicate_def table if exists.
  
--- 748,760 ----
  
  2008-04-09 16:03  y-asaba
  
! 	* sample/replicate_def_pgbench.sql (tags: 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): Fix SQL error.
  
  2008-04-09 16:01  y-asaba
  
! 	* sql/system_db.sql (tags: 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): Drop
  	  replicate_def table if exists.
  
***************
*** 788,803 ****
  
  2008-03-28 01:06  y-asaba
  
! 	* child.c, pool_hba.c (tags: 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) (utags:
! 	  V2_1_0_BETA2): Use child_exit() instead of exit().
  
  2008-03-28 01:04  y-asaba
  
! 	* pcp_child.c (tags: V2_2_0, V2_2_0_RC2, V2_2_0_RC1, V2_2_0_BETA2),
! 	  recovery.c (utags: V2_1_0, V2_1_0_BETA2, V2_1_0_RC1,
! 	  V2_2_0_BETA1): Fix a race condition between SIGUSR2 signal and
! 	  pause().
  
  2008-03-28 01:01  y-asaba
  
--- 841,856 ----
  
  2008-03-28 01:06  y-asaba
  
! 	* child.c, pool_hba.c (tags: 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)
! 	  (utags: V2_1_0_BETA2): Use child_exit() instead of exit().
  
  2008-03-28 01:04  y-asaba
  
! 	* pcp_child.c (tags: V2_2_1, V2_2_0, V2_2_0_RC2, V2_2_0_RC1,
! 	  V2_2_0_BETA2), recovery.c (utags: V2_1_0, V2_1_0_BETA2,
! 	  V2_1_0_RC1, V2_2_0_BETA1): Fix a race condition between SIGUSR2
! 	  signal and pause().
  
  2008-03-28 01:01  y-asaba
  
***************
*** 815,827 ****
  2008-03-27 16:54  y-asaba
  
  	* doc/: pgpool-en.html (tags: V2_1_0, V2_1_0_RC1, V2_1_0_BETA2),
! 	  pgpool-ja.html, pgpool.css (tags: 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),
! 	  tutorial-en.html (tags: 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),
! 	  tutorial-ja.html (tags: 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):
! 	  Add copyright.
  
  2008-03-27 16:24  y-asaba
  
--- 868,880 ----
  2008-03-27 16:54  y-asaba
  
  	* doc/: pgpool-en.html (tags: V2_1_0, V2_1_0_RC1, V2_1_0_BETA2),
! 	  pgpool-ja.html, pgpool.css (tags: 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), tutorial-en.html (tags: 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), tutorial-ja.html (tags: 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): Add copyright.
  
  2008-03-27 16:24  y-asaba
  
***************
*** 922,936 ****
  
  2008-03-13 16:01  y-asaba
  
! 	* pg_md5.c (tags: 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):
! 	  Fix compile error on FreeBSD.  Per report by ISHIDA Akio.
  
  2008-03-13 12:46  y-asaba
  
! 	* ylwrap (tags: 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):
! 	  Add ylwrap generated by automake 1.10.
  
  2008-03-13 03:22  devrim
  
--- 975,990 ----
  
  2008-03-13 16:01  y-asaba
  
! 	* pg_md5.c (tags: 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): Fix compile error on FreeBSD.  Per report by
! 	  ISHIDA Akio.
  
  2008-03-13 12:46  y-asaba
  
! 	* ylwrap (tags: 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): Add ylwrap generated by automake 1.10.
  
  2008-03-13 03:22  devrim
  
***************
*** 1218,1269 ****
  
  	* ChangeLog, child.c, main.c, pcp_child.c, pool.h, pool_auth.c,
  	  pool_config.c, pool_config.l, pool_connection_pool.c,
! 	  pool_error.c (tags: 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),
! 	  pool_hba.c (tags: V2_1_0_BETA1), pool_ip.c (tags: 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), pool_ip.h (tags: 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), pool_ipc.h (tags:
! 	  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), pool_params.c
! 	  (tags: 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),
! 	  pool_path.c (tags: 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),
! 	  pool_path.h (tags: 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),
! 	  pool_process_query.c, pool_query_cache.c (tags: 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), pool_rewrite_query.c
! 	  (tags: V2_1_0_BETA2, V2_1_0_BETA1), pool_rewrite_query.h (tags:
! 	  V2_1_0, V2_1_0_RC1, V2_1_0_BETA2, V2_1_0_BETA1), pool_sema.c
! 	  (tags: V2_1_0, V2_1_0_RC1, V2_1_0_BETA2, V2_1_0_BETA1),
! 	  pool_shmem.c (tags: 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),
! 	  pool_signal.c (tags: 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), pool_signal.h (tags: 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), pool_stream.c, pool_system.c (tags:
  	  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), pool_type.h
  	  (tags: V2_1_0, V2_1_0_RC1, V2_1_0_BETA2, V2_1_0_BETA1),
  	  ps_status.c (tags: V2_1_0, V2_1_0_RC1, V2_1_0_BETA2,
! 	  V2_1_0_BETA1), recovery.c, strlcpy.c (tags: 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), COPYING (tags: V2_2_0_BETA1, V2_1_0,
! 	  V2_1_0_RC1, V2_1_0_BETA2, V2_1_0_BETA1), pcp/Makefile.in,
! 	  pcp/pcp.c, pcp/pcp.h (tags: V2_1_0, V2_1_0_RC1, V2_1_0_BETA2,
! 	  V2_1_0_BETA1), pcp/pcp_attach_node.c (tags: V2_1_0, V2_1_0_RC1,
! 	  V2_1_0_BETA2, V2_1_0_BETA1), parser/Makefile.in,
! 	  parser/copyfuncs.c (tags: 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), parser/gram.c (tags: V2_1_0, V2_1_0_RC1,
  	  V2_1_0_BETA2, V2_1_0_BETA1), pcp/pcp_detach_node.c (tags: V2_1_0,
  	  V2_1_0_RC1, V2_1_0_BETA2, V2_1_0_BETA1), pcp/pcp_error.c (tags:
! 	  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),
  	  pcp/pcp_node_count.c (tags: V2_1_0, V2_1_0_RC1, V2_1_0_BETA2,
  	  V2_1_0_BETA1), pcp/pcp_node_info.c (tags: V2_1_0, V2_1_0_RC1,
  	  V2_1_0_BETA2, V2_1_0_BETA1), pcp/pcp_proc_count.c (tags: V2_1_0,
--- 1272,1325 ----
  
  	* ChangeLog, child.c, main.c, pcp_child.c, pool.h, pool_auth.c,
  	  pool_config.c, pool_config.l, pool_connection_pool.c,
! 	  pool_error.c (tags: 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), pool_hba.c (tags: V2_1_0_BETA1), pool_ip.c (tags:
! 	  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),
! 	  pool_ip.h (tags: 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), pool_ipc.h (tags: 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), pool_params.c (tags: 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), pool_path.c (tags:
! 	  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),
! 	  pool_path.h (tags: 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), pool_process_query.c, pool_query_cache.c (tags:
! 	  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),
! 	  pool_rewrite_query.c (tags: V2_1_0_BETA2, V2_1_0_BETA1),
! 	  pool_rewrite_query.h (tags: V2_1_0, V2_1_0_RC1, V2_1_0_BETA2,
! 	  V2_1_0_BETA1), pool_sema.c (tags: V2_1_0, V2_1_0_RC1,
! 	  V2_1_0_BETA2, V2_1_0_BETA1), pool_shmem.c (tags: 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), pool_signal.c (tags:
! 	  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),
! 	  pool_signal.h (tags: 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), pool_stream.c, pool_system.c (tags: 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), pool_type.h
  	  (tags: V2_1_0, V2_1_0_RC1, V2_1_0_BETA2, V2_1_0_BETA1),
  	  ps_status.c (tags: V2_1_0, V2_1_0_RC1, V2_1_0_BETA2,
! 	  V2_1_0_BETA1), recovery.c, strlcpy.c (tags: 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), COPYING (tags:
! 	  V2_2_0_BETA1, V2_1_0, V2_1_0_RC1, V2_1_0_BETA2, V2_1_0_BETA1),
! 	  pcp/Makefile.in, pcp/pcp.c, pcp/pcp.h (tags: V2_1_0, V2_1_0_RC1,
! 	  V2_1_0_BETA2, V2_1_0_BETA1), pcp/pcp_attach_node.c (tags: V2_1_0,
! 	  V2_1_0_RC1, V2_1_0_BETA2, V2_1_0_BETA1), parser/Makefile.in,
! 	  parser/copyfuncs.c (tags: 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), parser/gram.c (tags: V2_1_0, V2_1_0_RC1,
  	  V2_1_0_BETA2, V2_1_0_BETA1), pcp/pcp_detach_node.c (tags: V2_1_0,
  	  V2_1_0_RC1, V2_1_0_BETA2, V2_1_0_BETA1), pcp/pcp_error.c (tags:
! 	  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),
  	  pcp/pcp_node_count.c (tags: V2_1_0, V2_1_0_RC1, V2_1_0_BETA2,
  	  V2_1_0_BETA1), pcp/pcp_node_info.c (tags: V2_1_0, V2_1_0_RC1,
  	  V2_1_0_BETA2, V2_1_0_BETA1), pcp/pcp_proc_count.c (tags: V2_1_0,
***************
*** 1271,1337 ****
  	  (tags: V2_1_0, V2_1_0_RC1, V2_1_0_BETA2, V2_1_0_BETA1),
  	  pcp/pcp_recovery_node.c, pcp/pcp_stop_pgpool.c (tags: V2_1_0,
  	  V2_1_0_RC1, V2_1_0_BETA2, V2_1_0_BETA1), pcp/pcp_stream.c (tags:
! 	  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), pcp/pcp_stream.h
! 	  (tags: 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),
! 	  pcp/pcp_systemdb_info.c (tags: V2_1_0, V2_1_0_RC1, V2_1_0_BETA2,
! 	  V2_1_0_BETA1), sql/pgpool-recovery/pgpool-recovery.c,
! 	  parser/gram.h (tags: V2_1_0, V2_1_0_RC1, V2_1_0_BETA2,
! 	  V2_1_0_BETA1), parser/gram.y (tags: 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), parser/keywords.c (tags: 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), parser/keywords.h (tags:
! 	  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), parser/list.c
! 	  (tags: 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),
! 	  parser/makefuncs.c (tags: 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), parser/makefuncs.h (tags: 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), parser/memnodes.h (tags: 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), parser/nodes.c (tags:
! 	  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), parser/nodes.h
! 	  (tags: 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),
! 	  parser/outfuncs.c (tags: 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), parser/parsenodes.h (tags: 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), parser/parser.h (tags: 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), parser/pg_list.h (tags:
  	  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),
! 	  parser/pool_memory.c (tags: 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), parser/pool_memory.h (tags: 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), parser/pool_parser.h (tags: 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), parser/pool_string.c
! 	  (tags: 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),
! 	  parser/pool_string.h (tags: 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), parser/primnodes.h (tags: 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), parser/scan.c (tags: 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), parser/scan.l (tags:
  	  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), parser/scansup.h
! 	  (tags: 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),
! 	  parser/value.c (tags: 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), parser/value.h (tags: 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): Update copyright.
  
  2008-01-28 11:31  y-asaba
  
--- 1327,1397 ----
  	  (tags: V2_1_0, V2_1_0_RC1, V2_1_0_BETA2, V2_1_0_BETA1),
  	  pcp/pcp_recovery_node.c, pcp/pcp_stop_pgpool.c (tags: V2_1_0,
  	  V2_1_0_RC1, V2_1_0_BETA2, V2_1_0_BETA1), pcp/pcp_stream.c (tags:
! 	  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),
! 	  pcp/pcp_stream.h (tags: 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), pcp/pcp_systemdb_info.c (tags: V2_1_0, V2_1_0_RC1,
! 	  V2_1_0_BETA2, V2_1_0_BETA1),
! 	  sql/pgpool-recovery/pgpool-recovery.c, parser/gram.h (tags:
! 	  V2_1_0, V2_1_0_RC1, V2_1_0_BETA2, V2_1_0_BETA1), parser/gram.y
! 	  (tags: 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),
! 	  parser/keywords.c (tags: 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), parser/keywords.h (tags: 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), parser/list.c (tags:
! 	  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),
! 	  parser/makefuncs.c (tags: 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), parser/makefuncs.h (tags: 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), parser/memnodes.h (tags:
! 	  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),
! 	  parser/nodes.c (tags: 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), parser/nodes.h (tags: 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), parser/outfuncs.c (tags: 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),
! 	  parser/parsenodes.h (tags: 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), parser/parser.h (tags: 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), parser/pg_list.h
! 	  (tags: 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),
! 	  parser/pool_memory.c (tags: 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), parser/pool_memory.h (tags: 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),
! 	  parser/pool_parser.h (tags: 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), parser/pool_string.c (tags: 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),
! 	  parser/pool_string.h (tags: 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), parser/primnodes.h (tags: 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), parser/scan.c
! 	  (tags: 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),
! 	  parser/scan.l (tags: 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), parser/scansup.h (tags: 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), parser/value.c (tags:
! 	  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),
! 	  parser/value.h (tags: 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): Update copyright.
  
  2008-01-28 11:31  y-asaba
  
***************
*** 1384,1390 ****
  2008-01-11 11:30  y-asaba
  
  	* ChangeLog, main.c, pool_hba.c, pool_process_query.c,
! 	  parser/parser.c (tags: 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), parser/pool_memory.c, parser/pool_memory.h: Fix
  	  memory leak at prepared statement list.
--- 1444,1450 ----
  2008-01-11 11:30  y-asaba
  
  	* ChangeLog, main.c, pool_hba.c, pool_process_query.c,
! 	  parser/parser.c (tags: 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), parser/pool_memory.c, parser/pool_memory.h: Fix
  	  memory leak at prepared statement list.
***************
*** 1680,1699 ****
  
  2007-11-06 16:07  y-asaba
  
! 	* test/jdbc/InsertTest.java (tags: 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), test/jdbc/RunTest.java (tags:
! 	  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),
! 	  test/jdbc/pgpool.properties (tags: 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),
! 	  test/jdbc/prepare.sql (tags: 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), test/jdbc/expected/insert (tags:
! 	  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),
! 	  Makefile.am: Add INSERT statement test.
  
  2007-11-05 14:26  y-asaba
  
--- 1740,1761 ----
  
  2007-11-06 16:07  y-asaba
  
! 	* test/jdbc/InsertTest.java (tags: 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),
! 	  test/jdbc/RunTest.java (tags: 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),
! 	  test/jdbc/pgpool.properties (tags: 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),
! 	  test/jdbc/prepare.sql (tags: 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),
! 	  test/jdbc/expected/insert (tags: 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), Makefile.am: Add
! 	  INSERT statement test.
  
  2007-11-05 14:26  y-asaba
  
***************
*** 1725,1735 ****
  2007-11-01 19:11  y-asaba
  
  	* configure.in, pool_process_query.c, parser/Makefile.am (tags:
! 	  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),
! 	  pcp/Makefile.am (tags: 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): Fix compile error with SUN's cc.
  
  2007-11-01 17:17  y-asaba
  
--- 1787,1798 ----
  2007-11-01 19:11  y-asaba
  
  	* configure.in, pool_process_query.c, parser/Makefile.am (tags:
! 	  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), pcp/Makefile.am (tags: 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): Fix
! 	  compile error with SUN's cc.
  
  2007-11-01 17:17  y-asaba
  
***************
*** 1764,1770 ****
  
  2007-10-31 18:41  y-mori
  
! 	* test/pdo-test/README.euc_jp (tags: 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): ADD:
  	  pdo test program manual(Japanese)
--- 1827,1833 ----
  
  2007-10-31 18:41  y-mori
  
! 	* test/pdo-test/README.euc_jp (tags: 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): ADD:
  	  pdo test program manual(Japanese)
***************
*** 1832,1840 ****
  
  2007-10-29 15:28  y-asaba
  
! 	* redhat/: pgpool.init, pgpool.sysconfig (tags: 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)
! 	  (utags: V2_0_0, V2_0_0_BETA1, V2_0_1, V2_1_0_BETA1,
  	  V2_1_0_BETA2): Merge redhat scripts from V1_STABLE branch.
  
  2007-10-29 15:09  y-asaba
--- 1895,1903 ----
  
  2007-10-29 15:28  y-asaba
  
! 	* redhat/: pgpool.init, pgpool.sysconfig (tags: 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) (utags: V2_0_0, V2_0_0_BETA1, V2_0_1, V2_1_0_BETA1,
  	  V2_1_0_BETA2): Merge redhat scripts from V1_STABLE branch.
  
  2007-10-29 15:09  y-asaba
***************
*** 1862,1868 ****
  2007-10-29 13:37  y-asaba
  
  	* sql/pgpool-recovery/: pgpool-recovery.c, pgpool-recovery.sql.in
! 	  (tags: 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)
  	  (utags: V2_0_0, V2_0_0_BETA1, V2_0_1): Change pgpool_recovery
  	  signature from pgpol_recovery(text, text) to pgpool_recovery(text,
--- 1925,1931 ----
  2007-10-29 13:37  y-asaba
  
  	* sql/pgpool-recovery/: pgpool-recovery.c, pgpool-recovery.sql.in
! 	  (tags: 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)
  	  (utags: V2_0_0, V2_0_0_BETA1, V2_0_1): Change pgpool_recovery
  	  signature from pgpol_recovery(text, text) to pgpool_recovery(text,
***************
*** 1906,1921 ****
  2007-10-23 13:44  y-asaba
  
  	* Makefile.am, doc/pgpool-ja.html, sample/pgpool_recovery_pitr
! 	  (tags: 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): Add online recovery script using
  	  pitr.
  
  2007-10-22 17:59  y-asaba
  
! 	* test/jdbc/.cvsignore (tags: 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): Add .cvsignore file.
  
  2007-10-22 17:55  y-asaba
  
--- 1969,1985 ----
  2007-10-23 13:44  y-asaba
  
  	* Makefile.am, doc/pgpool-ja.html, sample/pgpool_recovery_pitr
! 	  (tags: 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): Add online recovery script using
  	  pitr.
  
  2007-10-22 17:59  y-asaba
  
! 	* test/jdbc/.cvsignore (tags: 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): Add
! 	  .cvsignore file.
  
  2007-10-22 17:55  y-asaba
  
***************
*** 1923,1962 ****
  
  2007-10-22 17:47  y-asaba
  
! 	* test/jdbc/: AutoCommitTest.java (tags: 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), BatchTest.java
! 	  (tags: 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), ColumnTest.java (tags: 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), LockTest.java (tags:
  	  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),
! 	  PgpoolTest.java (tags: 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), RunTest.java, SelectTest.java
! 	  (tags: 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), UpdateTest.java (tags: 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), pgpool.properties,
! 	  prepare.sql, run.sh (tags: 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), expected/autocommit (tags: 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),
! 	  expected/batch (tags: 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), expected/column (tags: 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),
! 	  expected/lock (tags: 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), expected/select (tags: 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),
! 	  expected/update (tags: 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) (utags: V2_0_0_BETA1): Add test
  	  program using Java+JDBC driver.
--- 1987,2027 ----
  
  2007-10-22 17:47  y-asaba
  
! 	* test/jdbc/: AutoCommitTest.java (tags: 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),
! 	  BatchTest.java (tags: 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), ColumnTest.java (tags: 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),
! 	  LockTest.java (tags: 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), PgpoolTest.java (tags: 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),
! 	  RunTest.java, SelectTest.java (tags: 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), UpdateTest.java
! 	  (tags: 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), pgpool.properties, prepare.sql, run.sh (tags:
! 	  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), expected/autocommit (tags: 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),
! 	  expected/batch (tags: 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), expected/column (tags: 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),
! 	  expected/lock (tags: 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), expected/select (tags: 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),
! 	  expected/update (tags: 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) (utags: V2_0_0_BETA1): Add test
  	  program using Java+JDBC driver.
***************
*** 1979,1992 ****
  	  mod/database.inc, mod/def.inc, mod/errorhandler.inc (utags:
  	  V2_0_0, V2_0_0_BETA1, V2_0_1, V2_1_0, V2_1_0_BETA1, V2_1_0_BETA2,
  	  V2_1_0_RC1, V2_2_0, V2_2_0_BETA1, V2_2_0_BETA2, V2_2_0_RC1,
! 	  V2_2_0_RC2): ADD: extend protocol test tool
  
  2007-10-18 17:24  y-asaba
  
! 	* sample/pgpool_recovery (tags: 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): execute rsync as
! 	  background jobs.
  
  2007-10-18 13:48  y-asaba
  
--- 2044,2057 ----
  	  mod/database.inc, mod/def.inc, mod/errorhandler.inc (utags:
  	  V2_0_0, V2_0_0_BETA1, V2_0_1, V2_1_0, V2_1_0_BETA1, V2_1_0_BETA2,
  	  V2_1_0_RC1, V2_2_0, V2_2_0_BETA1, V2_2_0_BETA2, V2_2_0_RC1,
! 	  V2_2_0_RC2, V2_2_1): ADD: extend protocol test tool
  
  2007-10-18 17:24  y-asaba
  
! 	* sample/pgpool_recovery (tags: 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):
! 	  execute rsync as background jobs.
  
  2007-10-18 13:48  y-asaba
  
***************
*** 2042,2048 ****
  	* test/parser/: expected/create.out, expected/select.out,
  	  input/select.sql (utags: V2_0_0, V2_0_0_BETA1, V2_0_1, V2_1_0,
  	  V2_1_0_BETA1, V2_1_0_BETA2, V2_1_0_RC1, V2_2_0, V2_2_0_BETA1,
! 	  V2_2_0_BETA2, V2_2_0_RC1, V2_2_0_RC2): Add test cases.
  
  2007-10-15 19:18  y-asaba
  
--- 2107,2113 ----
  	* test/parser/: expected/create.out, expected/select.out,
  	  input/select.sql (utags: V2_0_0, V2_0_0_BETA1, V2_0_1, V2_1_0,
  	  V2_1_0_BETA1, V2_1_0_BETA2, V2_1_0_RC1, V2_2_0, V2_2_0_BETA1,
! 	  V2_2_0_BETA2, V2_2_0_RC1, V2_2_0_RC2, V2_2_1): Add test cases.
  
  2007-10-15 19:18  y-asaba
  
***************
*** 2173,2292 ****
  
  	* test/parser/: README, run-test (utags: V2_0_0, V2_0_0_BETA1,
  	  V2_0_1, V2_1_0, V2_1_0_BETA1, V2_1_0_BETA2, V2_1_0_RC1, V2_2_0,
! 	  V2_2_0_BETA1, V2_2_0_BETA2, V2_2_0_RC1, V2_2_0_RC2): Translate
! 	  from Japanese into English.
  
  2007-10-03 13:47  y-asaba
  
! 	* Makefile.am, Makefile.in, test/parser/.cvsignore (tags: 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), test/parser/Makefile (tags: 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),
! 	  test/parser/README, test/parser/main.c (tags: 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),
! 	  test/parser/parse_schedule (tags: 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), test/parser/pool.h
! 	  (tags: 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), test/parser/run-test,
! 	  test/parser/expected/copy.out (tags: 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),
  	  test/parser/expected/create.out, test/parser/expected/cursor.out
! 	  (tags: 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), test/parser/expected/delete.out
! 	  (tags: 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), test/parser/expected/drop.out
! 	  (tags: 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), test/parser/expected/insert.out
! 	  (tags: 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), test/parser/expected/misc.out
! 	  (tags: 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), test/parser/expected/prepare.out
! 	  (tags: 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),
! 	  test/parser/expected/privileges.out (tags: 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),
! 	  test/parser/expected/select.out,
! 	  test/parser/expected/transaction.out (tags: 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),
! 	  test/parser/expected/update.out (tags: 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),
! 	  test/parser/expected/var.out (tags: 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),
! 	  test/parser/input/alter.sql (tags: 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),
! 	  test/parser/input/copy.sql (tags: 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),
! 	  test/parser/input/create.sql (tags: 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),
! 	  test/parser/input/cursor.sql (tags: 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),
! 	  test/parser/input/delete.sql (tags: 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),
! 	  test/parser/input/drop.sql (tags: 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),
! 	  test/parser/input/insert.sql (tags: 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),
! 	  test/parser/input/misc.sql (tags: 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),
! 	  test/parser/input/prepare.sql (tags: 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),
! 	  test/parser/input/privileges.sql (tags: 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),
! 	  test/parser/input/select.sql, test/parser/input/transaction.sql
! 	  (tags: 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), test/parser/input/update.sql
! 	  (tags: 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), test/parser/input/var.sql (tags:
  	  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): Add SQL parser test.
  
  2007-10-03 13:25  y-asaba
  
! 	* Makefile.in, aclocal.m4, config.sub (tags: 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),
! 	  configure, ltmain.sh (tags: 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), pool_hba.c (tags:
! 	  V2_0_1, V2_0_0, V2_0_0_BETA1), pool_process_query.c,
! 	  pool_rewrite_outfuncs.c, pool_rewrite_query.c,
! 	  parser/Makefile.in, parser/copyfuncs.c (tags: V2_0_1, V2_0_0,
! 	  V2_0_0_BETA1), parser/gram.c, parser/gram.h, parser/gram.y,
! 	  parser/gramparse.h (tags: 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), parser/keywords.c
! 	  (tags: V2_0_1, V2_0_0, V2_0_0_BETA1), parser/keywords.h (tags:
! 	  V2_0_1, V2_0_0, V2_0_0_BETA1), parser/list.c (tags: V2_0_1,
! 	  V2_0_0, V2_0_0_BETA1), parser/makefuncs.c (tags: V2_0_1, V2_0_0,
  	  V2_0_0_BETA1), parser/makefuncs.h (tags: V2_0_1, V2_0_0,
  	  V2_0_0_BETA1), parser/nodes.h (tags: V2_0_1, V2_0_0,
  	  V2_0_0_BETA1), parser/outfuncs.c, parser/parsenodes.h (tags:
--- 2238,2360 ----
  
  	* test/parser/: README, run-test (utags: V2_0_0, V2_0_0_BETA1,
  	  V2_0_1, V2_1_0, V2_1_0_BETA1, V2_1_0_BETA2, V2_1_0_RC1, V2_2_0,
! 	  V2_2_0_BETA1, V2_2_0_BETA2, V2_2_0_RC1, V2_2_0_RC2, V2_2_1):
! 	  Translate from Japanese into English.
  
  2007-10-03 13:47  y-asaba
  
! 	* Makefile.am, Makefile.in, test/parser/.cvsignore (tags: 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), test/parser/Makefile (tags: 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), test/parser/README, test/parser/main.c (tags:
! 	  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), test/parser/parse_schedule (tags:
! 	  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), test/parser/pool.h (tags: 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), test/parser/run-test,
! 	  test/parser/expected/copy.out (tags: 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),
  	  test/parser/expected/create.out, test/parser/expected/cursor.out
! 	  (tags: 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), test/parser/expected/delete.out
! 	  (tags: 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), test/parser/expected/drop.out
! 	  (tags: 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), test/parser/expected/insert.out
! 	  (tags: 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), test/parser/expected/misc.out
! 	  (tags: 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), test/parser/expected/prepare.out
! 	  (tags: 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),
! 	  test/parser/expected/privileges.out (tags: 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), test/parser/expected/select.out,
! 	  test/parser/expected/transaction.out (tags: 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), test/parser/expected/update.out (tags: 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), test/parser/expected/var.out (tags: 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), test/parser/input/alter.sql (tags: 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), test/parser/input/copy.sql (tags: 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), test/parser/input/create.sql (tags: 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), test/parser/input/cursor.sql (tags: 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), test/parser/input/delete.sql (tags: 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), test/parser/input/drop.sql (tags: 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), test/parser/input/insert.sql (tags: 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), test/parser/input/misc.sql (tags: 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), test/parser/input/prepare.sql (tags: 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), test/parser/input/privileges.sql (tags: 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), test/parser/input/select.sql,
+ 	  test/parser/input/transaction.sql (tags: 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), test/parser/input/update.sql (tags: 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), test/parser/input/var.sql (tags: 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): Add SQL parser test.
  
  2007-10-03 13:25  y-asaba
  
! 	* Makefile.in, aclocal.m4, config.sub (tags: 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), configure, ltmain.sh (tags: 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), pool_hba.c (tags: V2_0_1, V2_0_0, V2_0_0_BETA1),
! 	  pool_process_query.c, pool_rewrite_outfuncs.c,
! 	  pool_rewrite_query.c, parser/Makefile.in, parser/copyfuncs.c
! 	  (tags: V2_0_1, V2_0_0, V2_0_0_BETA1), parser/gram.c,
! 	  parser/gram.h, parser/gram.y, parser/gramparse.h (tags: 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), parser/keywords.c (tags: V2_0_1, V2_0_0,
! 	  V2_0_0_BETA1), parser/keywords.h (tags: V2_0_1, V2_0_0,
! 	  V2_0_0_BETA1), parser/list.c (tags: V2_0_1, V2_0_0,
! 	  V2_0_0_BETA1), parser/makefuncs.c (tags: V2_0_1, V2_0_0,
  	  V2_0_0_BETA1), parser/makefuncs.h (tags: V2_0_1, V2_0_0,
  	  V2_0_0_BETA1), parser/nodes.h (tags: V2_0_1, V2_0_0,
  	  V2_0_0_BETA1), parser/outfuncs.c, parser/parsenodes.h (tags:
***************
*** 2617,2628 ****
  
  2007-07-09 10:29  y-asaba
  
! 	* config.guess (tags: 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, ROOT_OF_V2_0_PARALLEL_UNSTABLE),
! 	  config.h.in (tags: V2_0_1, V2_0_0, V2_0_0_BETA1,
! 	  ROOT_OF_V2_0_PARALLEL_UNSTABLE), configure (tags:
! 	  ROOT_OF_V2_0_PARALLEL_UNSTABLE), configure.in (tags:
  	  ROOT_OF_V2_0_PARALLEL_UNSTABLE), ltmain.sh (tags:
  	  ROOT_OF_V2_0_PARALLEL_UNSTABLE), aclocal.m4 (tags:
  	  ROOT_OF_V2_0_PARALLEL_UNSTABLE), child.c (tags:
--- 2685,2696 ----
  
  2007-07-09 10:29  y-asaba
  
! 	* config.guess (tags: 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,
! 	  ROOT_OF_V2_0_PARALLEL_UNSTABLE), config.h.in (tags: V2_0_1,
! 	  V2_0_0, V2_0_0_BETA1, ROOT_OF_V2_0_PARALLEL_UNSTABLE), configure
! 	  (tags: ROOT_OF_V2_0_PARALLEL_UNSTABLE), configure.in (tags:
  	  ROOT_OF_V2_0_PARALLEL_UNSTABLE), ltmain.sh (tags:
  	  ROOT_OF_V2_0_PARALLEL_UNSTABLE), aclocal.m4 (tags:
  	  ROOT_OF_V2_0_PARALLEL_UNSTABLE), child.c (tags:
***************
*** 2698,2706 ****
  
  2007-06-27 18:04  y-asaba
  
! 	* sample/pgpool_remote_start (tags: 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,
  	  ROOT_OF_V2_0_PARALLEL_UNSTABLE): Fix checking the number of
  	  arguments.
  
--- 2766,2774 ----
  
  2007-06-27 18:04  y-asaba
  
! 	* sample/pgpool_remote_start (tags: 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,
  	  ROOT_OF_V2_0_PARALLEL_UNSTABLE): Fix checking the number of
  	  arguments.
  
***************
*** 2733,2739 ****
  	  pcp/pcp_recovery_node.c (tags: V2_0_1, V2_0_0, V2_0_0_BETA1,
  	  ROOT_OF_V2_0_PARALLEL_UNSTABLE), sample/pgpool_recovery (tags:
  	  ROOT_OF_V2_0_PARALLEL_UNSTABLE), sample/pgpool_remote_start,
! 	  sql/pgpool-recovery/Makefile (tags: 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),
  	  sql/pgpool-recovery/pgpool-recovery.c,
--- 2801,2807 ----
  	  pcp/pcp_recovery_node.c (tags: V2_0_1, V2_0_0, V2_0_0_BETA1,
  	  ROOT_OF_V2_0_PARALLEL_UNSTABLE), sample/pgpool_recovery (tags:
  	  ROOT_OF_V2_0_PARALLEL_UNSTABLE), sample/pgpool_remote_start,
! 	  sql/pgpool-recovery/Makefile (tags: 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),
  	  sql/pgpool-recovery/pgpool-recovery.c,
***************
*** 2892,2909 ****
  
  2007-05-23 10:59  yamaguti
  
! 	* ac_func_accept_argtypes.m4 (tags: 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), pool_hba.c,
! 	  pool_hba.conf.sample (tags: 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), pool_ip.c (tags:
! 	  V2_0_1, V2_0_0, V2_0_0_BETA1), pool_ip.h (tags: V2_0_1, V2_0_0,
! 	  V2_0_0_BETA1), pool_path.c (tags: V2_0_1, V2_0_0, V2_0_0_BETA1),
! 	  pool_path.h (tags: V2_0_1, V2_0_0, V2_0_0_BETA1), ps_status.c
! 	  (tags: V2_0_1, V2_0_0, V2_0_0_BETA1), strlcpy.c (tags: V2_0_1,
! 	  V2_0_0, V2_0_0_BETA1) (utags: ROOT_OF_V2_0_PARALLEL_UNSTABLE,
! 	  V1_1, V1_1_1, V1_2, V1_2_1, V1_3):
  
  	  new files for HBA, ps display, log_hostname & log_connections
  
--- 2960,2978 ----
  
  2007-05-23 10:59  yamaguti
  
! 	* ac_func_accept_argtypes.m4 (tags: 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),
! 	  pool_hba.c, pool_hba.conf.sample (tags: 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), pool_ip.c (tags: V2_0_1, V2_0_0, V2_0_0_BETA1),
! 	  pool_ip.h (tags: V2_0_1, V2_0_0, V2_0_0_BETA1), pool_path.c
! 	  (tags: V2_0_1, V2_0_0, V2_0_0_BETA1), pool_path.h (tags: V2_0_1,
! 	  V2_0_0, V2_0_0_BETA1), ps_status.c (tags: V2_0_1, V2_0_0,
! 	  V2_0_0_BETA1), strlcpy.c (tags: V2_0_1, V2_0_0, V2_0_0_BETA1)
! 	  (utags: ROOT_OF_V2_0_PARALLEL_UNSTABLE, V1_1, V1_1_1, V1_2,
! 	  V1_2_1, V1_3):
  
  	  new files for HBA, ps display, log_hostname & log_connections
  
***************
*** 2936,2942 ****
  	  V1_1_1, V1_1), parser/gram.h (tags: V1_1_1, V1_1),
  	  parser/pool_parser.h (tags: V1_2_1, V1_2,
  	  ROOT_OF_V2_0_PARALLEL_UNSTABLE, V1_1_1, V1_1), pcp/Makefile.in,
! 	  sample/pgpool.pam (tags: 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):
--- 3005,3011 ----
  	  V1_1_1, V1_1), parser/gram.h (tags: V1_1_1, V1_1),
  	  parser/pool_parser.h (tags: V1_2_1, V1_2,
  	  ROOT_OF_V2_0_PARALLEL_UNSTABLE, V1_1_1, V1_1), pcp/Makefile.in,
! 	  sample/pgpool.pam (tags: 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):
***************
*** 3326,3332 ****
  
  2006-09-11 15:42  y-asaba
  
! 	* README.euc_jp (tags: 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),
--- 3395,3401 ----
  
  2006-09-11 15:42  y-asaba
  
! 	* README.euc_jp (tags: 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),
***************
*** 3347,3355 ****
  
  2006-09-11 14:53  y-asaba
  
! 	* README (tags: 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):
  	  Update README.
  
--- 3416,3424 ----
  
  2006-09-11 14:53  y-asaba
  
! 	* README (tags: 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):
  	  Update README.
  
***************
*** 3411,3415 ****
  	  V1_0_0, V1_0_1, V1_0_2, V1_1, V1_1_1, V1_2, V1_2_1, V1_3, V2_0_0,
  	  V2_0_0_BETA1, V2_0_1, V2_1_0, V2_1_0_BETA1, V2_1_0_BETA2,
  	  V2_1_0_RC1, V2_2_0, V2_2_0_BETA1, V2_2_0_BETA2, V2_2_0_RC1,
! 	  V2_2_0_RC2): pgpool-II initial release
  
--- 3480,3484 ----
  	  V1_0_0, V1_0_1, V1_0_2, V1_1, V1_1_1, V1_2, V1_2_1, V1_3, V2_0_0,
  	  V2_0_0_BETA1, V2_0_1, V2_1_0, V2_1_0_BETA1, V2_1_0_BETA2,
  	  V2_1_0_RC1, V2_2_0, V2_2_0_BETA1, V2_2_0_BETA2, V2_2_0_RC1,
! 	  V2_2_0_RC2, V2_2_1): pgpool-II initial release
  
Index: pool.h
===================================================================
RCS file: /cvsroot/pgpool/pgpool-II/pool.h,v
retrieving revision 1.36
retrieving revision 1.36.2.1
diff -c -r1.36 -r1.36.2.1
*** pool.h	25 Jan 2009 10:13:15 -0000	1.36
--- pool.h	27 May 2009 02:01:44 -0000	1.36.2.1
***************
*** 1,7 ****
  /* -*-pgsql-c-*- */
  /*
   *
!  * $Header: /cvsroot/pgpool/pgpool-II/pool.h,v 1.36 2009/01/25 10:13:15 t-ishii Exp $
   *
   * pgpool: a language independent connection pool server for PostgreSQL 
   * written by Tatsuo Ishii
--- 1,7 ----
  /* -*-pgsql-c-*- */
  /*
   *
!  * $Header: /cvsroot/pgpool/pgpool-II/pool.h,v 1.36.2.1 2009/05/27 02:01:44 t-ishii Exp $
   *
   * pgpool: a language independent connection pool server for PostgreSQL 
   * written by Tatsuo Ishii
***************
*** 483,488 ****
--- 483,489 ----
  extern int connect_inet_domain_socket_by_port(char *host, int port);
  extern int connect_unix_domain_socket_by_port(int port, char *socket_dir);
  
+ extern void pool_set_timeout(int timeoutval);
  extern int pool_check_fd(POOL_CONNECTION *cp);
  
  extern void pool_send_frontend_exits(POOL_CONNECTION_POOL *backend);
Index: pool_process_query.c
===================================================================
RCS file: /cvsroot/pgpool/pgpool-II/pool_process_query.c,v
retrieving revision 1.141.2.4
retrieving revision 1.141.2.5
diff -c -r1.141.2.4 -r1.141.2.5
*** pool_process_query.c	2 May 2009 08:49:32 -0000	1.141.2.4
--- pool_process_query.c	27 May 2009 02:01:44 -0000	1.141.2.5
***************
*** 1,6 ****
  /* -*-pgsql-c-*- */
  /*
!  * $Header: /cvsroot/pgpool/pgpool-II/pool_process_query.c,v 1.141.2.4 2009/05/02 08:49:32 t-ishii Exp $
   *
   * pgpool: a language independent connection pool server for PostgreSQL 
   * written by Tatsuo Ishii
--- 1,6 ----
  /* -*-pgsql-c-*- */
  /*
!  * $Header: /cvsroot/pgpool/pgpool-II/pool_process_query.c,v 1.141.2.5 2009/05/27 02:01:44 t-ishii Exp $
   *
   * pgpool: a language independent connection pool server for PostgreSQL 
   * written by Tatsuo Ishii
***************
*** 74,79 ****
--- 74,82 ----
  static bool is_internal_transaction_needed(Node *node);
  static int compare(const void *p1, const void *p2);
  
+ /* timeout sec for pool_check_fd */
+ static int timeoutsec;
+ 
  int in_load_balance;	/* non 0 if in load balance mode */
  int selected_slot;		/* selected DB node */
  int master_slave_dml;	/* non 0 if master/slave mode is specified in config file */
***************
*** 874,881 ****
  }
  
  /*
   * wait until read data is ready
-  * if notimeout is non 0, wait forever.
   */
  int pool_check_fd(POOL_CONNECTION *cp)
  {
--- 877,895 ----
  }
  
  /*
+  * set timeout in seconds for pool_check_fd
+  * if timeoutval < 0, we assume no timeout(wait forever).
+  */
+ void pool_set_timeout(int timeoutval)
+ {
+ 	if (timeoutval > 0)
+ 		timeoutsec = timeoutval;
+ 	else
+ 		timeoutsec = 0;
+ }
+ 
+ /*
   * wait until read data is ready
   */
  int pool_check_fd(POOL_CONNECTION *cp)
  {
***************
*** 883,891 ****
--- 897,916 ----
  	fd_set exceptmask;
  	int fd;
  	int fds;
+ 	struct timeval timeout;
+ 	struct timeval *timeoutp;
  
  	fd = cp->fd;
  
+ 	if (timeoutsec > 0)
+ 	{
+ 		timeout.tv_sec = timeoutsec;
+ 		timeout.tv_usec = 0;
+ 		timeoutp = &timeout;
+ 	}
+ 	else
+ 		timeoutp = NULL;
+ 
  	for (;;)
  	{
  		FD_ZERO(&readmask);
***************
*** 893,900 ****
  		FD_SET(fd, &readmask);
  		FD_SET(fd, &exceptmask);
  
! 		/* no timeout */
! 		fds = select(fd+1, &readmask, NULL, &exceptmask, NULL);
  		if (fds == -1)
  		{
  			if (errno == EAGAIN || errno == EINTR)
--- 918,924 ----
  		FD_SET(fd, &readmask);
  		FD_SET(fd, &exceptmask);
  
! 		fds = select(fd+1, &readmask, NULL, &exceptmask, timeoutp);
  		if (fds == -1)
  		{
  			if (errno == EAGAIN || errno == EINTR)
***************
*** 903,908 ****
--- 927,934 ----
  			pool_error("pool_check_fd: select() failed. reason %s", strerror(errno));
  			break;
  		}
+ 		else if (fds == 0)		/* timeout */
+ 			break;
  
  		if (FD_ISSET(fd, &exceptmask))
  		{
***************
*** 2067,2075 ****
--- 2093,2107 ----
  	if (TSTATE(backend) == 'I' && !strcmp("ABORT", query))
  		return 0;
  
+ 	pool_set_timeout(10);
+ 
  	if (SimpleQuery(NULL, backend, query) != POOL_CONTINUE)
+ 	{
+ 		pool_set_timeout(0);
  		return -1;
+ 	}
  
+ 	pool_set_timeout(0);
  	return 1;
  }
  
Index: doc/pgpool-en.html
===================================================================
RCS file: /cvsroot/pgpool/pgpool-II/doc/pgpool-en.html,v
retrieving revision 1.35.2.1
retrieving revision 1.35.2.2
diff -c -r1.35.2.1 -r1.35.2.2
*** doc/pgpool-en.html	3 Apr 2009 13:49:53 -0000	1.35.2.1
--- doc/pgpool-en.html	12 May 2009 01:03:17 -0000	1.35.2.2
***************
*** 7,13 ****
  </head>
  
  <!-- hhmts start -->
! Last modified: Fri Apr  3 22:42:18 JST 2009
  <!-- hhmts end -->
  
  <body bgcolor="#ffffff">
--- 7,13 ----
  </head>
  
  <!-- hhmts start -->
! Last modified: Tue May 12 10:01:50 JST 2009
  <!-- hhmts end -->
  
  <body bgcolor="#ffffff">
***************
*** 406,412 ****
    <dt>client_idle_limit
    <dd>
    <p>Disconnect the connection to a client being idle for
!        client_idle_limit seconds since the last query has been sent.
         This is usefull for preventing for pgpool childs from being
         ocuppied by a lazy client or TCP/IP connection between client and
         pgpool is accidentally down. The default value for
--- 406,412 ----
    <dt>client_idle_limit
    <dd>
    <p>Disconnect the connection to a client being idle for
!        client_idle_limit seconds since the last query has completed.
         This is usefull for preventing for pgpool childs from being
         ocuppied by a lazy client or TCP/IP connection between client and
         pgpool is accidentally down. The default value for
Index: sql/pgpool-recovery/Makefile
===================================================================
RCS file: /cvsroot/pgpool/pgpool-II/sql/pgpool-recovery/Makefile,v
retrieving revision 1.1
retrieving revision 1.1.2.1
diff -c -r1.1 -r1.1.2.1
*** sql/pgpool-recovery/Makefile	22 Jun 2007 09:50:51 -0000	1.1
--- sql/pgpool-recovery/Makefile	24 May 2009 13:56:10 -0000	1.1.2.1
***************
*** 1,5 ****
  MODULES = pgpool-recovery
  DATA_built = pgpool-recovery.sql
  
! PGXS := $(shell pg_config --pgxs)
  include $(PGXS)
--- 1,20 ----
  MODULES = pgpool-recovery
  DATA_built = pgpool-recovery.sql
  
! # if you are using PostgreSQL 8.0 or later,
! # using pg_config is recommended.
! # if you are not, comment out following line and...
! USE_PGXS = true
! # set top_builddir to the PostgreSQL build source tree top.
! # (for example /usr/local/src/postgresql-8.4) 
! top_builddir = ../..
! 
! ifdef USE_PGXS
! PGXS = $(shell pg_config --pgxs)
  include $(PGXS)
+ else
+ subdir = contrib/pgpool-recovery
+ #top_builddir = ../..
+ include $(top_builddir)/src/Makefile.global
+ include $(top_srcdir)/contrib/contrib-global.mk
+ endif
Index: test/jdbc/pgpool.properties
===================================================================
RCS file: /cvsroot/pgpool/pgpool-II/test/jdbc/pgpool.properties,v
retrieving revision 1.2
diff -c -r1.2 pgpool.properties
*** test/jdbc/pgpool.properties	6 Nov 2007 07:07:05 -0000	1.2
--- test/jdbc/pgpool.properties	3 Jun 2009 15:01:41 -0000
***************
*** 1,7 ****
  pgpooltest.host=localhost
! pgpooltest.port=9999
! pgpooltest.user=pgpool
  pgpooltest.password=
! pgpooltest.dbname=pgpooltest
  pgpooltest.options=
  pgpooltest.tests=autocommit batch column lock select update insert
--- 1,7 ----
  pgpooltest.host=localhost
! pgpooltest.port=5432
! pgpooltest.user=t-ishii
  pgpooltest.password=
! pgpooltest.dbname=test
  pgpooltest.options=
  pgpooltest.tests=autocommit batch column lock select update insert


More information about the Pgpool-general mailing list