diff options
author | Michael Paquier <michael@paquier.xyz> | 2023-04-21 07:21:50 +0900 |
---|---|---|
committer | Michael Paquier <michael@paquier.xyz> | 2023-04-21 07:21:50 +0900 |
commit | 0ecb87e1fa07a733494e35636e55807b0f3fc1ed (patch) | |
tree | 958227cf546cbf36d6e6791866785cef1c49ddb6 | |
parent | eab2d3147e3c13aca4a9aca52c0a9a581a8d224a (diff) | |
download | postgresql-0ecb87e1fa07a733494e35636e55807b0f3fc1ed.tar.gz |
Remove io prefix from pg_stat_io columns
a9c70b46 added the statistics view pg_stat_io which contained columns
"io_context" and "io_object". Given that the columns are in the
pg_stat_io view, the "io" prefix is somewhat redundant, so remove it.
The code variables referring to these fields are kept unchanged so as
they can keep their context about I/O.
Bump catalog version.
Author: Melanie Plageman
Reviewed-by: Kyotaro Horiguchi, FabrÃzio de Royes Mello
Discussion: https://postgr.es/m/CAAKRu_aAQoJWrvT2BYYQvJChFKra_O-5ra3jhzKJZqWsTR1CPQ@mail.gmail.com
-rw-r--r-- | contrib/amcheck/expected/check_heap.out | 4 | ||||
-rw-r--r-- | contrib/amcheck/sql/check_heap.sql | 4 | ||||
-rw-r--r-- | doc/src/sgml/monitoring.sgml | 22 | ||||
-rw-r--r-- | src/backend/catalog/system_views.sql | 4 | ||||
-rw-r--r-- | src/backend/utils/adt/pgstatfuncs.c | 8 | ||||
-rw-r--r-- | src/include/catalog/catversion.h | 2 | ||||
-rw-r--r-- | src/include/catalog/pg_proc.dat | 2 | ||||
-rw-r--r-- | src/test/regress/expected/rules.out | 6 | ||||
-rw-r--r-- | src/test/regress/expected/stats.out | 34 | ||||
-rw-r--r-- | src/test/regress/sql/stats.sql | 34 |
10 files changed, 60 insertions, 60 deletions
diff --git a/contrib/amcheck/expected/check_heap.out b/contrib/amcheck/expected/check_heap.out index e4785141a6..8f1beb4681 100644 --- a/contrib/amcheck/expected/check_heap.out +++ b/contrib/amcheck/expected/check_heap.out @@ -80,7 +80,7 @@ INSERT INTO heaptest (a, b) SET allow_in_place_tablespaces = true; CREATE TABLESPACE regress_test_stats_tblspc LOCATION ''; SELECT sum(reads) AS stats_bulkreads_before - FROM pg_stat_io WHERE io_context = 'bulkread' \gset + FROM pg_stat_io WHERE context = 'bulkread' \gset ALTER TABLE heaptest SET TABLESPACE regress_test_stats_tblspc; -- Check that valid options are not rejected nor corruption reported -- for a non-empty table @@ -114,7 +114,7 @@ SELECT pg_stat_force_next_flush(); (1 row) SELECT sum(reads) AS stats_bulkreads_after - FROM pg_stat_io WHERE io_context = 'bulkread' \gset + FROM pg_stat_io WHERE context = 'bulkread' \gset SELECT :stats_bulkreads_after > :stats_bulkreads_before; ?column? ---------- diff --git a/contrib/amcheck/sql/check_heap.sql b/contrib/amcheck/sql/check_heap.sql index 6794ca4eb0..cf5ce4d0c0 100644 --- a/contrib/amcheck/sql/check_heap.sql +++ b/contrib/amcheck/sql/check_heap.sql @@ -40,7 +40,7 @@ INSERT INTO heaptest (a, b) SET allow_in_place_tablespaces = true; CREATE TABLESPACE regress_test_stats_tblspc LOCATION ''; SELECT sum(reads) AS stats_bulkreads_before - FROM pg_stat_io WHERE io_context = 'bulkread' \gset + FROM pg_stat_io WHERE context = 'bulkread' \gset ALTER TABLE heaptest SET TABLESPACE regress_test_stats_tblspc; -- Check that valid options are not rejected nor corruption reported @@ -55,7 +55,7 @@ SELECT * FROM verify_heapam(relation := 'heaptest', startblock := 0, endblock := -- causing an additional bulkread, which should be reflected in pg_stat_io. SELECT pg_stat_force_next_flush(); SELECT sum(reads) AS stats_bulkreads_after - FROM pg_stat_io WHERE io_context = 'bulkread' \gset + FROM pg_stat_io WHERE context = 'bulkread' \gset SELECT :stats_bulkreads_after > :stats_bulkreads_before; CREATE ROLE regress_heaptest_role; diff --git a/doc/src/sgml/monitoring.sgml b/doc/src/sgml/monitoring.sgml index 2903b67170..99f7f95c39 100644 --- a/doc/src/sgml/monitoring.sgml +++ b/doc/src/sgml/monitoring.sgml @@ -3754,7 +3754,7 @@ SELECT pid, wait_event_type, wait_event FROM pg_stat_activity WHERE wait_event i <row> <entry role="catalog_table_entry"> <para role="column_definition"> - <structfield>io_object</structfield> <type>text</type> + <structfield>object</structfield> <type>text</type> </para> <para> Target object of an I/O operation. Possible values are: @@ -3777,7 +3777,7 @@ SELECT pid, wait_event_type, wait_event FROM pg_stat_activity WHERE wait_event i <row> <entry role="catalog_table_entry"> <para role="column_definition"> - <structfield>io_context</structfield> <type>text</type> + <structfield>context</structfield> <type>text</type> </para> <para> The context of an I/O operation. Possible values are: @@ -3786,10 +3786,10 @@ SELECT pid, wait_event_type, wait_event FROM pg_stat_activity WHERE wait_event i <listitem> <para> <literal>normal</literal>: The default or standard - <varname>io_context</varname> for a type of I/O operation. For + <varname>context</varname> for a type of I/O operation. For example, by default, relation data is read into and written out from shared buffers. Thus, reads and writes of relation data to and from - shared buffers are tracked in <varname>io_context</varname> + shared buffers are tracked in <varname>context</varname> <literal>normal</literal>. </para> </listitem> @@ -3798,7 +3798,7 @@ SELECT pid, wait_event_type, wait_event FROM pg_stat_activity WHERE wait_event i <literal>vacuum</literal>: I/O operations performed outside of shared buffers while vacuuming and analyzing permanent relations. Temporary table vacuums use the same local buffer pool as other temporary table - IO operations and are tracked in <varname>io_context</varname> + IO operations and are tracked in <varname>context</varname> <literal>normal</literal>. </para> </listitem> @@ -3929,9 +3929,9 @@ SELECT pid, wait_event_type, wait_event FROM pg_stat_activity WHERE wait_event i buffer in order to make it available for another use. </para> <para> - In <varname>io_context</varname> <literal>normal</literal>, this counts + In <varname>context</varname> <literal>normal</literal>, this counts the number of times a block was evicted from a buffer and replaced with - another block. In <varname>io_context</varname>s + another block. In <varname>context</varname>s <literal>bulkwrite</literal>, <literal>bulkread</literal>, and <literal>vacuum</literal>, this counts the number of times a block was evicted from shared buffers in order to add the shared buffer to a @@ -3949,7 +3949,7 @@ SELECT pid, wait_event_type, wait_event FROM pg_stat_activity WHERE wait_event i The number of times an existing buffer in a size-limited ring buffer outside of shared buffers was reused as part of an I/O operation in the <literal>bulkread</literal>, <literal>bulkwrite</literal>, or - <literal>vacuum</literal> <varname>io_context</varname>s. + <literal>vacuum</literal> <varname>context</varname>s. </para> </entry> </row> @@ -3961,7 +3961,7 @@ SELECT pid, wait_event_type, wait_event FROM pg_stat_activity WHERE wait_event i </para> <para> Number of <literal>fsync</literal> calls. These are only tracked in - <varname>io_context</varname> <literal>normal</literal>. + <varname>context</varname> <literal>normal</literal>. </para> </entry> </row> @@ -3997,7 +3997,7 @@ SELECT pid, wait_event_type, wait_event FROM pg_stat_activity WHERE wait_event i in some I/O contexts. These rows are omitted from the view. For example, the checkpointer does not checkpoint temporary tables, so there will be no rows for <varname>backend_type</varname> <literal>checkpointer</literal> and - <varname>io_object</varname> <literal>temp relation</literal>. + <varname>object</varname> <literal>temp relation</literal>. </para> <para> @@ -4005,7 +4005,7 @@ SELECT pid, wait_event_type, wait_event FROM pg_stat_activity WHERE wait_event i backend types or on certain I/O objects and/or in certain I/O contexts. These cells will be NULL. For example, temporary tables are not <literal>fsync</literal>ed, so <varname>fsyncs</varname> will be NULL for - <varname>io_object</varname> <literal>temp relation</literal>. Also, the + <varname>object</varname> <literal>temp relation</literal>. Also, the background writer does not perform reads, so <varname>reads</varname> will be NULL in rows for <varname>backend_type</varname> <literal>background writer</literal>. diff --git a/src/backend/catalog/system_views.sql b/src/backend/catalog/system_views.sql index 2129c916aa..48aacf66ee 100644 --- a/src/backend/catalog/system_views.sql +++ b/src/backend/catalog/system_views.sql @@ -1125,8 +1125,8 @@ CREATE VIEW pg_stat_bgwriter AS CREATE VIEW pg_stat_io AS SELECT b.backend_type, - b.io_object, - b.io_context, + b.object, + b.context, b.reads, b.read_time, b.writes, diff --git a/src/backend/utils/adt/pgstatfuncs.c b/src/backend/utils/adt/pgstatfuncs.c index e79b065d21..0d57b6a7c0 100644 --- a/src/backend/utils/adt/pgstatfuncs.c +++ b/src/backend/utils/adt/pgstatfuncs.c @@ -1262,8 +1262,8 @@ typedef enum io_stat_col { IO_COL_INVALID = -1, IO_COL_BACKEND_TYPE, - IO_COL_IO_OBJECT, - IO_COL_IO_CONTEXT, + IO_COL_OBJECT, + IO_COL_CONTEXT, IO_COL_READS, IO_COL_READ_TIME, IO_COL_WRITES, @@ -1394,8 +1394,8 @@ pg_stat_get_io(PG_FUNCTION_ARGS) continue; values[IO_COL_BACKEND_TYPE] = bktype_desc; - values[IO_COL_IO_CONTEXT] = CStringGetTextDatum(context_name); - values[IO_COL_IO_OBJECT] = CStringGetTextDatum(obj_name); + values[IO_COL_CONTEXT] = CStringGetTextDatum(context_name); + values[IO_COL_OBJECT] = CStringGetTextDatum(obj_name); values[IO_COL_RESET_TIME] = TimestampTzGetDatum(reset_time); /* diff --git a/src/include/catalog/catversion.h b/src/include/catalog/catversion.h index f152a2e82b..44d7e521bd 100644 --- a/src/include/catalog/catversion.h +++ b/src/include/catalog/catversion.h @@ -57,6 +57,6 @@ */ /* yyyymmddN */ -#define CATALOG_VERSION_NO 202304111 +#define CATALOG_VERSION_NO 202304211 #endif diff --git a/src/include/catalog/pg_proc.dat b/src/include/catalog/pg_proc.dat index b516cee8bd..b2bc81b15f 100644 --- a/src/include/catalog/pg_proc.dat +++ b/src/include/catalog/pg_proc.dat @@ -5762,7 +5762,7 @@ proparallel => 'r', prorettype => 'record', proargtypes => '', proallargtypes => '{text,text,text,int8,float8,int8,float8,int8,float8,int8,int8,int8,int8,int8,float8,timestamptz}', proargmodes => '{o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o}', - proargnames => '{backend_type,io_object,io_context,reads,read_time,writes,write_time,extends,extend_time,op_bytes,hits,evictions,reuses,fsyncs,fsync_time,stats_reset}', + proargnames => '{backend_type,object,context,reads,read_time,writes,write_time,extends,extend_time,op_bytes,hits,evictions,reuses,fsyncs,fsync_time,stats_reset}', prosrc => 'pg_stat_get_io' }, { oid => '1136', descr => 'statistics: information about WAL activity', diff --git a/src/test/regress/expected/rules.out b/src/test/regress/expected/rules.out index 919d947ec0..69957687fe 100644 --- a/src/test/regress/expected/rules.out +++ b/src/test/regress/expected/rules.out @@ -1881,8 +1881,8 @@ pg_stat_gssapi| SELECT pid, FROM pg_stat_get_activity(NULL::integer) s(datid, pid, usesysid, application_name, state, query, wait_event_type, wait_event, xact_start, query_start, backend_start, state_change, client_addr, client_hostname, client_port, backend_xid, backend_xmin, backend_type, ssl, sslversion, sslcipher, sslbits, ssl_client_dn, ssl_client_serial, ssl_issuer_dn, gss_auth, gss_princ, gss_enc, gss_deleg, leader_pid, query_id) WHERE (client_port IS NOT NULL); pg_stat_io| SELECT backend_type, - io_object, - io_context, + object, + context, reads, read_time, writes, @@ -1896,7 +1896,7 @@ pg_stat_io| SELECT backend_type, fsyncs, fsync_time, stats_reset - FROM pg_stat_get_io() b(backend_type, io_object, io_context, reads, read_time, writes, write_time, extends, extend_time, op_bytes, hits, evictions, reuses, fsyncs, fsync_time, stats_reset); + FROM pg_stat_get_io() b(backend_type, object, context, reads, read_time, writes, write_time, extends, extend_time, op_bytes, hits, evictions, reuses, fsyncs, fsync_time, stats_reset); pg_stat_progress_analyze| SELECT s.pid, s.datid, d.datname, diff --git a/src/test/regress/expected/stats.out b/src/test/regress/expected/stats.out index 5f1821938d..813d6d39ea 100644 --- a/src/test/regress/expected/stats.out +++ b/src/test/regress/expected/stats.out @@ -1137,10 +1137,10 @@ SELECT pg_stat_get_subscription_stats(NULL); -- Create a regular table and insert some data to generate IOCONTEXT_NORMAL -- extends. SELECT sum(extends) AS io_sum_shared_before_extends - FROM pg_stat_io WHERE io_context = 'normal' AND io_object = 'relation' \gset + FROM pg_stat_io WHERE context = 'normal' AND object = 'relation' \gset SELECT sum(writes) AS writes, sum(fsyncs) AS fsyncs FROM pg_stat_io - WHERE io_object = 'relation' \gset io_sum_shared_before_ + WHERE object = 'relation' \gset io_sum_shared_before_ CREATE TABLE test_io_shared(a int); INSERT INTO test_io_shared SELECT i FROM generate_series(1,100)i; SELECT pg_stat_force_next_flush(); @@ -1150,7 +1150,7 @@ SELECT pg_stat_force_next_flush(); (1 row) SELECT sum(extends) AS io_sum_shared_after_extends - FROM pg_stat_io WHERE io_context = 'normal' AND io_object = 'relation' \gset + FROM pg_stat_io WHERE context = 'normal' AND object = 'relation' \gset SELECT :io_sum_shared_after_extends > :io_sum_shared_before_extends; ?column? ---------- @@ -1164,7 +1164,7 @@ CHECKPOINT; CHECKPOINT; SELECT sum(writes) AS writes, sum(fsyncs) AS fsyncs FROM pg_stat_io - WHERE io_object = 'relation' \gset io_sum_shared_after_ + WHERE object = 'relation' \gset io_sum_shared_after_ SELECT :io_sum_shared_after_writes > :io_sum_shared_before_writes; ?column? ---------- @@ -1181,13 +1181,13 @@ SELECT current_setting('fsync') = 'off' -- Change the tablespace so that the table is rewritten directly, then SELECT -- from it to cause it to be read back into shared buffers. SELECT sum(reads) AS io_sum_shared_before_reads - FROM pg_stat_io WHERE io_context = 'normal' AND io_object = 'relation' \gset + FROM pg_stat_io WHERE context = 'normal' AND object = 'relation' \gset -- Do this in a transaction to prevent spurious failures due to concurrent accesses to our newly -- rewritten table, e.g. by autovacuum. BEGIN; ALTER TABLE test_io_shared SET TABLESPACE regress_tblspace; -- SELECT from the table so that the data is read into shared buffers and --- io_context 'normal', io_object 'relation' reads are counted. +-- context 'normal', object 'relation' reads are counted. SELECT COUNT(*) FROM test_io_shared; count ------- @@ -1202,7 +1202,7 @@ SELECT pg_stat_force_next_flush(); (1 row) SELECT sum(reads) AS io_sum_shared_after_reads - FROM pg_stat_io WHERE io_context = 'normal' AND io_object = 'relation' \gset + FROM pg_stat_io WHERE context = 'normal' AND object = 'relation' \gset SELECT :io_sum_shared_after_reads > :io_sum_shared_before_reads; ?column? ---------- @@ -1210,7 +1210,7 @@ SELECT :io_sum_shared_after_reads > :io_sum_shared_before_reads; (1 row) SELECT sum(hits) AS io_sum_shared_before_hits - FROM pg_stat_io WHERE io_context = 'normal' AND io_object = 'relation' \gset + FROM pg_stat_io WHERE context = 'normal' AND object = 'relation' \gset -- Select from the table again to count hits. -- Ensure we generate hits by forcing a nested loop self-join with no -- materialize node. The outer side's buffer will stay pinned, preventing its @@ -1243,7 +1243,7 @@ SELECT pg_stat_force_next_flush(); (1 row) SELECT sum(hits) AS io_sum_shared_after_hits - FROM pg_stat_io WHERE io_context = 'normal' AND io_object = 'relation' \gset + FROM pg_stat_io WHERE context = 'normal' AND object = 'relation' \gset SELECT :io_sum_shared_after_hits > :io_sum_shared_before_hits; ?column? ---------- @@ -1264,7 +1264,7 @@ SET temp_buffers TO 100; CREATE TEMPORARY TABLE test_io_local(a int, b TEXT); SELECT sum(extends) AS extends, sum(evictions) AS evictions, sum(writes) AS writes FROM pg_stat_io - WHERE io_context = 'normal' AND io_object = 'temp relation' \gset io_sum_local_before_ + WHERE context = 'normal' AND object = 'temp relation' \gset io_sum_local_before_ -- Insert tuples into the temporary table, generating extends in the stats. -- Insert enough values that we need to reuse and write out dirty local -- buffers, generating evictions and writes. @@ -1277,7 +1277,7 @@ SELECT pg_relation_size('test_io_local') / current_setting('block_size')::int8 > (1 row) SELECT sum(reads) AS io_sum_local_before_reads - FROM pg_stat_io WHERE io_context = 'normal' AND io_object = 'temp relation' \gset + FROM pg_stat_io WHERE context = 'normal' AND object = 'temp relation' \gset -- Read in evicted buffers, generating reads. SELECT COUNT(*) FROM test_io_local; count @@ -1296,7 +1296,7 @@ SELECT sum(evictions) AS evictions, sum(writes) AS writes, sum(extends) AS extends FROM pg_stat_io - WHERE io_context = 'normal' AND io_object = 'temp relation' \gset io_sum_local_after_ + WHERE context = 'normal' AND object = 'temp relation' \gset io_sum_local_after_ SELECT :io_sum_local_after_evictions > :io_sum_local_before_evictions, :io_sum_local_after_reads > :io_sum_local_before_reads, :io_sum_local_after_writes > :io_sum_local_before_writes, @@ -1317,7 +1317,7 @@ SELECT pg_stat_force_next_flush(); (1 row) SELECT sum(writes) AS io_sum_local_new_tblspc_writes - FROM pg_stat_io WHERE io_context = 'normal' AND io_object = 'temp relation' \gset + FROM pg_stat_io WHERE context = 'normal' AND object = 'temp relation' \gset SELECT :io_sum_local_new_tblspc_writes > :io_sum_local_after_writes; ?column? ---------- @@ -1335,7 +1335,7 @@ RESET temp_buffers; -- reads. SET wal_skip_threshold = '1 kB'; SELECT sum(reuses) AS reuses, sum(reads) AS reads - FROM pg_stat_io WHERE io_context = 'vacuum' \gset io_sum_vac_strategy_before_ + FROM pg_stat_io WHERE context = 'vacuum' \gset io_sum_vac_strategy_before_ CREATE TABLE test_io_vac_strategy(a int, b int) WITH (autovacuum_enabled = 'false'); INSERT INTO test_io_vac_strategy SELECT i, i from generate_series(1, 8000)i; -- Ensure that the next VACUUM will need to perform IO by rewriting the table @@ -1349,7 +1349,7 @@ SELECT pg_stat_force_next_flush(); (1 row) SELECT sum(reuses) AS reuses, sum(reads) AS reads - FROM pg_stat_io WHERE io_context = 'vacuum' \gset io_sum_vac_strategy_after_ + FROM pg_stat_io WHERE context = 'vacuum' \gset io_sum_vac_strategy_after_ SELECT :io_sum_vac_strategy_after_reads > :io_sum_vac_strategy_before_reads, :io_sum_vac_strategy_after_reuses > :io_sum_vac_strategy_before_reuses; ?column? | ?column? @@ -1361,7 +1361,7 @@ RESET wal_skip_threshold; -- Test that extends done by a CTAS, which uses a BAS_BULKWRITE -- BufferAccessStrategy, are tracked in pg_stat_io. SELECT sum(extends) AS io_sum_bulkwrite_strategy_extends_before - FROM pg_stat_io WHERE io_context = 'bulkwrite' \gset + FROM pg_stat_io WHERE context = 'bulkwrite' \gset CREATE TABLE test_io_bulkwrite_strategy AS SELECT i FROM generate_series(1,100)i; SELECT pg_stat_force_next_flush(); pg_stat_force_next_flush @@ -1370,7 +1370,7 @@ SELECT pg_stat_force_next_flush(); (1 row) SELECT sum(extends) AS io_sum_bulkwrite_strategy_extends_after - FROM pg_stat_io WHERE io_context = 'bulkwrite' \gset + FROM pg_stat_io WHERE context = 'bulkwrite' \gset SELECT :io_sum_bulkwrite_strategy_extends_after > :io_sum_bulkwrite_strategy_extends_before; ?column? ---------- diff --git a/src/test/regress/sql/stats.sql b/src/test/regress/sql/stats.sql index 58db803ed6..99a28bb79c 100644 --- a/src/test/regress/sql/stats.sql +++ b/src/test/regress/sql/stats.sql @@ -549,15 +549,15 @@ SELECT pg_stat_get_subscription_stats(NULL); -- Create a regular table and insert some data to generate IOCONTEXT_NORMAL -- extends. SELECT sum(extends) AS io_sum_shared_before_extends - FROM pg_stat_io WHERE io_context = 'normal' AND io_object = 'relation' \gset + FROM pg_stat_io WHERE context = 'normal' AND object = 'relation' \gset SELECT sum(writes) AS writes, sum(fsyncs) AS fsyncs FROM pg_stat_io - WHERE io_object = 'relation' \gset io_sum_shared_before_ + WHERE object = 'relation' \gset io_sum_shared_before_ CREATE TABLE test_io_shared(a int); INSERT INTO test_io_shared SELECT i FROM generate_series(1,100)i; SELECT pg_stat_force_next_flush(); SELECT sum(extends) AS io_sum_shared_after_extends - FROM pg_stat_io WHERE io_context = 'normal' AND io_object = 'relation' \gset + FROM pg_stat_io WHERE context = 'normal' AND object = 'relation' \gset SELECT :io_sum_shared_after_extends > :io_sum_shared_before_extends; -- After a checkpoint, there should be some additional IOCONTEXT_NORMAL writes @@ -567,7 +567,7 @@ CHECKPOINT; CHECKPOINT; SELECT sum(writes) AS writes, sum(fsyncs) AS fsyncs FROM pg_stat_io - WHERE io_object = 'relation' \gset io_sum_shared_after_ + WHERE object = 'relation' \gset io_sum_shared_after_ SELECT :io_sum_shared_after_writes > :io_sum_shared_before_writes; SELECT current_setting('fsync') = 'off' OR :io_sum_shared_after_fsyncs > :io_sum_shared_before_fsyncs; @@ -575,22 +575,22 @@ SELECT current_setting('fsync') = 'off' -- Change the tablespace so that the table is rewritten directly, then SELECT -- from it to cause it to be read back into shared buffers. SELECT sum(reads) AS io_sum_shared_before_reads - FROM pg_stat_io WHERE io_context = 'normal' AND io_object = 'relation' \gset + FROM pg_stat_io WHERE context = 'normal' AND object = 'relation' \gset -- Do this in a transaction to prevent spurious failures due to concurrent accesses to our newly -- rewritten table, e.g. by autovacuum. BEGIN; ALTER TABLE test_io_shared SET TABLESPACE regress_tblspace; -- SELECT from the table so that the data is read into shared buffers and --- io_context 'normal', io_object 'relation' reads are counted. +-- context 'normal', object 'relation' reads are counted. SELECT COUNT(*) FROM test_io_shared; COMMIT; SELECT pg_stat_force_next_flush(); SELECT sum(reads) AS io_sum_shared_after_reads - FROM pg_stat_io WHERE io_context = 'normal' AND io_object = 'relation' \gset + FROM pg_stat_io WHERE context = 'normal' AND object = 'relation' \gset SELECT :io_sum_shared_after_reads > :io_sum_shared_before_reads; SELECT sum(hits) AS io_sum_shared_before_hits - FROM pg_stat_io WHERE io_context = 'normal' AND io_object = 'relation' \gset + FROM pg_stat_io WHERE context = 'normal' AND object = 'relation' \gset -- Select from the table again to count hits. -- Ensure we generate hits by forcing a nested loop self-join with no -- materialize node. The outer side's buffer will stay pinned, preventing its @@ -604,7 +604,7 @@ SELECT COUNT(*) FROM test_io_shared t1 INNER JOIN test_io_shared t2 USING (a); COMMIT; SELECT pg_stat_force_next_flush(); SELECT sum(hits) AS io_sum_shared_after_hits - FROM pg_stat_io WHERE io_context = 'normal' AND io_object = 'relation' \gset + FROM pg_stat_io WHERE context = 'normal' AND object = 'relation' \gset SELECT :io_sum_shared_after_hits > :io_sum_shared_before_hits; DROP TABLE test_io_shared; @@ -623,7 +623,7 @@ SET temp_buffers TO 100; CREATE TEMPORARY TABLE test_io_local(a int, b TEXT); SELECT sum(extends) AS extends, sum(evictions) AS evictions, sum(writes) AS writes FROM pg_stat_io - WHERE io_context = 'normal' AND io_object = 'temp relation' \gset io_sum_local_before_ + WHERE context = 'normal' AND object = 'temp relation' \gset io_sum_local_before_ -- Insert tuples into the temporary table, generating extends in the stats. -- Insert enough values that we need to reuse and write out dirty local -- buffers, generating evictions and writes. @@ -632,7 +632,7 @@ INSERT INTO test_io_local SELECT generate_series(1, 5000) as id, repeat('a', 200 SELECT pg_relation_size('test_io_local') / current_setting('block_size')::int8 > 100; SELECT sum(reads) AS io_sum_local_before_reads - FROM pg_stat_io WHERE io_context = 'normal' AND io_object = 'temp relation' \gset + FROM pg_stat_io WHERE context = 'normal' AND object = 'temp relation' \gset -- Read in evicted buffers, generating reads. SELECT COUNT(*) FROM test_io_local; SELECT pg_stat_force_next_flush(); @@ -641,7 +641,7 @@ SELECT sum(evictions) AS evictions, sum(writes) AS writes, sum(extends) AS extends FROM pg_stat_io - WHERE io_context = 'normal' AND io_object = 'temp relation' \gset io_sum_local_after_ + WHERE context = 'normal' AND object = 'temp relation' \gset io_sum_local_after_ SELECT :io_sum_local_after_evictions > :io_sum_local_before_evictions, :io_sum_local_after_reads > :io_sum_local_before_reads, :io_sum_local_after_writes > :io_sum_local_before_writes, @@ -653,7 +653,7 @@ SELECT :io_sum_local_after_evictions > :io_sum_local_before_evictions, ALTER TABLE test_io_local SET TABLESPACE regress_tblspace; SELECT pg_stat_force_next_flush(); SELECT sum(writes) AS io_sum_local_new_tblspc_writes - FROM pg_stat_io WHERE io_context = 'normal' AND io_object = 'temp relation' \gset + FROM pg_stat_io WHERE context = 'normal' AND object = 'temp relation' \gset SELECT :io_sum_local_new_tblspc_writes > :io_sum_local_after_writes; RESET temp_buffers; @@ -668,7 +668,7 @@ RESET temp_buffers; -- reads. SET wal_skip_threshold = '1 kB'; SELECT sum(reuses) AS reuses, sum(reads) AS reads - FROM pg_stat_io WHERE io_context = 'vacuum' \gset io_sum_vac_strategy_before_ + FROM pg_stat_io WHERE context = 'vacuum' \gset io_sum_vac_strategy_before_ CREATE TABLE test_io_vac_strategy(a int, b int) WITH (autovacuum_enabled = 'false'); INSERT INTO test_io_vac_strategy SELECT i, i from generate_series(1, 8000)i; -- Ensure that the next VACUUM will need to perform IO by rewriting the table @@ -677,7 +677,7 @@ VACUUM (FULL) test_io_vac_strategy; VACUUM (PARALLEL 0) test_io_vac_strategy; SELECT pg_stat_force_next_flush(); SELECT sum(reuses) AS reuses, sum(reads) AS reads - FROM pg_stat_io WHERE io_context = 'vacuum' \gset io_sum_vac_strategy_after_ + FROM pg_stat_io WHERE context = 'vacuum' \gset io_sum_vac_strategy_after_ SELECT :io_sum_vac_strategy_after_reads > :io_sum_vac_strategy_before_reads, :io_sum_vac_strategy_after_reuses > :io_sum_vac_strategy_before_reuses; RESET wal_skip_threshold; @@ -685,11 +685,11 @@ RESET wal_skip_threshold; -- Test that extends done by a CTAS, which uses a BAS_BULKWRITE -- BufferAccessStrategy, are tracked in pg_stat_io. SELECT sum(extends) AS io_sum_bulkwrite_strategy_extends_before - FROM pg_stat_io WHERE io_context = 'bulkwrite' \gset + FROM pg_stat_io WHERE context = 'bulkwrite' \gset CREATE TABLE test_io_bulkwrite_strategy AS SELECT i FROM generate_series(1,100)i; SELECT pg_stat_force_next_flush(); SELECT sum(extends) AS io_sum_bulkwrite_strategy_extends_after - FROM pg_stat_io WHERE io_context = 'bulkwrite' \gset + FROM pg_stat_io WHERE context = 'bulkwrite' \gset SELECT :io_sum_bulkwrite_strategy_extends_after > :io_sum_bulkwrite_strategy_extends_before; -- Test IO stats reset |