pgpool2.git
14 years agoFix hangup with CloseComplete(C) message handling.
Toshihiro Kitagawa [Fri, 1 Apr 2011 10:57:35 +0000 (10:57 +0000)]
Fix hangup with CloseComplete(C) message handling.

14 years agoRefactor pool_process_query().
Toshihiro Kitagawa [Thu, 31 Mar 2011 08:12:43 +0000 (08:12 +0000)]
Refactor pool_process_query().

- Fix hangup when received Flush(H) message.
  See following for more details:
  Subject: [Pgpool-general] Issue with pgpool-II-3.0.3-beta1 prepared
           statements execution
  Date: Tue, 22 Feb 2011 13:55:25 +0300

- Fix possible hangup that happen for the receiving timing of
  ReadyForQuery(Z) message.
  How to reproduce:
  frontend -> pgpool-II -> pgpool-II -> backend
  Both pgpool-II are in connection pooling mode.

14 years agoAdd follow_master_command directive.
Toshihiro Kitagawa [Wed, 30 Mar 2011 02:13:07 +0000 (02:13 +0000)]
Add follow_master_command directive.
We need to fix find_primary_node() that is still pending.
Patch contributed by Gilles Darold.

14 years agoFix warning of parser_set_param(). V3_1_0_WITHOUT_FOLLOW_COMMAND
Toshihiro Kitagawa [Thu, 17 Mar 2011 02:12:09 +0000 (02:12 +0000)]
Fix warning of parser_set_param().

14 years agoForgot to add files.
Toshihiro Kitagawa [Wed, 16 Mar 2011 09:11:25 +0000 (09:11 +0000)]
Forgot to add files.

14 years agoFix hangup when using /*NO LOAD BALANCE*/ comment.
Toshihiro Kitagawa [Wed, 16 Mar 2011 05:55:12 +0000 (05:55 +0000)]
Fix hangup when using /*NO LOAD BALANCE*/ comment.
The condition is load_balance_mode=true and PRIMARY_NODE_ID!=0
and /*NO LOAD BALANCE*/.

14 years agoChange REAL_MASTER_NODE_ID to consider PRIMARY_NODE_ID.
Toshihiro Kitagawa [Mon, 7 Mar 2011 07:00:14 +0000 (07:00 +0000)]
Change REAL_MASTER_NODE_ID to consider PRIMARY_NODE_ID.

14 years agoFix bug with load balancing such as following when PRIMARY_NODE_ID is
Toshihiro Kitagawa [Mon, 7 Mar 2011 06:48:26 +0000 (06:48 +0000)]
Fix bug with load balancing such as following when PRIMARY_NODE_ID is
not same as REAL_MASTER_NODE_ID.

testdb=> BEGIN;
BEGIN
testdb=> SELECT * FROM t1;
ERROR:  relation "t1" does not exist
LINE 1: SELECT * FROM t1;
                      ^
testdb=> SELECT * FROM t2;
 id
----
(0 rows)

testdb=> COMMIT;
ROLLBACK

14 years agoFix insert_lock() so that it extracts sequence name directly.
Toshihiro Kitagawa [Mon, 7 Mar 2011 06:35:27 +0000 (06:35 +0000)]
Fix insert_lock() so that it extracts sequence name directly.

14 years agoChange session information to integrate Portal and PreparedStatement
Toshihiro Kitagawa [Mon, 7 Mar 2011 05:56:58 +0000 (05:56 +0000)]
Change session information to integrate Portal and PreparedStatement
structure into POOL_SENT_MESSAGE structure.

Portal and PreparedStatement structure were used by only extended query
protocol before. but POOL_SENT_MESSAGE is used by simple query protocol too.

This change fixes issues that happen when two protocols were mixed in
one session.

PHP example)

// PREPARE using simple query protocol
pg_query($dbconn, 'PREPARE my_query(TEXT) AS SELECT $1::TEXT');

// EXECUTE using exetended query protocol
pg_execute($dbconn, "my_query", array('test'));

