aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/src/sgml/monitoring.sgml9
-rw-r--r--src/backend/access/heap/vacuumlazy.c12
-rw-r--r--src/backend/catalog/system_views.sql3
-rw-r--r--src/include/catalog/catversion.h2
-rw-r--r--src/include/commands/progress.h5
-rw-r--r--src/test/regress/expected/rules.out5
6 files changed, 27 insertions, 9 deletions
diff --git a/doc/src/sgml/monitoring.sgml b/doc/src/sgml/monitoring.sgml
index 053da8d6e40..b2ad9b446f3 100644
--- a/doc/src/sgml/monitoring.sgml
+++ b/doc/src/sgml/monitoring.sgml
@@ -6270,6 +6270,15 @@ FROM pg_stat_get_backend_idset() AS backendid;
<row>
<entry role="catalog_table_entry"><para role="column_definition">
+ <structfield>num_dead_item_ids</structfield> <type>bigint</type>
+ </para>
+ <para>
+ Number of dead item identifiers collected since the last index vacuum cycle.
+ </para></entry>
+ </row>
+
+ <row>
+ <entry role="catalog_table_entry"><para role="column_definition">
<structfield>indexes_total</structfield> <type>bigint</type>
</para>
<para>
diff --git a/src/backend/access/heap/vacuumlazy.c b/src/backend/access/heap/vacuumlazy.c
index 70426b0266e..3f88cf1e8ef 100644
--- a/src/backend/access/heap/vacuumlazy.c
+++ b/src/backend/access/heap/vacuumlazy.c
@@ -2883,13 +2883,19 @@ dead_items_add(LVRelState *vacrel, BlockNumber blkno, OffsetNumber *offsets,
int num_offsets)
{
TidStore *dead_items = vacrel->dead_items;
+ const int prog_index[2] = {
+ PROGRESS_VACUUM_NUM_DEAD_ITEM_IDS,
+ PROGRESS_VACUUM_DEAD_TUPLE_BYTES
+ };
+ int64 prog_val[2];
TidStoreSetBlockOffsets(dead_items, blkno, offsets, num_offsets);
vacrel->dead_items_info->num_items += num_offsets;
- /* update the memory usage report */
- pgstat_progress_update_param(PROGRESS_VACUUM_DEAD_TUPLE_BYTES,
- TidStoreMemoryUsage(dead_items));
+ /* update the progress information */
+ prog_val[0] = vacrel->dead_items_info->num_items;
+ prog_val[1] = TidStoreMemoryUsage(dead_items);
+ pgstat_progress_update_multi_param(2, prog_index, prog_val);
}
/*
diff --git a/src/backend/catalog/system_views.sql b/src/backend/catalog/system_views.sql
index 53047cab5fc..efb29adeb39 100644
--- a/src/backend/catalog/system_views.sql
+++ b/src/backend/catalog/system_views.sql
@@ -1221,7 +1221,8 @@ CREATE VIEW pg_stat_progress_vacuum AS
S.param2 AS heap_blks_total, S.param3 AS heap_blks_scanned,
S.param4 AS heap_blks_vacuumed, S.param5 AS index_vacuum_count,
S.param6 AS max_dead_tuple_bytes, S.param7 AS dead_tuple_bytes,
- S.param8 AS indexes_total, S.param9 AS indexes_processed
+ S.param8 AS num_dead_item_ids, S.param9 AS indexes_total,
+ S.param10 AS indexes_processed
FROM pg_stat_get_progress_info('VACUUM') AS S
LEFT JOIN pg_database D ON S.datid = D.oid;
diff --git a/src/include/catalog/catversion.h b/src/include/catalog/catversion.h
index f0809c0e58a..542213db380 100644
--- a/src/include/catalog/catversion.h
+++ b/src/include/catalog/catversion.h
@@ -57,6 +57,6 @@
*/
/* yyyymmddN */
-#define CATALOG_VERSION_NO 202405161
+#define CATALOG_VERSION_NO 202406141
#endif
diff --git a/src/include/commands/progress.h b/src/include/commands/progress.h
index 82a8fe6bd14..5616d645230 100644
--- a/src/include/commands/progress.h
+++ b/src/include/commands/progress.h
@@ -25,8 +25,9 @@
#define PROGRESS_VACUUM_NUM_INDEX_VACUUMS 4
#define PROGRESS_VACUUM_MAX_DEAD_TUPLE_BYTES 5
#define PROGRESS_VACUUM_DEAD_TUPLE_BYTES 6
-#define PROGRESS_VACUUM_INDEXES_TOTAL 7
-#define PROGRESS_VACUUM_INDEXES_PROCESSED 8
+#define PROGRESS_VACUUM_NUM_DEAD_ITEM_IDS 7
+#define PROGRESS_VACUUM_INDEXES_TOTAL 8
+#define PROGRESS_VACUUM_INDEXES_PROCESSED 9
/* Phases of vacuum (as advertised via PROGRESS_VACUUM_PHASE) */
#define PROGRESS_VACUUM_PHASE_SCAN_HEAP 1
diff --git a/src/test/regress/expected/rules.out b/src/test/regress/expected/rules.out
index ef658ad7405..13178e2b3df 100644
--- a/src/test/regress/expected/rules.out
+++ b/src/test/regress/expected/rules.out
@@ -2052,8 +2052,9 @@ pg_stat_progress_vacuum| SELECT s.pid,
s.param5 AS index_vacuum_count,
s.param6 AS max_dead_tuple_bytes,
s.param7 AS dead_tuple_bytes,
- s.param8 AS indexes_total,
- s.param9 AS indexes_processed
+ s.param8 AS num_dead_item_ids,
+ s.param9 AS indexes_total,
+ s.param10 AS indexes_processed
FROM (pg_stat_get_progress_info('VACUUM'::text) s(pid, datid, relid, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19, param20)
LEFT JOIN pg_database d ON ((s.datid = d.oid)));
pg_stat_recovery_prefetch| SELECT stats_reset,