@@ -2688,6 +2688,8 @@ heap_page_shift_base(Relation relation, Buffer buffer, Page page, bool multi, in
2688
2688
OffsetNumber offnum ,
2689
2689
maxoff ;
2690
2690
2691
+ START_CRIT_SECTION ();
2692
+
2691
2693
/* Iterate over page items */
2692
2694
maxoff = PageGetMaxOffsetNumber (page );
2693
2695
for (offnum = FirstOffsetNumber ;
@@ -2762,6 +2764,8 @@ heap_page_shift_base(Relation relation, Buffer buffer, Page page, bool multi, in
2762
2764
2763
2765
PageSetLSN (page , recptr );
2764
2766
}
2767
+
2768
+ END_CRIT_SECTION ();
2765
2769
}
2766
2770
2767
2771
/*
@@ -2909,7 +2913,6 @@ heap_page_prepare_for_xid(Relation relation, Buffer buffer,
2909
2913
Assert (xid <= base + delta + MaxShortTransactionId );
2910
2914
2911
2915
heap_page_shift_base (relation , buffer , page , multi , delta );
2912
- MarkBufferDirty (buffer );
2913
2916
2914
2917
base = multi ? pageSpecial -> pd_multi_base : pageSpecial -> pd_xid_base ;
2915
2918
Assert (xid >= base + FirstNormalTransactionId );
@@ -2931,7 +2934,6 @@ heap_page_prepare_for_xid(Relation relation, Buffer buffer,
2931
2934
Assert (xid <= base + delta + MaxShortTransactionId );
2932
2935
2933
2936
heap_page_shift_base (relation , buffer , page , multi , delta );
2934
- MarkBufferDirty (buffer );
2935
2937
2936
2938
base = multi ? pageSpecial -> pd_multi_base : pageSpecial -> pd_xid_base ;
2937
2939
Assert (xid >= base + FirstNormalTransactionId );
@@ -2954,7 +2956,6 @@ heap_page_prepare_for_xid(Relation relation, Buffer buffer,
2954
2956
Assert (xid <= base + delta + MaxShortTransactionId );
2955
2957
2956
2958
heap_page_shift_base (relation , buffer , page , multi , delta );
2957
- MarkBufferDirty (buffer );
2958
2959
2959
2960
base = multi ? pageSpecial -> pd_multi_base : pageSpecial -> pd_xid_base ;
2960
2961
Assert (xid >= base + FirstNormalTransactionId );
0 commit comments