diff options
Diffstat (limited to 'src/backend/access/nbtree/nbtpage.c')
| -rw-r--r-- | src/backend/access/nbtree/nbtpage.c | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/src/backend/access/nbtree/nbtpage.c b/src/backend/access/nbtree/nbtpage.c index daff4e6bdd..5a93616054 100644 --- a/src/backend/access/nbtree/nbtpage.c +++ b/src/backend/access/nbtree/nbtpage.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/access/nbtree/nbtpage.c,v 1.20 1999/04/22 08:19:59 vadim Exp $ + * $Header: /cvsroot/pgsql/src/backend/access/nbtree/nbtpage.c,v 1.21 1999/05/25 16:07:26 momjian Exp $ * * NOTES * Postgres btree pages look like ordinary relation pages. The opaque @@ -421,7 +421,7 @@ _bt_pageinit(Page page, Size size) MemSet(page, 0, size); PageInit(page, size, sizeof(BTPageOpaqueData)); - ((BTPageOpaque) PageGetSpecialPointer(page))->btpo_parent = + ((BTPageOpaque) PageGetSpecialPointer(page))->btpo_parent = InvalidBlockNumber; } @@ -494,17 +494,16 @@ _bt_getstackbuf(Relation rel, BTStack stack, int access) opaque = (BTPageOpaque) PageGetSpecialPointer(page); maxoff = PageGetMaxOffsetNumber(page); - if (stack->bts_offset == InvalidOffsetNumber || + if (stack->bts_offset == InvalidOffsetNumber || maxoff >= stack->bts_offset) { + /* - * _bt_insertonpg set bts_offset to InvalidOffsetNumber - * in the case of concurrent ROOT page split + * _bt_insertonpg set bts_offset to InvalidOffsetNumber in the + * case of concurrent ROOT page split */ if (stack->bts_offset == InvalidOffsetNumber) - { i = P_RIGHTMOST(opaque) ? P_HIKEY : P_FIRSTKEY; - } else { itemid = PageGetItemId(page, stack->bts_offset); @@ -524,7 +523,7 @@ _bt_getstackbuf(Relation rel, BTStack stack, int access) } /* if the item has just moved right on this page, we're done */ - for ( ; + for (; i <= maxoff; i = OffsetNumberNext(i)) { |
