pgstat: drop subscription stats without slot as well, fix comment
authorAndres Freund <[email protected]>
Wed, 6 Jul 2022 15:53:25 +0000 (08:53 -0700)
committerAndres Freund <[email protected]>
Wed, 6 Jul 2022 15:56:34 +0000 (08:56 -0700)
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-

src/backend/commands/subscriptioncmds.c

index e2852286a7dad222469919c53a8f60bf5b012bc6..bdc1208724113196b5c3234140ac7ef283589477 100644 (file)
@@ -1578,15 +1578,9 @@ DropSubscription(DropSubscriptionStmt *stmt, bool isTopLevel)
 
    /*
     * 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);
 }