diff options
Diffstat (limited to 'src/backend/commands/vacuumparallel.c')
-rw-r--r-- | src/backend/commands/vacuumparallel.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/src/backend/commands/vacuumparallel.c b/src/backend/commands/vacuumparallel.c index 22c057fe61b..4fd6574e129 100644 --- a/src/backend/commands/vacuumparallel.c +++ b/src/backend/commands/vacuumparallel.c @@ -57,12 +57,13 @@ typedef struct PVShared { /* - * Target table relid and log level (for messages about parallel workers - * launched during VACUUM VERBOSE). These fields are not modified during - * the parallel vacuum. + * Target table relid, log level (for messages about parallel workers + * launched during VACUUM VERBOSE) and query ID. These fields are not + * modified during the parallel vacuum. */ Oid relid; int elevel; + uint64 queryid; /* * Fields for both index vacuum and cleanup. @@ -369,6 +370,7 @@ parallel_vacuum_init(Relation rel, Relation *indrels, int nindexes, MemSet(shared, 0, est_shared_len); shared->relid = RelationGetRelid(rel); shared->elevel = elevel; + shared->queryid = pgstat_get_my_query_id(); shared->maintenance_work_mem_worker = (nindexes_mwm > 0) ? maintenance_work_mem / Min(parallel_workers, nindexes_mwm) : @@ -1014,6 +1016,9 @@ parallel_vacuum_main(dsm_segment *seg, shm_toc *toc) debug_query_string = sharedquery; pgstat_report_activity(STATE_RUNNING, debug_query_string); + /* Track query ID */ + pgstat_report_query_id(shared->queryid, false); + /* * Open table. The lock mode is the same as the leader process. It's * okay because the lock mode does not conflict among the parallel |