From e0b18c8674a19133bd9133b8f5a523bdc9280589 Mon Sep 17 00:00:00 2001 From: shihao zhong Date: Wed, 11 Mar 2026 16:55:22 +0000 Subject: [PATCH] Add stats_reset column to pg_statio_all_sequences view This commit adds the stats_reset column to pg_statio_all_sequences, allowing users to see when the reset was last performed. This brings consistency with pg_statio_all_tables and other statistics views. Includes: - system_views.sql: View definition update - monitoring.sgml: Documentation update and indentation fix - catversion.h: Mandatory catalog version bump - Regression tests: Updated rules.out and stats.out, and added stats.sql test case --- doc/src/sgml/monitoring.sgml | 9 +++++++++ src/backend/catalog/system_views.sql | 3 ++- src/include/catalog/catversion.h | 2 +- src/test/regress/expected/rules.out | 9 ++++++--- src/test/regress/expected/stats.out | 8 ++++++++ src/test/regress/sql/stats.sql | 4 ++++ 6 files changed, 30 insertions(+), 5 deletions(-) diff --git a/doc/src/sgml/monitoring.sgml b/doc/src/sgml/monitoring.sgml index 763f6731dee..22100d12955 100644 --- a/doc/src/sgml/monitoring.sgml +++ b/doc/src/sgml/monitoring.sgml @@ -4908,6 +4908,15 @@ description | Waiting for a newly initialized WAL file to reach durable storage Number of buffer hits in this sequence + + + + stats_reset timestamp with time zone + + + Time at which these statistics were last reset + + diff --git a/src/backend/catalog/system_views.sql b/src/backend/catalog/system_views.sql index 3361030d34c..0f1e61210cf 100644 --- a/src/backend/catalog/system_views.sql +++ b/src/backend/catalog/system_views.sql @@ -896,7 +896,8 @@ CREATE VIEW pg_statio_all_sequences AS C.relname AS relname, pg_stat_get_blocks_fetched(C.oid) - pg_stat_get_blocks_hit(C.oid) AS blks_read, - pg_stat_get_blocks_hit(C.oid) AS blks_hit + pg_stat_get_blocks_hit(C.oid) AS blks_hit, + pg_stat_get_stat_reset_time(C.oid) AS stats_reset FROM pg_class C LEFT JOIN pg_namespace N ON (N.oid = C.relnamespace) WHERE C.relkind = 'S'; diff --git a/src/include/catalog/catversion.h b/src/include/catalog/catversion.h index 90f46b03502..ff91cff866f 100644 --- a/src/include/catalog/catversion.h +++ b/src/include/catalog/catversion.h @@ -57,6 +57,6 @@ */ /* yyyymmddN */ -#define CATALOG_VERSION_NO 202603101 +#define CATALOG_VERSION_NO 202603111 #endif diff --git a/src/test/regress/expected/rules.out b/src/test/regress/expected/rules.out index 71d7262049e..9ed0a1756c0 100644 --- a/src/test/regress/expected/rules.out +++ b/src/test/regress/expected/rules.out @@ -2451,7 +2451,8 @@ pg_statio_all_sequences| SELECT c.oid AS relid, n.nspname AS schemaname, c.relname, (pg_stat_get_blocks_fetched(c.oid) - pg_stat_get_blocks_hit(c.oid)) AS blks_read, - pg_stat_get_blocks_hit(c.oid) AS blks_hit + pg_stat_get_blocks_hit(c.oid) AS blks_hit, + pg_stat_get_stat_reset_time(c.oid) AS stats_reset FROM (pg_class c LEFT JOIN pg_namespace n ON ((n.oid = c.relnamespace))) WHERE (c.relkind = 'S'::"char"); @@ -2493,7 +2494,8 @@ pg_statio_sys_sequences| SELECT relid, schemaname, relname, blks_read, - blks_hit + blks_hit, + stats_reset FROM pg_statio_all_sequences WHERE ((schemaname = ANY (ARRAY['pg_catalog'::name, 'information_schema'::name])) OR (schemaname ~ '^pg_toast'::text)); pg_statio_sys_tables| SELECT relid, @@ -2524,7 +2526,8 @@ pg_statio_user_sequences| SELECT relid, schemaname, relname, blks_read, - blks_hit + blks_hit, + stats_reset FROM pg_statio_all_sequences WHERE ((schemaname <> ALL (ARRAY['pg_catalog'::name, 'information_schema'::name])) AND (schemaname !~ '^pg_toast'::text)); pg_statio_user_tables| SELECT relid, diff --git a/src/test/regress/expected/stats.out b/src/test/regress/expected/stats.out index 0d634c3af42..8b19602c503 100644 --- a/src/test/regress/expected/stats.out +++ b/src/test/regress/expected/stats.out @@ -1924,4 +1924,12 @@ SELECT stats_reset IS NOT NULL AS has_stats_reset t (1 row) +-- Test that the stats_reset column in pg_statio_all_sequences is correctly maintained +SELECT stats_reset IS NOT NULL AS has_stats_reset + FROM pg_statio_all_sequences LIMIT 1; + 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 e5fb90cf0c3..0d1fac95e9f 100644 --- a/src/test/regress/sql/stats.sql +++ b/src/test/regress/sql/stats.sql @@ -949,4 +949,8 @@ SELECT pg_stat_reset(); SELECT stats_reset IS NOT NULL AS has_stats_reset FROM pg_stat_database_conflicts WHERE datname = current_database(); +-- Test that the stats_reset column in pg_statio_all_sequences is correctly maintained +SELECT stats_reset IS NOT NULL AS has_stats_reset + FROM pg_statio_all_sequences LIMIT 1; + -- End of Stats Test -- 2.53.0.880.g73c4285caa-goog