pg_stat_database_conflicts_v3.patch
application/octet-stream
Filename: pg_stat_database_conflicts_v3.patch
Type: application/octet-stream
Part: 0
Patch
Format: format-patch
Series: patch v3
Subject: Add stats_reset column to pg_stat_database_conflicts view This commit adds the stats_reset column to pg_stat_database_conflicts, allowing users to see when the reset was last performed. This brings consistency with pg_stat_database and other statistics views. Includes: - system_views.sql: View definition update - monitoring.sgml: Documentation update - catversion.h: Mandatory catalog version bump - Regression tests: Updated rules.out and added stats.sql test case
| File | + | − |
|---|---|---|
| doc/src/sgml/monitoring.sgml | 8 | 0 |
| src/backend/catalog/system_views.sql | 2 | 1 |
| src/test/regress/expected/rules.out | 2 | 1 |
| src/test/regress/expected/stats.out | 14 | 0 |
| src/test/regress/sql/stats.sql | 5 | 0 |
From 50deb9ed6d65706595073e0c5982fe594925c53d Mon Sep 17 00:00:00 2001
From: shihao zhong <zhong950419@gmal.com>
Date: Wed, 11 Mar 2026 14:05:57 +0000
Subject: [PATCH] Add stats_reset column to pg_stat_database_conflicts view
This commit adds the stats_reset column to pg_stat_database_conflicts,
allowing users to see when the reset was last performed. This brings
consistency with pg_stat_database and other statistics views. Includes: -
system_views.sql: View definition update - monitoring.sgml: Documentation
update - catversion.h: Mandatory catalog version bump - Regression tests:
Updated rules.out and added stats.sql test case
---
doc/src/sgml/monitoring.sgml | 8 ++++++++
src/backend/catalog/system_views.sql | 3 ++-
src/test/regress/expected/rules.out | 3 ++-
src/test/regress/expected/stats.out | 14 ++++++++++++++
src/test/regress/sql/stats.sql | 5 +++++
5 files changed, 31 insertions(+), 2 deletions(-)
diff --git a/doc/src/sgml/monitoring.sgml b/doc/src/sgml/monitoring.sgml
index cc014564c97..763f6731dee 100644
--- a/doc/src/sgml/monitoring.sgml
+++ b/doc/src/sgml/monitoring.sgml
@@ -4036,6 +4036,14 @@ description | Waiting for a newly initialized WAL file to reach durable storage
on the primary
</para></entry>
</row>
+ <row>
+ <entry role="catalog_table_entry"><para role="column_definition">
+ <structfield>stats_reset</structfield> <type>timestamp with time zone</type>
+ </para>
+ <para>
+ Time at which these statistics were last reset
+ </para></entry>
+ </row>
</tbody>
</tgroup>
</table>
diff --git a/src/backend/catalog/system_views.sql b/src/backend/catalog/system_views.sql
index 339c016e510..3361030d34c 100644
--- a/src/backend/catalog/system_views.sql
+++ b/src/backend/catalog/system_views.sql
@@ -1163,7 +1163,8 @@ CREATE VIEW pg_stat_database_conflicts AS
pg_stat_get_db_conflict_snapshot(D.oid) AS confl_snapshot,
pg_stat_get_db_conflict_bufferpin(D.oid) AS confl_bufferpin,
pg_stat_get_db_conflict_startup_deadlock(D.oid) AS confl_deadlock,
- pg_stat_get_db_conflict_logicalslot(D.oid) AS confl_active_logicalslot
+ pg_stat_get_db_conflict_logicalslot(D.oid) AS confl_active_logicalslot,
+ pg_stat_get_db_stat_reset_time(D.oid) AS stats_reset
FROM pg_database D;
CREATE VIEW pg_stat_user_functions AS
diff --git a/src/test/regress/expected/rules.out b/src/test/regress/expected/rules.out
index f373ad704b6..71d7262049e 100644
--- a/src/test/regress/expected/rules.out
+++ b/src/test/regress/expected/rules.out
@@ -1921,7 +1921,8 @@ pg_stat_database_conflicts| SELECT oid AS datid,
pg_stat_get_db_conflict_snapshot(oid) AS confl_snapshot,
pg_stat_get_db_conflict_bufferpin(oid) AS confl_bufferpin,
pg_stat_get_db_conflict_startup_deadlock(oid) AS confl_deadlock,
- pg_stat_get_db_conflict_logicalslot(oid) AS confl_active_logicalslot
+ pg_stat_get_db_conflict_logicalslot(oid) AS confl_active_logicalslot,
+ pg_stat_get_db_stat_reset_time(oid) AS stats_reset
FROM pg_database d;
pg_stat_gssapi| SELECT pid,
gss_auth AS gss_authenticated,
diff --git a/src/test/regress/expected/stats.out b/src/test/regress/expected/stats.out
index cd00f35bf7a..0d634c3af42 100644
--- a/src/test/regress/expected/stats.out
+++ b/src/test/regress/expected/stats.out
@@ -1910,4 +1910,18 @@ SELECT * FROM check_estimated_rows('SELECT * FROM table_fillfactor');
(1 row)
DROP TABLE table_fillfactor;
+-- Test that the stats_reset column in pg_stat_database_conflicts is correctly maintained
+SELECT pg_stat_reset();
+ pg_stat_reset
+---------------
+
+(1 row)
+
+SELECT stats_reset IS NOT NULL AS has_stats_reset
+ FROM pg_stat_database_conflicts WHERE datname = current_database();
+ has_stats_reset
+-----------------
+ t
+(1 row)
+
-- End of Stats Test
diff --git a/src/test/regress/sql/stats.sql b/src/test/regress/sql/stats.sql
index 8768e0f27fd..e5fb90cf0c3 100644
--- a/src/test/regress/sql/stats.sql
+++ b/src/test/regress/sql/stats.sql
@@ -944,4 +944,9 @@ SELECT * FROM check_estimated_rows('SELECT * FROM table_fillfactor');
DROP TABLE table_fillfactor;
+-- Test that the stats_reset column in pg_stat_database_conflicts is correctly maintained
+SELECT pg_stat_reset();
+SELECT stats_reset IS NOT NULL AS has_stats_reset
+ FROM pg_stat_database_conflicts WHERE datname = current_database();
+
-- End of Stats Test
--
2.53.0.473.g4a7958ca14-goog