From 7892cb9642286b81cdb45526f8d23117ed892578 Mon Sep 17 00:00:00 2001 From: Heikki Linnakangas Date: Wed, 29 Nov 2023 14:07:52 +0200 Subject: [PATCH 2/3] Don't try to open visibilitymap when analyzing a foreign table. Also add an assertion in smgropen() that the relnumber is valid. --- src/backend/commands/analyze.c | 5 ++++- src/backend/storage/smgr/smgr.c | 2 ++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/backend/commands/analyze.c b/src/backend/commands/analyze.c index e264ffdcf28..1f4a9516814 100644 --- a/src/backend/commands/analyze.c +++ b/src/backend/commands/analyze.c @@ -634,7 +634,10 @@ do_analyze_rel(Relation onerel, VacuumParams *params, { BlockNumber relallvisible; - visibilitymap_count(onerel, &relallvisible, NULL); + if (RELKIND_HAS_STORAGE(onerel->rd_rel->relkind)) + visibilitymap_count(onerel, &relallvisible, NULL); + else + relallvisible = 0; /* Update pg_class for table relation */ vac_update_relstats(onerel, diff --git a/src/backend/storage/smgr/smgr.c b/src/backend/storage/smgr/smgr.c index 5d0f3d515c3..4c552649336 100644 --- a/src/backend/storage/smgr/smgr.c +++ b/src/backend/storage/smgr/smgr.c @@ -153,6 +153,8 @@ smgropen(RelFileLocator rlocator, BackendId backend) SMgrRelation reln; bool found; + Assert(RelFileNumberIsValid(rlocator.relNumber)); + if (SMgrRelationHash == NULL) { /* First time through: initialize the hash table */ -- 2.39.2