Commit 4c45832c authored by Vadim B. Mikheev's avatar Vadim B. Mikheev

Concurrency... Highest one...

DO NOT EVEN TRY TO DO PageGetMaxOffsetNumber BEFORE
LockBuffer!
-:)
parent 8864ee0b
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
* *
* *
* IDENTIFICATION * IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/access/nbtree/nbtree.c,v 1.40 1999/05/25 22:04:13 momjian Exp $ * $Header: /cvsroot/pgsql/src/backend/access/nbtree/nbtree.c,v 1.41 1999/06/07 15:14:54 vadim Exp $
* *
* NOTES * NOTES
* This file contains only the public interface routines. * This file contains only the public interface routines.
...@@ -618,16 +618,19 @@ _bt_restscan(IndexScanDesc scan) ...@@ -618,16 +618,19 @@ _bt_restscan(IndexScanDesc scan)
Relation rel = scan->relation; Relation rel = scan->relation;
BTScanOpaque so = (BTScanOpaque) scan->opaque; BTScanOpaque so = (BTScanOpaque) scan->opaque;
Buffer buf = so->btso_curbuf; Buffer buf = so->btso_curbuf;
Page page = BufferGetPage(buf); Page page;
ItemPointer current = &(scan->currentItemData); ItemPointer current = &(scan->currentItemData);
OffsetNumber offnum = ItemPointerGetOffsetNumber(current), OffsetNumber offnum = ItemPointerGetOffsetNumber(current),
maxoff = PageGetMaxOffsetNumber(page); maxoff;
BTPageOpaque opaque = (BTPageOpaque) PageGetSpecialPointer(page); BTPageOpaque opaque;
ItemPointerData target = so->curHeapIptr; ItemPointerData target = so->curHeapIptr;
BTItem item; BTItem item;
BlockNumber blkno; BlockNumber blkno;
LockBuffer(buf, BT_READ); LockBuffer(buf, BT_READ); /* lock buffer first! */
page = BufferGetPage(buf);
maxoff = PageGetMaxOffsetNumber(page);
opaque = (BTPageOpaque) PageGetSpecialPointer(page);
/* /*
* We use this as flag when first index tuple on page is deleted but * We use this as flag when first index tuple on page is deleted but
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment