v3-0001-Support-pg_stat_reset_single_table_counters-for-s.patch
application/octet-stream
Filename: v3-0001-Support-pg_stat_reset_single_table_counters-for-s.patch
Type: application/octet-stream
Part: 0
Patch
Format: format-patch
Series: patch v3-0001
Subject: Support pg_stat_reset_single_table_counters for shared object as well.
| File | + | − |
|---|---|---|
| doc/src/sgml/monitoring.sgml | 1 | 1 |
| src/backend/postmaster/pgstat.c | 6 | 2 |
From 7f1c6cbde5e18533829b76150332b1980a9ed4d5 Mon Sep 17 00:00:00 2001
From: B Sadhu Prasad Patro <b.sadhuprasadp@enterprisedb.com>
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
</para>
<para>
Resets statistics for a single table or index in the current database
- to zero.
+ to zero. The input can be a shared table also.
</para>
<para>
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