Allow pg_rewind to use a standby server as the source system. Using a hot standby server as the source has not been possible, because pg_rewind creates a temporary table in the source system, to hold the list of file ranges that need to be fetched. Refactor it to queue up the file fetch requests in pg_rewind's memory, so that the temporary table is no longer needed.
Also update the logic to compute 'minRecoveryPoint' correctly, when the source is a standby server. Reviewed-by: Kyotaro Horiguchi, Soumyadeep Chakraborty Discussion: https://www.postgresql.org/message-id/0c5b3783-af52-3ee5-f8fa-6e794061f70d%40iki.fi Branch ------ master Details ------- https://git.postgresql.org/pg/commitdiff/9c4f5192f69ed16c99e0d079f0b5faebd7bad212 Modified Files -------------- doc/src/sgml/ref/pg_rewind.sgml | 2 +- src/bin/pg_rewind/libpq_source.c | 287 +++++++++++++++++++++--------- src/bin/pg_rewind/pg_rewind.c | 97 ++++++++-- src/bin/pg_rewind/t/003_extrafiles.pl | 26 ++- src/bin/pg_rewind/t/007_standby_source.pl | 174 ++++++++++++++++++ 5 files changed, 481 insertions(+), 105 deletions(-)