1
0
mirror of https://github.com/postgres/postgres.git synced 2025-06-14 18:42:34 +03:00

Add regression test listing all the possible tuples in pg_stat_io

pg_stat_io returns a set of tuples based on a combination of three
properties (BackendType, IOObject and IOContext) and
pgstat_tracks_io_object() to decide if a BackendType should return a
tuple based on a pair made of an IOObject and an IOContext.

This commit adds a regression test to track all the combinations
supported.  This is useful to know which tuples are relevant when adding
a new BackendType to the set or when touching pgstat_tracks_io_object(),
and I have noticed while playing with this area that it is not
complicated to break it without the regression tests noticing a
difference in some cases.

Reviewed-by: Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
Discussion: https://postgr.es/m/Z8exfAehbVbEKXW5@paquier.xyz
This commit is contained in:
Michael Paquier
2025-03-08 12:22:41 +09:00
parent 9a8dd2c5a6
commit 8b532771a0
2 changed files with 84 additions and 0 deletions

View File

@ -11,6 +11,84 @@ SHOW track_counts; -- must be on
on
(1 row)
-- List of backend types, contexts and objects tracked in pg_stat_io.
\a
SELECT backend_type, object, context FROM pg_stat_io
ORDER BY backend_type, object, context COLLATE "C";
backend_type|object|context
autovacuum launcher|relation|bulkread
autovacuum launcher|relation|init
autovacuum launcher|relation|normal
autovacuum launcher|wal|init
autovacuum launcher|wal|normal
autovacuum worker|relation|bulkread
autovacuum worker|relation|init
autovacuum worker|relation|normal
autovacuum worker|relation|vacuum
autovacuum worker|wal|init
autovacuum worker|wal|normal
background worker|relation|bulkread
background worker|relation|bulkwrite
background worker|relation|init
background worker|relation|normal
background worker|relation|vacuum
background worker|temp relation|normal
background worker|wal|init
background worker|wal|normal
background writer|relation|init
background writer|relation|normal
background writer|wal|init
background writer|wal|normal
checkpointer|relation|init
checkpointer|relation|normal
checkpointer|wal|init
checkpointer|wal|normal
client backend|relation|bulkread
client backend|relation|bulkwrite
client backend|relation|init
client backend|relation|normal
client backend|relation|vacuum
client backend|temp relation|normal
client backend|wal|init
client backend|wal|normal
slotsync worker|relation|bulkread
slotsync worker|relation|bulkwrite
slotsync worker|relation|init
slotsync worker|relation|normal
slotsync worker|relation|vacuum
slotsync worker|temp relation|normal
slotsync worker|wal|init
slotsync worker|wal|normal
standalone backend|relation|bulkread
standalone backend|relation|bulkwrite
standalone backend|relation|init
standalone backend|relation|normal
standalone backend|relation|vacuum
standalone backend|wal|init
standalone backend|wal|normal
startup|relation|bulkread
startup|relation|bulkwrite
startup|relation|init
startup|relation|normal
startup|relation|vacuum
startup|wal|init
startup|wal|normal
walreceiver|wal|init
walreceiver|wal|normal
walsender|relation|bulkread
walsender|relation|bulkwrite
walsender|relation|init
walsender|relation|normal
walsender|relation|vacuum
walsender|temp relation|normal
walsender|wal|init
walsender|wal|normal
walsummarizer|wal|init
walsummarizer|wal|normal
walwriter|wal|init
walwriter|wal|normal
(71 rows)
\a
-- ensure that both seqscan and indexscan plans are allowed
SET enable_seqscan TO on;
SET enable_indexscan TO on;

View File

@ -8,6 +8,12 @@
-- conditio sine qua non
SHOW track_counts; -- must be on
-- List of backend types, contexts and objects tracked in pg_stat_io.
\a
SELECT backend_type, object, context FROM pg_stat_io
ORDER BY backend_type, object, context COLLATE "C";
\a
-- ensure that both seqscan and indexscan plans are allowed
SET enable_seqscan TO on;
SET enable_indexscan TO on;