|
|
@ -8,7 +8,7 @@ |
|
|
|
* |
|
|
|
* |
|
|
|
* |
|
|
|
* |
|
|
|
* IDENTIFICATION |
|
|
|
* IDENTIFICATION |
|
|
|
* $PostgreSQL: pgsql/src/backend/access/nbtree/nbtinsert.c,v 1.148 2007/01/27 20:53:30 tgl Exp $ |
|
|
|
* $PostgreSQL: pgsql/src/backend/access/nbtree/nbtinsert.c,v 1.149 2007/02/06 14:55:11 tgl Exp $ |
|
|
|
* |
|
|
|
* |
|
|
|
*------------------------------------------------------------------------- |
|
|
|
*------------------------------------------------------------------------- |
|
|
|
*/ |
|
|
|
*/ |
|
|
@ -855,22 +855,17 @@ _bt_split(Relation rel, Buffer buf, OffsetNumber firstright, |
|
|
|
/* cope with possibility that newitem goes at the end */ |
|
|
|
/* cope with possibility that newitem goes at the end */ |
|
|
|
if (i <= newitemoff) |
|
|
|
if (i <= newitemoff) |
|
|
|
{ |
|
|
|
{ |
|
|
|
if (newitemonleft) |
|
|
|
/*
|
|
|
|
{ |
|
|
|
* Can't have newitemonleft here; that would imply we were told to put |
|
|
|
_bt_pgaddtup(rel, leftpage, newitemsz, newitem, leftoff, |
|
|
|
* *everything* on the left page, which cannot fit (if it could, we'd |
|
|
|
"left sibling"); |
|
|
|
* not be splitting the page). |
|
|
|
itup_off = leftoff; |
|
|
|
*/ |
|
|
|
itup_blkno = BufferGetBlockNumber(buf); |
|
|
|
Assert(!newitemonleft); |
|
|
|
leftoff = OffsetNumberNext(leftoff); |
|
|
|
_bt_pgaddtup(rel, rightpage, newitemsz, newitem, rightoff, |
|
|
|
} |
|
|
|
"right sibling"); |
|
|
|
else |
|
|
|
itup_off = rightoff; |
|
|
|
{ |
|
|
|
itup_blkno = BufferGetBlockNumber(rbuf); |
|
|
|
_bt_pgaddtup(rel, rightpage, newitemsz, newitem, rightoff, |
|
|
|
rightoff = OffsetNumberNext(rightoff); |
|
|
|
"right sibling"); |
|
|
|
|
|
|
|
itup_off = rightoff; |
|
|
|
|
|
|
|
itup_blkno = BufferGetBlockNumber(rbuf); |
|
|
|
|
|
|
|
rightoff = OffsetNumberNext(rightoff); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
/*
|
|
|
|