@@ -653,15 +653,19 @@ rumbuild(Relation heap, Relation index, struct IndexInfo *indexInfo)
653
653
*/
654
654
for (blkno = 0 ; blkno < buildstate .buildStats .nTotalPages ; blkno ++ )
655
655
{
656
- Buffer buffer = ReadBuffer (index , blkno );
657
- GenericXLogState * state = RumGenericXLogStart (index ,
658
- buildstate .rumstate .isBuild );
656
+ Buffer buffer ;
657
+ GenericXLogState * state ;
659
658
660
- RumGenericXLogRegisterBuffer (state , buffer , GENERIC_XLOG_FULL_IMAGE ,
661
- buildstate .rumstate .isBuild );
662
- RumGenericXLogFinish (state , buildstate .rumstate .isBuild );
659
+ CHECK_FOR_INTERRUPTS ();
660
+
661
+ buffer = ReadBuffer (index , blkno );
662
+ LockBuffer (buffer , RUM_SHARE );
663
+
664
+ state = GenericXLogStart (index );
665
+ GenericXLogRegisterBuffer (state , buffer , GENERIC_XLOG_FULL_IMAGE );
666
+ GenericXLogFinish (state );
663
667
664
- ReleaseBuffer (buffer );
668
+ UnlockReleaseBuffer (buffer );
665
669
}
666
670
667
671
/*
@@ -685,7 +689,7 @@ rumbuildempty(Relation index)
685
689
MetaBuffer ;
686
690
GenericXLogState * state ;
687
691
688
- state = RumGenericXLogStart (index , false );
692
+ state = GenericXLogStart (index );
689
693
690
694
/* An empty RUM index has two pages. */
691
695
MetaBuffer =
@@ -699,7 +703,7 @@ rumbuildempty(Relation index)
699
703
RumInitMetabuffer (state , MetaBuffer , false);
700
704
RumInitBuffer (state , RootBuffer , RUM_LEAF , false);
701
705
702
- RumGenericXLogFinish (state , false );
706
+ GenericXLogFinish (state );
703
707
704
708
/* Unlock and release the buffers. */
705
709
UnlockReleaseBuffer (MetaBuffer );
0 commit comments