Skip to content

Commit 5b2147d

Browse files
committed
Expand regression tests for pg_stat_reset_shared()
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
1 parent dc5bd38 commit 5b2147d

File tree

2 files changed

+35
-0
lines changed

2 files changed

+35
-0
lines changed

src/test/regress/expected/stats.out

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -945,6 +945,21 @@ SELECT stats_reset > :'checkpointer_reset_ts'::timestamptz FROM pg_stat_checkpoi
945945
(1 row)
946946

947947
SELECT stats_reset AS checkpointer_reset_ts FROM pg_stat_checkpointer \gset
948+
-- Test that reset_shared with recovery_prefetch specified as the stats type works
949+
SELECT stats_reset AS recovery_prefetch_reset_ts FROM pg_stat_recovery_prefetch \gset
950+
SELECT pg_stat_reset_shared('recovery_prefetch');
951+
pg_stat_reset_shared
952+
----------------------
953+
954+
(1 row)
955+
956+
SELECT stats_reset > :'recovery_prefetch_reset_ts'::timestamptz FROM pg_stat_recovery_prefetch;
957+
?column?
958+
----------
959+
t
960+
(1 row)
961+
962+
SELECT stats_reset AS recovery_prefetch_reset_ts FROM pg_stat_recovery_prefetch \gset
948963
-- Test that reset_shared with wal specified as the stats type works
949964
SELECT stats_reset AS wal_reset_ts FROM pg_stat_wal \gset
950965
SELECT pg_stat_reset_shared('wal');
@@ -985,12 +1000,22 @@ SELECT stats_reset = :'checkpointer_reset_ts'::timestamptz FROM pg_stat_checkpoi
9851000
t
9861001
(1 row)
9871002

1003+
SELECT stats_reset = :'recovery_prefetch_reset_ts'::timestamptz FROM pg_stat_recovery_prefetch;
1004+
?column?
1005+
----------
1006+
t
1007+
(1 row)
1008+
9881009
SELECT stats_reset = :'wal_reset_ts'::timestamptz FROM pg_stat_wal;
9891010
?column?
9901011
----------
9911012
t
9921013
(1 row)
9931014

1015+
-- Test error case for reset_shared with unknown stats type
1016+
SELECT pg_stat_reset_shared('unknown');
1017+
ERROR: unrecognized reset target: "unknown"
1018+
HINT: Target must be "archiver", "bgwriter", "checkpointer", "io", "recovery_prefetch", or "wal".
9941019
-- Test that reset works for pg_stat_database
9951020
-- Since pg_stat_database stats_reset starts out as NULL, reset it once first so we have something to compare it to
9961021
SELECT pg_stat_reset();

src/test/regress/sql/stats.sql

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -476,6 +476,12 @@ SELECT pg_stat_reset_shared('checkpointer');
476476
SELECT stats_reset > :'checkpointer_reset_ts'::timestamptz FROM pg_stat_checkpointer;
477477
SELECT stats_reset AS checkpointer_reset_ts FROM pg_stat_checkpointer \gset
478478

479+
-- Test that reset_shared with recovery_prefetch specified as the stats type works
480+
SELECT stats_reset AS recovery_prefetch_reset_ts FROM pg_stat_recovery_prefetch \gset
481+
SELECT pg_stat_reset_shared('recovery_prefetch');
482+
SELECT stats_reset > :'recovery_prefetch_reset_ts'::timestamptz FROM pg_stat_recovery_prefetch;
483+
SELECT stats_reset AS recovery_prefetch_reset_ts FROM pg_stat_recovery_prefetch \gset
484+
479485
-- Test that reset_shared with wal specified as the stats type works
480486
SELECT stats_reset AS wal_reset_ts FROM pg_stat_wal \gset
481487
SELECT pg_stat_reset_shared('wal');
@@ -487,8 +493,12 @@ SELECT pg_stat_reset_shared(NULL);
487493
SELECT stats_reset = :'archiver_reset_ts'::timestamptz FROM pg_stat_archiver;
488494
SELECT stats_reset = :'bgwriter_reset_ts'::timestamptz FROM pg_stat_bgwriter;
489495
SELECT stats_reset = :'checkpointer_reset_ts'::timestamptz FROM pg_stat_checkpointer;
496+
SELECT stats_reset = :'recovery_prefetch_reset_ts'::timestamptz FROM pg_stat_recovery_prefetch;
490497
SELECT stats_reset = :'wal_reset_ts'::timestamptz FROM pg_stat_wal;
491498

499+
-- Test error case for reset_shared with unknown stats type
500+
SELECT pg_stat_reset_shared('unknown');
501+
492502
-- Test that reset works for pg_stat_database
493503

494504
-- Since pg_stat_database stats_reset starts out as NULL, reset it once first so we have something to compare it to

0 commit comments

Comments
 (0)