14 years agoFix pgpool-regclass() to be compiled in PostgreSQL 8.0 or later.
Tatsuo Ishii [Mon, 28 Feb 2011 00:50:51 +0000 (00:50 +0000)]
Fix pgpool-regclass() to be compiled in PostgreSQL 8.0 or later.
7.4 still produces errors but I doubt fixing effort is worth the trouble.

14 years agoUpdate TODO.
Tatsuo Ishii [Wed, 23 Feb 2011 07:21:19 +0000 (07:21 +0000)]
Update TODO.

14 years agoDo not keep persistent connection to backends.
Tatsuo Ishii [Wed, 23 Feb 2011 06:47:48 +0000 (06:47 +0000)]
Do not keep persistent connection to backends.
The connection may become bogus if a node down and then wake up
between replication delay checking period.
Restarting worker process is not feasible since there is a time lang
between backend down and restarting worker process.

14 years agoAdd error message to send_simplequery_message().
Tatsuo Ishii [Wed, 23 Feb 2011 06:45:44 +0000 (06:45 +0000)]
Add error message to send_simplequery_message().
Enhance do_query() so that it emmits an error message when receiving ERROR
from backend.

14 years agoFix typo in comment.
Tatsuo Ishii [Wed, 23 Feb 2011 03:50:01 +0000 (03:50 +0000)]
Fix typo in comment.

14 years agoAdapt application_name introduced in PostgreSQL 9.0.
Tatsuo Ishii [Tue, 22 Feb 2011 04:14:04 +0000 (04:14 +0000)]
Adapt application_name introduced in PostgreSQL 9.0.
When reusing connection, send application_name in the startup packet
to backend and send parameter status to frontend.

14 years agoREADME file for pgpool-walrecrunning.
Tatsuo Ishii [Mon, 21 Feb 2011 02:16:11 +0000 (02:16 +0000)]
README file for pgpool-walrecrunning.

14 years agoFix discard_persistent_db_connection() so that it sends a terminate
Tatsuo Ishii [Sun, 20 Feb 2011 07:07:34 +0000 (07:07 +0000)]
Fix discard_persistent_db_connection() so that it sends a terminate
packet to backend befoe closing the connection to the backend.
Without this, backend complains "unexpected EOF on client connection".

14 years agoEnhance find_primary_node() not to fail if pgpool_walrecrunning()
Tatsuo Ishii [Sat, 19 Feb 2011 12:44:35 +0000 (12:44 +0000)]
Enhance find_primary_node() not to fail if pgpool_walrecrunning()
is not installed. In this case it returns -1, which means
pgpool-II assumes the youngest node to be the primary.

14 years agoFix bug with load_balance that JDBC driver sends BEGIN to master node
Toshihiro Kitagawa [Fri, 18 Feb 2011 13:48:36 +0000 (13:48 +0000)]
Fix bug with load_balance that JDBC driver sends BEGIN to master node
many times.

14 years agoFix bug that /*NO LOAD BALANCE*/ doesn't work in stream mode.
Toshihiro Kitagawa [Fri, 18 Feb 2011 13:39:46 +0000 (13:39 +0000)]
Fix bug that /*NO LOAD BALANCE*/ doesn't work in stream mode.
Reported by Hadadi Peter.
Fix bug with load balance in stream mode.

14 years agoRemove unnecessary function: load_balance_enabled().
Toshihiro Kitagawa [Fri, 18 Feb 2011 11:51:10 +0000 (11:51 +0000)]
Remove unnecessary function: load_balance_enabled().

14 years agoFix typo.
Tatsuo Ishii [Fri, 18 Feb 2011 04:29:10 +0000 (04:29 +0000)]
Fix typo.

14 years agoFix typo.
Toshihiro Kitagawa [Fri, 18 Feb 2011 03:27:36 +0000 (03:27 +0000)]
Fix typo.

14 years agoAdd sql/Makefile as a dist file.
Tatsuo Ishii [Wed, 16 Feb 2011 06:05:49 +0000 (06:05 +0000)]
Add sql/Makefile as a dist file.

14 years agoAdd sql directories main Makefile.
Tatsuo Ishii [Wed, 16 Feb 2011 05:51:29 +0000 (05:51 +0000)]
Add sql directories main Makefile.

