aboutsummaryrefslogtreecommitdiff
path: root/src/backend/utils/init/miscinit.c
diff options
context:
space:
mode:
authorPeter Eisentraut <peter@eisentraut.org>2020-03-11 16:36:40 +0100
committerPeter Eisentraut <peter@eisentraut.org>2020-03-13 14:01:10 +0100
commit8e8a0becb335529c66a9f82f88e1419e49b458ae (patch)
tree20eb3ec548fcf2d37ae150f44c1c7949ee9fda5a /src/backend/utils/init/miscinit.c
parent1cc9c2412cc9a2fbe6a381170097d315fd40ccca (diff)
downloadpostgresql-8e8a0becb335529c66a9f82f88e1419e49b458ae.tar.gz
postgresql-8e8a0becb335529c66a9f82f88e1419e49b458ae.zip
Unify several ways to tracking backend type
Add a new global variable MyBackendType that uses the same BackendType enum that was previously only used by the stats collector. That way several duplicate ways of checking what type a particular process is can be simplified. Since it's no longer just for stats, move to miscinit.c and rename existing functions to match the expanded purpose. Reviewed-by: Julien Rouhaud <rjuju123@gmail.com> Reviewed-by: Kuntal Ghosh <kuntalghosh.2007@gmail.com> Reviewed-by: Alvaro Herrera <alvherre@2ndquadrant.com> Discussion: https://www.postgresql.org/message-id/flat/c65e5196-4f04-4ead-9353-6088c19615a3@2ndquadrant.com
Diffstat (limited to 'src/backend/utils/init/miscinit.c')
-rw-r--r--src/backend/utils/init/miscinit.c55
1 files changed, 55 insertions, 0 deletions
diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c
index cd099b0c709..a7b7b12249d 100644
--- a/src/backend/utils/init/miscinit.c
+++ b/src/backend/utils/init/miscinit.c
@@ -57,6 +57,8 @@
ProcessingMode Mode = InitProcessing;
+BackendType MyBackendType;
+
/* List of lock files to be removed at proc exit */
static List *lock_files = NIL;
@@ -187,6 +189,59 @@ SwitchBackToLocalLatch(void)
SetLatch(MyLatch);
}
+const char *
+GetBackendTypeDesc(BackendType backendType)
+{
+ const char *backendDesc = "unknown process type";
+
+ switch (backendType)
+ {
+ case B_INVALID:
+ backendDesc = "not initialized";
+ break;
+ case B_AUTOVAC_LAUNCHER:
+ backendDesc = "autovacuum launcher";
+ break;
+ case B_AUTOVAC_WORKER:
+ backendDesc = "autovacuum worker";
+ break;
+ case B_BACKEND:
+ backendDesc = "client backend";
+ break;
+ case B_BG_WORKER:
+ backendDesc = "background worker";
+ break;
+ case B_BG_WRITER:
+ backendDesc = "background writer";
+ break;
+ case B_CHECKPOINTER:
+ backendDesc = "checkpointer";
+ break;
+ case B_STARTUP:
+ backendDesc = "startup";
+ break;
+ case B_WAL_RECEIVER:
+ backendDesc = "walreceiver";
+ break;
+ case B_WAL_SENDER:
+ backendDesc = "walsender";
+ break;
+ case B_WAL_WRITER:
+ backendDesc = "walwriter";
+ break;
+ case B_ARCHIVER:
+ backendDesc = "archiver";
+ break;
+ case B_STATS_COLLECTOR:
+ backendDesc = "stats collector";
+ break;
+ case B_LOGGER:
+ backendDesc = "logger";
+ break;
+ }
+
+ return backendDesc;
+}
/* ----------------------------------------------------------------
* database path / name support stuff