Code cleanup. gistfillbuffer accepts InvalidOffsetNumber.
authorTeodor Sigaev
Tue, 28 Jun 2005 15:51:00 +0000 (15:51 +0000)
committerTeodor Sigaev
Tue, 28 Jun 2005 15:51:00 +0000 (15:51 +0000)
src/backend/access/gist/gist.c
src/backend/access/gist/gistutil.c
src/backend/access/gist/gistvacuum.c
src/backend/access/gist/gistxlog.c

index 02c2ffefa2388cc3d335ac0ae0d76d8bb5d88240..6643ae6131df7b49f6cf7b009e4468ac24b13c39 100644 (file)
@@ -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);
index e7c985b45956e665e1c0e93559fbe365d8c46aab..031914a37c4778a951c6f322f22d44e784a1f934 100644 (file)
@@ -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]),
index c1806025bb38e6505a8fdc32e546b2431e20aecf..940c2ca0d5e25d64a53a27d40b0fd7b302f825ca 100644 (file)
@@ -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); 
            } 
        }
    }
index de89789496063b1b51ea42bcddd25cb77b539192..30fd5b71eebee7c77e7ff93cf3f733e979771849 100644 (file)
@@ -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