mirror of
https://github.com/postgres/postgres.git
synced 2025-09-09 13:09:39 +03:00
Pass down table relation into more index relation functions
This is done in preparation for logical decoding on standby, which needs to include whether visibility affecting WAL records are about a (user) catalog table. Which is only known for the table, not the indexes. It's also nice to be able to pass the heap relation to GlobalVisTestFor() in vacuumRedirectAndPlaceholder(). Author: "Drouvot, Bertrand" <bertranddrouvot.pg@gmail.com> Discussion: https://postgr.es/m/21b700c3-eecf-2e05-a699-f8c78dd31ec7@gmail.com
This commit is contained in:
@@ -489,7 +489,7 @@ vacuumLeafRoot(spgBulkDeleteState *bds, Relation index, Buffer buffer)
|
||||
* Unlike the routines above, this works on both leaf and inner pages.
|
||||
*/
|
||||
static void
|
||||
vacuumRedirectAndPlaceholder(Relation index, Buffer buffer)
|
||||
vacuumRedirectAndPlaceholder(Relation index, Relation heaprel, Buffer buffer)
|
||||
{
|
||||
Page page = BufferGetPage(buffer);
|
||||
SpGistPageOpaque opaque = SpGistPageGetOpaque(page);
|
||||
@@ -643,13 +643,13 @@ spgvacuumpage(spgBulkDeleteState *bds, BlockNumber blkno)
|
||||
else
|
||||
{
|
||||
vacuumLeafPage(bds, index, buffer, false);
|
||||
vacuumRedirectAndPlaceholder(index, buffer);
|
||||
vacuumRedirectAndPlaceholder(index, bds->info->heaprel, buffer);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/* inner page */
|
||||
vacuumRedirectAndPlaceholder(index, buffer);
|
||||
vacuumRedirectAndPlaceholder(index, bds->info->heaprel, buffer);
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -719,7 +719,7 @@ spgprocesspending(spgBulkDeleteState *bds)
|
||||
/* deal with any deletable tuples */
|
||||
vacuumLeafPage(bds, index, buffer, true);
|
||||
/* might as well do this while we are here */
|
||||
vacuumRedirectAndPlaceholder(index, buffer);
|
||||
vacuumRedirectAndPlaceholder(index, bds->info->heaprel, buffer);
|
||||
|
||||
SpGistSetLastUsedPage(index, buffer);
|
||||
|
||||
|
Reference in New Issue
Block a user