From 7f1c6cbde5e18533829b76150332b1980a9ed4d5 Mon Sep 17 00:00:00 2001 From: B Sadhu Prasad Patro Date: Thu, 19 Aug 2021 09:22:53 -0700 Subject: [PATCH v3] Support pg_stat_reset_single_table_counters for shared object as well. This patch will help to reset the stats for shared tables also by existing function pgstat_recv_resetsinglecounter. --- doc/src/sgml/monitoring.sgml | 2 +- src/backend/postmaster/pgstat.c | 8 ++++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/doc/src/sgml/monitoring.sgml b/doc/src/sgml/monitoring.sgml index 74a58a9..7bdf371 100644 --- a/doc/src/sgml/monitoring.sgml +++ b/doc/src/sgml/monitoring.sgml @@ -5097,7 +5097,7 @@ SELECT pid, wait_event_type, wait_event FROM pg_stat_activity WHERE wait_event i Resets statistics for a single table or index in the current database - to zero. + to zero. The input can be a shared table also. This function is restricted to superusers by default, but other users diff --git a/src/backend/postmaster/pgstat.c b/src/backend/postmaster/pgstat.c index a3c35bd..b1a1163 100644 --- a/src/backend/postmaster/pgstat.c +++ b/src/backend/postmaster/pgstat.c @@ -5135,7 +5135,8 @@ pgstat_recv_resetsharedcounter(PgStat_MsgResetsharedcounter *msg, int len) /* ---------- * pgstat_recv_resetsinglecounter() - * - * Reset a statistics for a single object + * Reset a statistics for a single object, which may also be a shared + * table. * ---------- */ static void @@ -5143,7 +5144,10 @@ pgstat_recv_resetsinglecounter(PgStat_MsgResetsinglecounter *msg, int len) { PgStat_StatDBEntry *dbentry; - dbentry = pgstat_get_db_entry(msg->m_databaseid, false); + if (!IsSharedRelation(msg->m_objectid)) + dbentry = pgstat_get_db_entry(msg->m_databaseid, false); + else + dbentry = pgstat_get_db_entry(InvalidOid, false); if (!dbentry) return; -- 1.8.3.1