diff options
author | Michael Paquier <michael@paquier.xyz> | 2019-10-04 16:18:29 +0900 |
---|---|---|
committer | Michael Paquier <michael@paquier.xyz> | 2019-10-04 16:18:29 +0900 |
commit | 6837632b758e0470a2692d9f8303e8aebd6fbd8f (patch) | |
tree | 062418052c868825e8307c7446024caec5953d0f | |
parent | 6f3823b03560589157d9dbdab623f603ef393d7c (diff) | |
download | postgresql-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.c | 8 |
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)); |