14 years agoAdjust sql sub directory name change.
Tatsuo Ishii [Wed, 16 Feb 2011 05:31:24 +0000 (05:31 +0000)]
Adjust sql sub directory name change.
pgpool-walrecvrunning -> pgpool-walrecrunning

14 years agoUpdate TODO
Tatsuo Ishii [Sun, 13 Feb 2011 12:04:44 +0000 (12:04 +0000)]
Update TODO

14 years agoRun cvs2cl.pl -t --fsf.
Tatsuo Ishii [Sun, 13 Feb 2011 11:44:02 +0000 (11:44 +0000)]
Run cvs2cl.pl -t --fsf.

14 years agoFix pool_get_node_info() so that it deals with node_number == -1 case.
Tatsuo Ishii [Thu, 10 Feb 2011 02:14:56 +0000 (02:14 +0000)]
Fix pool_get_node_info() so that it deals with node_number == -1 case.
This could happen get_next_master_node() returns -1 because
there's no master node available (all nodes down case).
Also tweak trigger_failover_command() to deal with pool_get_node_info()
returns NULL case.
Per report from Wouter D'Haeseleer.
Subject: [Pgpool-general] PGpool crashes when all DB servers go down
To: "pgpool-general@pgfoundry.org" <pgpool-general@pgfoundry.org>
Date: Mon, 07 Feb 2011 09:35:50 +0100

14 years agoUpdate copyright years.
Tatsuo Ishii [Thu, 10 Feb 2011 02:08:26 +0000 (02:08 +0000)]
Update copyright years.

14 years agoFix bug that failover fails in raw mode.
Toshihiro Kitagawa [Tue, 1 Feb 2011 08:18:23 +0000 (08:18 +0000)]
Fix bug that failover fails in raw mode.
This used to work but was broken in 3.0.

14 years agoFix warning of printf() and time_t.
Tatsuo Ishii [Mon, 31 Jan 2011 14:47:06 +0000 (14:47 +0000)]
Fix warning of printf() and time_t.

14 years agoReorganize pgpool.conf sample files so that they are easier to read.
Guillaume Lelarge [Sun, 30 Jan 2011 16:16:33 +0000 (16:16 +0000)]
Reorganize pgpool.conf sample files so that they are easier to read.

14 years agoAdd understandable "make" and "make install" end messages.
Guillaume Lelarge [Sun, 30 Jan 2011 16:09:40 +0000 (16:09 +0000)]
Add understandable "make" and "make install" end messages.

14 years agoAdd mention about pgpool-walrecrunning.
Tatsuo Ishii [Sun, 30 Jan 2011 00:23:30 +0000 (00:23 +0000)]
Add mention about pgpool-walrecrunning.

14 years agoRename pgpool-walrecvrunning, which was mistakenly named to
Tatsuo Ishii [Sun, 30 Jan 2011 00:17:55 +0000 (00:17 +0000)]
Rename pgpool-walrecvrunning, which was mistakenly named to
pgpool-walrecrunning.

14 years agoDeprecate backend_socket_dir. Instead, if backend_hostname starts with
Tatsuo Ishii [Thu, 27 Jan 2011 07:55:29 +0000 (07:55 +0000)]
Deprecate backend_socket_dir. Instead, if backend_hostname starts with
'/' it is regarded the as path to Unix domain.
If backend_hostname is left empty, then default Unix domain path(/tmp)
is used. This follows the convention of libpq interface.
Patch contributed by Jehan-Guillaume de Rorthais.
Additional fixes to main.c and recovery.c by me.

14 years agoFix pgpool-regclass().
Tatsuo Ishii [Wed, 26 Jan 2011 01:11:32 +0000 (01:11 +0000)]
Fix pgpool-regclass().
It appeared that using PG_TRY/CATCH is not safe, sometimes backend
dies with PANIC:  ERRORDATA_STACK_SIZE exceeded.
The only solution is stealing some functions from PostgreSQL
and modify it not to throw errors.
This is not elegant at all but PostgreSQL developers do not allow
to add such that built-in functions. Sigh.

