Fix incremental backup interaction with XLOG_DBASE_CREATE_FILE_COPY. After XLOG_DBASE_CREATE_FILE_COPY, a correct incremental backup needs to copy in full everything with the database and tablespace OID mentioned in that record; but that record doesn't specifically mention the blocks, or even the relfilenumbers, of the affected relations. As a result, we were failing to copy data that we should have copied.
To fix, enter the DB OID and tablespace OID into the block reference table with relfilenumber 0 and limit block 0; and treat that as a limit block of 0 for every relfilenumber whose DB OID and tablespace OID match. Also, add a test case. Patch by me, reviewed by Noah Misch. Discussion: http://postgr.es/m/CA+Tgmob0xa=ByvGLMdAgkUZyVQE=r4nyyz_vea40fcfedfn...@mail.gmail.com Branch ------ master Details ------- https://git.postgresql.org/pg/commitdiff/d75c4027b6f260f2045b162017567aeeb909b056 Modified Files -------------- src/backend/backup/basebackup_incremental.c | 18 ++++++- src/backend/postmaster/walsummarizer.c | 75 ++++++++++++++++++++++++++ src/bin/pg_combinebackup/meson.build | 1 + src/bin/pg_combinebackup/t/006_db_file_copy.pl | 58 ++++++++++++++++++++ 4 files changed, 151 insertions(+), 1 deletion(-)