diff --git a/src/backend/utils/activity/pgstat_relation.c b/src/backend/utils/activity/pgstat_relation.c index f92e16e..09546b5 100644 --- a/src/backend/utils/activity/pgstat_relation.c +++ b/src/backend/utils/activity/pgstat_relation.c @@ -85,6 +85,10 @@ pgstat_copy_relation_stats(Relation dst, Relation src) * We assume that a relcache entry's pgstat_info field is zeroed by relcache.c * when the relcache entry is made; thereafter it is long-lived data. * + * Ideally we wouldn't need to unlink relations from views as we don't count + * stats for relations without storage but some operations can change a relation + * to a view, in which case the previous relation should be unlinked. + * * This does not create a reference to a stats entry in shared memory, nor * allocate memory for the pending stats. That happens in * pgstat_assoc_relation(). @@ -92,17 +96,6 @@ pgstat_copy_relation_stats(Relation dst, Relation src) void pgstat_init_relation(Relation rel) { - char relkind = rel->rd_rel->relkind; - - /* - * We only count stats for relations with storage and partitioned tables - */ - if (!RELKIND_HAS_STORAGE(relkind) && relkind != RELKIND_PARTITIONED_TABLE) - { - rel->pgstat_enabled = false; - rel->pgstat_info = NULL; - return; - } if (!pgstat_track_counts) {