14 years agoFix bug that DROP DATABASE fails.
Toshihiro Kitagawa [Tue, 25 Jan 2011 09:25:51 +0000 (09:25 +0000)]
Fix bug that DROP DATABASE fails.
This used to work but was broken in 3.0.

14 years agoUpdate ChangeLog by using cvs2cl.pl -t --fsf.
Tatsuo Ishii [Mon, 24 Jan 2011 04:44:45 +0000 (04:44 +0000)]
Update ChangeLog by using cvs2cl.pl -t --fsf.

14 years agoUpdate English documentation.
Tatsuo Ishii [Mon, 24 Jan 2011 04:36:47 +0000 (04:36 +0000)]
Update English documentation.
- add description of new configuration directive 'log_destination'
- add description of new configuration directive 'syslog_facility'
- add description of new configuration directive 'syslog_ident'
- add some lines and sample to 'white_function_list' regex usage
- add some lines and sample to 'black_function_list' regex usage
- add information and fix output sample for the 'id' column on
'pool_nodes' command

Patch provided by Gilles Darold.

Also I added description for black_function_list that having lastval
and currval to black_function_list is a good idea.

14 years agoRemove unnecessary variables: receive_extended_begin.
Toshihiro Kitagawa [Thu, 20 Jan 2011 06:28:42 +0000 (06:28 +0000)]
Remove unnecessary variables: receive_extended_begin.

14 years agoFix bug with function_call_walker().
Tatsuo Ishii [Wed, 19 Jan 2011 02:52:59 +0000 (02:52 +0000)]
Fix bug with function_call_walker().
It always regarded the first element is the function name, which is
not true if the function has schema qualification. In this case we
should use lsecond() rather than lfirst() to extract the function name
because the first element is the schema name.

14 years agoImplement relcache expiration control directive "relcache_expire".
Tatsuo Ishii [Sun, 16 Jan 2011 10:31:38 +0000 (10:31 +0000)]
Implement relcache expiration control directive "relcache_expire".

14 years agoRemove parameters from pool_status: recovery_password, system_db_password.
Toshihiro Kitagawa [Fri, 14 Jan 2011 06:58:10 +0000 (06:58 +0000)]
Remove parameters from pool_status: recovery_password, system_db_password.

14 years agoRemove unnecessary variables: replication_enabled, master_slave_enabled.
Toshihiro Kitagawa [Fri, 14 Jan 2011 06:42:02 +0000 (06:42 +0000)]
Remove unnecessary variables: replication_enabled, master_slave_enabled.

14 years agoFix update_pool_passwd()'s lack of dirname() usage portability.
Tatsuo Ishii [Thu, 13 Jan 2011 06:10:05 +0000 (06:10 +0000)]
Fix update_pool_passwd()'s lack of dirname() usage portability.

14 years agoEmit log if particular backend is down status while reading the status file.
Tatsuo Ishii [Tue, 11 Jan 2011 00:43:30 +0000 (00:43 +0000)]
Emit log if particular backend is down status while reading the status file.
This will make users less confusing.

14 years agoFix the bug which makes a child process crash while doing failover.
Toshihiro Kitagawa [Thu, 6 Jan 2011 09:35:58 +0000 (09:35 +0000)]
Fix the bug which makes a child process crash while doing failover.
This bug has been there since pgpool-II 3.0.

14 years agoDocumentation rewrite by Marc Cousin. Reviewed by me.
Guillaume Lelarge [Thu, 6 Jan 2011 09:31:03 +0000 (09:31 +0000)]
Documentation rewrite by Marc Cousin. Reviewed by me.

14 years agoFix pool_status so that failback_command and fail_over_on_backend_error
Toshihiro Kitagawa [Tue, 4 Jan 2011 04:38:35 +0000 (04:38 +0000)]
Fix pool_status so that failback_command and fail_over_on_backend_error
show correct values.

14 years agoFix bug with debug_level directive. Patch contributed by Gilles
Tatsuo Ishii [Thu, 30 Dec 2010 13:06:38 +0000 (13:06 +0000)]
Fix bug with debug_level directive. Patch contributed by Gilles
Darold. Followings are his explanation.

