Now able to use "recovery node port number" in pgpool_recovery function.
Also the following options is added in failover_command/failback_command/follow_master_command.
- %N = old primary node hostname
- %S = old primary node port number
-->
<entry>ๆฐใใใในใฟใผใใผใใฎใใผใฟใใผในใฏใฉในใฟใใน</entry>
</row>
+ <row>
+ <entry>%N</entry>
+<!--
+ <entry>Hostname of the old primary node</entry>
+-->
+ <entry>ๅคใใใฉใคใใชใใผใใฎใในใๅ(<productname>Pgpool-II</productname> 4.1ไปฅ้)</entry>
+ </row>
+ <row>
+ <entry>%S</entry>
+<!--
+ <entry>Port number of the old primary node</entry>
+-->
+ <entry>ๅคใใใฉใคใใชใใผใใฎใใผใ็ชๅท(<productname>Pgpool-II</productname> 4.1ไปฅ้)</entry>
+ </row>
<row>
<entry>%%</entry>
<!--
-->
<entry>ๆฐใใใในใฟใผใใผใใฎใใผใฟใใผในใฏใฉในใฟใใน</entry>
</row>
+ <row>
+ <entry>%N</entry>
+<!--
+ <entry>Hostname of the old primary node</entry>
+-->
+ <entry>ๅคใใใฉใคใใชใใผใใฎใในใๅ(<productname>Pgpool-II</productname> 4.1ไปฅ้)</entry>
+ </row>
+ <row>
+ <entry>%S</entry>
+<!--
+ <entry>Port number of the old primary node</entry>
+-->
+ <entry>ๅคใใใฉใคใใชใใผใใฎใใผใ็ชๅท(<productname>Pgpool-II</productname> 4.1ไปฅ้)</entry>
+ </row>
<row>
<entry>%%</entry>
<!--
-->
<entry>ๆฐใใใใฉใคใใชใใผใใฎใใผใฟใใผในใฏใฉในใฟใใน</entry>
</row>
+ <row>
+ <entry>%N</entry>
+<!--
+ <entry>Hostname of the old primary node</entry>
+-->
+ <entry>ๅคใใใฉใคใใชใใผใใฎใในใๅ(<productname>Pgpool-II</productname> 4.1ไปฅ้)</entry>
+ </row>
+ <row>
+ <entry>%S</entry>
+<!--
+ <entry>Port number of the old primary node</entry>
+-->
+ <entry>ๅคใใใฉใคใใชใใผใใฎใใผใ็ชๅท(<productname>Pgpool-II</productname> 4.1ไปฅ้)</entry>
+ </row>
<row>
<entry>%%</entry>
<!--
ใชใซใใชใใใใใผใใฎ็ชๅท๏ผ<productname>Pgpool-II</productname> 4.0ไปฅ้๏ผ
</para>
</listitem>
+ <listitem>
+ <para>
+<!--
+ Port number to be recovered (<productname>Pgpool-II</productname> 4.1 or after)
+-->
+ใชใซใใชใใใใใผใใฎใใผใ็ชๅท๏ผ<productname>Pgpool-II</productname> 4.1ไปฅ้๏ผ
+ </para>
+ </listitem>
</itemizedlist>
<note>
</row>
<row>
<entry>%m</entry>
- <entry> New master node ID</entry>
+ <entry>New master node ID</entry>
</row>
<row>
<entry>%H</entry>
</row>
<row>
<entry>%P</entry>
- <entry> Old primary node ID</entry>
+ <entry>Old primary node ID</entry>
</row>
<row>
<entry>%r</entry>
<entry>%R</entry>
<entry>Database cluster directory of the new master node</entry>
</row>
+ <row>
+ <entry>%N</entry>
+ <entry>Hostname of the old primary node (<productname>Pgpool-II</productname> 4.1 or after)</entry>
+ </row>
+ <row>
+ <entry>%S</entry>
+ <entry>Port number of the old primary node (<productname>Pgpool-II</productname> 4.1 or after)</entry>
+ </row>
<row>
<entry>%%</entry>
<entry> '%' character</entry>
<entry>%R</entry>
<entry>Database cluster directory of the new master node</entry>
</row>
+ <row>
+ <entry>%N</entry>
+ <entry>Hostname of the old primary node (<productname>Pgpool-II</productname> 4.1 or after)</entry>
+ </row>
+ <row>
+ <entry>%S</entry>
+ <entry>Port number of the old primary node (<productname>Pgpool-II</productname> 4.1 or after)</entry>
+ </row>
<row>
<entry>%%</entry>
<entry> '%' character</entry>
<entry>%R</entry>
<entry>Database cluster directory of the new primary node</entry>
</row>
+ <row>
+ <entry>%N</entry>
+ <entry>Hostname of the old primary node (<productname>Pgpool-II</productname> 4.1 or after)</entry>
+ </row>
+ <row>
+ <entry>%S</entry>
+ <entry>Port number of the old primary node (<productname>Pgpool-II</productname> 4.1 or after)</entry>
+ </row>
<row>
<entry>%%</entry>
<entry> '%' character</entry>
Node number to be recovered (<productname>Pgpool-II</productname> 4.0 or after)
</para>
</listitem>
+ <listitem>
+ <para>
+ Port number to be recovered (<productname>Pgpool-II</productname> 4.1 or after)
+ </para>
+ </listitem>
</itemizedlist>
<note>
sql/pgpool-recovery/pgpool-recovery.c \
sql/pgpool-recovery/pgpool-recovery.sql.in \
sql/pgpool-recovery/uninstall_pgpool-recovery.sql \
+ sql/pgpool-recovery/pgpool_recovery--1.3.sql \
+ sql/pgpool-recovery/pgpool_recovery--1.2--1.3.sql \
sql/pgpool-recovery/pgpool_recovery--1.2.sql \
sql/pgpool-recovery/pgpool_recovery--1.1--1.2.sql \
sql/pgpool-recovery/pgpool_recovery--1.1.sql \
sql/pgpool-recovery/pgpool-recovery.c \
sql/pgpool-recovery/pgpool-recovery.sql.in \
sql/pgpool-recovery/uninstall_pgpool-recovery.sql \
+ sql/pgpool-recovery/pgpool_recovery--1.3.sql \
+ sql/pgpool-recovery/pgpool_recovery--1.2--1.3.sql \
sql/pgpool-recovery/pgpool_recovery--1.2.sql \
sql/pgpool-recovery/pgpool_recovery--1.1--1.2.sql \
sql/pgpool-recovery/pgpool_recovery--1.1.sql \
char buf[2];
BackendInfo *info;
BackendInfo *newmaster;
+ BackendInfo *oldprimary;
if (command_line == NULL || (strlen(command_line) == 0))
return 0;
string_append_char(exec_cmd, port_buf);
break;
+ case 'N': /* old primary host name */
+ oldprimary = pool_get_node_info(old_primary);
+ string_append_char(exec_cmd, oldprimary->backend_hostname);
+ break;
+
+ case 'S': /* old primary port */
+ oldprimary = pool_get_node_info(old_primary);
+ snprintf(port_buf, sizeof(port_buf), "%d", oldprimary->backend_port);
+ string_append_char(exec_cmd, port_buf);
+ break;
+
case '%': /* escape */
string_append_char(exec_cmd, "%");
break;
*/
snprintf(recovery_command,
sizeof(recovery_command),
- "SELECT pgpool_recovery('%s', '%s', '%s', '%d', %d)",
+ "SELECT pgpool_recovery('%s', '%s', '%s', '%d', %d, '%d')",
script,
hostname,
recovery_backend->backend_data_directory,
master_backend->backend_port,
- recovery_node
+ recovery_node,
+ recovery_backend->backend_port
);
ereport(LOG,
%{pghome}/share/extension/pgpool_recovery--1.1.sql
%{pghome}/share/extension/pgpool_recovery--1.2.sql
%{pghome}/share/extension/pgpool_recovery--1.1--1.2.sql
+%{pghome}/share/extension/pgpool_recovery--1.3.sql
+%{pghome}/share/extension/pgpool_recovery--1.2--1.3.sql
%{pghome}/share/extension/pgpool_recovery.control
%{pghome}/lib/pgpool-recovery.so
%{pghome}/share/extension/pgpool_adm--1.0.sql
# whether to serialize accept() call to avoid thundering herd problem
# (change requires restart)
reserved_connections = 0
- # Number of reserved connections.
- # Pgpool-II does not accept connections if over
- # num_init_chidlren - reserved_connections.
+ # Number of reserved connections.
+ # Pgpool-II does not accept connections if over
+ # num_init_chidlren - reserved_connections.
# - pgpool Communication Manager Connection Settings -
backend_flag0 = 'ALLOW_TO_FAILOVER'
# Controls various backend behavior
# ALLOW_TO_FAILOVER, DISALLOW_TO_FAILOVER
- # or ALWAYS_MASTER
+ # or ALWAYS_MASTER
backend_application_name0 = 'server0'
# walsender's application_name, used for "show pool_nodes" command
#backend_hostname1 = 'host2'
follow_master_command = ''
# Executes this command after master failover
# Special values:
- # %d = node id
- # %h = host name
- # %p = port number
- # %D = database cluster path
+ # %d = failed node id
+ # %h = failed node host name
+ # %p = failed node port number
+ # %D = failed node database cluster path
# %m = new master node id
- # %H = hostname of the new master node
+ # %H = new master node hostname
# %M = old master node id
# %P = old primary node id
# %r = new master port number
# %R = new master database cluster path
+ # %N = old primary node hostname
+ # %S = old primary node port number
# %% = '%' character
#------------------------------------------------------------------------------
failover_command = ''
# Executes this command at failover
# Special values:
- # %d = node id
- # %h = host name
- # %p = port number
- # %D = database cluster path
+ # %d = failed node id
+ # %h = failed node host name
+ # %p = failed node port number
+ # %D = failed node database cluster path
# %m = new master node id
- # %H = hostname of the new master node
+ # %H = new master node hostname
# %M = old master node id
# %P = old primary node id
# %r = new master port number
# %R = new master database cluster path
+ # %N = old primary node hostname
+ # %S = old primary node port number
# %% = '%' character
failback_command = ''
# Executes this command at failback.
# Special values:
- # %d = node id
- # %h = host name
- # %p = port number
- # %D = database cluster path
+ # %d = failed node id
+ # %h = failed node host name
+ # %p = failed node port number
+ # %D = failed node database cluster path
# %m = new master node id
- # %H = hostname of the new master node
+ # %H = new master node hostname
# %M = old master node id
# %P = old primary node id
# %r = new master port number
# %R = new master database cluster path
+ # %N = old primary node hostname
+ # %S = old primary node port number
# %% = '%' character
failover_on_backend_error = on
# Default is off.
# (change requires restart)
-relcache_query_target = master # Target node to send relcache queries. Default is master (primary) node.
- # If load_balance_node is specified, queries will be sent to load balance node.
+relcache_query_target = master # Target node to send relcache queries. Default is master (primary) node.
+ # If load_balance_node is specified, queries will be sent to load balance node.
#------------------------------------------------------------------------------
# IN MEMORY QUERY MEMORY CACHE
#------------------------------------------------------------------------------
follow_master_command = ''
# Executes this command after master failover
# Special values:
- # %d = node id
- # %h = host name
- # %p = port number
- # %D = database cluster path
+ # %d = failed node id
+ # %h = failed node host name
+ # %p = failed node port number
+ # %D = failed node database cluster path
# %m = new master node id
- # %H = hostname of the new master node
+ # %H = new master node hostname
# %M = old master node id
# %P = old primary node id
# %r = new master port number
# %R = new master database cluster path
+ # %N = old primary node hostname
+ # %S = old primary node port number
# %% = '%' character
#------------------------------------------------------------------------------
failover_command = ''
# Executes this command at failover
# Special values:
- # %d = node id
- # %h = host name
- # %p = port number
- # %D = database cluster path
+ # %d = failed node id
+ # %h = failed node host name
+ # %p = failed node port number
+ # %D = failed node database cluster path
# %m = new master node id
- # %H = hostname of the new master node
+ # %H = new master node hostname
# %M = old master node id
# %P = old primary node id
# %r = new master port number
# %R = new master database cluster path
+ # %N = old primary node hostname
+ # %S = old primary node port number
# %% = '%' character
failback_command = ''
# Executes this command at failback.
# Special values:
- # %d = node id
- # %h = host name
- # %p = port number
- # %D = database cluster path
+ # %d = failed node id
+ # %h = failed node host name
+ # %p = failed node port number
+ # %D = failed node database cluster path
# %m = new master node id
- # %H = hostname of the new master node
+ # %H = new master node hostname
# %M = old master node id
# %P = old primary node id
# %r = new master port number
# %R = new master database cluster path
+ # %N = old primary node hostname
+ # %S = old primary node port number
# %% = '%' character
failover_on_backend_error = on
# Default is off.
# (change requires restart)
-relcache_query_target = master # Target node to send relcache queries. Default is master (primary) node.
- # If load_balance_node is specified, queries will be sent to load balance node.
+relcache_query_target = master # Target node to send relcache queries. Default is master (primary) node.
+ # If load_balance_node is specified, queries will be sent to load balance node.
#------------------------------------------------------------------------------
# IN MEMORY QUERY MEMORY CACHE
#------------------------------------------------------------------------------
# whether to serialize accept() call to avoid thundering herd problem
# (change requires restart)
reserved_connections = 0
- # Number of reserved connections.
- # Pgpool-II does not accept connections if over
- # num_init_chidlren - reserved_connections.
+ # Number of reserved connections.
+ # Pgpool-II does not accept connections if over
+ # num_init_chidlren - reserved_connections.
# - pgpool Communication Manager Connection Settings -
follow_master_command = ''
# Executes this command after master failover
# Special values:
- # %d = node id
- # %h = host name
- # %p = port number
- # %D = database cluster path
+ # %d = failed node id
+ # %h = failed node host name
+ # %p = failed node port number
+ # %D = failed node database cluster path
# %m = new master node id
- # %H = hostname of the new master node
+ # %H = new master node hostname
# %M = old master node id
# %P = old primary node id
# %r = new master port number
# %R = new master database cluster path
+ # %N = old primary node hostname
+ # %S = old primary node port number
# %% = '%' character
#------------------------------------------------------------------------------
failover_command = ''
# Executes this command at failover
# Special values:
- # %d = node id
- # %h = host name
- # %p = port number
- # %D = database cluster path
+ # %d = failed node id
+ # %h = failed node host name
+ # %p = failed node port number
+ # %D = failed node database cluster path
# %m = new master node id
- # %H = hostname of the new master node
+ # %H = new master node hostname
# %M = old master node id
# %P = old primary node id
# %r = new master port number
# %R = new master database cluster path
-
+ # %N = old primary node hostname
+ # %S = old primary node port number
# %% = '%' character
failback_command = ''
# Executes this command at failback.
# Special values:
- # %d = node id
- # %h = host name
- # %p = port number
- # %D = database cluster path
+ # %d = failed node id
+ # %h = failed node host name
+ # %p = failed node port number
+ # %D = failed node database cluster path
# %m = new master node id
- # %H = hostname of the new master node
+ # %H = new master node hostname
# %M = old master node id
# %P = old primary node id
# %r = new master port number
# %R = new master database cluster path
+ # %N = old primary node hostname
+ # %S = old primary node port number
# %% = '%' character
failover_on_backend_error = on
# Default is off.
# (change requires restart)
-relcache_query_target = master # Target node to send relcache queries. Default is master (primary) node.
- # If load_balance_node is specified, queries will be sent to load balance node.
+relcache_query_target = master # Target node to send relcache queries. Default is master (primary) node.
+ # If load_balance_node is specified, queries will be sent to load balance node.
#------------------------------------------------------------------------------
# IN MEMORY QUERY MEMORY CACHE
#------------------------------------------------------------------------------
# whether to serialize accept() call to avoid thundering herd problem
# (change requires restart)
reserved_connections = 0
- # Number of reserved connections.
- # Pgpool-II does not accept connections if over
- # num_init_chidlren - reserved_connections.
+ # Number of reserved connections.
+ # Pgpool-II does not accept connections if over
+ # num_init_chidlren - reserved_connections.
# - pgpool Communication Manager Connection Settings -
follow_master_command = ''
# Executes this command after master failover
# Special values:
- # %d = node id
- # %h = host name
- # %p = port number
- # %D = database cluster path
+ # %d = failed node id
+ # %h = failed node host name
+ # %p = failed node port number
+ # %D = failed node database cluster path
# %m = new master node id
- # %H = hostname of the new master node
+ # %H = new master node hostname
# %M = old master node id
# %P = old primary node id
# %r = new master port number
# %R = new master database cluster path
+ # %N = old primary node hostname
+ # %S = old primary node port number
# %% = '%' character
#------------------------------------------------------------------------------
failover_command = ''
# Executes this command at failover
# Special values:
- # %d = node id
- # %h = host name
- # %p = port number
- # %D = database cluster path
+ # %d = failed node id
+ # %h = failed node host name
+ # %p = failed node port number
+ # %D = failed node database cluster path
# %m = new master node id
- # %H = hostname of the new master node
+ # %H = new master node hostname
# %M = old master node id
# %P = old primary node id
# %r = new master port number
# %R = new master database cluster path
+ # %N = old primary node hostname
+ # %S = old primary node port number
# %% = '%' character
failback_command = ''
# Executes this command at failback.
# Special values:
- # %d = node id
- # %h = host name
- # %p = port number
- # %D = database cluster path
+ # %d = failed node id
+ # %h = failed node host name
+ # %p = failed node port number
+ # %D = failed node database cluster path
# %m = new master node id
- # %H = hostname of the new master node
+ # %H = new master node hostname
# %M = old master node id
# %P = old primary node id
# %r = new master port number
# %R = new master database cluster path
+ # %N = old primary node hostname
+ # %S = old primary node port number
# %% = '%' character
failover_on_backend_error = on
# Default is off.
# (change requires restart)
-relcache_query_target = master # Target node to send relcache queries. Default is master (primary) node.
- # If load_balance_node is specified, queries will be sent to load balance node.
+relcache_query_target = master # Target node to send relcache queries. Default is master (primary) node.
+ # If load_balance_node is specified, queries will be sent to load balance node.
#------------------------------------------------------------------------------
# IN MEMORY QUERY MEMORY CACHE
#------------------------------------------------------------------------------
# /var/run/postgresql
# (change requires restart)
reserved_connections = 0
- # Number of reserved connections.
- # Pgpool-II does not accept connections if over
- # num_init_chidlren - reserved_connections.
+ # Number of reserved connections.
+ # Pgpool-II does not accept connections if over
+ # num_init_chidlren - reserved_connections.
# - pgpool Communication Manager Connection Settings -
follow_master_command = ''
# Executes this command after master failover
# Special values:
- # %d = node id
- # %h = host name
- # %p = port number
- # %D = database cluster path
+ # %d = failed node id
+ # %h = failed node host name
+ # %p = failed node port number
+ # %D = failed node database cluster path
# %m = new master node id
- # %H = hostname of the new master node
+ # %H = new master node hostname
# %M = old master node id
# %P = old primary node id
# %r = new master port number
# %R = new master database cluster path
+ # %N = old primary node hostname
+ # %S = old primary node port number
# %% = '%' character
#------------------------------------------------------------------------------
failover_command = ''
# Executes this command at failover
# Special values:
- # %d = node id
- # %h = host name
- # %p = port number
- # %D = database cluster path
+ # %d = failed node id
+ # %h = failed node host name
+ # %p = failed node port number
+ # %D = failed node database cluster path
# %m = new master node id
- # %H = hostname of the new master node
+ # %H = new master node hostname
# %M = old master node id
# %P = old primary node id
# %r = new master port number
# %R = new master database cluster path
+ # %N = old primary node hostname
+ # %S = old primary node port number
# %% = '%' character
failback_command = ''
# Executes this command at failback.
# Special values:
- # %d = node id
- # %h = host name
- # %p = port number
- # %D = database cluster path
+ # %d = failed node id
+ # %h = failed node host name
+ # %p = failed node port number
+ # %D = failed node database cluster path
# %m = new master node id
- # %H = hostname of the new master node
+ # %H = new master node hostname
# %M = old master node id
# %P = old primary node id
# %r = new master port number
# %R = new master database cluster path
+ # %N = old primary node hostname
+ # %S = old primary node port number
# %% = '%' character
failover_on_backend_error = on
# Default is off.
# (change requires restart)
-relcache_query_target = master # Target node to send relcache queries. Default is master (primary) node.
- # If load_balance_node is specified, queries will be sent to load balance node.
+relcache_query_target = master # Target node to send relcache queries. Default is master (primary) node.
+ # If load_balance_node is specified, queries will be sent to load balance node.
#------------------------------------------------------------------------------
# IN MEMORY QUERY MEMORY CACHE
#------------------------------------------------------------------------------
DATA = uninstall_pgpool-recovery.sql
EXTENSION = pgpool_recovery
-DATA = pgpool_recovery--1.1.sql pgpool_recovery--1.2.sql pgpool_recovery--1.1--1.2.sql
+DATA = pgpool_recovery--1.1.sql pgpool_recovery--1.2.sql pgpool_recovery--1.1--1.2.sql pgpool_recovery--1.3.sql pgpool_recovery--1.2--1.3.sql
# if you are using PostgreSQL 8.0 or later,
# using pg_config is recommended.
elog(ERROR, "must be superuser to use pgpool_recovery function");
#endif
- if (PG_NARGS() >= 5) /* Pgpool-II 4.0 or later */
+ if (PG_NARGS() >= 6) /* Pgpool-II 4.1 or later */
{
+ char *primary_port = DatumGetCString(DirectFunctionCall1(textout,
+ PointerGetDatum(PG_GETARG_TEXT_P(3))));
+ int remote_node = PG_GETARG_INT32(4);
+
char *remote_port = DatumGetCString(DirectFunctionCall1(textout,
+ PointerGetDatum(PG_GETARG_TEXT_P(5))));
+
+ snprintf(recovery_script, sizeof(recovery_script), "\"%s/%s\" \"%s\" \"%s\" \"%s\" \"%s\" %d \"%s\"",
+ DataDir, script, DataDir, remote_host,
+ remote_data_directory, primary_port, remote_node, remote_port);
+ }
+ else if (PG_NARGS() >= 5) /* Pgpool-II 4.0 */
+ {
+ char *primary_port = DatumGetCString(DirectFunctionCall1(textout,
PointerGetDatum(PG_GETARG_TEXT_P(3))));
- int recovery_node = PG_GETARG_INT32(4);
+ int remote_node = PG_GETARG_INT32(4);
snprintf(recovery_script, sizeof(recovery_script), "\"%s/%s\" \"%s\" \"%s\" \"%s\" \"%s\" %d",
DataDir, script, DataDir, remote_host,
- remote_data_directory, remote_port, recovery_node);
+ remote_data_directory, primary_port, remote_node);
}
else if (PG_NARGS() >= 4) /* Pgpool-II 3.4 - 3.7 */
{
- char *remote_port = DatumGetCString(DirectFunctionCall1(textout,
+ char *primary_port = DatumGetCString(DirectFunctionCall1(textout,
PointerGetDatum(PG_GETARG_TEXT_P(3))));
snprintf(recovery_script, sizeof(recovery_script), "\"%s/%s\" \"%s\" \"%s\" \"%s\" \"%s\"",
DataDir, script, DataDir, remote_host,
- remote_data_directory, remote_port);
+ remote_data_directory, primary_port);
}
else
{
-- complain if script is sourced in psql, rather than via ALTER EXTENSION
\echo Use "ALTER EXTENSION pgpool_recovery UPDATE TO '1.2'" to load this file. \quit
-create FUNCTION pgpool_recovery(script_name text, remote_host text, remote_data_directory text, remote_port text, recovery_node integer)
+create FUNCTION pgpool_recovery(script_name text, remote_host text, remote_data_directory text, primary_port text, remote_node integer)
RETURNS bool
AS 'MODULE_PATHNAME', 'pgpool_recovery'
LANGUAGE C STRICT;
--- /dev/null
+/* contrib/pgpool_recovery/pgpool_recovery--1.2--1.3.sql */
+
+-- complain if script is sourced in psql, rather than via ALTER EXTENSION
+\echo Use "ALTER EXTENSION pgpool_recovery UPDATE TO '1.3'" to load this file. \quit
+
+create FUNCTION pgpool_recovery(script_name text, remote_host text, remote_data_directory text, primary_port text, remote_node integer, remote_port text)
+RETURNS bool
+AS 'MODULE_PATHNAME', 'pgpool_recovery'
+LANGUAGE C STRICT;
IN remote_host text,
IN remote_data_directory text,
IN remote_port text,
- IN recovery_node integer)
+ IN recovery_node integer)
RETURNS bool
AS 'MODULE_PATHNAME', 'pgpool_recovery'
LANGUAGE C STRICT;
--- /dev/null
+-- complain if script is sourced in psql, rather than via CREATE EXTENSION
+\echo Use "CREATE EXTENSION pgpool_recovery" to load this file. \quit
+
+CREATE FUNCTION pgpool_recovery(IN script_name text,
+ IN remote_host text,
+ IN remote_data_directory text,
+ IN primary_port text,
+ IN remote_node integer,
+ IN remote_port text)
+RETURNS bool
+AS 'MODULE_PATHNAME', 'pgpool_recovery'
+LANGUAGE C STRICT;
+
+CREATE FUNCTION pgpool_recovery(IN script_name text,
+ IN remote_host text,
+ IN remote_data_directory text,
+ IN primary_port text,
+ IN remote_node integer)
+RETURNS bool
+AS 'MODULE_PATHNAME', 'pgpool_recovery'
+LANGUAGE C STRICT;
+
+CREATE FUNCTION pgpool_recovery(IN script_name text,
+ IN remote_host text,
+ IN remote_data_directory text,
+ IN primary_port text)
+RETURNS bool
+AS 'MODULE_PATHNAME', 'pgpool_recovery'
+LANGUAGE C STRICT;
+
+CREATE FUNCTION pgpool_recovery(IN script_name text,
+ IN remote_host text,
+ IN remote_data_directory text)
+RETURNS bool
+AS 'MODULE_PATHNAME', 'pgpool_recovery'
+LANGUAGE C STRICT;
+
+CREATE FUNCTION pgpool_remote_start(IN remote_host text, IN remote_data_directory text)
+RETURNS bool
+AS 'MODULE_PATHNAME', 'pgpool_remote_start'
+LANGUAGE C STRICT;
+
+CREATE OR REPLACE FUNCTION pgpool_pgctl(IN action text, IN stop_mode text)
+RETURNS bool
+AS '$libdir/pgpool-recovery', 'pgpool_pgctl'
+LANGUAGE C STRICT;
+
+CREATE OR REPLACE FUNCTION pgpool_switch_xlog(IN arcive_dir text)
+RETURNS text
+AS 'MODULE_PATHNAME', 'pgpool_switch_xlog'
+LANGUAGE C STRICT;
# pgpool-recovery extension
-comment = 'recovery functions for pgpool-II for V4.0 or later'
-default_version = '1.2'
+comment = 'recovery functions for pgpool-II for V4.1 or later'
+default_version = '1.3'
module_pathname = '$libdir/pgpool-recovery'
relocatable = true