There's no reason anymore to only drop subscription stats if associated with a
slot, now that stats drops are transactional. And since there's now no other
cleanup of stats, this would lead to stats for slot-less subscriptions to get
leaked (however most slot-less subs won't have stats).
Additionally, the comment referring to autovacuum cleaning up stats was
clearly outdated.
Author: Masahiko Sawada <
[email protected]>
Discussion: https://postgr.es/m/CAD21AoAwiby3HeJE7vJe16Gr75RFfJ640dyHqvsiUhyKJTXPtw@mail.gmail.com
Backpatch: 15-
/*
* Tell the cumulative stats system that the subscription is getting
- * dropped. We can safely report dropping the subscription statistics here
- * if the subscription is associated with a replication slot since we
- * cannot run DROP SUBSCRIPTION inside a transaction block. Subscription
- * statistics will be removed later by (auto)vacuum either if it's not
- * associated with a replication slot or if the message for dropping the
- * subscription gets lost.
+ * dropped.
*/
- if (slotname)
- pgstat_drop_subscription(subid);
+ pgstat_drop_subscription(subid);
table_close(rel, NoLock);
}