1
0
mirror of https://github.com/postgres/postgres.git synced 2025-11-19 13:42:17 +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:
Andres Freund
2023-04-01 20:12:26 -07:00
parent a88a18b125
commit 61b313e47e
26 changed files with 214 additions and 170 deletions

View File

@@ -207,6 +207,7 @@ tuplesort_begin_heap(TupleDesc tupDesc,
Tuplesortstate *
tuplesort_begin_cluster(TupleDesc tupDesc,
Relation indexRel,
Relation heaprel,
int workMem,
SortCoordinate coordinate, int sortopt)
{
@@ -260,7 +261,7 @@ tuplesort_begin_cluster(TupleDesc tupDesc,
arg->tupDesc = tupDesc; /* assume we need not copy tupDesc */
indexScanKey = _bt_mkscankey(indexRel, NULL);
indexScanKey = _bt_mkscankey(indexRel, heaprel, NULL);
if (arg->indexInfo->ii_Expressions != NULL)
{
@@ -361,7 +362,7 @@ tuplesort_begin_index_btree(Relation heapRel,
arg->enforceUnique = enforceUnique;
arg->uniqueNullsNotDistinct = uniqueNullsNotDistinct;
indexScanKey = _bt_mkscankey(indexRel, NULL);
indexScanKey = _bt_mkscankey(indexRel, heapRel, NULL);
/* Prepare SortSupport data for each column */
base->sortKeys = (SortSupport) palloc0(base->nKeys *