mirror of
https://github.com/postgres/postgres.git
synced 2025-06-13 07:41:39 +03:00
Add background worker type
Add bgw_type field to background worker structure. It is intended to be set to the same value for all workers of the same type, so they can be grouped in pg_stat_activity, for example. The backend_type column in pg_stat_activity now shows bgw_type for a background worker. The ps listing also no longer calls out that a process is a background worker but just show the bgw_type. That way, being a background worker is more of an implementation detail now that is not shown to the user. However, most log messages still refer to 'background worker "%s"'; otherwise constructing sensible and translatable log messages would become tricky. Reviewed-by: Michael Paquier <michael.paquier@gmail.com> Reviewed-by: Daniel Gustafsson <daniel@yesql.se>
This commit is contained in:
@ -21,6 +21,7 @@
|
||||
#include "funcapi.h"
|
||||
#include "miscadmin.h"
|
||||
#include "pgstat.h"
|
||||
#include "postmaster/bgworker_internals.h"
|
||||
#include "postmaster/postmaster.h"
|
||||
#include "storage/proc.h"
|
||||
#include "storage/procarray.h"
|
||||
@ -823,8 +824,19 @@ pg_stat_get_activity(PG_FUNCTION_ARGS)
|
||||
}
|
||||
}
|
||||
/* Add backend type */
|
||||
values[17] =
|
||||
CStringGetTextDatum(pgstat_get_backend_desc(beentry->st_backendType));
|
||||
if (beentry->st_backendType == B_BG_WORKER)
|
||||
{
|
||||
const char *bgw_type;
|
||||
|
||||
bgw_type = GetBackgroundWorkerTypeByPid(beentry->st_procpid);
|
||||
if (bgw_type)
|
||||
values[17] = CStringGetTextDatum(bgw_type);
|
||||
else
|
||||
nulls[17] = true;
|
||||
}
|
||||
else
|
||||
values[17] =
|
||||
CStringGetTextDatum(pgstat_get_backend_desc(beentry->st_backendType));
|
||||
}
|
||||
else
|
||||
{
|
||||
|
Reference in New Issue
Block a user