pgpool2.git / summary / log / commit / refs
commit e727783e42e34676d91cb5146486794af209d269
Author: Tatsuo Ishii <ishii at sraoss.co.jp>
Date: Sat Oct 30 11:12:43 2010 +0000
Allow to use %P(old primary node id) to failover/failback script.
This is neccessary for failover script in streaming replication mode.
doc/pgpool-en.html | 17 +++++++++--------
doc/pgpool-ja.html | 4 +++-
main.c | 13 +++++++++----
pgpool.conf.sample | 4 ++++
pgpool.conf.sample-master-slave | 4 ++++
pgpool.conf.sample-replication | 4 ++++
pgpool.conf.sample-stream | 4 ++++
7 files changed, 37 insertions(+), 13 deletions(-)
diff --git a/doc/pgpool-en.html b/doc/pgpool-en.html
index 71d2fe1a9..2cc23c91a 100644
--- a/doc/pgpool-en.html
+++ b/doc/pgpool-en.html
@@ -7,7 +7,7 @@
</head>
<!-- hhmts start -->
-Last modified: Sat Oct 30 12:20:41 JST 2010
+Last modified: Sat Oct 30 20:06:26 JST 2010
<!-- hhmts end -->
<body bgcolor="#ffffff">
@@ -568,12 +568,12 @@ pgpool-II replaces special characters to backend information.
<tr><td>Special character</td><td>Description</td></tr>
<tr><td>%d</td><td>Backend ID of a detached node.</td></tr>
<tr><td>%h</td><td>Hostname of a detached node.</td></tr>
-<tr><td>%H</td><td>Hostname of the new master node.</td></tr>
<tr><td>%p</td><td>Port number of a detached node.</td></tr>
-<tr><td>%D</td><td>Database cluster directory of a detached node.
-</td></tr>
+<tr><td>%D</td><td>Database cluster directory of a detached node.</td></tr>
<tr><td>%M</td><td>Old master node ID.</td></tr>
<tr><td>%m</td><td>New master node ID.</td></tr>
+<tr><td>%H</td><td>Hostname of the new master node.</td></tr>
+<tr><td>%P</td><td>Old primary node ID.</td></tr>
<tr><td>%%</td><td>'%' character</td></tr>
</table>
</center>
@@ -600,10 +600,11 @@ pgpool-II replaces special characters to backend information.
<tr><td>%d</td><td>Backend ID of an attached node.</td></tr>
<tr><td>%h</td><td>Hostname of an attached node.</td></tr>
<tr><td>%p</td><td>Port number of an attached node.</td></tr>
-<tr><td>%D</td><td>Database cluster path of an attached node.
-</td></tr>
-<tr><td>%M</td><td>Old master node</td></tr>
-<tr><td>%m</td><td>New master node</td></tr>
+<tr><td>%D</td><td>Database cluster path of an attached node.</td></tr>
+<tr><td>%M</td><td>Old master node.</td></tr>
+<tr><td>%m</td><td>New master node.</td></tr>
+<tr><td>%H</td><td>Hostname of the new master node.</td></tr>
+<tr><td>%P</td><td>Old primary node ID.</td></tr>
<tr><td>%%</td><td>'%' character</td></tr>
</table>
</center>
diff --git a/doc/pgpool-ja.html b/doc/pgpool-ja.html
index 3b0116284..9e5f271c6 100644
--- a/doc/pgpool-ja.html
+++ b/doc/pgpool-ja.html
@@ -8,7 +8,7 @@
<body>
<!-- hhmts start -->
-Last modified: Sat Oct 30 12:19:52 JST 2010
+Last modified: Sat Oct 30 20:01:11 JST 2010
<!-- hhmts end -->
<body bgcolor="#ffffff">
@@ -577,6 +577,7 @@ max_pool*num_init_children*2 <= (max_connections - superuser_reserved_connection
</td></tr>
<tr><td>%M</td><td>$B8E$$%^%9%?!<$N%N!<%IHV9f(B</td></tr>
<tr><td>%m</td><td>$B?7$7$$%^%9%?!<$N%N!<%IHV9f(B</td></tr>
+<tr><td>%P</td><td>$B8E$$%W%i%$%^%j%N!<%IHV9f(B</td></tr>
<tr><td>%%</td><td>'%'$BJ8;z(B</td></tr>
</table>
</center>
@@ -604,6 +605,7 @@ pgpool $B$,I,MW$J>pJs$KCV$-49$($F%3%^%s%I$r<B9T$7$^$9!#(B
<tr><td>%M</td><td>$B8E$$%^%9%?!<$N%N!<%IHV9f(B</td></tr>
<tr><td>%m</td><td>$B?7$7$$%^%9%?!<$N%N!<%IHV9f(B</td></tr>
<tr><td>%H</td><td>$B?7$7$$%^%9%?!<$N%[%9%HL>(B</td></tr>
+<tr><td>%P</td><td>$B8E$$%W%i%$%^%j%N!<%IHV9f(B</td></tr>
<tr><td>%%</td><td>'%'$BJ8;z(B</td></tr>
</table>
</center>
diff --git a/main.c b/main.c
index 72945a144..0caf1fbc4 100644
--- a/main.c
+++ b/main.c
@@ -2189,21 +2189,21 @@ static int trigger_failover_command(int node, const char *command_line)
char val = *(command_line + 1);
switch (val)
{
- case 'p': /* port */
+ case 'p': /* failed node port */
snprintf(port_buf, sizeof(port_buf), "%d", info->backend_port);
string_append_char(exec_cmd, port_buf);
break;
- case 'D': /* database directory */
+ case 'D': /* failed node database directory */
string_append_char(exec_cmd, info->backend_data_directory);
break;
- case 'd': /* node id */
+ case 'd': /* failed node id */
snprintf(port_buf, sizeof(port_buf), "%d", node);
string_append_char(exec_cmd, port_buf);
break;
- case 'h': /* host name */
+ case 'h': /* failed host name */
string_append_char(exec_cmd, info->backend_hostname);
break;
@@ -2222,6 +2222,11 @@ static int trigger_failover_command(int node, const char *command_line)
string_append_char(exec_cmd, port_buf);
break;
+ case 'P': /* old primary node id */
+ snprintf(port_buf, sizeof(port_buf), "%d", PRIMARY_NODE_ID);
+ string_append_char(exec_cmd, port_buf);
+ break;
+
case '%': /* escape */
string_append_char(exec_cmd, "%");
break;
diff --git a/pgpool.conf.sample b/pgpool.conf.sample
index a4cb8ec1e..e3ac4f0bd 100644
--- a/pgpool.conf.sample
+++ b/pgpool.conf.sample
@@ -147,7 +147,9 @@ health_check_user = 'nobody'
# %p = port number
# %D = database cluster path
# %m = new master node id
+# %H = hostname of the new master node
# %M = old master node id
+# %P = old primary node id
# %% = '%' character
#
failover_command = ''
@@ -158,7 +160,9 @@ failover_command = ''
# %p = port number
# %D = database cluster path
# %m = new master node id
+# %H = hostname of the new master node
# %M = old master node id
+# %P = old primary node id
# %% = '%' character
#
failback_command = ''
diff --git a/pgpool.conf.sample-master-slave b/pgpool.conf.sample-master-slave
index 2aeb8e4aa..8c2c4488a 100644
--- a/pgpool.conf.sample-master-slave
+++ b/pgpool.conf.sample-master-slave
@@ -147,7 +147,9 @@ health_check_user = 'nobody'
# %p = port number
# %D = database cluster path
# %m = new master node id
+# %H = hostname of the new master node
# %M = old master node id
+# %P = old primary node id
# %% = '%' character
#
failover_command = ''
@@ -158,7 +160,9 @@ failover_command = ''
# %p = port number
# %D = database cluster path
# %m = new master node id
+# %H = hostname of the new master node
# %M = old master node id
+# %P = old primary node id
# %% = '%' character
#
failback_command = ''
diff --git a/pgpool.conf.sample-replication b/pgpool.conf.sample-replication
index 89a5f223a..26267a934 100644
--- a/pgpool.conf.sample-replication
+++ b/pgpool.conf.sample-replication
@@ -147,7 +147,9 @@ health_check_user = 'nobody'
# %p = port number
# %D = database cluster path
# %m = new master node id
+# %H = hostname of the new master node
# %M = old master node id
+# %P = old primary node id
# %% = '%' character
#
failover_command = ''
@@ -158,7 +160,9 @@ failover_command = ''
# %p = port number
# %D = database cluster path
# %m = new master node id
+# %H = hostname of the new master node
# %M = old master node id
+# %P = old primary node id
# %% = '%' character
#
failback_command = ''
diff --git a/pgpool.conf.sample-stream b/pgpool.conf.sample-stream
index 94f6d68f2..c746bf68b 100644
--- a/pgpool.conf.sample-stream
+++ b/pgpool.conf.sample-stream
@@ -147,7 +147,9 @@ health_check_user = 'nobody'
# %p = port number
# %D = database cluster path
# %m = new master node id
+# %H = hostname of the new master node
# %M = old master node id
+# %P = old primary node id
# %% = '%' character
#
failover_command = ''
@@ -158,7 +160,9 @@ failover_command = ''
# %p = port number
# %D = database cluster path
# %m = new master node id
+# %H = hostname of the new master node
# %M = old master node id
+# %P = old primary node id
# %% = '%' character
#
failback_command = ''
[parent: 09e960c9823f]