@@ -257,11 +257,11 @@ rumVacuumPostingTreeLeaves(RumVacuumState *gvs, OffsetNumber attnum,
257
257
RumPageGetOpaque (page )-> maxoff = newMaxOff ;
258
258
updateItemIndexes (page , attnum , & gvs -> rumstate );
259
259
260
- GenericXLogFinish (state );
261
-
262
260
/* if root is a leaf page, we don't desire further processing */
263
261
if (!isRoot && RumPageGetOpaque (page )-> maxoff < FirstOffsetNumber )
264
262
hasVoidPage = TRUE;
263
+
264
+ GenericXLogFinish (state );
265
265
}
266
266
else
267
267
GenericXLogAbort (state );
@@ -643,14 +643,10 @@ rumbulkdelete(IndexVacuumInfo *info,
643
643
644
644
for (;;)
645
645
{
646
- GenericXLogState * state ;
647
- Page page ;
646
+ Page page = BufferGetPage (buffer );
648
647
Page resPage ;
649
648
uint32 i ;
650
649
651
- state = GenericXLogStart (index );
652
- page = GenericXLogRegisterBuffer (state , buffer , 0 );
653
-
654
650
Assert (!RumPageIsData (page ));
655
651
656
652
resPage = rumVacuumEntryPage (& gvs , buffer , rootOfPostingTree , attnumOfPostingTree , & nRoot );
@@ -659,13 +655,16 @@ rumbulkdelete(IndexVacuumInfo *info,
659
655
660
656
if (resPage )
661
657
{
658
+ GenericXLogState * state ;
659
+
660
+ state = GenericXLogStart (index );
661
+ page = GenericXLogRegisterBuffer (state , buffer , 0 );
662
662
PageRestoreTempPage (resPage , page );
663
663
GenericXLogFinish (state );
664
664
UnlockReleaseBuffer (buffer );
665
665
}
666
666
else
667
667
{
668
- GenericXLogAbort (state );
669
668
UnlockReleaseBuffer (buffer );
670
669
}
671
670
0 commit comments