Expand regression tests for pg_stat_reset_shared()
authorMichael Paquier <[email protected]>
Mon, 30 Oct 2023 08:19:24 +0000 (17:19 +0900)
committerMichael Paquier <[email protected]>
Mon, 30 Oct 2023 08:19:24 +0000 (17:19 +0900)
This commit adds coverage for the stats reset of recovery_prefetch, and
for the case where an invalid value is given in input of the function.

Author: Bharath Rupireddy
Discussion: https://postgr.es/m/CALj2ACW9Uk7x61oSix9qK0xR4Jhy3cgg6pobQ-Q3GNsUbFrn8A@mail.gmail.com

src/test/regress/expected/stats.out
src/test/regress/sql/stats.sql

index 32ad7f3dcc312148da5bbd17ff11829685e82b19..494cef07d31cbc9424d42a4926b05afb2536a844 100644 (file)
@@ -945,6 +945,21 @@ SELECT stats_reset > :'checkpointer_reset_ts'::timestamptz FROM pg_stat_checkpoi
 (1 row)
 
 SELECT stats_reset AS checkpointer_reset_ts FROM pg_stat_checkpointer \gset
+-- Test that reset_shared with recovery_prefetch specified as the stats type works
+SELECT stats_reset AS recovery_prefetch_reset_ts FROM pg_stat_recovery_prefetch \gset
+SELECT pg_stat_reset_shared('recovery_prefetch');
+ pg_stat_reset_shared 
+----------------------
+(1 row)
+
+SELECT stats_reset > :'recovery_prefetch_reset_ts'::timestamptz FROM pg_stat_recovery_prefetch;
+ ?column? 
+----------
+ t
+(1 row)
+
+SELECT stats_reset AS recovery_prefetch_reset_ts FROM pg_stat_recovery_prefetch \gset
 -- Test that reset_shared with wal specified as the stats type works
 SELECT stats_reset AS wal_reset_ts FROM pg_stat_wal \gset
 SELECT pg_stat_reset_shared('wal');
@@ -985,12 +1000,22 @@ SELECT stats_reset = :'checkpointer_reset_ts'::timestamptz FROM pg_stat_checkpoi
  t
 (1 row)
 
+SELECT stats_reset = :'recovery_prefetch_reset_ts'::timestamptz FROM pg_stat_recovery_prefetch;
+ ?column? 
+----------
+ t
+(1 row)
+
 SELECT stats_reset = :'wal_reset_ts'::timestamptz FROM pg_stat_wal;
  ?column? 
 ----------
  t
 (1 row)
 
+-- Test error case for reset_shared with unknown stats type
+SELECT pg_stat_reset_shared('unknown');
+ERROR:  unrecognized reset target: "unknown"
+HINT:  Target must be "archiver", "bgwriter", "checkpointer", "io", "recovery_prefetch", or "wal".
 -- Test that reset works for pg_stat_database
 -- Since pg_stat_database stats_reset starts out as NULL, reset it once first so we have something to compare it to
 SELECT pg_stat_reset();
index 8bfeed607faa934eb865783477786e10af217428..7ae8b8a2762a520b958247a82587becdc3cbe6b9 100644 (file)
@@ -476,6 +476,12 @@ SELECT pg_stat_reset_shared('checkpointer');
 SELECT stats_reset > :'checkpointer_reset_ts'::timestamptz FROM pg_stat_checkpointer;
 SELECT stats_reset AS checkpointer_reset_ts FROM pg_stat_checkpointer \gset
 
+-- Test that reset_shared with recovery_prefetch specified as the stats type works
+SELECT stats_reset AS recovery_prefetch_reset_ts FROM pg_stat_recovery_prefetch \gset
+SELECT pg_stat_reset_shared('recovery_prefetch');
+SELECT stats_reset > :'recovery_prefetch_reset_ts'::timestamptz FROM pg_stat_recovery_prefetch;
+SELECT stats_reset AS recovery_prefetch_reset_ts FROM pg_stat_recovery_prefetch \gset
+
 -- Test that reset_shared with wal specified as the stats type works
 SELECT stats_reset AS wal_reset_ts FROM pg_stat_wal \gset
 SELECT pg_stat_reset_shared('wal');
@@ -487,8 +493,12 @@ SELECT pg_stat_reset_shared(NULL);
 SELECT stats_reset = :'archiver_reset_ts'::timestamptz FROM pg_stat_archiver;
 SELECT stats_reset = :'bgwriter_reset_ts'::timestamptz FROM pg_stat_bgwriter;
 SELECT stats_reset = :'checkpointer_reset_ts'::timestamptz FROM pg_stat_checkpointer;
+SELECT stats_reset = :'recovery_prefetch_reset_ts'::timestamptz FROM pg_stat_recovery_prefetch;
 SELECT stats_reset = :'wal_reset_ts'::timestamptz FROM pg_stat_wal;
 
+-- Test error case for reset_shared with unknown stats type
+SELECT pg_stat_reset_shared('unknown');
+
 -- Test that reset works for pg_stat_database
 
 -- Since pg_stat_database stats_reset starts out as NULL, reset it once first so we have something to compare it to