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]