pgpool2.git / summary / log / commit / refs
commit 90cdc46d80d5fa8f3eb03159e783d9901709d56c
Author: Tatsuo Ishii <ishii@postgresql.org>
Date: Sun May 18 00:38:20 2014 +0000
Allow pgpool-recovery to accept pre-3.4 style fewer arguments.
It is nice for pre/post 3.4 mixing environemnt to accept pre-3.4 style
fewer arguments, rather than throwing an error and abort.
src/sql/pgpool-recovery/pgpool-recovery.c | 27 +++++++++++++++------------
1 file changed, 15 insertions(+), 12 deletions(-)
diff --git a/src/sql/pgpool-recovery/pgpool-recovery.c b/src/sql/pgpool-recovery/pgpool-recovery.c
index 7cf7892e2..fad40c191 100644
--- a/src/sql/pgpool-recovery/pgpool-recovery.c
+++ b/src/sql/pgpool-recovery/pgpool-recovery.c
@@ -69,15 +69,6 @@ pgpool_recovery(PG_FUNCTION_ARGS)
PointerGetDatum(PG_GETARG_TEXT_P(1))));
char *remote_data_directory = DatumGetCString(DirectFunctionCall1(textout,
PointerGetDatum(PG_GETARG_TEXT_P(2))));
- char *remote_port;
-
- if (PG_NARGS() < 4)
- {
- elog(ERROR, "pgpool_recovery: the 4th argument remote port is not present");
- }
-
- remote_port = DatumGetCString(DirectFunctionCall1(textout,
- PointerGetDatum(PG_GETARG_TEXT_P(3))));
if (!superuser())
#ifdef ERRCODE_INSUFFICIENT_PRIVILEGE
@@ -88,9 +79,21 @@ pgpool_recovery(PG_FUNCTION_ARGS)
elog(ERROR, "must be superuser to use pgpool_recovery function");
#endif
- snprintf(recovery_script, sizeof(recovery_script), "%s/%s %s %s %s %s",
- DataDir, script, DataDir, remote_host,
- remote_data_directory, remote_port);
+ if (PG_NARGS() >= 4) /* post pgpool-II 3.4 */
+ {
+ char *remote_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);
+ }
+ else
+ {
+ snprintf(recovery_script, sizeof(recovery_script), "%s/%s %s %s %s",
+ DataDir, script, DataDir, remote_host,
+ remote_data_directory);
+ }
+
elog(DEBUG1, "recovery_script: %s", recovery_script);
r = system(recovery_script);
[parent: 63f3db31e8b8]