mirror of
https://github.com/postgres/postgres.git
synced 2025-06-14 18:42:34 +03:00
Cleanup, remove unneeded pallocs
This commit is contained in:
@ -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) {
|
|||||||
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 @@
|
|||||||
* 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 ) {
|
|||||||
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 ) {
|
|||||||
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 ) {
|
|||||||
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 ) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
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 ) {
|
|||||||
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) {
|
|||||||
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) {
|
|||||||
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) {
|
|||||||
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);
|
||||||
|
Reference in New Issue
Block a user