Commit 4523e0b6 authored by Teodor Sigaev's avatar Teodor Sigaev

Cleanup, remove unneeded pallocs

parent a29d815a
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
* Portions Copyright (c) 1994, Regents of the University of California * Portions Copyright (c) 1994, Regents of the University of California
* *
* IDENTIFICATION * IDENTIFICATION
* $PostgreSQL: pgsql/src/backend/access/gist/gist.c,v 1.123 2005/06/28 15:51:00 teodor Exp $ * $PostgreSQL: pgsql/src/backend/access/gist/gist.c,v 1.124 2005/06/29 14:06:14 teodor Exp $
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
...@@ -362,6 +362,7 @@ gistplacetopage(GISTInsertState *state, GISTSTATE *giststate) { ...@@ -362,6 +362,7 @@ gistplacetopage(GISTInsertState *state, GISTSTATE *giststate) {
Page page = (Page)BufferGetPage(ptr->buffer); Page page = (Page)BufferGetPage(ptr->buffer);
GistPageGetOpaque(page)->rightlink = ( ptr->next ) ? GistPageGetOpaque(page)->rightlink = ( ptr->next ) ?
ptr->next->block.blkno : InvalidBlockNumber; ptr->next->block.blkno : InvalidBlockNumber;
GistPageGetOpaque(page)->nsn = PageGetLSN(page);
LockBuffer( ptr->buffer, GIST_UNLOCK ); LockBuffer( ptr->buffer, GIST_UNLOCK );
WriteBuffer(ptr->buffer); WriteBuffer(ptr->buffer);
ptr=ptr->next; ptr=ptr->next;
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
* Portions Copyright (c) 1994, Regents of the University of California * Portions Copyright (c) 1994, Regents of the University of California
* *
* IDENTIFICATION * IDENTIFICATION
* $PostgreSQL: pgsql/src/backend/access/gist/gistvacuum.c,v 1.4 2005/06/28 15:51:00 teodor Exp $ * $PostgreSQL: pgsql/src/backend/access/gist/gistvacuum.c,v 1.5 2005/06/29 14:06:14 teodor Exp $
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
...@@ -52,7 +52,7 @@ gistVacuumUpdate( GistVacuum *gv, BlockNumber blkno, bool needunion ) { ...@@ -52,7 +52,7 @@ gistVacuumUpdate( GistVacuum *gv, BlockNumber blkno, bool needunion ) {
int lenaddon=4, curlenaddon=0, ntodelete=0; int lenaddon=4, curlenaddon=0, ntodelete=0;
IndexTuple idxtuple, *addon=NULL; IndexTuple idxtuple, *addon=NULL;
bool needwrite=false; bool needwrite=false;
OffsetNumber *todelete=NULL; OffsetNumber todelete[ BLCKSZ/SizeOfIptrData ];
ItemPointerData *completed=NULL; ItemPointerData *completed=NULL;
int ncompleted=0, lencompleted=16; int ncompleted=0, lencompleted=16;
...@@ -67,7 +67,6 @@ gistVacuumUpdate( GistVacuum *gv, BlockNumber blkno, bool needunion ) { ...@@ -67,7 +67,6 @@ gistVacuumUpdate( GistVacuum *gv, BlockNumber blkno, bool needunion ) {
GistClearTuplesDeleted(page); GistClearTuplesDeleted(page);
} }
} else { } else {
todelete = (OffsetNumber*)palloc( MAXALIGN(sizeof(OffsetNumber)*(maxoff+1)) );
completed = (ItemPointerData*)palloc( sizeof(ItemPointerData)*lencompleted ); completed = (ItemPointerData*)palloc( sizeof(ItemPointerData)*lencompleted );
addon=(IndexTuple*)palloc(sizeof(IndexTuple)*lenaddon); addon=(IndexTuple*)palloc(sizeof(IndexTuple)*lenaddon);
...@@ -143,15 +142,13 @@ gistVacuumUpdate( GistVacuum *gv, BlockNumber blkno, bool needunion ) { ...@@ -143,15 +142,13 @@ gistVacuumUpdate( GistVacuum *gv, BlockNumber blkno, bool needunion ) {
XLogRecPtr recptr; XLogRecPtr recptr;
XLogRecData *rdata; XLogRecData *rdata;
ItemPointerData key; /* set key for incomplete insert */ ItemPointerData key; /* set key for incomplete insert */
char *xlinfo;
ItemPointerSet(&key, blkno, TUPLE_IS_VALID); ItemPointerSet(&key, blkno, TUPLE_IS_VALID);
oldCtx = MemoryContextSwitchTo(gv->opCtx);
rdata = formSplitRdata(gv->index->rd_node, blkno, rdata = formSplitRdata(gv->index->rd_node, blkno,
&key, dist); &key, dist);
xlinfo = rdata->data;
MemoryContextSwitchTo(oldCtx);
START_CRIT_SECTION(); START_CRIT_SECTION();
...@@ -164,6 +161,8 @@ gistVacuumUpdate( GistVacuum *gv, BlockNumber blkno, bool needunion ) { ...@@ -164,6 +161,8 @@ gistVacuumUpdate( GistVacuum *gv, BlockNumber blkno, bool needunion ) {
} }
END_CRIT_SECTION(); END_CRIT_SECTION();
pfree( xlinfo );
pfree( rdata );
} else { } else {
ptr = dist; ptr = dist;
while(ptr) { while(ptr) {
...@@ -267,7 +266,6 @@ gistVacuumUpdate( GistVacuum *gv, BlockNumber blkno, bool needunion ) { ...@@ -267,7 +266,6 @@ gistVacuumUpdate( GistVacuum *gv, BlockNumber blkno, bool needunion ) {
for(i=0;i<curlenaddon;i++) for(i=0;i<curlenaddon;i++)
pfree( addon[i] ); pfree( addon[i] );
if (addon) pfree(addon); if (addon) pfree(addon);
if (todelete) pfree(todelete);
if (completed) pfree(completed); if (completed) pfree(completed);
return res; return res;
} }
...@@ -442,7 +440,7 @@ gistbulkdelete(PG_FUNCTION_ARGS) { ...@@ -442,7 +440,7 @@ gistbulkdelete(PG_FUNCTION_ARGS) {
page = (Page) BufferGetPage(buffer); page = (Page) BufferGetPage(buffer);
if ( GistPageIsLeaf(page) ) { if ( GistPageIsLeaf(page) ) {
OffsetNumber *todelete = NULL; OffsetNumber todelete[BLCKSZ/SizeOfIptrData];
int ntodelete = 0; int ntodelete = 0;
LockBuffer(buffer, GIST_UNLOCK); LockBuffer(buffer, GIST_UNLOCK);
...@@ -462,7 +460,6 @@ gistbulkdelete(PG_FUNCTION_ARGS) { ...@@ -462,7 +460,6 @@ gistbulkdelete(PG_FUNCTION_ARGS) {
pushStackIfSplited(page, stack); pushStackIfSplited(page, stack);
maxoff = PageGetMaxOffsetNumber(page); maxoff = PageGetMaxOffsetNumber(page);
todelete = (OffsetNumber*)palloc( MAXALIGN(sizeof(OffsetNumber)*(maxoff+1)) );
for(i=FirstOffsetNumber;i<=maxoff;i=OffsetNumberNext(i)) { for(i=FirstOffsetNumber;i<=maxoff;i=OffsetNumberNext(i)) {
iid = PageGetItemId(page, i); iid = PageGetItemId(page, i);
...@@ -502,8 +499,6 @@ gistbulkdelete(PG_FUNCTION_ARGS) { ...@@ -502,8 +499,6 @@ gistbulkdelete(PG_FUNCTION_ARGS) {
PageSetLSN(page, XLogRecPtrForTemp); PageSetLSN(page, XLogRecPtrForTemp);
WriteNoReleaseBuffer( buffer ); WriteNoReleaseBuffer( buffer );
} }
pfree( todelete );
} else { } else {
/* check for split proceeded after look at parent */ /* check for split proceeded after look at parent */
pushStackIfSplited(page, stack); pushStackIfSplited(page, stack);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment