1) If relation file has changed due to truncate or vacuum.
During incremental backup the new files will be copied.
There are chances that both the old file and new file
will be present. I'm not sure if cleaning up of the
old file is handled.
When an incremental backup is taken it either copies the file in its entirety if
a file is changed more than 90%, or writes .partial with changed blocks bitmap
and actual data. For the files that are unchanged, it writes 0 bytes and still
creates a .partial file for unchanged files too. This means there is a .partitial
file for all the files that are to be looked up in full backup.
While composing a synthetic backup from incremental backup the pg_combinebackup
tool will only look for those relation files in full(parent) backup which are
having .partial files in the incremental backup. So, if vacuum/truncate happened
between full and incremental backup, then the incremental backup image will not
have a 0-length .partial file for that relation, and so the synthetic backup
that is restored using pg_combinebackup will not have that file as well.