From 88b49cdc95ef9601edcb2cdb3fbe1986128b5092 Mon Sep 17 00:00:00 2001 From: Teodor Sigaev Date: Tue, 28 Jun 2005 15:51:00 +0000 Subject: [PATCH] Code cleanup. gistfillbuffer accepts InvalidOffsetNumber. --- src/backend/access/gist/gist.c | 15 +++++---------- src/backend/access/gist/gistutil.c | 6 +++++- src/backend/access/gist/gistvacuum.c | 9 ++------- src/backend/access/gist/gistxlog.c | 16 ++++------------ 4 files changed, 16 insertions(+), 30 deletions(-) diff --git a/src/backend/access/gist/gist.c b/src/backend/access/gist/gist.c index 02c2ffefa2..6643ae6131 100644 --- a/src/backend/access/gist/gist.c +++ b/src/backend/access/gist/gist.c @@ -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); diff --git a/src/backend/access/gist/gistutil.c b/src/backend/access/gist/gistutil.c index e7c985b459..031914a37c 100644 --- a/src/backend/access/gist/gistutil.c +++ b/src/backend/access/gist/gistutil.c @@ -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]), diff --git a/src/backend/access/gist/gistvacuum.c b/src/backend/access/gist/gistvacuum.c index c1806025bb..940c2ca0d5 100644 --- a/src/backend/access/gist/gistvacuum.c +++ b/src/backend/access/gist/gistvacuum.c @@ -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); } } } diff --git a/src/backend/access/gist/gistxlog.c b/src/backend/access/gist/gistxlog.c index de89789496..30fd5b71ee 100644 --- a/src/backend/access/gist/gistxlog.c +++ b/src/backend/access/gist/gistxlog.c @@ -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