postgres.git / summary / log / commit / refs

commit    441ef5e1badcc3695de4a865cffb30f0e5057893
Author:   Heikki Linnakangas <heikki.linnakangas@iki.fi>
Date:     Fri Jun 21 14:13:10 2024 +0000
First released in: 17.0

    Fix relcache invalidation when relfilelocator is updated
    
    In commit af0e7deb4a, I removed a call to RelationCloseSmgr(), because
    the dangling SMgrRelation was no longer an issue. However, we still
    need the call when the relation's relfilelocator changes, so that the
    new relfilelocator takes effect immediately.
    
    Reported-by: Alexander Lakhin <exclusion@gmail.com>
    Discussion: https://www.postgresql.org/message-id/987b1c8c-8c91-4847-ca0e-879f421680ff%40gmail.com


src/backend/utils/cache/relcache.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/backend/utils/cache/relcache.c b/src/backend/utils/cache/relcache.c index 35dbb87ae3d..930cc03ee20 100644 --- a/src/backend/utils/cache/relcache.c +++ b/src/backend/utils/cache/relcache.c @@ -3060,7 +3060,10 @@ RelationCacheInvalidate(bool debug_discard) * map doesn't involve any access to relcache entries. */ if (RelationIsMapped(relation)) + { + RelationCloseSmgr(relation); RelationInitPhysicalAddr(relation); + } /* * Add this entry to list of stuff to rebuild in second pass. [parent: 90fe7b74df97]