Tatsuo Ishii [Fri, 14 Sep 2012 05:59:55 +0000 (14:59 +0900)]
Fix long standing memory leak bug with free_select_result
since pgpool-II 2.3 was born in December 2009.
Actually this bug only appears when operated in replication mode
(triggered by timestamp rewriting process by coincidence).
Per bug track:
http://www.pgpool.net/mantisbt/view.php?id=24
Tatsuo Ishii [Sat, 1 Sep 2012 00:21:12 +0000 (09:21 +0900)]
Fix HBA section. enable_pool_hba is disabled by default.
Tatsuo Ishii [Wed, 29 Aug 2012 04:12:49 +0000 (13:12 +0900)]
Remove unnecessary/confusing debug log from s_do_auth.
Tatsuo Ishii [Tue, 28 Aug 2012 11:18:04 +0000 (20:18 +0900)]
Add NOTICE message handling to s_do_auth. Without this, health check
responses false alarm and causes failover. per bug track:
http://www.pgpool.net/mantisbt/view.php?id=25 Also allow to receive
ready for query packet *not* right after backend keydata. I'm not
sure if this could happen in the real world but the protocol seems to
allow this.
Tatsuo Ishii [Wed, 15 Aug 2012 05:47:00 +0000 (14:47 +0900)]
Fix read_startup_packet. If packet length is lower than 0, it should
have returned immediately. Otherwise it would cause memory allocation
error later on. per pgpool-general:886.
Also add canceling alarm.
Nozomi Anzai [Fri, 3 Aug 2012 05:21:26 +0000 (14:21 +0900)]
Merge branch 'V3_1_STABLE' of ssh://git.postgresql.org/pgpool2 into V3_1_STABLE
Nozomi Anzai [Fri, 3 Aug 2012 05:19:47 +0000 (14:19 +0900)]
Prepare 3.1.4
Tatsuo Ishii [Fri, 13 Jul 2012 06:36:51 +0000 (15:36 +0900)]
Fix send_to_where() when SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
case in streaming replication mode. It is sent to not only primary but
also to standby and of course this causes an error.
Similar SQLs are:
SET SESSION CHARACTERISTICS AS TRANSACTION ISOLATION LEVEL SERIALIZABLE or
SET transaction_isolation TO 'serializable'
SET default_transaction_isolation TO 'serializable'
Original complain is [pgpool-general: 715].
Tatsuo Ishii [Fri, 13 Jul 2012 06:23:30 +0000 (15:23 +0900)]
Remove unused parameter "query" from is_set_transaction_serializable().
Tatsuo Ishii [Thu, 12 Jul 2012 01:55:07 +0000 (10:55 +0900)]
Fix bug with treatment of BEGIN TRANSACTION in master/slave
mode. Original complain is [pgpool-general: 714]. From 3.1, pgpool-II
sends BEGIN.. to all DB nodes. Of course we cannot send BEGIN
TRANSACTION READ WRITE to standby nodes. Problem is, we did not check
BEGIN WORK ISOLATION LEVEL SERIALIZABLE; and sent to standby nodes. Of
course this is wrong, since it's not allowed to run transactions in
serializable mode on standby nodes. So I added check for BEGIN WORK
ISOLATION LEVEL SERIALIZABLE case, with some refactoring because
there's lots of redundant codes.
Tatsuo Ishii [Mon, 9 Jul 2012 04:54:17 +0000 (13:54 +0900)]
Fix wait_for_query_response() not to send param status to frontend if
frontend is NULL. This could happen while processing reset_query_list.
Tatsuo Ishii [Sun, 8 Jul 2012 22:33:17 +0000 (07:33 +0900)]
Fix pool_process_query() bug reported in [pgpool-general: 672].
> For some reason, this transaction was aborted, client disconnected
> from pgpool, pgpool aborted the transaction on the slave server
> (192.168.10.11) but not on the master (192.168.10.55).
This is caused by the function waits for primary node which does not
have pending data, while standbys have pending data.
Tatsuo Ishii [Thu, 5 Jul 2012 07:20:01 +0000 (16:20 +0900)]
Fix function call case. Before it did not change memory context
before calling raw_parser. This will make trouble afterward if
default pool_memory context is destroyed.
Tatsuo Ishii [Tue, 12 Jun 2012 08:11:41 +0000 (17:11 +0900)]
Modify read_pid_file() and write_pid_file(). write_pid_file() used to
use fopen() and friends, but it was pointed out that pid file might
not be written to persistent storage in erroneous system. Solution to
this is using fsync() althoug it's a little bit tricky to use with
fopen() and friends, so I decided to rewrite them to use open(2) and
friends. Changes made to read_pid_file() as well, but this is rather
for consistency of coding.
Yugo Nagata [Fri, 8 Jun 2012 05:51:50 +0000 (14:51 +0900)]
Fix to send an error message to the frontend when connection is terminated
due to conflict with recovery.
Yugo Nagata [Wed, 6 Jun 2012 09:29:38 +0000 (18:29 +0900)]
Fix hangup when query conflict occurs in Hot-Standby mode.
- Query example to reproduce:
(S1) BEGIN;
(S1) SELECT * FROM t;
(S2) DELETE FROM t;
(S2) VACUUM t;
Fix SmpleQuery() to handle errors by calling check_errors().
- Previously, check_errors() was called only in Execute().
Please enter the commit message for your changes. Lines starting
Tatsuo Ishii [Tue, 5 Jun 2012 06:53:10 +0000 (15:53 +0900)]
Fix is_system_catalog(). Its relcach was accidently defined as "session local".
Tatsuo Ishii [Sun, 3 Jun 2012 12:53:37 +0000 (21:53 +0900)]
Fix "unnamed prepared statment does not exist" error. This is caused
by pgpool's internal query, which breaks client's unnamed statements.
To fix this, if extended query is used (calling
pool_is_doing_extended_query_message()), named statement/portal for
internal are used for internal query.
Nozomi Anzai [Thu, 31 May 2012 07:42:57 +0000 (16:42 +0900)]
Update copyright year.
Nozomi Anzai [Thu, 31 May 2012 07:28:20 +0000 (16:28 +0900)]
Fix segfault of pcp_systemdb_info not in parallel mode and when enable_query_cache = 'off'.
Nozomi Anzai [Wed, 30 May 2012 02:58:15 +0000 (11:58 +0900)]
Add params to the result of "SHOW pool_status": backend_data_directory, ssl_ca_cert, ssl_ca_cert_dir.
Nozomi Anzai [Wed, 30 May 2012 02:50:12 +0000 (11:50 +0900)]
Add desctiption of pcp_pool_status command.
Tatsuo Ishii [Sat, 26 May 2012 05:17:32 +0000 (14:17 +0900)]
Adopt PostgreSQL 9.2.
Tatsuo Ishii [Thu, 10 May 2012 02:39:51 +0000 (11:39 +0900)]
Fix load balance in Solaris. If compiled in Solaris, use
srand()/rand() instead of srandom()/random(). Problem is, random() in
Solaris does not respect RAND_MAX (it's 2^16-1 in Solaris). So using
random() in Solaris results in strange load balancing calculation.
Use srand()/rand() instead although they produce lesser quality random
numbers. Problem reported at [pgpool-general: 396].
Tatsuo Ishii [Tue, 1 May 2012 04:08:48 +0000 (13:08 +0900)]
Fix pool_send_and_wait() to send or not to send commit/abort depending
on the transaction state on each node. It is possible that only
primary is in an explicit transaction but standby is not in it if
multi statement query has been sent.
Per bug report [pgpool-general-jp: 1049].
Yugo Nagata [Tue, 24 Apr 2012 04:38:16 +0000 (13:38 +0900)]
Modify mistaken release date and version no. in pgpool-ja.html.
Yugo Nagata [Mon, 23 Apr 2012 04:38:52 +0000 (13:38 +0900)]
Prepare 3.1.3
Yugo Nagata [Mon, 23 Apr 2012 04:33:20 +0000 (13:33 +0900)]
Prepare 3.1.3
Yugo Nagata [Mon, 23 Apr 2012 04:06:37 +0000 (13:06 +0900)]
Prepare 3.1.3
Yugo Nagata [Mon, 23 Apr 2012 04:01:18 +0000 (13:01 +0900)]
Prepare 3.1.3
Yugo Nagata [Mon, 23 Apr 2012 03:09:11 +0000 (12:09 +0900)]
Prepare 3.1.3
Tatsuo Ishii [Fri, 20 Apr 2012 04:17:26 +0000 (13:17 +0900)]
Add m4 files. This should prevent compiling problem on older
OS's.
Toshihiro Kitagawa [Thu, 19 Apr 2012 04:21:06 +0000 (13:21 +0900)]
Specify that health_check_password is not yet implemented.
Tatsuo Ishii [Sat, 14 Apr 2012 02:38:00 +0000 (11:38 +0900)]
Fix detect_postmaster_down_error to handle failover properly. It is
possible that it fails to read backend socket after detecting backend
errors and before actually detaching the backend. In this case we
should close this session. Otherwise continue to read the down backend
socket.
Tatsuo Ishii [Sat, 14 Apr 2012 00:24:00 +0000 (09:24 +0900)]
Before using semaphore, block signals. Otherwise the process will exit
before unlocking semaphore by a signal interrupt.
Tatsuo Ishii [Mon, 9 Apr 2012 11:21:16 +0000 (20:21 +0900)]
Fix memory leak. In case of reset_query, created query context was not
destroyed and never be freed.
Tatsuo Ishii [Thu, 5 Apr 2012 02:44:02 +0000 (11:44 +0900)]
Fix pool_ssl_read() to deal with large data reading.
It seems we should retry if SSL_read() returns SSL_ERROR_WANT_READ.
Original complain is here:
http://www.pgpool.net/pipermail/pgpool-general/2012-March/000299.html
Back patched to V3_1_STABLE and V3_0_STABLE.
Tatsuo Ishii [Sat, 31 Mar 2012 09:51:57 +0000 (18:51 +0900)]
Fix deadlock by enabling log_destination = syslog reported in bug
tracker http://www.pgpool.net/mantisbt/view.php?id=9. The workaround
is blocking signal before calling vsyslog in pool_log etc. This has
been already done log_destination = stderr case. Patch provided by
Gilles Darold.
Committed to master and V3_1_STABLE.
Tatsuo Ishii [Sat, 31 Mar 2012 00:50:17 +0000 (09:50 +0900)]
Allow to use multi statement in master/slave mode. From 3.1
transactional statements such as "BEGIN" are sent to not only primary
but also standbys. This brings an unfortunate side effect: if the
multi statement is "BEGIN;DELETE FROM table;END", this will be sent to
standy as well and cause an error because standby does not allow write
SQL. So fix is, if a query is a multi statement one, then send it to
primary only.
Committed to master and V3_1_STABLE.
Tatsuo Ishii [Sat, 24 Mar 2012 03:30:42 +0000 (12:30 +0900)]
Allow to have private cache of master node id. This is neccesary for
MASTER_CONNECTION macro and friends because when master goes down it
will immediately update the info on shared memory, which cause running
pgpool child to look into NULL pointer because the process does not
connect to the new master yet. The private cache returns the old
master node id and will avoid the situation. Per bug report
http://www.pgpool.net/mantisbt/view.php?id=5
backport from:
46386e8fc792beef592a1b90308ccd654bb949dd
Fix pool_start_query() so that it uses my_master_node_id for initial
virtual_master_node_id. Real master node could be changed while pgpool
is running in streaming replication mode. Before it assigned
REAL_MASTER_NODE_ID, which could have no connections after fail over
and cause segafult because there's no connection to it.
backport from:
d95cecac8ae73e735dee30ef6697b3d1adac2d52
Fix pool_setall_node_to_be_sent() to use private_backend_status. It
is possible that while processing, the node is not usable any more.
backport from:
e045a737f33e71b3a28eaa9779cdb672756051cd
Tatsuo Ishii [Sat, 24 Mar 2012 02:50:19 +0000 (11:50 +0900)]
Update copyright year.
Tatsuo Ishii [Sun, 4 Mar 2012 02:13:25 +0000 (11:13 +0900)]
Fix failover(). Before it only restarts worker child only when pgpool
child do not need restart. This is wrong. We need to restart worker
child in any case. Otherwise it continues to send replication time lag
check request to down the node.
Toshihiro Kitagawa [Tue, 20 Mar 2012 06:04:55 +0000 (15:04 +0900)]
Fix debug log message so that it does not contain null characters.
This bug was the cause that debug log file was recognized to be binary file.
Toshihiro Kitagawa [Tue, 20 Mar 2012 05:03:12 +0000 (14:03 +0900)]
Fix Parse() so that it doesn't read a destroyed query context.
This is an addition fix for the following:
[pgpool-committers: 55] pgpool: Fix hangup when PREPARE statement causes error.
Toshihiro Kitagawa [Mon, 19 Mar 2012 11:14:32 +0000 (20:14 +0900)]
Fix ReadyForQuery() so that it doesn't read a destroyed query context.
This is an addition fix for the following:
[pgpool-committers: 55] pgpool: Fix hangup when PREPARE statement causes error.
Tatsuo Ishii [Tue, 6 Mar 2012 13:56:18 +0000 (22:56 +0900)]
Fix SimpleQuery() so that restores parser memory context when:
1) Builtin show commands are used
2) Parallel query mode
3) Query cache is used
Before it left pool_memory with bogus memory pointer destroyed by
pool_query_context_destroy, and it caused succeeding palloc() to be
failed.
Toshihiro Kitagawa [Wed, 29 Feb 2012 10:31:37 +0000 (19:31 +0900)]
Fix hangup when PREPARE statement causes error.
Query example to reproduce:
PREPARE q4(nonexistenttype) AS select $1;
This issue was reported by Tomonari Katsumata:
Subject: [pgpool-general: 121] question of pgpool's behavior
Tatsuo Ishii [Tue, 28 Feb 2012 09:35:46 +0000 (18:35 +0900)]
Add doc/pgpool-fr.html to Makefile.am.
This had been forgotten when the doc was added.
Yugo Nagata [Tue, 14 Feb 2012 06:57:56 +0000 (15:57 +0900)]
Fix up hangup during md5 authentication that occurs in daemon mode and
log_destination is 'syslog'. (reported in [pgpool-hackers: 25]).
Before daemonizing, openlog() opens syslog connection socket and gets
a file descriptor (fd). Then in daemonizing process, the fd is closed
as well as others. After daemonizing, pool_passwd is opened for md5
authentication and the same fd is assigned. In md5 authentication process,
syslog() is called for logging. However it fails since the used fd is
not for socket but for file. So, syslog() closed the fd and reopen new
socket using the same fd again. Then in trying to read pool_passwd, it
fails because the using fd is not for the pool_passwd file but for syslog
connection socket and then gets hangup.
Fix the problem by calling closelog() to close syslog connection safely
before daemonizing and calling openlog() to reopen syslog connection
after daemonizing.
Nozomi Anzai [Tue, 31 Jan 2012 05:19:19 +0000 (14:19 +0900)]
Prepare 3.1.2.
Tatsuo Ishii [Tue, 20 Dec 2011 23:00:50 +0000 (08:00 +0900)]
Fix pool_process_query() rus into infinite loop reported in this
thread:
http://www.pgpool.net/pipermail/pgpool-general/2011-December/000099.html
In the code path the case when receive buffer of primary is empty and
one of standbys sends spontaneously packet to pgpool (thus their
recieve buffers have data) is not considered. This could happen when,
for example, reloading postgresql.conf. The fix is, read one packet
from standby's receive buffer and discard it.
Tatsuo Ishii [Fri, 9 Dec 2011 07:35:16 +0000 (16:35 +0900)]
Run libtoolize.
Tatsuo Ishii [Fri, 9 Dec 2011 07:33:08 +0000 (16:33 +0900)]
Add m4.
Tatsuo Ishii [Fri, 9 Dec 2011 07:29:50 +0000 (16:29 +0900)]
Fix pool_get_transaction_isolation() to recognize READ UNCOMMITTED
and REPEATABLE READ.
Tatsuo Ishii [Tue, 6 Dec 2011 01:43:13 +0000 (10:43 +0900)]
Fix release data of 3.1.1.
Tatsuo Ishii [Tue, 6 Dec 2011 01:38:12 +0000 (10:38 +0900)]
Prepare 3.1.1 (add one more fix).
Tatsuo Ishii [Tue, 6 Dec 2011 00:37:04 +0000 (09:37 +0900)]
Fix add_regex_pattern(). It does not allocate enough memory for each
black/white_function_list items. The function adds "^" and "$" to
each function items do not contain those characters. Unfortunately
the function forgot to add extra 2 bytes for those characters.
This may lead to memory corruption errors when pgpool starting up.
Tatsuo Ishii [Mon, 5 Dec 2011 07:56:44 +0000 (16:56 +0900)]
Prepare 3.1.1.
Tatsuo Ishii [Thu, 1 Dec 2011 08:47:29 +0000 (17:47 +0900)]
Fix check_replication_time_lag(). It emitted wrong error message when
it failed to connect to PostgreSQL. Because it does not use
health_check_user anymore.
Tatsuo Ishii [Sun, 27 Nov 2011 22:28:45 +0000 (07:28 +0900)]
Add .orig to .gitignore.
Tatsuo Ishii [Wed, 23 Nov 2011 08:19:54 +0000 (17:19 +0900)]
Fix memory leak in raw mode. This is essentially same as the fix
made for 3.0.5 (commit
19a4ea9215da0b61728741fc0da2271958b09238).
Tatsuo Ishii [Fri, 18 Nov 2011 06:11:05 +0000 (15:11 +0900)]
Add .gitignore.
Tatsuo Ishii [Thu, 27 Oct 2011 23:03:19 +0000 (23:03 +0000)]
Run autoconf.
Tatsuo Ishii [Thu, 27 Oct 2011 22:43:14 +0000 (22:43 +0000)]
Major cleanup for strncpy(). There are several places where
strncpy() is used. Problem is some of them do not consider the case
when copy lengh == buffer size. In this case copied buffer is not
null terminated and may cause tons of problems later.
To fix this, most of them are replaced by strlcpy().
Tatsuo Ishii [Wed, 12 Oct 2011 23:01:12 +0000 (23:01 +0000)]
Update cached backend status whenever possible.
This solves the problem of follow_master_command not being able to
lookup backend status correctly which was reported by Jeff Frost:
Subject: [Pgpool-general] diagnosing BackendError from pcp_recovery_node
To: pgpool-general@pgfoundry.org
Date: Wed, 05 Oct 2011 15:15:07 -0700
Tatsuo Ishii [Wed, 28 Sep 2011 00:57:57 +0000 (00:57 +0000)]
Fix buffer overrun problem when pcp password is longer than 32.
Toshihiro Kitagawa [Mon, 26 Sep 2011 02:15:19 +0000 (02:15 +0000)]
Fix typo.
Tatsuo Ishii [Mon, 26 Sep 2011 00:46:22 +0000 (00:46 +0000)]
Remove PGDLLIMPORTI which is only neccessary for Windows
and cause a problem for non gcc. Patch contributed by Ibrar Ahmed.
Toshihiro Kitagawa [Thu, 8 Sep 2011 12:05:45 +0000 (12:05 +0000)]
Prepare 3.1.
Toshihiro Kitagawa [Thu, 8 Sep 2011 10:36:21 +0000 (10:36 +0000)]
Prepare 3.1.
Toshihiro Kitagawa [Thu, 8 Sep 2011 08:12:50 +0000 (08:12 +0000)]
Merge release note of pgpool-II 3.0.4.
Toshihiro Kitagawa [Thu, 8 Sep 2011 07:53:10 +0000 (07:53 +0000)]
Remove sr_check_password and health_check_password from pool_status
for security reason.
Fix release notes about health_check_password.
Toshihiro Kitagawa [Wed, 7 Sep 2011 02:53:21 +0000 (02:53 +0000)]
Merge NEWS of pgpool-II 3.0.4.
Toshihiro Kitagawa [Wed, 7 Sep 2011 02:37:07 +0000 (02:37 +0000)]
Proofread French version of document.
Proofread by Guillaume Lelarge.
Toshihiro Kitagawa [Mon, 5 Sep 2011 09:49:37 +0000 (09:49 +0000)]
Fix bug with timestamp rewriting.
The fix in rev.1.17 was insufficient.
Toshihiro Kitagawa [Mon, 5 Sep 2011 09:05:50 +0000 (09:05 +0000)]
Fix timestamp test so that it works.
Toshihiro Kitagawa [Sun, 4 Sep 2011 06:54:45 +0000 (06:54 +0000)]
Prepare 3.1-RC1.
Toshihiro Kitagawa [Sat, 3 Sep 2011 14:48:48 +0000 (14:48 +0000)]
Add French version of documents.
Contributed by Jean-Paul Argudo.
Toshihiro Kitagawa [Sat, 3 Sep 2011 09:52:31 +0000 (09:52 +0000)]
Fix double free in rewrite_timestamp_insert().
This caused the failure in trigger of regression test.
Toshihiro Kitagawa [Wed, 31 Aug 2011 10:27:17 +0000 (10:27 +0000)]
Change directive name in pool_status. flag -> backend_flag.
Toshihiro Kitagawa [Wed, 31 Aug 2011 08:31:23 +0000 (08:31 +0000)]
Fix crash of pgpool child when frontend connects if in raw mode,
enable_hba=off and more than 2 backends.
Toshihiro Kitagawa [Tue, 30 Aug 2011 11:28:57 +0000 (11:28 +0000)]
Fix memory leak in discard_persistent_db_connection()
Toshihiro Kitagawa [Tue, 30 Aug 2011 11:02:11 +0000 (11:02 +0000)]
Fix memory leak in string_register_func().
Toshihiro Kitagawa [Mon, 29 Aug 2011 13:03:46 +0000 (13:03 +0000)]
Fix invalid memory write in add_regex_pattern().
Toshihiro Kitagawa [Mon, 29 Aug 2011 12:44:33 +0000 (12:44 +0000)]
Fix memory leak in free_select_result().
Toshihiro Kitagawa [Mon, 29 Aug 2011 07:09:50 +0000 (07:09 +0000)]
Change the handling of sequence functions(nextval, setval) so that they
completely obey setting of black/white_function_list.
They were always handled as write functions before. The checking whether
it is a sequence function was verbosity.
Guillaume Lelarge [Thu, 25 Aug 2011 21:04:43 +0000 (21:04 +0000)]
Update pgpool.conf so that pgpoolAdmin could work
markus [Wed, 24 Aug 2011 11:24:08 +0000 (11:24 +0000)]
Add the current state of the German translation of the manual, should
match revision 1.100 of pgpool-en.html.
Toshihiro Kitagawa [Tue, 23 Aug 2011 09:39:43 +0000 (09:39 +0000)]
Prepare 3.1-beta2.
Toshihiro Kitagawa [Tue, 23 Aug 2011 09:25:58 +0000 (09:25 +0000)]
Prepare 3.1-beta2.
Tatsuo Ishii [Tue, 23 Aug 2011 04:36:57 +0000 (04:36 +0000)]
Fix segfault in following scenario:
- Add new node in pgpool.conf.
- Reload pgpool.conf. At this point new is in down status.
- Connect using psql and do some query.
- Failback the new node.
- Do another query and pgpool child segfaults.
- Worker child segfaults
To fix this,
- Initialize private_backend_status with MAX_NUM_BACKENDS, rather than
NUM_BACKENDS.
- Add signal handler to worker process and pcp child process. When a
failback event occurs, pgpool main sends SIGUSR1 to those processes.
- Those processes set restart request flag and restart whenever
convenient.
Fix suggested by Gurjeet Singh.
Toshihiro Kitagawa [Mon, 22 Aug 2011 07:35:07 +0000 (07:35 +0000)]
Fix typo.
Toshihiro Kitagawa [Mon, 22 Aug 2011 07:27:51 +0000 (07:27 +0000)]
Remove "Installing pgpool_walrecrunning" section of pgpool-II manuals.
Fix typo.
Toshihiro Kitagawa [Mon, 22 Aug 2011 07:10:47 +0000 (07:10 +0000)]
Add judgement of unlogged table to flow chart.
Tatsuo Ishii [Thu, 18 Aug 2011 01:27:45 +0000 (01:27 +0000)]
Fix send_to_where() so that it correctly recognizes FOR SHARE/UPDATE
clause even if it's in subquery. Before it only recognized
when the clause was in top level of SELECT. For this new function
pool_has_insertinto_or_locking_clause() is added.
Make pattern_compare() to static since it's not used anywhere outside
of pool_select_walker.c
Toshihiro Kitagawa [Wed, 17 Aug 2011 12:15:55 +0000 (12:15 +0000)]
Allow to issue SELECT to unlogged tables in master/slave mode.
Toshihiro Kitagawa [Wed, 17 Aug 2011 09:00:35 +0000 (09:00 +0000)]
Update comments for PostgreSQL 9.1.
is_temp_table() has already supported PostgreSQL 9.1.
Toshihiro Kitagawa [Wed, 17 Aug 2011 07:44:38 +0000 (07:44 +0000)]
Fix bug which rewriting timestamp of default value fails in PREPARE
(non extended protocol case). This used to work but was broken in 3.0.
Tatsuo Ishii [Wed, 17 Aug 2011 04:27:52 +0000 (04:27 +0000)]
Add simplified Chinese version of documents.
Contributed by Huang Jian and Sun Peng.
Tatsuo Ishii [Mon, 15 Aug 2011 02:09:40 +0000 (02:09 +0000)]
Fix typo in a comment.