diff options
| author | Heikki Linnakangas <heikki.linnakangas@iki.fi> | 2020-11-04 11:21:09 +0200 |
|---|---|---|
| committer | Heikki Linnakangas <heikki.linnakangas@iki.fi> | 2020-11-04 11:21:09 +0200 |
| commit | eb00f1d4bf96bdba236bcc089f3ae94db9b7c603 (patch) | |
| tree | 1f5b070298ec7d383c1bbf92c8dca94062eb03f1 /src/bin/pg_rewind/pg_rewind.c | |
| parent | ffb4e27e9c5ea87f9fecb7036dfc7cc1f38169b6 (diff) | |
| download | postgresql-eb00f1d4bf96bdba236bcc089f3ae94db9b7c603.tar.gz | |
Refactor pg_rewind for more clear decision making.
Deciding what to do with each file is now a separate step after all the
necessary information has been gathered. It is more clear that way.
Previously, the decision-making was divided between process_source_file()
and process_target_file(), and it was a bit hard to piece together what
the overall rules were.
Reviewed-by: Kyotaro Horiguchi, Soumyadeep Chakraborty
Discussion: https://www.postgresql.org/message-id/0c5b3783-af52-3ee5-f8fa-6e794061f70d%40iki.fi
Diffstat (limited to 'src/bin/pg_rewind/pg_rewind.c')
| -rw-r--r-- | src/bin/pg_rewind/pg_rewind.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/bin/pg_rewind/pg_rewind.c b/src/bin/pg_rewind/pg_rewind.c index 5a7ab764db..4760090d06 100644 --- a/src/bin/pg_rewind/pg_rewind.c +++ b/src/bin/pg_rewind/pg_rewind.c @@ -369,7 +369,7 @@ main(int argc, char **argv) chkpttli); /* - * Build the filemap, by comparing the source and target data directories. + * Collect information about all files in the target and source systems. */ filemap_create(); if (showprogress) @@ -390,8 +390,12 @@ main(int argc, char **argv) pg_log_info("reading WAL in target"); extractPageMap(datadir_target, chkptrec, lastcommontliIndex, ControlFile_target.checkPoint, restore_command); - filemap_finalize(); + /* + * We have collected all information we need from both systems. Decide + * what to do with each file. + */ + decide_file_actions(); if (showprogress) calculate_totals(); |
