Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Get heap page max offset with buffer lock held.
authorPeter Geoghegan <pg@bowt.ie>
Thu, 31 Dec 2020 01:21:39 +0000 (17:21 -0800)
committerPeter Geoghegan <pg@bowt.ie>
Thu, 31 Dec 2020 01:21:39 +0000 (17:21 -0800)
On further reflection it seems better to call PageGetMaxOffsetNumber()
after acquiring a buffer lock on the page.  This shouldn't really
matter, but doing it this way is cleaner.

Follow-up to commit 42288174.

Backpatch: 12-, just like commit 42288174

src/backend/access/heap/heapam.c

index 4db3f2507ff66d03f6082bd18ba7ba338950bc72..1e2536c70e7fd2d9fc0a74e46563877571f54fc5 100644 (file)
@@ -7084,10 +7084,10 @@ heap_compute_xid_horizon_for_tuples(Relation rel,
            xid_horizon_prefetch_buffer(rel, &prefetch_state, 1);
 #endif
 
+           LockBuffer(buf, BUFFER_LOCK_SHARE);
+
            page = BufferGetPage(buf);
            maxoff = PageGetMaxOffsetNumber(page);
-
-           LockBuffer(buf, BUFFER_LOCK_SHARE);
        }
 
        /*