Thread: pgsql: Don't destroy SMgrRelations at relcache invalidation
Don't destroy SMgrRelations at relcache invalidation With commit 21d9c3ee4e, SMgrRelations remain valid until end of transaction (or longer if they're "pinned"). Relcache invalidation can happen in the middle of a transaction, so we must not destroy them at relcache invalidation anymore. This was revealed by failures in the 'constraints' test in buildfarm animals using -DCLOBBER_CACHE_ALWAYS. That started failing with commit 8af2565248, which was the first commit that started to rely on an SMgrRelation living until end of transaction. Diagnosed-by: Tomas Vondra, Thomas Munro Reviewed-by: Thomas Munro Discussion: https://www.postgresql.org/message-id/CA%2BhUKGK%2B5DOmLaBp3Z7C4S-Yv6yoROvr1UncjH2S1ZbPT8D%2BZg%40mail.gmail.com Branch ------ master Details ------- https://git.postgresql.org/pg/commitdiff/af0e7deb4a1c369bb8154ac55f085d6a93fe5c35 Modified Files -------------- src/backend/storage/smgr/smgr.c | 2 -- src/backend/utils/cache/relcache.c | 10 +++------- 2 files changed, 3 insertions(+), 9 deletions(-)