I found a bug when playing with pgpool yesterday. The problem is that
enabling debug_level to 1 into pgpool.conf doesn't has any effect as it
is overriden in the main.c file after getting configuration so that it
is only enabled when the -d command line option is present.

14 years agoAdd syslog support. Patch contributed by Gilles Darold.
Tatsuo Ishii [Thu, 30 Dec 2010 00:47:05 +0000 (00:47 +0000)]
Add syslog support. Patch contributed by Gilles Darold.
Review and editing by Guillaume Lelarge.

14 years agoAllow to use regular expressions in black and white function list.
Tatsuo Ishii [Sun, 26 Dec 2010 00:58:36 +0000 (00:58 +0000)]
Allow to use regular expressions in black and white function list.
Patch created by Gilles Darold. Here is the description he wrote.

Regex patch :

    The regex struct array is stored in pool_config struct, it is
    dynamically expendable by PATTERN_ARR_SIZE when it reached
    NxPATTERN_ARR_SIZE (start with 16 regex max).

    All entries in white_function_list or black_function_list are stored
    in this array with a flag to differentiate them. To preserve
    backward compatibility and prevent partial matching lists entries
    are all prefixed with '^' and ended with '$' if not already done.
    This also mean that if we want to match function beginning with
    "write_" it has to be written : "write_.*". Indeed "^write_.*$"
    works too.

Patch reviewd by Guillaume Lela.

14 years agoImport PostgreSQL 9.0 parser. This allows to use CREATE INDEX with
Tatsuo Ishii [Thu, 23 Dec 2010 00:57:02 +0000 (00:57 +0000)]
Import PostgreSQL 9.0 parser. This allows to use CREATE INDEX with
 implicit index name, which is new in 9.0.

Allow to use set standard_conforming_string command. It affetcs the
scanner in PostgreSQL 9.0 or later.

Change outfuncs.c to adopt to the effect of server encoding. This
happens in PostgreSQL 9.0 parser.

Patch provided by Akio Ishida.

14 years agoFix do_md5(). If raw mode or number of backend is 1, pgpool child segfaults.
Tatsuo Ishii [Thu, 16 Dec 2010 08:42:36 +0000 (08:42 +0000)]
Fix do_md5(). If raw mode or number of backend is 1, pgpool child segfaults.
patch contributed by Rob Shepherd, slight editing by Tatsuo Ishii.

Fix read_password_packet(). Guard against invalid password lenghth.

Fix send_password_packet(). password string in a password packet must be
a "string" message type, which must has a null termination. Otherwise
you will see "invalid passoword packet size" error message in backend.

14 years agoImport PostgreSQL 9.0 parser. This allows to use CREATE INDEX with
Tatsuo Ishii [Tue, 14 Dec 2010 09:21:10 +0000 (09:21 +0000)]
Import PostgreSQL 9.0 parser. This allows to use CREATE INDEX with
 implicit index name, which is new in 9.0.

Allow to use set standard_conforming_string command. It affetcs the
scanner in PostgreSQL 9.0 or later.

Change outfuncs.c to adopt to the effect of server encoding. This
happens in PostgreSQL 9.0 parser.

Patch provided by Akio Ishida.

14 years agoFix long standing bug with timestamp rewriting against array
Tatsuo Ishii [Tue, 14 Dec 2010 07:21:10 +0000 (07:21 +0000)]
Fix long standing bug with timestamp rewriting against array
and complex types. Failed examples are:

INSERT INTO r1(col[1], col2.foo) VALUES (1, 2); -- insert_column_item
UPDATE r1 SET col1[1] = 1, col2.foo = 1; -- set_target
PREPARE "p" (int4[]) AS  SELECT $1[1]; -- c_expr
SELECT (ARRAY[1,2,3])[1];
SELECT (ARRAY[ARRAY[1]])[1][1];
SELECT ('{1,2,3}'::int[])[1];
SELECT ('{1,2,3}'::int[3])[1];
SELECT r1.col[1], (r1.col1).bar, (r1.col1).* FROM r1; -- columnref
SELECT (r1.col1).baz[1], (r1.col1).baz[1][2] FROM r1;

Patch provided by Akio Ishida.

