1
0
mirror of https://github.com/postgres/postgres.git synced 2025-10-19 15:49:24 +03:00

Revert: Allow table AM to store complex data structures in rd_amcache

This commit reverts 02eb07ea89 per review by Andres Freund.

Discussion: https://postgr.es/m/20240410165236.rwyrny7ihi4ddxw4%40awork3.anarazel.de
This commit is contained in:
Alexander Korotkov
2024-04-11 15:54:25 +03:00
parent 8dd0bb84da
commit 922c4c461d
4 changed files with 12 additions and 44 deletions

View File

@@ -687,14 +687,6 @@ typedef struct TableAmRoutine
* ------------------------------------------------------------------------
*/
/*
* This callback frees relation private cache data stored in rd_amcache.
* After the call all memory related to rd_amcache must be freed,
* rd_amcache must be set to NULL. If this callback is not provided,
* rd_amcache is assumed to point to a single memory chunk.
*/
void (*free_rd_amcache) (Relation rel);
/*
* See table_relation_size().
*
@@ -1816,32 +1808,6 @@ table_relation_analyze(Relation relation, AcquireSampleRowsFunc *func,
* ----------------------------------------------------------------------------
*/
/*
* Frees relation private cache data stored in rd_amcache. Uses
* free_rd_amcache method if provided. Assumes rd_amcache to point to single
* memory chunk otherwise.
*/
static inline void
table_free_rd_amcache(Relation rel)
{
if (rel->rd_tableam && rel->rd_tableam->free_rd_amcache)
{
rel->rd_tableam->free_rd_amcache(rel);
/*
* We are assuming free_rd_amcache() did clear the cache and left NULL
* in rd_amcache.
*/
Assert(rel->rd_amcache == NULL);
}
else
{
if (rel->rd_amcache)
pfree(rel->rd_amcache);
rel->rd_amcache = NULL;
}
}
/*
* Return the current size of `rel` in bytes. If `forkNumber` is
* InvalidForkNumber, return the relation's overall size, otherwise the size