Skip to content

Commit 250ae46

Browse files
author
Artur Zakirov
committed
Fix vacuum
1 parent e69073e commit 250ae46

File tree

1 file changed

+7
-8
lines changed

1 file changed

+7
-8
lines changed

rumvacuum.c

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -257,11 +257,11 @@ rumVacuumPostingTreeLeaves(RumVacuumState *gvs, OffsetNumber attnum,
257257
RumPageGetOpaque(page)->maxoff = newMaxOff;
258258
updateItemIndexes(page, attnum, &gvs->rumstate);
259259

260-
GenericXLogFinish(state);
261-
262260
/* if root is a leaf page, we don't desire further processing */
263261
if (!isRoot && RumPageGetOpaque(page)->maxoff < FirstOffsetNumber)
264262
hasVoidPage = TRUE;
263+
264+
GenericXLogFinish(state);
265265
}
266266
else
267267
GenericXLogAbort(state);
@@ -643,14 +643,10 @@ rumbulkdelete(IndexVacuumInfo *info,
643643

644644
for (;;)
645645
{
646-
GenericXLogState *state;
647-
Page page;
646+
Page page = BufferGetPage(buffer);
648647
Page resPage;
649648
uint32 i;
650649

651-
state = GenericXLogStart(index);
652-
page = GenericXLogRegisterBuffer(state, buffer, 0);
653-
654650
Assert(!RumPageIsData(page));
655651

656652
resPage = rumVacuumEntryPage(&gvs, buffer, rootOfPostingTree, attnumOfPostingTree, &nRoot);
@@ -659,13 +655,16 @@ rumbulkdelete(IndexVacuumInfo *info,
659655

660656
if (resPage)
661657
{
658+
GenericXLogState *state;
659+
660+
state = GenericXLogStart(index);
661+
page = GenericXLogRegisterBuffer(state, buffer, 0);
662662
PageRestoreTempPage(resPage, page);
663663
GenericXLogFinish(state);
664664
UnlockReleaseBuffer(buffer);
665665
}
666666
else
667667
{
668-
GenericXLogAbort(state);
669668
UnlockReleaseBuffer(buffer);
670669
}
671670

0 commit comments

Comments
 (0)