14 years agoFix comment in send_password_packet().
Tatsuo Ishii [Tue, 14 Dec 2010 00:53:39 +0000 (00:53 +0000)]
Fix comment in send_password_packet().

14 years agoAdd node_id column in pool_nodes "view".
Guillaume Lelarge [Sun, 28 Nov 2010 14:57:17 +0000 (14:57 +0000)]
Add node_id column in pool_nodes "view".

Patch from Jean-Paul Argudo.

14 years agoFix pool_get_passwd() in the case when user name is 32 bytes long.
Tatsuo Ishii [Sun, 28 Nov 2010 11:00:21 +0000 (11:00 +0000)]
Fix pool_get_passwd() in the case when user name is 32 bytes long.

14 years agoFix insert_lock().
Tatsuo Ishii [Wed, 17 Nov 2010 06:57:38 +0000 (06:57 +0000)]
Fix insert_lock().
Comment for this function was not correct. It did not issue BEGIN.
per_node_statement was not called for nodes other than master.

14 years agoFix insert_lock() to obtain proper sequence name by considering
Tatsuo Ishii [Sun, 14 Nov 2010 10:59:21 +0000 (10:59 +0000)]
Fix insert_lock() to obtain proper sequence name by considering
that get_insert_command_table_name() returns double-qutation-added
table name. Without this, pgpool tries to execute
SELECT * FROM "foo"_bar_seq FOR UPDATED, which interepreted as
SELECT * FROM "foo" AS _bar_seq FOR UPDATED.

14 years agoFix load_hba() not to exit(1) if error occurs.
Tatsuo Ishii [Sun, 14 Nov 2010 07:33:49 +0000 (07:33 +0000)]
Fix load_hba() not to exit(1) if error occurs.
If exit(1) is issued, pgpool main exits but children remain,
which is not good.

14 years agoFix load_hba() not to exit(1) if error occurs.
Tatsuo Ishii [Fri, 12 Nov 2010 08:09:32 +0000 (08:09 +0000)]
Fix load_hba() not to exit(1) if error occurs.
If exit(1) is issued, pgpool main exits but children remain,
which is not good.

14 years agoFix find_primary_node to avoid segfault when pool_walrecrunning()
Tatsuo Ishii [Fri, 12 Nov 2010 05:47:01 +0000 (05:47 +0000)]
Fix find_primary_node to avoid segfault when pool_walrecrunning()
is not installed.

14 years agoFix typo.
Tatsuo Ishii [Fri, 12 Nov 2010 01:37:08 +0000 (01:37 +0000)]
Fix typo.

14 years agoUpdate Makefile.am.
Tatsuo Ishii [Fri, 12 Nov 2010 01:31:11 +0000 (01:31 +0000)]
Update Makefile.am.

14 years agoAdd missing entries for sql/walrecvrunning
Tatsuo Ishii [Fri, 12 Nov 2010 01:24:13 +0000 (01:24 +0000)]
Add missing entries for sql/walrecvrunning

14 years agoUpdate grammer files generated by bison.
Tatsuo Ishii [Wed, 10 Nov 2010 02:17:29 +0000 (02:17 +0000)]
Update grammer files generated by bison.

14 years agoOops. Forgot to commit.
Tatsuo Ishii [Wed, 10 Nov 2010 02:00:57 +0000 (02:00 +0000)]
Oops. Forgot to commit.

14 years agoRerun libtoolize to adopt newer developping environment.
Tatsuo Ishii [Wed, 10 Nov 2010 01:53:56 +0000 (01:53 +0000)]
Rerun libtoolize to adopt newer developping environment.

14 years agoFix bug in raw mode.
Toshihiro Kitagawa [Thu, 4 Nov 2010 09:54:16 +0000 (09:54 +0000)]
Fix bug in raw mode.

The following change has not worked since pgpool-II 3.0.

Subject: [Pgpool-committers] pgpool...
Date: Sun, 16 May 2010 08:38:16 +0000 (UTC)

- In row mode and if there's only one DB node, if a problem occurs
  with the DB node, it will be brought to down status. However if the
  DB node goes into good condition again, you can use the DB node
  without restarting pgpool.

