Tatsuo Ishii [Sun, 12 Jun 2011 09:20:33 +0000 (09:20 +0000)]
Add --username(or -u) option to pg_md5. This allows to manage users
which do not have UNIX accounts. Patch contributed by Nicolas Thauvin.
Japanese doc change by Tatsuo Ishii.
Toshihiro Kitagawa [Wed, 8 Jun 2011 11:14:26 +0000 (11:14 +0000)]
Change "do_md5: read_password_packet failed" message into debug level.
This error message is emitted if frontends(psql etc.) authenticate
a password, because they might reconnect at the time.
Reason for change:
- PostgreSQL does not emit error messages at the time.
- pgpool-II does not emit error messages when using the other
authentication methods.
Toshihiro Kitagawa [Mon, 6 Jun 2011 08:18:55 +0000 (08:18 +0000)]
Fix typo.
Tatsuo Ishii [Sun, 5 Jun 2011 23:03:06 +0000 (23:03 +0000)]
Refactor ReadyForQuery(). Create close_standby_transactions() mainly
for cosmetic reason.
Toshihiro Kitagawa [Thu, 26 May 2011 05:37:25 +0000 (05:37 +0000)]
Fix log_per_node_statement so that it prints statements in the extended
query protocol. This used to work but was broken in 3.0.
Guillaume Lelarge [Wed, 25 May 2011 17:14:24 +0000 (17:14 +0000)]
Fix typo
Guillaume Lelarge [Mon, 23 May 2011 19:44:00 +0000 (19:44 +0000)]
Don't check replication lag if health check is disabled.
Tatsuo Ishii [Mon, 23 May 2011 10:55:36 +0000 (10:55 +0000)]
Fix bug with initializing pool_password in daemon mode.
Patch from Nicolas Thauvin.
To: pgpool-hackers@pgfoundry.org
Date: Tue, 17 May 2011 17:08:56 +0200
------------------------------------------------------------------------
When in daemon mode, connection hangs when using md5 authentication
method. The child process in charge of the client goes into an infinite
loop in pool_get_passwd() while trying to read the pool_passwd file.
The cause of the problem comes from the daemonize() function that closes
all file descriptors starting from 3, including the file descriptor of
the pool_passwd file. When pgpool gets to pool_get_passwd, the null
checks on the passwd_fd variable fail because the variable was not reset
to a NULL value.
Guillaume Lelarge [Mon, 23 May 2011 09:35:01 +0000 (09:35 +0000)]
backend status variable name was wrong. Replace the space with a _
Tatsuo Ishii [Fri, 13 May 2011 06:53:05 +0000 (06:53 +0000)]
Fix incorrect error message in pool_process_query().
It emits an error message that it timeouted in online recovery
even it is not in online recovery.
Tatsuo Ishii [Wed, 11 May 2011 01:51:36 +0000 (01:51 +0000)]
Add currval() and lastval() to black_function_list. If they are load
balanced, currval() or lastval() may be called before the result of
nextval() or setval() is propagated to slaves.
Tatsuo Ishii [Mon, 9 May 2011 23:37:14 +0000 (23:37 +0000)]
Fix cancel_request() so that it adopts the change made for 3.1
regarding UNIX domain socket name. Before we thought backend_port = ""
meant we should use UNIX domain socket, but now backend_port = "/"
means UNIX domain socket.
Tatsuo Ishii [Fri, 6 May 2011 23:43:26 +0000 (23:43 +0000)]
Oops. I removed too much.
Tatsuo Ishii [Fri, 6 May 2011 22:33:32 +0000 (22:33 +0000)]
Remove unnecessary logging at the end of parsing.
Tatsuo Ishii [Thu, 5 May 2011 02:39:14 +0000 (02:39 +0000)]
Fix incorrect calculation of LSN in bytes.
Change pg_last_xlog_receive_location() to
pg_last_xlog_replay_location() because the latter respects actually
replayed location which will give less chance for clients to have
stale data in standby.
Fix suggested by Anton Yuzhaninov.
Toshihiro Kitagawa [Tue, 3 May 2011 12:19:55 +0000 (12:19 +0000)]
Prepare 3.1-alpha2.
Toshihiro Kitagawa [Tue, 3 May 2011 09:18:01 +0000 (09:18 +0000)]
Prepare 3.1-alpha2.
Tatsuo Ishii [Mon, 2 May 2011 13:31:25 +0000 (13:31 +0000)]
Enhance online recovery in streaming replication mode.
Now restarting pgpool-II children is avoided when recovery finished.
So existing sessions can be continued while doing online recovery.
For this VALID_BACKEND macro is modified. pgpool-II main looks into
status in shared memory are as it were. pgpool-II child now looks
into local cache space. Pgpool-II child recognizes same number of
backends before failback util existing session ends. Then the
process exits with status 1, so that new process starts, which will
recognizes failback node. For this purpose "need_to_restart" flag
added to ProcessInfo structure.
Toshihiro Kitagawa [Mon, 2 May 2011 12:45:03 +0000 (12:45 +0000)]
Fix failover() so that it does not cause "kind does not match" error.
Add ifdef not to check pgpool_walrecrunning().
Adjust error messages.
Tatsuo Ishii [Sun, 1 May 2011 09:41:48 +0000 (09:41 +0000)]
Enhance online recovery documents in streaming replication.
Haruka harukat [Tue, 26 Apr 2011 11:33:19 +0000 (11:33 +0000)]
- add <a name="..."> tags into all parameter in the pgpool-ii user manual.
Toshihiro Kitagawa [Tue, 26 Apr 2011 00:44:36 +0000 (00:44 +0000)]
Add pool_process_reporting.h to be installed.
Tatsuo Ishii [Mon, 25 Apr 2011 22:58:04 +0000 (22:58 +0000)]
Fix bug with start_recoery().
It calls connect_backend() and then calls PQfinish(NULL) if
connect_backend() returns NULL, which is apparently wrong usage of
PQfinish(). Actually PQfinish() has been called in connect_backend()
in this case.
Also fix typo and enhance error message.
Tatsuo Ishii [Mon, 25 Apr 2011 13:56:46 +0000 (13:56 +0000)]
Add libpcp_ext.h to be installed.
Toshihiro Kitagawa [Mon, 25 Apr 2011 11:43:02 +0000 (11:43 +0000)]
Prepare 3.1-alpha2.
Toshihiro Kitagawa [Mon, 25 Apr 2011 11:33:37 +0000 (11:33 +0000)]
Forgot to add pool_process_reporting.h, pcp/pcp_pool_status.c.
Toshihiro Kitagawa [Mon, 25 Apr 2011 06:29:36 +0000 (06:29 +0000)]
Prepare 3.1-alpha2.
Tatsuo Ishii [Sat, 23 Apr 2011 07:49:02 +0000 (07:49 +0000)]
Refactor pcp related header files. Add libpcp_ext.h which is inteded to be
included by libpcp applications including PostgreSQL C functions.
Tatsuo Ishii [Sat, 23 Apr 2011 05:10:46 +0000 (05:10 +0000)]
Fix bug with pcp_connect() which causes double free.
Fix contributed by Jehan-Guillaume (ioguix) de Rorthais.
Toshihiro Kitagawa [Fri, 22 Apr 2011 11:40:37 +0000 (11:40 +0000)]
Increase relcache size from 32 to 128. This has the effect of reducing
"unnamed prepared statement does not exist" error.
Bug report from Joseph Jacob. See:
Subject: Fwd: Test java program
Date: Fri, 15 Apr 2011 12:16:04 -0700
Tatsuo Ishii [Fri, 22 Apr 2011 07:33:33 +0000 (07:33 +0000)]
Add pcp_pool_status, pcp_node_info.
Patch contributed by Jehan-Guillaume.
Toshihiro Kitagawa [Fri, 22 Apr 2011 02:50:27 +0000 (02:50 +0000)]
Prepare 3.1-alpha2.
Toshihiro Kitagawa [Fri, 22 Apr 2011 02:35:07 +0000 (02:35 +0000)]
Fix find_primary_node() so that it judges primary node correctly.
Remove pgpool_walrecrunning() from find_primary_node() and
add find_primary_node_repeatedly() that waits until finding primary node.
The reason for removing pgpool_walrecrunning() is that
"pg_is_in_recovery() AND pgpool_walrecrunning()" cannot judge
primary node and standby node correctly.
Toshihiro Kitagawa [Fri, 22 Apr 2011 01:09:03 +0000 (01:09 +0000)]
Add description about follow_master_command
Toshihiro Kitagawa [Thu, 21 Apr 2011 10:12:25 +0000 (10:12 +0000)]
Change follow_master_command so that it doesn't detach standby nodes,
if it's empty.
Toshihiro Kitagawa [Thu, 21 Apr 2011 05:00:52 +0000 (05:00 +0000)]
Remove unnecessary semicolon.
Toshihiro Kitagawa [Thu, 21 Apr 2011 02:44:01 +0000 (02:44 +0000)]
Add description of pcp_promote_node command.
Toshihiro Kitagawa [Thu, 21 Apr 2011 01:02:51 +0000 (01:02 +0000)]
Add pcp_promote_node command.
Patch contributed by Gilles Darold.
Tatsuo Ishii [Mon, 11 Apr 2011 22:55:44 +0000 (22:55 +0000)]
Add description about parameters for recovery_1st_stage_command and
recovery_2nd_stage_command. It's shame that the description
had been missing from day 0.
Tatsuo Ishii [Sat, 2 Apr 2011 23:41:51 +0000 (23:41 +0000)]
Remove unsed global variable "weight_master.
Toshihiro Kitagawa [Fri, 1 Apr 2011 10:57:35 +0000 (10:57 +0000)]
Fix hangup with CloseComplete(C) message handling.
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.
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.
Toshihiro Kitagawa [Thu, 17 Mar 2011 02:12:09 +0000 (02:12 +0000)]
Fix warning of parser_set_param().
Toshihiro Kitagawa [Wed, 16 Mar 2011 09:11:25 +0000 (09:11 +0000)]
Forgot to add files.
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*/.
Toshihiro Kitagawa [Mon, 7 Mar 2011 07:00:14 +0000 (07:00 +0000)]
Change REAL_MASTER_NODE_ID to consider PRIMARY_NODE_ID.
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
Toshihiro Kitagawa [Mon, 7 Mar 2011 06:35:27 +0000 (06:35 +0000)]
Fix insert_lock() so that it extracts sequence name directly.
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'));
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.
Tatsuo Ishii [Wed, 23 Feb 2011 07:21:19 +0000 (07:21 +0000)]
Update TODO.
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.
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.
Tatsuo Ishii [Wed, 23 Feb 2011 03:50:01 +0000 (03:50 +0000)]
Fix typo in comment.
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.
Tatsuo Ishii [Mon, 21 Feb 2011 02:16:11 +0000 (02:16 +0000)]
README file for pgpool-walrecrunning.
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".
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.
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.
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.
Toshihiro Kitagawa [Fri, 18 Feb 2011 11:51:10 +0000 (11:51 +0000)]
Remove unnecessary function: load_balance_enabled().
Tatsuo Ishii [Fri, 18 Feb 2011 04:29:10 +0000 (04:29 +0000)]
Fix typo.
Toshihiro Kitagawa [Fri, 18 Feb 2011 03:27:36 +0000 (03:27 +0000)]
Fix typo.
Tatsuo Ishii [Wed, 16 Feb 2011 06:05:49 +0000 (06:05 +0000)]
Add sql/Makefile as a dist file.
Tatsuo Ishii [Wed, 16 Feb 2011 05:51:29 +0000 (05:51 +0000)]
Add sql directories main Makefile.
Tatsuo Ishii [Wed, 16 Feb 2011 05:31:24 +0000 (05:31 +0000)]
Adjust sql sub directory name change.
pgpool-walrecvrunning -> pgpool-walrecrunning
Tatsuo Ishii [Sun, 13 Feb 2011 12:04:44 +0000 (12:04 +0000)]
Update TODO
Tatsuo Ishii [Sun, 13 Feb 2011 11:44:02 +0000 (11:44 +0000)]
Run cvs2cl.pl -t --fsf.
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
Tatsuo Ishii [Thu, 10 Feb 2011 02:08:26 +0000 (02:08 +0000)]
Update copyright years.
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.
Tatsuo Ishii [Mon, 31 Jan 2011 14:47:06 +0000 (14:47 +0000)]
Fix warning of printf() and time_t.
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.
Guillaume Lelarge [Sun, 30 Jan 2011 16:09:40 +0000 (16:09 +0000)]
Add understandable "make" and "make install" end messages.
Tatsuo Ishii [Sun, 30 Jan 2011 00:23:30 +0000 (00:23 +0000)]
Add mention about pgpool-walrecrunning.
Tatsuo Ishii [Sun, 30 Jan 2011 00:17:55 +0000 (00:17 +0000)]
Rename pgpool-walrecvrunning, which was mistakenly named to
pgpool-walrecrunning.
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.
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.
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.
Tatsuo Ishii [Mon, 24 Jan 2011 04:44:45 +0000 (04:44 +0000)]
Update ChangeLog by using cvs2cl.pl -t --fsf.
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.
Toshihiro Kitagawa [Thu, 20 Jan 2011 06:28:42 +0000 (06:28 +0000)]
Remove unnecessary variables: receive_extended_begin.
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.
Tatsuo Ishii [Sun, 16 Jan 2011 10:31:38 +0000 (10:31 +0000)]
Implement relcache expiration control directive "relcache_expire".
Toshihiro Kitagawa [Fri, 14 Jan 2011 06:58:10 +0000 (06:58 +0000)]
Remove parameters from pool_status: recovery_password, system_db_password.
Toshihiro Kitagawa [Fri, 14 Jan 2011 06:42:02 +0000 (06:42 +0000)]
Remove unnecessary variables: replication_enabled, master_slave_enabled.
Tatsuo Ishii [Thu, 13 Jan 2011 06:10:05 +0000 (06:10 +0000)]
Fix update_pool_passwd()'s lack of dirname() usage portability.
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.
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.
Guillaume Lelarge [Thu, 6 Jan 2011 09:31:03 +0000 (09:31 +0000)]
Documentation rewrite by Marc Cousin. Reviewed by me.
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.
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.
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.
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.
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.
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.
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.
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.
Tatsuo Ishii [Tue, 14 Dec 2010 00:53:39 +0000 (00:53 +0000)]
Fix comment in send_password_packet().