aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Paquier <michael@paquier.xyz>2019-10-04 16:18:29 +0900
committerMichael Paquier <michael@paquier.xyz>2019-10-04 16:18:29 +0900
commit6837632b758e0470a2692d9f8303e8aebd6fbd8f (patch)
tree062418052c868825e8307c7446024caec5953d0f
parent6f3823b03560589157d9dbdab623f603ef393d7c (diff)
downloadpostgresql-6837632b758e0470a2692d9f8303e8aebd6fbd8f.tar.gz
postgresql-6837632b758e0470a2692d9f8303e8aebd6fbd8f.zip
Fix issues in pg_rewind with --no-ensure-shutdown/--write-recovery-conf
This fixes two issues with recent features added in pg_rewind: - --dry-run should do nothing on the target directory, but 927474c forgot to consider that for --write-recovery-conf. - --no-ensure-shutdown was not actually working. There is no test coverage for this option yet, but a subsequent patch will add that. Author: Alexey Kondratov Discussion: https://postgr.es/m/7ca88204-3e0b-2f4c-c8af-acadc4b266e5@postgrespro.ru
-rw-r--r--src/bin/pg_rewind/pg_rewind.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/bin/pg_rewind/pg_rewind.c b/src/bin/pg_rewind/pg_rewind.c
index 2eb18a92c62..fe1468b771a 100644
--- a/src/bin/pg_rewind/pg_rewind.c
+++ b/src/bin/pg_rewind/pg_rewind.c
@@ -101,7 +101,7 @@ main(int argc, char **argv)
{"write-recovery-conf", no_argument, NULL, 'R'},
{"source-pgdata", required_argument, NULL, 1},
{"source-server", required_argument, NULL, 2},
- {"no-ensure-shutdown", no_argument, NULL, 44},
+ {"no-ensure-shutdown", no_argument, NULL, 4},
{"version", no_argument, NULL, 'V'},
{"dry-run", no_argument, NULL, 'n'},
{"no-sync", no_argument, NULL, 'N'},
@@ -180,9 +180,11 @@ main(int argc, char **argv)
case 1: /* --source-pgdata */
datadir_source = pg_strdup(optarg);
break;
+
case 2: /* --source-server */
connstr_source = pg_strdup(optarg);
break;
+
case 4:
no_ensure_shutdown = true;
break;
@@ -341,7 +343,7 @@ main(int argc, char **argv)
if (!rewind_needed)
{
pg_log_info("no rewind required");
- if (writerecoveryconf)
+ if (writerecoveryconf && !dry_run)
WriteRecoveryConfig(conn, datadir_target,
GenerateRecoveryConfig(conn, NULL));
exit(0);
@@ -442,7 +444,7 @@ main(int argc, char **argv)
pg_log_info("syncing target data directory");
syncTargetDirectory();
- if (writerecoveryconf)
+ if (writerecoveryconf && !dry_run)
WriteRecoveryConfig(conn, datadir_target,
GenerateRecoveryConfig(conn, NULL));