14 years agoAllow to use %P(old primary node id) to failover/failback script. V3_1_0_ALPHA1
Tatsuo Ishii [Sat, 30 Oct 2010 11:12:43 +0000 (11:12 +0000)]
Allow to use %P(old primary node id) to failover/failback script.
This is neccessary for failover script in streaming replication mode.

14 years agoAdd -c (checksum) option to ensure reliable file transmittion.
Tatsuo Ishii [Sat, 30 Oct 2010 03:23:36 +0000 (03:23 +0000)]
Add -c (checksum) option to ensure reliable file transmittion.

15 years agoFix in-portability of the way to use dirname(3) in locating
Tatsuo Ishii [Fri, 22 Oct 2010 23:53:20 +0000 (23:53 +0000)]
Fix in-portability of the way to use dirname(3) in locating
pool_passwd. Bug report from a FreeBSD user.

15 years agoFix bug when primary node is not the youngest. Before pgpool-II
Tatsuo Ishii [Wed, 20 Oct 2010 01:08:55 +0000 (01:08 +0000)]
Fix bug when primary node is not the youngest. Before pgpool-II
unconditionally assumed the master node(the youngest live node) is a
primary server, which is apprently wrong assumption. To fix the
problem, now pgpool-II have info on shmem(Req_info) to know which is
the primary. The info is set when 1)pgpool-II started 2)failover
occurs. The work is done by new function find_primary_node(main.c). It
does SELECT pg_is_in_recovery() AND pgpool_walrecrunning() to know the
node in question is actually standby. pgpool_walrecrunning() is new
PostgreSQL C function, to check if walreceiver is in running
status. This is neccessary when failover occurs. Unfortunately
pg_is_in_recovery() returns true even if standby is promoting because
it found a trigger file. Installing pgpool_walrecrunning() is annoying
but no way.  Also where_to_send() is modified to use PRIMARY_NODE_ID,
rather than MASTER_NODE_ID.  CVS:
----------------------------------------------------------------------
main.c pool.h pool_query_context.c pool_worker_child.c CVS: Added
Files: CVS: sql/pgpool-walrecvrunning/Makefile CVS:
sql/pgpool-walrecvrunning/pgpool-walrecrunning.c CVS:
sql/pgpool-walrecvrunning/pgpool-walrecrunning.sql.in CVS:
----------------------------------------------------------------------

15 years agoFix bug with find_victim_node. If the number of
Tatsuo Ishii [Wed, 20 Oct 2010 00:34:22 +0000 (00:34 +0000)]
Fix bug with find_victim_node. If the number of
inserted/updated/deleted tuples at a victim node is 0, no failover
event happens.
See:

Subject: Re: [Pgpool-general] Replication failover problem
Date: Wed, 20 Oct 2010 09:24:30 +0900 (JST)

For mode details.

15 years agoAdd entry for failover_if_affected_tuples_mismatch.
Tatsuo Ishii [Tue, 19 Oct 2010 23:47:33 +0000 (23:47 +0000)]
Add entry for failover_if_affected_tuples_mismatch.
I seem to forgot to add this for 3.0 release. Sigh.
Also expand column name from 34 to 64, since
failover_if_affected_tuples_mismatch.  is longer than 32.

15 years agoPrepare 3.0.1 V3_0_1
Toshihiro Kitagawa [Tue, 19 Oct 2010 14:36:41 +0000 (14:36 +0000)]
Prepare 3.0.1

15 years agoUpdate ChangeLog.
Tatsuo Ishii [Tue, 19 Oct 2010 11:22:09 +0000 (11:22 +0000)]
Update ChangeLog.

15 years agoFix typo.
Tatsuo Ishii [Tue, 19 Oct 2010 11:17:38 +0000 (11:17 +0000)]
Fix typo.

15 years agoFix hungup when a query sent to one node caused an error.
Toshihiro Kitagawa [Tue, 19 Oct 2010 08:57:18 +0000 (08:57 +0000)]
Fix hungup when a query sent to one node caused an error.

