@@ -491,11 +491,9 @@ XLogRecordAssemble(RmgrId rmid, uint8 info,
491
491
bool needs_data ;
492
492
XLogRecordBlockHeader bkpb ;
493
493
XLogRecordBlockImageHeader bimg ;
494
- XLogRecordBlockCompressHeader cbimg ;
494
+ XLogRecordBlockCompressHeader cbimg = { 0 } ;
495
495
bool samerel ;
496
496
bool is_compressed = false;
497
- uint16 hole_length ;
498
- uint16 hole_offset ;
499
497
500
498
if (!regbuf -> in_use )
501
499
continue ;
@@ -558,21 +556,21 @@ XLogRecordAssemble(RmgrId rmid, uint8 info,
558
556
upper > lower &&
559
557
upper <= BLCKSZ )
560
558
{
561
- hole_offset = lower ;
562
- hole_length = upper - lower ;
559
+ bimg . hole_offset = lower ;
560
+ cbimg . hole_length = upper - lower ;
563
561
}
564
562
else
565
563
{
566
564
/* No "hole" to compress out */
567
- hole_offset = 0 ;
568
- hole_length = 0 ;
565
+ bimg . hole_offset = 0 ;
566
+ cbimg . hole_length = 0 ;
569
567
}
570
568
}
571
569
else
572
570
{
573
571
/* Not a standard page header, don't try to eliminate "hole" */
574
- hole_offset = 0 ;
575
- hole_length = 0 ;
572
+ bimg . hole_offset = 0 ;
573
+ cbimg . hole_length = 0 ;
576
574
}
577
575
578
576
/*
@@ -581,7 +579,8 @@ XLogRecordAssemble(RmgrId rmid, uint8 info,
581
579
if (wal_compression )
582
580
{
583
581
is_compressed =
584
- XLogCompressBackupBlock (page , hole_offset , hole_length ,
582
+ XLogCompressBackupBlock (page , bimg .hole_offset ,
583
+ cbimg .hole_length ,
585
584
regbuf -> compressed_page ,
586
585
& compressed_len );
587
586
}
@@ -595,25 +594,21 @@ XLogRecordAssemble(RmgrId rmid, uint8 info,
595
594
rdt_datas_last -> next = & regbuf -> bkp_rdatas [0 ];
596
595
rdt_datas_last = rdt_datas_last -> next ;
597
596
598
- bimg .bimg_info = (hole_length == 0 ) ? 0 : BKPIMAGE_HAS_HOLE ;
597
+ bimg .bimg_info = (cbimg . hole_length == 0 ) ? 0 : BKPIMAGE_HAS_HOLE ;
599
598
600
599
if (is_compressed )
601
600
{
602
601
bimg .length = compressed_len ;
603
- bimg .hole_offset = hole_offset ;
604
602
bimg .bimg_info |= BKPIMAGE_IS_COMPRESSED ;
605
- if (hole_length != 0 )
606
- cbimg .hole_length = hole_length ;
607
603
608
604
rdt_datas_last -> data = regbuf -> compressed_page ;
609
605
rdt_datas_last -> len = compressed_len ;
610
606
}
611
607
else
612
608
{
613
- bimg .length = BLCKSZ - hole_length ;
614
- bimg .hole_offset = hole_offset ;
609
+ bimg .length = BLCKSZ - cbimg .hole_length ;
615
610
616
- if (hole_length == 0 )
611
+ if (cbimg . hole_length == 0 )
617
612
{
618
613
rdt_datas_last -> data = page ;
619
614
rdt_datas_last -> len = BLCKSZ ;
@@ -622,13 +617,15 @@ XLogRecordAssemble(RmgrId rmid, uint8 info,
622
617
{
623
618
/* must skip the hole */
624
619
rdt_datas_last -> data = page ;
625
- rdt_datas_last -> len = hole_offset ;
620
+ rdt_datas_last -> len = bimg . hole_offset ;
626
621
627
622
rdt_datas_last -> next = & regbuf -> bkp_rdatas [1 ];
628
623
rdt_datas_last = rdt_datas_last -> next ;
629
624
630
- rdt_datas_last -> data = page + (hole_offset + hole_length );
631
- rdt_datas_last -> len = BLCKSZ - (hole_offset + hole_length );
625
+ rdt_datas_last -> data =
626
+ page + (bimg .hole_offset + cbimg .hole_length );
627
+ rdt_datas_last -> len =
628
+ BLCKSZ - (bimg .hole_offset + cbimg .hole_length );
632
629
}
633
630
}
634
631
@@ -665,7 +662,7 @@ XLogRecordAssemble(RmgrId rmid, uint8 info,
665
662
{
666
663
memcpy (scratch , & bimg , SizeOfXLogRecordBlockImageHeader );
667
664
scratch += SizeOfXLogRecordBlockImageHeader ;
668
- if (hole_length != 0 && is_compressed )
665
+ if (cbimg . hole_length != 0 && is_compressed )
669
666
{
670
667
memcpy (scratch , & cbimg ,
671
668
SizeOfXLogRecordBlockCompressHeader );
0 commit comments