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
This commit is contained in:
Michael Paquier 2023-04-21 07:21:50 +09:00
parent eab2d3147e
commit 0ecb87e1fa
10 changed files with 60 additions and 60 deletions

View File

@ -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?
----------

View File

@ -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;

View File

@ -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>.

View File

@ -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,

View File

@ -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);
/*

View File

@ -57,6 +57,6 @@
*/
/* yyyymmddN */
#define CATALOG_VERSION_NO 202304111
#define CATALOG_VERSION_NO 202304211
#endif

View File

@ -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',

View File

@ -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,

View File

@ -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?
----------

View File

@ -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