15 years agoFix ErrorResponse so that it checks existence of a session context.
Toshihiro Kitagawa [Fri, 15 Oct 2010 03:10:56 +0000 (03:10 +0000)]
Fix ErrorResponse so that it checks existence of a session context.

15 years agoFix typo. Patch contributed by Asaf Ohaion.
Tatsuo Ishii [Thu, 14 Oct 2010 10:42:40 +0000 (10:42 +0000)]
Fix typo. Patch contributed by Asaf Ohaion.

15 years agoFix typo in English doc. Patch contributed by Asaf Ohaion.
Tatsuo Ishii [Thu, 14 Oct 2010 06:39:37 +0000 (06:39 +0000)]
Fix typo in English doc. Patch contributed by Asaf Ohaion.

15 years agoFix portal handling in extended query protocol.
Toshihiro Kitagawa [Tue, 12 Oct 2010 11:39:37 +0000 (11:39 +0000)]
Fix portal handling in extended query protocol.
Now, prepared statements and portals are closed separately.
This issue is possible to reappear by a program using setFetchSize(1) of JDBC.

15 years agoCancel previous commit.
Toshihiro Kitagawa [Tue, 12 Oct 2010 11:05:00 +0000 (11:05 +0000)]
Cancel previous commit.

15 years agoAdd a new option for md5 authentication: -U, --username=NAME.
Toshihiro Kitagawa [Fri, 1 Oct 2010 06:15:34 +0000 (06:15 +0000)]
Add a new option for md5 authentication: -U, --username=NAME.
Fix help message.

15 years agoFix bug with md5 auth. If there's more than 1 servers to be
Tatsuo Ishii [Tue, 28 Sep 2010 08:00:48 +0000 (08:00 +0000)]
Fix bug with md5 auth. If there's more than 1 servers to be
authenticated, it sefaults.

15 years agoFix the bug that causes segfault of a child process when syntax error
Toshihiro Kitagawa [Mon, 27 Sep 2010 02:01:57 +0000 (02:01 +0000)]
Fix the bug that causes segfault of a child process when syntax error
occurred in extended query protocol.

15 years agoPrepare 3.0 V3_0_0
Toshihiro Kitagawa [Fri, 10 Sep 2010 00:42:14 +0000 (00:42 +0000)]
Prepare 3.0

15 years agoUpdate flow charts.
Toshihiro Kitagawa [Thu, 9 Sep 2010 04:15:45 +0000 (04:15 +0000)]
Update flow charts.

15 years agoFix typo and enhance documents.
Tatsuo Ishii [Thu, 9 Sep 2010 02:41:50 +0000 (02:41 +0000)]
Fix typo and enhance documents.
Update release date.

15 years agoPrepare 3.0-RC1 V3_0_0_RC1
Toshihiro Kitagawa [Wed, 8 Sep 2010 08:45:10 +0000 (08:45 +0000)]
Prepare 3.0-RC1

15 years agoFix typo.
Toshihiro Kitagawa [Tue, 7 Sep 2010 08:42:00 +0000 (08:42 +0000)]
Fix typo.

15 years agoFix the bug with previous fix.
Toshihiro Kitagawa [Mon, 6 Sep 2010 08:33:32 +0000 (08:33 +0000)]
Fix the bug with previous fix.

15 years agoUse custom function pgpool_regclass() instead of regclass to convert
Tatsuo Ishii [Mon, 6 Sep 2010 05:03:21 +0000 (05:03 +0000)]
Use custom function pgpool_regclass() instead of regclass to convert
table name to oid. Problem with regclass is, it throws an error if
the table does not exist. pgpool_regclass is just a wrapper of
regclass by using PG_TRY()/PG_CATCH().
If user does not install pgpool_regclass(), pgpool-II falls back
to pre 3.0 behavior, i.e. ignores schema qualification.

15 years agoAdd pgpool_regclass function. This is an alternative for regclassin.
Tatsuo Ishii [Mon, 6 Sep 2010 02:39:18 +0000 (02:39 +0000)]
Add pgpool_regclass function. This is an alternative for regclassin.
Problem is, regclassin throws an error if invalid table name is
specified and pgpool's internal query fails.
Someday we might have such a builtin function but until that day
we use pgpool_regclass instead...