diff --git a/src/bin/pg_probackup/data.cpp b/src/bin/pg_probackup/data.cpp index 9d589ecfe..36b3d488f 100644 --- a/src/bin/pg_probackup/data.cpp +++ b/src/bin/pg_probackup/data.cpp @@ -114,9 +114,15 @@ uint16 pg_checksum_page(char* page, BlockNumber blkno) * the API of this function. */ save_checksum = phdr->pd_checksum; + uint16 lower = phdr->pd_lower; + phdr->pd_checksum = 0; + phdr->pd_lower &= (COMP_ASIGNMENT - 1); + checksum = pg_checksum_block(page, BLCKSZ); + phdr->pd_checksum = save_checksum; + phdr->pd_lower = lower; /* Mix in the block number to detect transposed pages */ checksum ^= blkno; diff --git a/src/lib/page_compression/PageCompression.cpp b/src/lib/page_compression/PageCompression.cpp index ef5be9520..9718795a3 100644 --- a/src/lib/page_compression/PageCompression.cpp +++ b/src/lib/page_compression/PageCompression.cpp @@ -302,7 +302,7 @@ size_t CalRealWriteSize(char *buffer) } /* check the assignment made during backup */ - if ((phdr->pd_lower & COMP_ASIGNMENT) == 0) { + if (phdr->pd_lower & COMP_ASIGNMENT) { return BLCKSZ; }