Code cleanup. gistfillbuffer accepts InvalidOffsetNumber.
This commit is contained in:
parent
365205dd2a
commit
88b49cdc95
src/backend/access/gist
@ -8,7 +8,7 @@
|
||||
* Portions Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $PostgreSQL: pgsql/src/backend/access/gist/gist.c,v 1.122 2005/06/27 12:45:21 teodor Exp $
|
||||
* $PostgreSQL: pgsql/src/backend/access/gist/gist.c,v 1.123 2005/06/28 15:51:00 teodor Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@ -421,13 +421,10 @@ gistplacetopage(GISTInsertState *state, GISTSTATE *giststate) {
|
||||
else
|
||||
{
|
||||
/* enough space */
|
||||
OffsetNumber l, off;
|
||||
XLogRecPtr oldlsn;
|
||||
|
||||
off = ( PageIsEmpty(state->stack->page) ) ?
|
||||
FirstOffsetNumber : OffsetNumberNext(PageGetMaxOffsetNumber(state->stack->page));
|
||||
|
||||
l = gistfillbuffer(state->r, state->stack->page, state->itup, state->ituplen, off);
|
||||
gistfillbuffer(state->r, state->stack->page, state->itup, state->ituplen, InvalidOffsetNumber);
|
||||
|
||||
oldlsn = PageGetLSN(state->stack->page);
|
||||
if ( !state->r->rd_istemp ) {
|
||||
OffsetNumber noffs=0, offs[ MAXALIGN( sizeof(OffsetNumber) ) / sizeof(OffsetNumber) ];
|
||||
@ -999,10 +996,9 @@ gistSplit(Relation r,
|
||||
}
|
||||
else
|
||||
{
|
||||
OffsetNumber l;
|
||||
char *ptr;
|
||||
|
||||
l = gistfillbuffer(r, right, rvectup, v.spl_nright, FirstOffsetNumber);
|
||||
gistfillbuffer(r, right, rvectup, v.spl_nright, FirstOffsetNumber);
|
||||
/* XLOG stuff */
|
||||
ROTATEDIST(*dist);
|
||||
(*dist)->block.blkno = BufferGetBlockNumber(rightbuf);
|
||||
@ -1035,10 +1031,9 @@ gistSplit(Relation r,
|
||||
}
|
||||
else
|
||||
{
|
||||
OffsetNumber l;
|
||||
char *ptr;
|
||||
|
||||
l = gistfillbuffer(r, left, lvectup, v.spl_nleft, FirstOffsetNumber);
|
||||
gistfillbuffer(r, left, lvectup, v.spl_nleft, FirstOffsetNumber);
|
||||
/* XLOG stuff */
|
||||
ROTATEDIST(*dist);
|
||||
(*dist)->block.blkno = BufferGetBlockNumber(leftbuf);
|
||||
|
@ -8,7 +8,7 @@
|
||||
* Portions Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $PostgreSQL: pgsql/src/backend/access/gist/gistutil.c,v 1.3 2005/06/27 12:45:22 teodor Exp $
|
||||
* $PostgreSQL: pgsql/src/backend/access/gist/gistutil.c,v 1.4 2005/06/28 15:51:00 teodor Exp $
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
#include "postgres.h"
|
||||
@ -62,6 +62,10 @@ gistfillbuffer(Relation r, Page page, IndexTuple *itup,
|
||||
OffsetNumber l = InvalidOffsetNumber;
|
||||
int i;
|
||||
|
||||
if ( off == InvalidOffsetNumber )
|
||||
off = ( PageIsEmpty(page) ) ? FirstOffsetNumber :
|
||||
OffsetNumberNext(PageGetMaxOffsetNumber(page));
|
||||
|
||||
for (i = 0; i < len; i++)
|
||||
{
|
||||
l = PageAddItem(page, (Item) itup[i], IndexTupleSize(itup[i]),
|
||||
|
@ -8,7 +8,7 @@
|
||||
* Portions Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $PostgreSQL: pgsql/src/backend/access/gist/gistvacuum.c,v 1.3 2005/06/27 12:45:22 teodor Exp $
|
||||
* $PostgreSQL: pgsql/src/backend/access/gist/gistvacuum.c,v 1.4 2005/06/28 15:51:00 teodor Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@ -199,12 +199,7 @@ gistVacuumUpdate( GistVacuum *gv, BlockNumber blkno, bool needunion ) {
|
||||
needunion = false; /* gistSplit already forms unions */
|
||||
} else {
|
||||
/* enough free space */
|
||||
OffsetNumber off = (PageIsEmpty(page)) ?
|
||||
FirstOffsetNumber
|
||||
:
|
||||
OffsetNumberNext(PageGetMaxOffsetNumber(page));
|
||||
|
||||
gistfillbuffer(gv->index, page, addon, curlenaddon, off);
|
||||
gistfillbuffer(gv->index, page, addon, curlenaddon, InvalidOffsetNumber);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -8,7 +8,7 @@
|
||||
* Portions Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $PostgreSQL: pgsql/src/backend/access/gist/gistxlog.c,v 1.4 2005/06/27 12:45:22 teodor Exp $
|
||||
* $PostgreSQL: pgsql/src/backend/access/gist/gistxlog.c,v 1.5 2005/06/28 15:51:00 teodor Exp $
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
#include "postgres.h"
|
||||
@ -198,14 +198,8 @@ gistRedoEntryUpdateRecord(XLogRecPtr lsn, XLogRecord *record, bool isnewroot) {
|
||||
}
|
||||
|
||||
/* add tuples */
|
||||
if ( xlrec.len > 0 ) {
|
||||
OffsetNumber off = (PageIsEmpty(page)) ?
|
||||
FirstOffsetNumber
|
||||
:
|
||||
OffsetNumberNext(PageGetMaxOffsetNumber(page));
|
||||
|
||||
gistfillbuffer(reln, page, xlrec.itup, xlrec.len, off);
|
||||
}
|
||||
if ( xlrec.len > 0 )
|
||||
gistfillbuffer(reln, page, xlrec.itup, xlrec.len, InvalidOffsetNumber);
|
||||
|
||||
/* special case: leafpage, nothing to insert, nothing to delete, then
|
||||
vacuum marks page */
|
||||
@ -623,9 +617,7 @@ gistContinueInsert(gistIncompleteInsert *insert) {
|
||||
}
|
||||
}
|
||||
} else
|
||||
gistfillbuffer( index, pages[numbuffer-1], itup, lenitup,
|
||||
(PageIsEmpty(pages[numbuffer-1])) ?
|
||||
FirstOffsetNumber : OffsetNumberNext(PageGetMaxOffsetNumber(pages[numbuffer-1])) );
|
||||
gistfillbuffer( index, pages[numbuffer-1], itup, lenitup, InvalidOffsetNumber);
|
||||
|
||||
lenitup=numbuffer;
|
||||
for(j=0;j<numbuffer;j++) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user