mirror of
https://github.com/postgres/postgres.git
synced 2025-05-02 11:44:50 +03:00
Remove dead checks for invalid left page in ginDeletePage.
In some places, the function assumes the left page is valid, and in others, it checks if it is valid. Remove all the checks.
This commit is contained in:
parent
1bd3842163
commit
e3e6e3af56
@ -285,8 +285,7 @@ ginDeletePage(GinVacuumState *gvs, BlockNumber deleteBlkno, BlockNumber leftBlkn
|
|||||||
GinPageGetOpaque(page)->flags = GIN_DELETED;
|
GinPageGetOpaque(page)->flags = GIN_DELETED;
|
||||||
|
|
||||||
MarkBufferDirty(pBuffer);
|
MarkBufferDirty(pBuffer);
|
||||||
if (leftBlkno != InvalidBlockNumber)
|
MarkBufferDirty(lBuffer);
|
||||||
MarkBufferDirty(lBuffer);
|
|
||||||
MarkBufferDirty(dBuffer);
|
MarkBufferDirty(dBuffer);
|
||||||
|
|
||||||
if (RelationNeedsWAL(gvs->index))
|
if (RelationNeedsWAL(gvs->index))
|
||||||
@ -294,7 +293,6 @@ ginDeletePage(GinVacuumState *gvs, BlockNumber deleteBlkno, BlockNumber leftBlkn
|
|||||||
XLogRecPtr recptr;
|
XLogRecPtr recptr;
|
||||||
XLogRecData rdata[4];
|
XLogRecData rdata[4];
|
||||||
ginxlogDeletePage data;
|
ginxlogDeletePage data;
|
||||||
int n;
|
|
||||||
|
|
||||||
data.node = gvs->index->rd_node;
|
data.node = gvs->index->rd_node;
|
||||||
data.blkno = deleteBlkno;
|
data.blkno = deleteBlkno;
|
||||||
@ -315,32 +313,22 @@ ginDeletePage(GinVacuumState *gvs, BlockNumber deleteBlkno, BlockNumber leftBlkn
|
|||||||
rdata[1].len = 0;
|
rdata[1].len = 0;
|
||||||
rdata[1].next = rdata + 2;
|
rdata[1].next = rdata + 2;
|
||||||
|
|
||||||
if (leftBlkno != InvalidBlockNumber)
|
rdata[2].buffer = lBuffer;
|
||||||
{
|
rdata[2].buffer_std = FALSE;
|
||||||
rdata[2].buffer = lBuffer;
|
rdata[2].data = NULL;
|
||||||
rdata[2].buffer_std = FALSE;
|
rdata[2].len = 0;
|
||||||
rdata[2].data = NULL;
|
rdata[2].next = rdata + 3;
|
||||||
rdata[2].len = 0;
|
|
||||||
rdata[2].next = rdata + 3;
|
|
||||||
n = 3;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
n = 2;
|
|
||||||
|
|
||||||
rdata[n].buffer = InvalidBuffer;
|
rdata[3].buffer = InvalidBuffer;
|
||||||
rdata[n].buffer_std = FALSE;
|
rdata[3].buffer_std = FALSE;
|
||||||
rdata[n].len = sizeof(ginxlogDeletePage);
|
rdata[3].len = sizeof(ginxlogDeletePage);
|
||||||
rdata[n].data = (char *) &data;
|
rdata[3].data = (char *) &data;
|
||||||
rdata[n].next = NULL;
|
rdata[3].next = NULL;
|
||||||
|
|
||||||
recptr = XLogInsert(RM_GIN_ID, XLOG_GIN_DELETE_PAGE, rdata);
|
recptr = XLogInsert(RM_GIN_ID, XLOG_GIN_DELETE_PAGE, rdata);
|
||||||
PageSetLSN(page, recptr);
|
PageSetLSN(page, recptr);
|
||||||
PageSetLSN(parentPage, recptr);
|
PageSetLSN(parentPage, recptr);
|
||||||
if (leftBlkno != InvalidBlockNumber)
|
PageSetLSN(BufferGetPage(lBuffer), recptr);
|
||||||
{
|
|
||||||
page = BufferGetPage(lBuffer);
|
|
||||||
PageSetLSN(page, recptr);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!isParentRoot)
|
if (!isParentRoot)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user